mingw-5.1.4/win32/include/d3d9.h
changeset 0 76b1f169d9fe
equal deleted inserted replaced
-1:000000000000 0:76b1f169d9fe
       
     1 /*
       
     2 
       
     3 	d3d9.h - Header file for the Direct3D9 API
       
     4 
       
     5 	Written by Filip Navara <xnavara@volny.cz>
       
     6 
       
     7 	This library is distributed in the hope that it will be useful,
       
     8 	but WITHOUT ANY WARRANTY; without even the implied warranty of
       
     9 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
       
    10 
       
    11 */
       
    12 
       
    13 #ifndef _D3D9_H
       
    14 #define _D3D9_H
       
    15 #if __GNUC__ >=3
       
    16 #pragma GCC system_header
       
    17 #endif
       
    18 
       
    19 #ifndef DIRECT3D_VERSION
       
    20 #define DIRECT3D_VERSION  0x0900
       
    21 #endif
       
    22 
       
    23 #if (DIRECT3D_VERSION >= 0x0900)
       
    24 
       
    25 #include <objbase.h>
       
    26 #include "d3d9types.h"
       
    27 #include "d3d9caps.h"
       
    28 
       
    29 #define D3D_SDK_VERSION	31
       
    30 #define D3DCREATE_FPU_PRESERVE	0x02
       
    31 #define D3DCREATE_MULTITHREADED	0x04
       
    32 #define D3DCREATE_PUREDEVICE	0x10
       
    33 #define D3DCREATE_SOFTWARE_VERTEXPROCESSING	0x20
       
    34 #define D3DCREATE_HARDWARE_VERTEXPROCESSING	0x40
       
    35 #define D3DCREATE_MIXED_VERTEXPROCESSING	0x80
       
    36 #define D3DSPD_IUNKNOWN	1
       
    37 #define D3DSGR_NO_CALIBRATION	0
       
    38 #define D3DSGR_CALIBRATE	1
       
    39 #define MAKE_D3DHRESULT(code)	MAKE_HRESULT(1,0x876,code)
       
    40 #define MAKE_D3DSTATUS(code)	MAKE_HRESULT(0,0x876,code)
       
    41 #define D3D_OK	0
       
    42 #define D3DOK_NOAUTOGEN	MAKE_D3DSTATUS(2159)
       
    43 #define D3DERR_WRONGTEXTUREFORMAT	MAKE_D3DHRESULT(2072)
       
    44 #define D3DERR_UNSUPPORTEDCOLOROPERATION	MAKE_D3DHRESULT(2073)
       
    45 #define D3DERR_UNSUPPORTEDCOLORARG	MAKE_D3DHRESULT(2074)
       
    46 #define D3DERR_UNSUPPORTEDALPHAOPERATION	MAKE_D3DHRESULT(2075)
       
    47 #define D3DERR_UNSUPPORTEDALPHAARG	MAKE_D3DHRESULT(2076)
       
    48 #define D3DERR_TOOMANYOPERATIONS	MAKE_D3DHRESULT(2077)
       
    49 #define D3DERR_CONFLICTINGTEXTUREFILTER	MAKE_D3DHRESULT(2078)
       
    50 #define D3DERR_UNSUPPORTEDFACTORVALUE	MAKE_D3DHRESULT(2079)
       
    51 #define D3DERR_CONFLICTINGRENDERSTATE	MAKE_D3DHRESULT(2081)
       
    52 #define D3DERR_UNSUPPORTEDTEXTUREFILTER	MAKE_D3DHRESULT(2082)
       
    53 #define D3DERR_CONFLICTINGTEXTUREPALETTE	MAKE_D3DHRESULT(2086)
       
    54 #define D3DERR_DRIVERINTERNALERROR	MAKE_D3DHRESULT(2087)
       
    55 #define D3DERR_NOTFOUND	MAKE_D3DHRESULT(2150)
       
    56 #define D3DERR_MOREDATA	MAKE_D3DHRESULT(2151)
       
    57 #define D3DERR_DEVICELOST	MAKE_D3DHRESULT(2152)
       
    58 #define D3DERR_DEVICENOTRESET	MAKE_D3DHRESULT(2153)
       
    59 #define D3DERR_NOTAVAILABLE	MAKE_D3DHRESULT(2154)
       
    60 #define D3DERR_OUTOFVIDEOMEMORY	MAKE_D3DHRESULT(380)
       
    61 #define D3DERR_INVALIDDEVICE	MAKE_D3DHRESULT(2155)
       
    62 #define D3DERR_INVALIDCALL	MAKE_D3DHRESULT(2156)
       
    63 #define D3DERR_DRIVERINVALIDCALL	MAKE_D3DHRESULT(2157)
       
    64 #define D3DERR_WASSTILLDRAWING	MAKE_D3DHRESULT(540)
       
    65 #define D3DADAPTER_DEFAULT	0
       
    66 #define D3DCURSOR_IMMEDIATE_UPDATE	1
       
    67 #define D3DENUM_HOST_ADAPTER	1
       
    68 #define D3DPRESENTFLAG_LOCKABLE_BACKBUFFER	1
       
    69 #define D3DPV_DONOTCOPYDATA	1
       
    70 #define D3DENUM_NO_WHQL_LEVEL	2
       
    71 #define D3DPRESENT_BACK_BUFFERS_MAX	3
       
    72 #define VALID_D3DENUM_FLAGS	3
       
    73 #define D3DMAXNUMPRIMITIVES	0xFFFF
       
    74 #define D3DMAXNUMVERTICES	0xFFFF
       
    75 #define D3DCURRENT_DISPLAY_MODE	0xEFFFFF
       
    76 
       
    77 #ifdef __cplusplus
       
    78 extern "C" {
       
    79 #endif
       
    80 extern const GUID IID_IDirect3D9;
       
    81 extern const GUID IID_IDirect3DDevice9;
       
    82 extern const GUID IID_IDirect3DVolume9;
       
    83 extern const GUID IID_IDirect3DSwapChain9;
       
    84 extern const GUID IID_IDirect3DResource9;
       
    85 extern const GUID IID_IDirect3DSurface9;
       
    86 extern const GUID IID_IDirect3DVertexBuffer9;
       
    87 extern const GUID IID_IDirect3DIndexBuffer9;
       
    88 extern const GUID IID_IDirect3DBaseTexture9;
       
    89 extern const GUID IID_IDirect3DCubeTexture9;
       
    90 extern const GUID IID_IDirect3DTexture9;
       
    91 extern const GUID IID_IDirect3DVolumeTexture9;
       
    92 extern const GUID IID_IDirect3DVertexDeclaration9;
       
    93 extern const GUID IID_IDirect3DVertexShader9;
       
    94 extern const GUID IID_IDirect3DPixelShader9;
       
    95 extern const GUID IID_IDirect3DStateBlock9;
       
    96 extern const GUID IID_IDirect3DQuery9;
       
    97 #ifdef __cplusplus
       
    98 };
       
    99 #endif
       
   100 
       
   101 typedef _COM_interface IDirect3D9 IDirect3D9;
       
   102 typedef _COM_interface IDirect3DDevice9 IDirect3DDevice9;
       
   103 typedef _COM_interface IDirect3DVolume9 IDirect3DVolume9;
       
   104 typedef _COM_interface IDirect3DSwapChain9 IDirect3DSwapChain9;
       
   105 typedef _COM_interface IDirect3DResource9 IDirect3DResource9;
       
   106 typedef _COM_interface IDirect3DSurface9 IDirect3DSurface9;
       
   107 typedef _COM_interface IDirect3DVertexBuffer9 IDirect3DVertexBuffer9;
       
   108 typedef _COM_interface IDirect3DIndexBuffer9 IDirect3DIndexBuffer9;
       
   109 typedef _COM_interface IDirect3DBaseTexture9 IDirect3DBaseTexture9;
       
   110 typedef _COM_interface IDirect3DCubeTexture9 IDirect3DCubeTexture9;
       
   111 typedef _COM_interface IDirect3DTexture9 IDirect3DTexture9;
       
   112 typedef _COM_interface IDirect3DVolumeTexture9 IDirect3DVolumeTexture9;
       
   113 typedef _COM_interface IDirect3DVertexDeclaration9 IDirect3DVertexDeclaration9;
       
   114 typedef _COM_interface IDirect3DVertexShader9 IDirect3DVertexShader9;
       
   115 typedef _COM_interface IDirect3DPixelShader9 IDirect3DPixelShader9;
       
   116 typedef _COM_interface IDirect3DStateBlock9 IDirect3DStateBlock9;
       
   117 typedef _COM_interface IDirect3DQuery9 IDirect3DQuery9;
       
   118 
       
   119 #undef INTERFACE
       
   120 #define INTERFACE IDirect3D9
       
   121 DECLARE_INTERFACE_(IDirect3D9,IUnknown)
       
   122 {
       
   123 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
   124 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
   125 	STDMETHOD_(ULONG,Release)(THIS) PURE;
       
   126 	STDMETHOD(RegisterSoftwareDevice)(THIS_ void* pInitializeFunction) PURE;
       
   127 	STDMETHOD_(UINT,GetAdapterCount)(THIS) PURE;
       
   128 	STDMETHOD(GetAdapterIdentifier)(THIS_ UINT,DWORD,D3DADAPTER_IDENTIFIER9*) PURE;
       
   129 	STDMETHOD_(UINT,GetAdapterModeCount)(THIS_ UINT,D3DFORMAT) PURE;
       
   130 	STDMETHOD(EnumAdapterModes)(THIS_ UINT,D3DFORMAT,UINT,D3DDISPLAYMODE*) PURE;
       
   131 	STDMETHOD(GetAdapterDisplayMode)(THIS_ UINT,D3DDISPLAYMODE*) PURE;
       
   132 	STDMETHOD(CheckDeviceType)(THIS_ UINT,D3DDEVTYPE,D3DFORMAT,D3DFORMAT,BOOL) PURE;
       
   133 	STDMETHOD(CheckDeviceFormat)(THIS_ UINT,D3DDEVTYPE,D3DFORMAT,DWORD,D3DRESOURCETYPE,D3DFORMAT) PURE;
       
   134 	STDMETHOD(CheckDeviceMultiSampleType)(THIS_ UINT,D3DDEVTYPE,D3DFORMAT,BOOL,D3DMULTISAMPLE_TYPE,DWORD*) PURE;
       
   135 	STDMETHOD(CheckDepthStencilMatch)(THIS_ UINT,D3DDEVTYPE,D3DFORMAT,D3DFORMAT,D3DFORMAT) PURE;
       
   136 	STDMETHOD(CheckDeviceFormatConversion)(THIS_ UINT,D3DDEVTYPE,D3DFORMAT,D3DFORMAT) PURE;
       
   137 	STDMETHOD(GetDeviceCaps)(THIS_ UINT,D3DDEVTYPE,D3DCAPS9*) PURE;
       
   138 	STDMETHOD_(HMONITOR,GetAdapterMonitor)(THIS_ UINT) PURE;
       
   139 	STDMETHOD(CreateDevice)(THIS_ UINT,D3DDEVTYPE,HWND,DWORD,D3DPRESENT_PARAMETERS*,IDirect3DDevice9**) PURE;
       
   140 };
       
   141 typedef struct IDirect3D9 *LPDIRECT3D9, *PDIRECT3D9;
       
   142 
       
   143 #if !defined(__cplusplus) || defined(CINTERFACE)
       
   144 #define IDirect3D9_QueryInterface(p,a,b)	(p)->lpVtbl->QueryInterface(p,a,b)
       
   145 #define IDirect3D9_AddRef(p)	(p)->lpVtbl->AddRef(p)
       
   146 #define IDirect3D9_Release(p)	(p)->lpVtbl->Release(p)
       
   147 #define IDirect3D9_RegisterSoftwareDevice(p,a)	(p)->lpVtbl->RegisterSoftwareDevice(p,a)
       
   148 #define IDirect3D9_GetAdapterCount(p)	(p)->lpVtbl->GetAdapterCount(p)
       
   149 #define IDirect3D9_GetAdapterIdentifier(p,a,b,c)	(p)->lpVtbl->GetAdapterIdentifier(p,a,b,c)
       
   150 #define IDirect3D9_GetAdapterModeCount(p,a,b)	(p)->lpVtbl->GetAdapterModeCount(p,a,b)
       
   151 #define IDirect3D9_EnumAdapterModes(p,a,b,c,d)	(p)->lpVtbl->EnumAdapterModes(p,a,b,c,d)
       
   152 #define IDirect3D9_GetAdapterDisplayMode(p,a,b)	(p)->lpVtbl->GetAdapterDisplayMode(p,a,b)
       
   153 #define IDirect3D9_CheckDeviceType(p,a,b,c,d,e)	(p)->lpVtbl->CheckDeviceType(p,a,b,c,d,e)
       
   154 #define IDirect3D9_CheckDeviceFormat(p,a,b,c,d,e,f)	(p)->lpVtbl->CheckDeviceFormat(p,a,b,c,d,e,f)
       
   155 #define IDirect3D9_CheckDeviceMultiSampleType(p,a,b,c,d,e,f)	(p)->lpVtbl->CheckDeviceMultiSampleType(p,a,b,c,d,e,f)
       
   156 #define IDirect3D9_CheckDepthStencilMatch(p,a,b,c,d,e)	(p)->lpVtbl->CheckDepthStencilMatch(p,a,b,c,d,e)
       
   157 #define IDirect3D9_CheckDeviceFormatConversion(p,a,b,c,d)	(p)->lpVtbl->CheckDeviceFormatConversion(p,a,b,c,d)
       
   158 #define IDirect3D9_GetDeviceCaps(p,a,b,c)	(p)->lpVtbl->GetDeviceCaps(p,a,b,c)
       
   159 #define IDirect3D9_GetAdapterMonitor(p,a)	(p)->lpVtbl->GetAdapterMonitor(p,a)
       
   160 #define IDirect3D9_CreateDevice(p,a,b,c,d,e,f)	(p)->lpVtbl->CreateDevice(p,a,b,c,d,e,f)
       
   161 #else
       
   162 #define IDirect3D9_QueryInterface(p,a,b)	(p)->QueryInterface(a,b)
       
   163 #define IDirect3D9_AddRef(p)	(p)->AddRef()
       
   164 #define IDirect3D9_Release(p)	(p)->Release()
       
   165 #define IDirect3D9_RegisterSoftwareDevice(p,a)	(p)->RegisterSoftwareDevice(a)
       
   166 #define IDirect3D9_GetAdapterCount(p)	(p)->GetAdapterCount()
       
   167 #define IDirect3D9_GetAdapterIdentifier(p,a,b,c)	(p)->GetAdapterIdentifier(a,b,c)
       
   168 #define IDirect3D9_GetAdapterModeCount(p,a,b)	(p)->GetAdapterModeCount(a,b)
       
   169 #define IDirect3D9_EnumAdapterModes(p,a,b,c,d)	(p)->EnumAdapterModes(a,b,c,d)
       
   170 #define IDirect3D9_GetAdapterDisplayMode(p,a,b)	(p)->GetAdapterDisplayMode(a,b)
       
   171 #define IDirect3D9_CheckDeviceType(p,a,b,c,d,e)	(p)->CheckDeviceType(a,b,c,d,e)
       
   172 #define IDirect3D9_CheckDeviceFormat(p,a,b,c,d,e,f)	(p)->CheckDeviceFormat(a,b,c,d,e,f)
       
   173 #define IDirect3D9_CheckDeviceMultiSampleType(p,a,b,c,d,e,f)	(p)->CheckDeviceMultiSampleType(a,b,c,d,e,f)
       
   174 #define IDirect3D9_CheckDepthStencilMatch(p,a,b,c,d,e)	(p)->CheckDepthStencilMatch(a,b,c,d,e)
       
   175 #define IDirect3D9_CheckDeviceFormatConversion(p,a,b,c,d)	(p)->CheckDeviceFormatConversion(a,b,c,d)
       
   176 #define IDirect3D9_GetDeviceCaps(p,a,b,c)	(p)->GetDeviceCaps(a,b,c)
       
   177 #define IDirect3D9_GetAdapterMonitor(p,a)	(p)->GetAdapterMonitor(a)
       
   178 #define IDirect3D9_CreateDevice(p,a,b,c,d,e,f)	(p)->CreateDevice(a,b,c,d,e,f)
       
   179 #endif
       
   180 
       
   181 #undef INTERFACE
       
   182 #define INTERFACE IDirect3DDevice9
       
   183 DECLARE_INTERFACE_(IDirect3DDevice9,IUnknown)
       
   184 {
       
   185 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
   186 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
   187 	STDMETHOD_(ULONG,Release)(THIS) PURE;
       
   188 	STDMETHOD(TestCooperativeLevel)(THIS) PURE;
       
   189 	STDMETHOD_(UINT,GetAvailableTextureMem)(THIS) PURE;
       
   190 	STDMETHOD(EvictManagedResources)(THIS) PURE;
       
   191 	STDMETHOD(GetDirect3D)(THIS_ IDirect3D9**) PURE;
       
   192 	STDMETHOD(GetDeviceCaps)(THIS_ D3DCAPS9*) PURE;
       
   193 	STDMETHOD(GetDisplayMode)(THIS_ UINT,D3DDISPLAYMODE*) PURE;
       
   194 	STDMETHOD(GetCreationParameters)(THIS_ D3DDEVICE_CREATION_PARAMETERS*) PURE;
       
   195 	STDMETHOD(SetCursorProperties)(THIS_ UINT,UINT,IDirect3DSurface9*) PURE;
       
   196 	STDMETHOD_(void,SetCursorPosition)(THIS_ int,int,DWORD) PURE;
       
   197 	STDMETHOD_(BOOL,ShowCursor)(THIS_ BOOL) PURE;
       
   198 	STDMETHOD(CreateAdditionalSwapChain)(THIS_ D3DPRESENT_PARAMETERS*,IDirect3DSwapChain9**) PURE;
       
   199 	STDMETHOD(GetSwapChain)(THIS_ UINT,IDirect3DSwapChain9**) PURE;
       
   200 	STDMETHOD_(UINT,GetNumberOfSwapChains)(THIS) PURE;
       
   201 	STDMETHOD(Reset)(THIS_ D3DPRESENT_PARAMETERS*) PURE;
       
   202 	STDMETHOD(Present)(THIS_ CONST RECT*,CONST RECT*,HWND,CONST RGNDATA*) PURE;
       
   203 	STDMETHOD(GetBackBuffer)(THIS_ UINT,UINT,D3DBACKBUFFER_TYPE,IDirect3DSurface9**) PURE;
       
   204 	STDMETHOD(GetRasterStatus)(THIS_ UINT,D3DRASTER_STATUS*) PURE;
       
   205 	STDMETHOD(SetDialogBoxMode)(THIS_ BOOL) PURE;
       
   206 	STDMETHOD_(void,SetGammaRamp)(THIS_ UINT,DWORD,CONST D3DGAMMARAMP*) PURE;
       
   207 	STDMETHOD_(void,GetGammaRamp)(THIS_ UINT,D3DGAMMARAMP*) PURE;
       
   208 	STDMETHOD(CreateTexture)(THIS_ UINT,UINT,UINT,DWORD,D3DFORMAT,D3DPOOL,IDirect3DTexture9**,HANDLE*) PURE;
       
   209 	STDMETHOD(CreateVolumeTexture)(THIS_ UINT,UINT,UINT,UINT,DWORD,D3DFORMAT,D3DPOOL,IDirect3DVolumeTexture9**,HANDLE*) PURE;
       
   210 	STDMETHOD(CreateCubeTexture)(THIS_ UINT,UINT,DWORD,D3DFORMAT,D3DPOOL,IDirect3DCubeTexture9**, HANDLE*) PURE;
       
   211 	STDMETHOD(CreateVertexBuffer)(THIS_ UINT,DWORD,DWORD,D3DPOOL,IDirect3DVertexBuffer9**, HANDLE*) PURE;
       
   212 	STDMETHOD(CreateIndexBuffer)(THIS_ UINT,DWORD,D3DFORMAT,D3DPOOL,IDirect3DIndexBuffer9**,HANDLE*) PURE;
       
   213 	STDMETHOD(CreateRenderTarget)(THIS_ UINT,UINT,D3DFORMAT,D3DMULTISAMPLE_TYPE,DWORD,BOOL,IDirect3DSurface9**,HANDLE*) PURE;
       
   214 	STDMETHOD(CreateDepthStencilSurface)(THIS_ UINT,UINT,D3DFORMAT,D3DMULTISAMPLE_TYPE,DWORD,BOOL,IDirect3DSurface9**,HANDLE*) PURE;
       
   215 	STDMETHOD(UpdateSurface)(THIS_ IDirect3DSurface9*,CONST RECT*,IDirect3DSurface9*,CONST POINT*) PURE;
       
   216 	STDMETHOD(UpdateTexture)(THIS_ IDirect3DBaseTexture9*,IDirect3DBaseTexture9*) PURE;
       
   217 	STDMETHOD(GetRenderTargetData)(THIS_ IDirect3DSurface9*,IDirect3DSurface9*) PURE;
       
   218 	STDMETHOD(GetFrontBufferData)(THIS_ UINT,IDirect3DSurface9*) PURE;
       
   219 	STDMETHOD(StretchRect)(THIS_ IDirect3DSurface9*,CONST RECT*,IDirect3DSurface9*,CONST RECT*,D3DTEXTUREFILTERTYPE) PURE;
       
   220 	STDMETHOD(ColorFill)(THIS_ IDirect3DSurface9*,CONST RECT*,D3DCOLOR) PURE;
       
   221 	STDMETHOD(CreateOffscreenPlainSurface)(THIS_ UINT,UINT,D3DFORMAT,D3DPOOL,IDirect3DSurface9**,HANDLE*) PURE;
       
   222 	STDMETHOD(SetRenderTarget)(THIS_ DWORD,IDirect3DSurface9*) PURE;
       
   223 	STDMETHOD(GetRenderTarget)(THIS_ DWORD,IDirect3DSurface9**) PURE;
       
   224 	STDMETHOD(SetDepthStencilSurface)(THIS_ IDirect3DSurface9*) PURE;
       
   225 	STDMETHOD(GetDepthStencilSurface)(THIS_ IDirect3DSurface9**) PURE;
       
   226 	STDMETHOD(BeginScene)(THIS) PURE;
       
   227 	STDMETHOD(EndScene)(THIS) PURE;
       
   228 	STDMETHOD(Clear)(THIS_ DWORD,CONST D3DRECT*,DWORD,D3DCOLOR,float,DWORD) PURE;
       
   229 	STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE,CONST D3DMATRIX*) PURE;
       
   230 	STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE,D3DMATRIX*) PURE;
       
   231 	STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE,CONST D3DMATRIX*) PURE;
       
   232 	STDMETHOD(SetViewport)(THIS_ CONST D3DVIEWPORT9*) PURE;
       
   233 	STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT9*) PURE;
       
   234 	STDMETHOD(SetMaterial)(THIS_ CONST D3DMATERIAL9*) PURE;
       
   235 	STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL9*) PURE;
       
   236 	STDMETHOD(SetLight)(THIS_ DWORD,CONST D3DLIGHT9*) PURE;
       
   237 	STDMETHOD(GetLight)(THIS_ DWORD,D3DLIGHT9*) PURE;
       
   238 	STDMETHOD(LightEnable)(THIS_ DWORD,BOOL) PURE;
       
   239 	STDMETHOD(GetLightEnable)(THIS_ DWORD,BOOL*) PURE;
       
   240 	STDMETHOD(SetClipPlane)(THIS_ DWORD,CONST float*) PURE;
       
   241 	STDMETHOD(GetClipPlane)(THIS_ DWORD,float*) PURE;
       
   242 	STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE,DWORD) PURE;
       
   243 	STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE,DWORD*) PURE;
       
   244 	STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE,IDirect3DStateBlock9**) PURE;
       
   245 	STDMETHOD(BeginStateBlock)(THIS) PURE;
       
   246 	STDMETHOD(EndStateBlock)(THIS_ IDirect3DStateBlock9**) PURE;
       
   247 	STDMETHOD(SetClipStatus)(THIS_ CONST D3DCLIPSTATUS9*) PURE;
       
   248 	STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS9*) PURE;
       
   249 	STDMETHOD(GetTexture)(THIS_ DWORD,IDirect3DBaseTexture9**) PURE;
       
   250 	STDMETHOD(SetTexture)(THIS_ DWORD,IDirect3DBaseTexture9*) PURE;
       
   251 	STDMETHOD(GetTextureStageState)(THIS_ DWORD,D3DTEXTURESTAGESTATETYPE,DWORD*) PURE;
       
   252 	STDMETHOD(SetTextureStageState)(THIS_ DWORD,D3DTEXTURESTAGESTATETYPE,DWORD) PURE;
       
   253 	STDMETHOD(GetSamplerState)(THIS_ DWORD,D3DSAMPLERSTATETYPE,DWORD*) PURE;
       
   254 	STDMETHOD(SetSamplerState)(THIS_ DWORD,D3DSAMPLERSTATETYPE,DWORD) PURE;
       
   255 	STDMETHOD(ValidateDevice)(THIS_ DWORD*) PURE;
       
   256 	STDMETHOD(SetPaletteEntries)(THIS_ UINT,CONST PALETTEENTRY*) PURE;
       
   257 	STDMETHOD(GetPaletteEntries)(THIS_ UINT,PALETTEENTRY*) PURE;
       
   258 	STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT) PURE;
       
   259 	STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT*) PURE;
       
   260 	STDMETHOD(SetScissorRect)(THIS_ CONST RECT*) PURE;
       
   261 	STDMETHOD(GetScissorRect)(THIS_ RECT*) PURE;
       
   262 	STDMETHOD(SetSoftwareVertexProcessing)(THIS_ BOOL) PURE;
       
   263 	STDMETHOD_(BOOL,GetSoftwareVertexProcessing)(THIS) PURE;
       
   264 	STDMETHOD(SetNPatchMode)(THIS_ float) PURE;
       
   265 	STDMETHOD_(float,GetNPatchMode)(THIS) PURE;
       
   266 	STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE,UINT,UINT) PURE;
       
   267 	STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE,INT,UINT,UINT,UINT,UINT) PURE;
       
   268 	STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE,UINT,CONST void*,UINT) PURE;
       
   269 	STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE,UINT,UINT,UINT,CONST void*,D3DFORMAT,CONST void*,UINT) PURE;
       
   270 	STDMETHOD(ProcessVertices)(THIS_ UINT,UINT,UINT,IDirect3DVertexBuffer9*,IDirect3DVertexDeclaration9*,DWORD) PURE;
       
   271 	STDMETHOD(CreateVertexDeclaration)(THIS_ CONST D3DVERTEXELEMENT9*,IDirect3DVertexDeclaration9**) PURE;
       
   272 	STDMETHOD(SetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9*) PURE;
       
   273 	STDMETHOD(GetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9**) PURE;
       
   274 	STDMETHOD(SetFVF)(THIS_ DWORD) PURE;
       
   275 	STDMETHOD(GetFVF)(THIS_ DWORD*) PURE;
       
   276 	STDMETHOD(CreateVertexShader)(THIS_ CONST DWORD*,IDirect3DVertexShader9**) PURE;
       
   277 	STDMETHOD(SetVertexShader)(THIS_ IDirect3DVertexShader9*) PURE;
       
   278 	STDMETHOD(GetVertexShader)(THIS_ IDirect3DVertexShader9**) PURE;
       
   279 	STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT,CONST float*,UINT) PURE;
       
   280 	STDMETHOD(GetVertexShaderConstantF)(THIS_ UINT,float*,UINT) PURE;
       
   281 	STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT,CONST int*,UINT) PURE;
       
   282 	STDMETHOD(GetVertexShaderConstantI)(THIS_ UINT,int*,UINT) PURE;
       
   283 	STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT,CONST BOOL*,UINT) PURE;
       
   284 	STDMETHOD(GetVertexShaderConstantB)(THIS_ UINT,BOOL*,UINT) PURE;
       
   285 	STDMETHOD(SetStreamSource)(THIS_ UINT,IDirect3DVertexBuffer9*,UINT,UINT) PURE;
       
   286 	STDMETHOD(GetStreamSource)(THIS_ UINT,IDirect3DVertexBuffer9**,UINT*,UINT*) PURE;
       
   287 	STDMETHOD(SetStreamSourceFreq)(THIS_ UINT,UINT) PURE;
       
   288 	STDMETHOD(GetStreamSourceFreq)(THIS_ UINT,UINT*) PURE;
       
   289 	STDMETHOD(SetIndices)(THIS_ IDirect3DIndexBuffer9*) PURE;
       
   290 	STDMETHOD(GetIndices)(THIS_ IDirect3DIndexBuffer9**) PURE;
       
   291 	STDMETHOD(CreatePixelShader)(THIS_ CONST DWORD*,IDirect3DPixelShader9**) PURE;
       
   292 	STDMETHOD(SetPixelShader)(THIS_ IDirect3DPixelShader9*) PURE;
       
   293 	STDMETHOD(GetPixelShader)(THIS_ IDirect3DPixelShader9**) PURE;
       
   294 	STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT,CONST float*,UINT) PURE;
       
   295 	STDMETHOD(GetPixelShaderConstantF)(THIS_ UINT,float*,UINT) PURE;
       
   296 	STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT,CONST int*,UINT) PURE;
       
   297 	STDMETHOD(GetPixelShaderConstantI)(THIS_ UINT,int*,UINT) PURE;
       
   298 	STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT,CONST BOOL*,UINT) PURE;
       
   299 	STDMETHOD(GetPixelShaderConstantB)(THIS_ UINT,BOOL*,UINT) PURE;
       
   300 	STDMETHOD(DrawRectPatch)(THIS_ UINT,CONST float*,CONST D3DRECTPATCH_INFO*) PURE;
       
   301 	STDMETHOD(DrawTriPatch)(THIS_ UINT,CONST float*,CONST D3DTRIPATCH_INFO*) PURE;
       
   302 	STDMETHOD(DeletePatch)(THIS_ UINT) PURE;
       
   303 	STDMETHOD(CreateQuery)(THIS_ D3DQUERYTYPE,IDirect3DQuery9**) PURE;
       
   304 };
       
   305 typedef struct IDirect3DDevice9 *LPDIRECT3DDEVICE9, *PDIRECT3DDEVICE9;
       
   306 
       
   307 #if !defined(__cplusplus) || defined(CINTERFACE)
       
   308 #define IDirect3DDevice9_QueryInterface(p,a,b)	(p)->lpVtbl->QueryInterface(p,a,b)
       
   309 #define IDirect3DDevice9_AddRef(p)	(p)->lpVtbl->AddRef(p)
       
   310 #define IDirect3DDevice9_Release(p)	(p)->lpVtbl->Release(p)
       
   311 #define IDirect3DDevice9_TestCooperativeLevel(p)	(p)->lpVtbl->TestCooperativeLevel(p)
       
   312 #define IDirect3DDevice9_GetAvailableTextureMem(p)	(p)->lpVtbl->GetAvailableTextureMem(p)
       
   313 #define IDirect3DDevice9_EvictManagedResources(p)	(p)->lpVtbl->EvictManagedResources(p)
       
   314 #define IDirect3DDevice9_GetDirect3D(p,a)	(p)->lpVtbl->GetDirect3D(p,a)
       
   315 #define IDirect3DDevice9_GetDeviceCaps(p,a)	(p)->lpVtbl->GetDeviceCaps(p,a)
       
   316 #define IDirect3DDevice9_GetDisplayMode(p,a,b)	(p)->lpVtbl->GetDisplayMode(p,a,b)
       
   317 #define IDirect3DDevice9_GetCreationParameters(p,a)	(p)->lpVtbl->GetCreationParameters(p,a)
       
   318 #define IDirect3DDevice9_SetCursorProperties(p,a,b,c)	(p)->lpVtbl->SetCursorProperties(p,a,b,c)
       
   319 #define IDirect3DDevice9_SetCursorPosition(p,a,b,c)	(p)->lpVtbl->SetCursorPosition(p,a,b,c)
       
   320 #define IDirect3DDevice9_ShowCursor(p,a)	(p)->lpVtbl->ShowCursor(p,a)
       
   321 #define IDirect3DDevice9_CreateAdditionalSwapChain(p,a,b)	(p)->lpVtbl->CreateAdditionalSwapChain(p,a,b)
       
   322 #define IDirect3DDevice9_GetSwapChain(p,a,b)	(p)->lpVtbl->GetSwapChain(p,a,b)
       
   323 #define IDirect3DDevice9_GetNumberOfSwapChains(p)	(p)->lpVtbl->GetNumberOfSwapChains(p)
       
   324 #define IDirect3DDevice9_Reset(p,a)	(p)->lpVtbl->Reset(p,a)
       
   325 #define IDirect3DDevice9_Present(p,a,b,c,d)	(p)->lpVtbl->Present(p,a,b,c,d)
       
   326 #define IDirect3DDevice9_GetBackBuffer(p,a,b,c,d)	(p)->lpVtbl->GetBackBuffer(p,a,b,c,d)
       
   327 #define IDirect3DDevice9_GetRasterStatus(p,a,b)	(p)->lpVtbl->GetRasterStatus(p,a,b)
       
   328 #define IDirect3DDevice9_SetDialogBoxMode(p,a)	(p)->lpVtbl->SetDialogBoxMode(p,a)
       
   329 #define IDirect3DDevice9_SetGammaRamp(p,a,b,c)	(p)->lpVtbl->SetGammaRamp(p,a,b,c)
       
   330 #define IDirect3DDevice9_GetGammaRamp(p,a,b)	(p)->lpVtbl->GetGammaRamp(p,a,b)
       
   331 #define IDirect3DDevice9_CreateTexture(p,a,b,c,d,e,f,g,h)	(p)->lpVtbl->CreateTexture(p,a,b,c,d,e,f,g,h)
       
   332 #define IDirect3DDevice9_CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i)	(p)->lpVtbl->CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i)
       
   333 #define IDirect3DDevice9_CreateCubeTexture(p,a,b,c,d,e,f,g)	(p)->lpVtbl->CreateCubeTexture(p,a,b,c,d,e,f,g)
       
   334 #define IDirect3DDevice9_CreateVertexBuffer(p,a,b,c,d,e,f)	(p)->lpVtbl->CreateVertexBuffer(p,a,b,c,d,e,f)
       
   335 #define IDirect3DDevice9_CreateIndexBuffer(p,a,b,c,d,e,f)	(p)->lpVtbl->CreateIndexBuffer(p,a,b,c,d,e,f)
       
   336 #define IDirect3DDevice9_CreateRenderTarget(p,a,b,c,d,e,f,g,h)	(p)->lpVtbl->CreateRenderTarget(p,a,b,c,d,e,f,g,h)
       
   337 #define IDirect3DDevice9_CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h)	(p)->lpVtbl->CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h)
       
   338 #define IDirect3DDevice9_UpdateSurface(p,a,b,c,d)	(p)->lpVtbl->UpdateSurface(p,a,b,c,d)
       
   339 #define IDirect3DDevice9_UpdateTexture(p,a,b)	(p)->lpVtbl->UpdateTexture(p,a,b)
       
   340 #define IDirect3DDevice9_GetRenderTargetData(p,a,b)	(p)->lpVtbl->GetRenderTargetData(p,a,b)
       
   341 #define IDirect3DDevice9_GetFrontBufferData(p,a,b)	(p)->lpVtbl->GetFrontBufferData(p,a,b)
       
   342 #define IDirect3DDevice9_StretchRect(p,a,b,c,d,e)	(p)->lpVtbl->StretchRect(p,a,b,c,d,e)
       
   343 #define IDirect3DDevice9_ColorFill(p,a,b,c)	(p)->lpVtbl->ColorFill(p,a,b,c)
       
   344 #define IDirect3DDevice9_CreateOffscreenPlainSurface(p,a,b,c,d,e,f)	(p)->lpVtbl->CreateOffscreenPlainSurface(p,a,b,c,d,e,f)
       
   345 #define IDirect3DDevice9_SetRenderTarget(p,a,b)	(p)->lpVtbl->SetRenderTarget(p,a,b)
       
   346 #define IDirect3DDevice9_GetRenderTarget(p,a,b)	(p)->lpVtbl->GetRenderTarget(p,a,b)
       
   347 #define IDirect3DDevice9_SetDepthStencilSurface(p,a)	(p)->lpVtbl->SetDepthStencilSurface(p,a)
       
   348 #define IDirect3DDevice9_GetDepthStencilSurface(p,a)	(p)->lpVtbl->GetDepthStencilSurface(p,a)
       
   349 #define IDirect3DDevice9_BeginScene(p)	(p)->lpVtbl->BeginScene(p)
       
   350 #define IDirect3DDevice9_EndScene(p)	(p)->lpVtbl->EndScene(p)
       
   351 #define IDirect3DDevice9_Clear(p,a,b,c,d,e,f)	(p)->lpVtbl->Clear(p,a,b,c,d,e,f)
       
   352 #define IDirect3DDevice9_SetTransform(p,a,b)	(p)->lpVtbl->SetTransform(p,a,b)
       
   353 #define IDirect3DDevice9_GetTransform(p,a,b)	(p)->lpVtbl->GetTransform(p,a,b)
       
   354 #define IDirect3DDevice9_MultiplyTransform(p,a,b)	(p)->lpVtbl->MultiplyTransform(p,a,b)
       
   355 #define IDirect3DDevice9_SetViewport(p,a)	(p)->lpVtbl->SetViewport(p,a)
       
   356 #define IDirect3DDevice9_GetViewport(p,a)	(p)->lpVtbl->GetViewport(p,a)
       
   357 #define IDirect3DDevice9_SetMaterial(p,a)	(p)->lpVtbl->SetMaterial(p,a)
       
   358 #define IDirect3DDevice9_GetMaterial(p,a)	(p)->lpVtbl->GetMaterial(p,a)
       
   359 #define IDirect3DDevice9_SetLight(p,a,b)	(p)->lpVtbl->SetLight(p,a,b)
       
   360 #define IDirect3DDevice9_GetLight(p,a,b)	(p)->lpVtbl->GetLight(p,a,b)
       
   361 #define IDirect3DDevice9_LightEnable(p,a,b)	(p)->lpVtbl->LightEnable(p,a,b)
       
   362 #define IDirect3DDevice9_GetLightEnable(p,a,b)	(p)->lpVtbl->GetLightEnable(p,a,b)
       
   363 #define IDirect3DDevice9_SetClipPlane(p,a,b)	(p)->lpVtbl->SetClipPlane(p,a,b)
       
   364 #define IDirect3DDevice9_GetClipPlane(p,a,b)	(p)->lpVtbl->GetClipPlane(p,a,b)
       
   365 #define IDirect3DDevice9_SetRenderState(p,a,b)	(p)->lpVtbl->SetRenderState(p,a,b)
       
   366 #define IDirect3DDevice9_GetRenderState(p,a,b)	(p)->lpVtbl->GetRenderState(p,a,b)
       
   367 #define IDirect3DDevice9_CreateStateBlock(p,a,b)	(p)->lpVtbl->CreateStateBlock(p,a,b)
       
   368 #define IDirect3DDevice9_BeginStateBlock(p)	(p)->lpVtbl->BeginStateBlock(p)
       
   369 #define IDirect3DDevice9_EndStateBlock(p,a)	(p)->lpVtbl->EndStateBlock(p,a)
       
   370 #define IDirect3DDevice9_SetClipStatus(p,a)	(p)->lpVtbl->SetClipStatus(p,a)
       
   371 #define IDirect3DDevice9_GetClipStatus(p,a)	(p)->lpVtbl->GetClipStatus(p,a)
       
   372 #define IDirect3DDevice9_GetTexture(p,a,b)	(p)->lpVtbl->GetTexture(p,a,b)
       
   373 #define IDirect3DDevice9_SetTexture(p,a,b)	(p)->lpVtbl->SetTexture(p,a,b)
       
   374 #define IDirect3DDevice9_GetTextureStageState(p,a,b,c)	(p)->lpVtbl->GetTextureStageState(p,a,b,c)
       
   375 #define IDirect3DDevice9_SetTextureStageState(p,a,b,c)	(p)->lpVtbl->SetTextureStageState(p,a,b,c)
       
   376 #define IDirect3DDevice9_GetSamplerState(p,a,b,c)	(p)->lpVtbl->GetSamplerState(p,a,b,c)
       
   377 #define IDirect3DDevice9_SetSamplerState(p,a,b,c)	(p)->lpVtbl->SetSamplerState(p,a,b,c)
       
   378 #define IDirect3DDevice9_ValidateDevice(p,a)	(p)->lpVtbl->ValidateDevice(p,a)
       
   379 #define IDirect3DDevice9_SetPaletteEntries(p,a,b)	(p)->lpVtbl->SetPaletteEntries(p,a,b)
       
   380 #define IDirect3DDevice9_GetPaletteEntries(p,a,b)	(p)->lpVtbl->GetPaletteEntries(p,a,b)
       
   381 #define IDirect3DDevice9_SetCurrentTexturePalette(p,a)	(p)->lpVtbl->SetCurrentTexturePalette(p,a)
       
   382 #define IDirect3DDevice9_GetCurrentTexturePalette(p,a)	(p)->lpVtbl->GetCurrentTexturePalette(p,a)
       
   383 #define IDirect3DDevice9_SetScissorRect(p,a)	(p)->lpVtbl->SetScissorRect(p,a)
       
   384 #define IDirect3DDevice9_GetScissorRect(p,a)	(p)->lpVtbl->GetScissorRect(p,a)
       
   385 #define IDirect3DDevice9_SetSoftwareVertexProcessing(p,a)	(p)->lpVtbl->SetSoftwareVertexProcessing(p,a)
       
   386 #define IDirect3DDevice9_GetSoftwareVertexProcessing(p)	(p)->lpVtbl->GetSoftwareVertexProcessing(p)
       
   387 #define IDirect3DDevice9_SetNPatchMode(p,a)	(p)->lpVtbl->SetNPatchMode(p,a)
       
   388 #define IDirect3DDevice9_GetNPatchMode(p)	(p)->lpVtbl->GetNPatchMode(p)
       
   389 #define IDirect3DDevice9_DrawPrimitive(p,a,b,c)	(p)->lpVtbl->DrawPrimitive(p,a,b,c)
       
   390 #define IDirect3DDevice9_DrawIndexedPrimitive(p,a,b,c,d,e,f)	(p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f)
       
   391 #define IDirect3DDevice9_DrawPrimitiveUP(p,a,b,c,d)	(p)->lpVtbl->DrawPrimitiveUP(p,a,b,c,d)
       
   392 #define IDirect3DDevice9_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h)	(p)->lpVtbl->DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h)
       
   393 #define IDirect3DDevice9_ProcessVertices(p,a,b,c,d,e,f)	(p)->lpVtbl->ProcessVertices(p,a,b,c,d,e,f)
       
   394 #define IDirect3DDevice9_CreateVertexDeclaration(p,a,b)	(p)->lpVtbl->CreateVertexDeclaration(p,a,b)
       
   395 #define IDirect3DDevice9_SetVertexDeclaration(p,a)	(p)->lpVtbl->SetVertexDeclaration(p,a)
       
   396 #define IDirect3DDevice9_GetVertexDeclaration(p,a)	(p)->lpVtbl->GetVertexDeclaration(p,a)
       
   397 #define IDirect3DDevice9_SetFVF(p,a)	(p)->lpVtbl->SetFVF(p,a)
       
   398 #define IDirect3DDevice9_GetFVF(p,a)	(p)->lpVtbl->GetFVF(p,a)
       
   399 #define IDirect3DDevice9_CreateVertexShader(p,a,b)	(p)->lpVtbl->CreateVertexShader(p,a,b)
       
   400 #define IDirect3DDevice9_SetVertexShader(p,a)	(p)->lpVtbl->SetVertexShader(p,a)
       
   401 #define IDirect3DDevice9_GetVertexShader(p,a)	(p)->lpVtbl->GetVertexShader(p,a)
       
   402 #define IDirect3DDevice9_SetVertexShaderConstantF(p,a,b,c)	(p)->lpVtbl->SetVertexShaderConstantF(p,a,b,c)
       
   403 #define IDirect3DDevice9_GetVertexShaderConstantF(p,a,b,c)	(p)->lpVtbl->GetVertexShaderConstantF(p,a,b,c)
       
   404 #define IDirect3DDevice9_SetVertexShaderConstantI(p,a,b,c)	(p)->lpVtbl->SetVertexShaderConstantI(p,a,b,c)
       
   405 #define IDirect3DDevice9_GetVertexShaderConstantI(p,a,b,c)	(p)->lpVtbl->GetVertexShaderConstantI(p,a,b,c)
       
   406 #define IDirect3DDevice9_SetVertexShaderConstantB(p,a,b,c)	(p)->lpVtbl->SetVertexShaderConstantB(p,a,b,c)
       
   407 #define IDirect3DDevice9_GetVertexShaderConstantB(p,a,b,c)	(p)->lpVtbl->GetVertexShaderConstantB(p,a,b,c)
       
   408 #define IDirect3DDevice9_SetStreamSource(p,a,b,c,d)	(p)->lpVtbl->SetStreamSource(p,a,b,c,d)
       
   409 #define IDirect3DDevice9_GetStreamSource(p,a,b,c,d)	(p)->lpVtbl->GetStreamSource(p,a,b,c,d)
       
   410 #define IDirect3DDevice9_SetStreamSourceFreq(p,a,b)	(p)->lpVtbl->SetStreamSourceFreq(p,a,b)
       
   411 #define IDirect3DDevice9_GetStreamSourceFreq(p,a,b)	(p)->lpVtbl->GetStreamSourceFreq(p,a,b)
       
   412 #define IDirect3DDevice9_SetIndices(p,a)	(p)->lpVtbl->SetIndices(p,a)
       
   413 #define IDirect3DDevice9_GetIndices(p,a)	(p)->lpVtbl->GetIndices(p,a)
       
   414 #define IDirect3DDevice9_CreatePixelShader(p,a,b)	(p)->lpVtbl->CreatePixelShader(p,a,b)
       
   415 #define IDirect3DDevice9_SetPixelShader(p,a)	(p)->lpVtbl->SetPixelShader(p,a)
       
   416 #define IDirect3DDevice9_GetPixelShader(p,a)	(p)->lpVtbl->GetPixelShader(p,a)
       
   417 #define IDirect3DDevice9_SetPixelShaderConstantF(p,a,b,c)	(p)->lpVtbl->SetPixelShaderConstantF(p,a,b,c)
       
   418 #define IDirect3DDevice9_GetPixelShaderConstantF(p,a,b,c)	(p)->lpVtbl->GetPixelShaderConstantF(p,a,b,c)
       
   419 #define IDirect3DDevice9_SetPixelShaderConstantI(p,a,b,c)	(p)->lpVtbl->SetPixelShaderConstantI(p,a,b,c)
       
   420 #define IDirect3DDevice9_GetPixelShaderConstantI(p,a,b,c)	(p)->lpVtbl->GetPixelShaderConstantI(p,a,b,c)
       
   421 #define IDirect3DDevice9_SetPixelShaderConstantB(p,a,b,c)	(p)->lpVtbl->SetPixelShaderConstantB(p,a,b,c)
       
   422 #define IDirect3DDevice9_GetPixelShaderConstantB(p,a,b,c)	(p)->lpVtbl->GetPixelShaderConstantB(p,a,b,c)
       
   423 #define IDirect3DDevice9_DrawRectPatch(p,a,b,c)	(p)->lpVtbl->DrawRectPatch(p,a,b,c)
       
   424 #define IDirect3DDevice9_DrawTriPatch(p,a,b,c)	(p)->lpVtbl->DrawTriPatch(p,a,b,c)
       
   425 #define IDirect3DDevice9_DeletePatch(p,a)	(p)->lpVtbl->DeletePatch(p,a)
       
   426 #define IDirect3DDevice9_CreateQuery(p,a,b)	(p)->lpVtbl->CreateQuery(p,a,b)
       
   427 #else
       
   428 #define IDirect3DDevice9_QueryInterface(p,a,b)	(p)->QueryInterface(a,b)
       
   429 #define IDirect3DDevice9_AddRef(p)	(p)->AddRef()
       
   430 #define IDirect3DDevice9_Release(p)	(p)->Release()
       
   431 #define IDirect3DDevice9_TestCooperativeLevel(p)	(p)->TestCooperativeLevel()
       
   432 #define IDirect3DDevice9_GetAvailableTextureMem(p)	(p)->GetAvailableTextureMem()
       
   433 #define IDirect3DDevice9_EvictManagedResources(p)	(p)->EvictManagedResources()
       
   434 #define IDirect3DDevice9_GetDirect3D(p,a)	(p)->GetDirect3D(a)
       
   435 #define IDirect3DDevice9_GetDeviceCaps(p,a)	(p)->GetDeviceCaps(a)
       
   436 #define IDirect3DDevice9_GetDisplayMode(p,a,b)	(p)->GetDisplayMode(a,b)
       
   437 #define IDirect3DDevice9_GetCreationParameters(p,a)	(p)->GetCreationParameters(a)
       
   438 #define IDirect3DDevice9_SetCursorProperties(p,a,b,c)	(p)->SetCursorProperties(a,b,c)
       
   439 #define IDirect3DDevice9_SetCursorPosition(p,a,b,c)	(p)->SetCursorPosition(a,b,c)
       
   440 #define IDirect3DDevice9_ShowCursor(p,a)	(p)->ShowCursor(a)
       
   441 #define IDirect3DDevice9_CreateAdditionalSwapChain(p,a,b)	(p)->CreateAdditionalSwapChain(a,b)
       
   442 #define IDirect3DDevice9_GetSwapChain(p,a,b)	(p)->GetSwapChain(a,b)
       
   443 #define IDirect3DDevice9_GetNumberOfSwapChains(p)	(p)->GetNumberOfSwapChains()
       
   444 #define IDirect3DDevice9_Reset(p,a)	(p)->Reset(a)
       
   445 #define IDirect3DDevice9_Present(p,a,b,c,d)	(p)->Present(a,b,c,d)
       
   446 #define IDirect3DDevice9_GetBackBuffer(p,a,b,c,d)	(p)->GetBackBuffer(a,b,c,d)
       
   447 #define IDirect3DDevice9_GetRasterStatus(p,a,b)	(p)->GetRasterStatus(a,b)
       
   448 #define IDirect3DDevice9_SetDialogBoxMode(p,a)	(p)->SetDialogBoxMode(a)
       
   449 #define IDirect3DDevice9_SetGammaRamp(p,a,b,c)	(p)->SetGammaRamp(a,b,c)
       
   450 #define IDirect3DDevice9_GetGammaRamp(p,a,b)	(p)->GetGammaRamp(a,b)
       
   451 #define IDirect3DDevice9_CreateTexture(p,a,b,c,d,e,f,g,h)	(p)->CreateTexture(a,b,c,d,e,f,g,h)
       
   452 #define IDirect3DDevice9_CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i)	(p)->CreateVolumeTexture(a,b,c,d,e,f,g,h,i)
       
   453 #define IDirect3DDevice9_CreateCubeTexture(p,a,b,c,d,e,f,g)	(p)->CreateCubeTexture(a,b,c,d,e,f,g)
       
   454 #define IDirect3DDevice9_CreateVertexBuffer(p,a,b,c,d,e,f)	(p)->CreateVertexBuffer(a,b,c,d,e,f)
       
   455 #define IDirect3DDevice9_CreateIndexBuffer(p,a,b,c,d,e,f)	(p)->CreateIndexBuffer(a,b,c,d,e,f)
       
   456 #define IDirect3DDevice9_CreateRenderTarget(p,a,b,c,d,e,f,g,h)	(p)->CreateRenderTarget(a,b,c,d,e,f,g,h)
       
   457 #define IDirect3DDevice9_CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h)	(p)->CreateDepthStencilSurface(a,b,c,d,e,f,g,h)
       
   458 #define IDirect3DDevice9_UpdateSurface(p,a,b,c,d)	(p)->UpdateSurface(a,b,c,d)
       
   459 #define IDirect3DDevice9_UpdateTexture(p,a,b)	(p)->UpdateTexture(a,b)
       
   460 #define IDirect3DDevice9_GetRenderTargetData(p,a,b)	(p)->GetRenderTargetData(a,b)
       
   461 #define IDirect3DDevice9_GetFrontBufferData(p,a,b)	(p)->GetFrontBufferData(a,b)
       
   462 #define IDirect3DDevice9_StretchRect(p,a,b,c,d,e)	(p)->StretchRect(a,b,c,d,e)
       
   463 #define IDirect3DDevice9_ColorFill(p,a,b,c)	(p)->ColorFill(a,b,c)
       
   464 #define IDirect3DDevice9_CreateOffscreenPlainSurface(p,a,b,c,d,e,f)	(p)->CreateOffscreenPlainSurface(a,b,c,d,e,f)
       
   465 #define IDirect3DDevice9_SetRenderTarget(p,a,b)	(p)->SetRenderTarget(a,b)
       
   466 #define IDirect3DDevice9_GetRenderTarget(p,a,b)	(p)->GetRenderTarget(a,b)
       
   467 #define IDirect3DDevice9_SetDepthStencilSurface(p,a)	(p)->SetDepthStencilSurface(a)
       
   468 #define IDirect3DDevice9_GetDepthStencilSurface(p,a)	(p)->GetDepthStencilSurface(a)
       
   469 #define IDirect3DDevice9_BeginScene(p)	(p)->BeginScene()
       
   470 #define IDirect3DDevice9_EndScene(p)	(p)->EndScene()
       
   471 #define IDirect3DDevice9_Clear(p,a,b,c,d,e,f)	(p)->Clear(a,b,c,d,e,f)
       
   472 #define IDirect3DDevice9_SetTransform(p,a,b)	(p)->SetTransform(a,b)
       
   473 #define IDirect3DDevice9_GetTransform(p,a,b)	(p)->GetTransform(a,b)
       
   474 #define IDirect3DDevice9_MultiplyTransform(p,a,b)	(p)->MultiplyTransform(a,b)
       
   475 #define IDirect3DDevice9_SetViewport(p,a)	(p)->SetViewport(a)
       
   476 #define IDirect3DDevice9_GetViewport(p,a)	(p)->GetViewport(a)
       
   477 #define IDirect3DDevice9_SetMaterial(p,a)	(p)->SetMaterial(a)
       
   478 #define IDirect3DDevice9_GetMaterial(p,a)	(p)->GetMaterial(a)
       
   479 #define IDirect3DDevice9_SetLight(p,a,b)	(p)->SetLight(a,b)
       
   480 #define IDirect3DDevice9_GetLight(p,a,b)	(p)->GetLight(a,b)
       
   481 #define IDirect3DDevice9_LightEnable(p,a,b)	(p)->LightEnable(a,b)
       
   482 #define IDirect3DDevice9_GetLightEnable(p,a,b)	(p)->GetLightEnable(a,b)
       
   483 #define IDirect3DDevice9_SetClipPlane(p,a,b)	(p)->SetClipPlane(a,b)
       
   484 #define IDirect3DDevice9_GetClipPlane(p,a,b)	(p)->GetClipPlane(a,b)
       
   485 #define IDirect3DDevice9_SetRenderState(p,a,b)	(p)->SetRenderState(a,b)
       
   486 #define IDirect3DDevice9_GetRenderState(p,a,b)	(p)->GetRenderState(a,b)
       
   487 #define IDirect3DDevice9_CreateStateBlock(p,a,b)	(p)->CreateStateBlock(a,b)
       
   488 #define IDirect3DDevice9_BeginStateBlock(p)	(p)->BeginStateBlock()
       
   489 #define IDirect3DDevice9_EndStateBlock(p,a)	(p)->EndStateBlock(a)
       
   490 #define IDirect3DDevice9_SetClipStatus(p,a)	(p)->SetClipStatus(a)
       
   491 #define IDirect3DDevice9_GetClipStatus(p,a)	(p)->GetClipStatus(a)
       
   492 #define IDirect3DDevice9_GetTexture(p,a,b)	(p)->GetTexture(a,b)
       
   493 #define IDirect3DDevice9_SetTexture(p,a,b)	(p)->SetTexture(a,b)
       
   494 #define IDirect3DDevice9_GetTextureStageState(p,a,b,c)	(p)->GetTextureStageState(a,b,c)
       
   495 #define IDirect3DDevice9_SetTextureStageState(p,a,b,c)	(p)->SetTextureStageState(a,b,c)
       
   496 #define IDirect3DDevice9_GetSamplerState(p,a,b,c)	(p)->GetSamplerState(a,b,c)
       
   497 #define IDirect3DDevice9_SetSamplerState(p,a,b,c)	(p)->SetSamplerState(a,b,c)
       
   498 #define IDirect3DDevice9_ValidateDevice(p,a)	(p)->ValidateDevice(a)
       
   499 #define IDirect3DDevice9_SetPaletteEntries(p,a,b)	(p)->SetPaletteEntries(a,b)
       
   500 #define IDirect3DDevice9_GetPaletteEntries(p,a,b)	(p)->GetPaletteEntries(a,b)
       
   501 #define IDirect3DDevice9_SetCurrentTexturePalette(p,a)	(p)->SetCurrentTexturePalette(a)
       
   502 #define IDirect3DDevice9_GetCurrentTexturePalette(p,a)	(p)->GetCurrentTexturePalette(a)
       
   503 #define IDirect3DDevice9_SetScissorRect(p,a)	(p)->SetScissorRect(a)
       
   504 #define IDirect3DDevice9_GetScissorRect(p,a)	(p)->GetScissorRect(a)
       
   505 #define IDirect3DDevice9_SetSoftwareVertexProcessing(p,a)	(p)->SetSoftwareVertexProcessing(a)
       
   506 #define IDirect3DDevice9_GetSoftwareVertexProcessing(p)	(p)->GetSoftwareVertexProcessing()
       
   507 #define IDirect3DDevice9_SetNPatchMode(p,a)	(p)->SetNPatchMode(a)
       
   508 #define IDirect3DDevice9_GetNPatchMode(p)	(p)->GetNPatchMode()
       
   509 #define IDirect3DDevice9_DrawPrimitive(p,a,b,c)	(p)->DrawPrimitive(a,b,c)
       
   510 #define IDirect3DDevice9_DrawIndexedPrimitive(p,a,b,c,d,e,f)	(p)->DrawIndexedPrimitive(a,b,c,d,e,f)
       
   511 #define IDirect3DDevice9_DrawPrimitiveUP(p,a,b,c,d)	(p)->DrawPrimitiveUP(a,b,c,d)
       
   512 #define IDirect3DDevice9_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h)	(p)->DrawIndexedPrimitiveUP(a,b,c,d,e,f,g,h)
       
   513 #define IDirect3DDevice9_ProcessVertices(p,a,b,c,d,e,f)	(p)->ProcessVertices(a,b,c,d,e,f)
       
   514 #define IDirect3DDevice9_CreateVertexDeclaration(p,a,b)	(p)->CreateVertexDeclaration(a,b)
       
   515 #define IDirect3DDevice9_SetVertexDeclaration(p,a)	(p)->SetVertexDeclaration(a)
       
   516 #define IDirect3DDevice9_GetVertexDeclaration(p,a)	(p)->GetVertexDeclaration(a)
       
   517 #define IDirect3DDevice9_SetFVF(p,a)	(p)->SetFVF(a)
       
   518 #define IDirect3DDevice9_GetFVF(p,a)	(p)->GetFVF(a)
       
   519 #define IDirect3DDevice9_CreateVertexShader(p,a,b)	(p)->CreateVertexShader(a,b)
       
   520 #define IDirect3DDevice9_SetVertexShader(p,a)	(p)->SetVertexShader(a)
       
   521 #define IDirect3DDevice9_GetVertexShader(p,a)	(p)->GetVertexShader(a)
       
   522 #define IDirect3DDevice9_SetVertexShaderConstantF(p,a,b,c)	(p)->SetVertexShaderConstantF(a,b,c)
       
   523 #define IDirect3DDevice9_GetVertexShaderConstantF(p,a,b,c)	(p)->GetVertexShaderConstantF(a,b,c)
       
   524 #define IDirect3DDevice9_SetVertexShaderConstantI(p,a,b,c)	(p)->SetVertexShaderConstantI(a,b,c)
       
   525 #define IDirect3DDevice9_GetVertexShaderConstantI(p,a,b,c)	(p)->GetVertexShaderConstantI(a,b,c)
       
   526 #define IDirect3DDevice9_SetVertexShaderConstantB(p,a,b,c)	(p)->SetVertexShaderConstantB(a,b,c)
       
   527 #define IDirect3DDevice9_GetVertexShaderConstantB(p,a,b,c)	(p)->GetVertexShaderConstantB(a,b,c)
       
   528 #define IDirect3DDevice9_SetStreamSource(p,a,b,c,d)	(p)->SetStreamSource(a,b,c,d)
       
   529 #define IDirect3DDevice9_GetStreamSource(p,a,b,c,d)	(p)->GetStreamSource(a,b,c,d)
       
   530 #define IDirect3DDevice9_SetStreamSourceFreq(p,a,b)	(p)->SetStreamSourceFreq(a,b)
       
   531 #define IDirect3DDevice9_GetStreamSourceFreq(p,a,b)	(p)->GetStreamSourceFreq(a,b)
       
   532 #define IDirect3DDevice9_SetIndices(p,a)	(p)->SetIndices(a)
       
   533 #define IDirect3DDevice9_GetIndices(p,a)	(p)->GetIndices(a)
       
   534 #define IDirect3DDevice9_CreatePixelShader(p,a,b)	(p)->CreatePixelShader(a,b)
       
   535 #define IDirect3DDevice9_SetPixelShader(p,a)	(p)->SetPixelShader(a)
       
   536 #define IDirect3DDevice9_GetPixelShader(p,a)	(p)->GetPixelShader(a)
       
   537 #define IDirect3DDevice9_SetPixelShaderConstantF(p,a,b,c)	(p)->SetPixelShaderConstantF(a,b,c)
       
   538 #define IDirect3DDevice9_GetPixelShaderConstantF(p,a,b,c)	(p)->GetPixelShaderConstantF(a,b,c)
       
   539 #define IDirect3DDevice9_SetPixelShaderConstantI(p,a,b,c)	(p)->SetPixelShaderConstantI(a,b,c)
       
   540 #define IDirect3DDevice9_GetPixelShaderConstantI(p,a,b,c)	(p)->GetPixelShaderConstantI(a,b,c)
       
   541 #define IDirect3DDevice9_SetPixelShaderConstantB(p,a,b,c)	(p)->SetPixelShaderConstantB(a,b,c)
       
   542 #define IDirect3DDevice9_GetPixelShaderConstantB(p,a,b,c)	(p)->GetPixelShaderConstantB(a,b,c)
       
   543 #define IDirect3DDevice9_DrawRectPatch(p,a,b,c)	(p)->DrawRectPatch(a,b,c)
       
   544 #define IDirect3DDevice9_DrawTriPatch(p,a,b,c)	(p)->DrawTriPatch(a,b,c)
       
   545 #define IDirect3DDevice9_DeletePatch(p,a)	(p)->DeletePatch(a)
       
   546 #define IDirect3DDevice9_CreateQuery(p,a,b)	(p)->CreateQuery(a,b)
       
   547 #endif
       
   548 
       
   549 #undef INTERFACE
       
   550 #define INTERFACE IDirect3DVolume9
       
   551 DECLARE_INTERFACE_(IDirect3DVolume9,IUnknown)
       
   552 {
       
   553 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
   554 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
   555 	STDMETHOD_(ULONG,Release)(THIS) PURE;
       
   556 	STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9**) PURE;
       
   557 	STDMETHOD(SetPrivateData)(THIS_ REFGUID,CONST void*,DWORD,DWORD) PURE;
       
   558 	STDMETHOD(GetPrivateData)(THIS_ REFGUID,void*,DWORD*) PURE;
       
   559 	STDMETHOD(FreePrivateData)(THIS_ REFGUID) PURE;
       
   560 	STDMETHOD(GetContainer)(THIS_ REFIID,void**) PURE;
       
   561 	STDMETHOD(GetDesc)(THIS_ D3DVOLUME_DESC*) PURE;
       
   562 	STDMETHOD(LockBox)(THIS_ D3DLOCKED_BOX*,CONST D3DBOX*,DWORD) PURE;
       
   563 	STDMETHOD(UnlockBox)(THIS) PURE;
       
   564 };
       
   565 typedef struct IDirect3DVolume9 *LPDIRECT3DVOLUME9, *PDIRECT3DVOLUME9;
       
   566 
       
   567 #if !defined(__cplusplus) || defined(CINTERFACE)
       
   568 #define IDirect3DVolume9_QueryInterface(p,a,b)	(p)->lpVtbl->QueryInterface(p,a,b)
       
   569 #define IDirect3DVolume9_AddRef(p)	(p)->lpVtbl->AddRef(p)
       
   570 #define IDirect3DVolume9_Release(p)	(p)->lpVtbl->Release(p)
       
   571 #define IDirect3DVolume9_GetDevice(p,a)	(p)->lpVtbl->GetDevice(p,a)
       
   572 #define IDirect3DVolume9_SetPrivateData(p,a,b,c,d)	(p)->lpVtbl->SetPrivateData(p,a,b,c,d)
       
   573 #define IDirect3DVolume9_GetPrivateData(p,a,b,c)	(p)->lpVtbl->GetPrivateData(p,a,b,c)
       
   574 #define IDirect3DVolume9_FreePrivateData(p,a)	(p)->lpVtbl->FreePrivateData(p,a)
       
   575 #define IDirect3DVolume9_GetContainer(p,a,b)	(p)->lpVtbl->GetContainer(p,a,b)
       
   576 #define IDirect3DVolume9_GetDesc(p,a)	(p)->lpVtbl->GetDesc(p,a)
       
   577 #define IDirect3DVolume9_LockBox(p,a,b,c)	(p)->lpVtbl->LockBox(p,a,b,c)
       
   578 #define IDirect3DVolume9_UnlockBox(p)	(p)->lpVtbl->UnlockBox(p)
       
   579 #else
       
   580 #define IDirect3DVolume9_QueryInterface(p,a,b)	(p)->QueryInterface(a,b)
       
   581 #define IDirect3DVolume9_AddRef(p)	(p)->AddRef()
       
   582 #define IDirect3DVolume9_Release(p)	(p)->Release()
       
   583 #define IDirect3DVolume9_GetDevice(p,a)	(p)->GetDevice(a)
       
   584 #define IDirect3DVolume9_SetPrivateData(p,a,b,c,d)	(p)->SetPrivateData(a,b,c,d)
       
   585 #define IDirect3DVolume9_GetPrivateData(p,a,b,c)	(p)->GetPrivateData(a,b,c)
       
   586 #define IDirect3DVolume9_FreePrivateData(p,a)	(p)->FreePrivateData(a)
       
   587 #define IDirect3DVolume9_GetContainer(p,a,b)	(p)->GetContainer(a,b)
       
   588 #define IDirect3DVolume9_GetDesc(p,a)	(p)->GetDesc(a)
       
   589 #define IDirect3DVolume9_LockBox(p,a,b,c)	(p)->LockBox(a,b,c)
       
   590 #define IDirect3DVolume9_UnlockBox(p)	(p)->UnlockBox()
       
   591 #endif
       
   592 
       
   593 #undef INTERFACE
       
   594 #define INTERFACE IDirect3DSwapChain9
       
   595 DECLARE_INTERFACE_(IDirect3DSwapChain9,IUnknown)
       
   596 {
       
   597 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
   598 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
   599 	STDMETHOD_(ULONG,Release)(THIS) PURE;
       
   600 	STDMETHOD(Present)(THIS_ CONST RECT*,CONST RECT*,HWND,CONST RGNDATA*,DWORD) PURE;
       
   601 	STDMETHOD(GetFrontBufferData)(THIS_ IDirect3DSurface9*) PURE;
       
   602 	STDMETHOD(GetBackBuffer)(THIS_ UINT,D3DBACKBUFFER_TYPE,IDirect3DSurface9**) PURE;
       
   603 	STDMETHOD(GetRasterStatus)(THIS_ D3DRASTER_STATUS*) PURE;
       
   604 	STDMETHOD(GetDisplayMode)(THIS_ D3DDISPLAYMODE*) PURE;
       
   605 	STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9**) PURE;
       
   606 	STDMETHOD(GetPresentParameters)(THIS_ D3DPRESENT_PARAMETERS*) PURE;
       
   607 };
       
   608 typedef struct IDirect3DSwapChain9 *LPDIRECT3DSWAPCHAIN9, *PDIRECT3DSWAPCHAIN9;
       
   609 
       
   610 #if !defined(__cplusplus) || defined(CINTERFACE)
       
   611 #define IDirect3DSwapChain9_QueryInterface(p,a,b)	(p)->lpVtbl->QueryInterface(p,a,b)
       
   612 #define IDirect3DSwapChain9_AddRef(p)	(p)->lpVtbl->AddRef(p)
       
   613 #define IDirect3DSwapChain9_Release(p)	(p)->lpVtbl->Release(p)
       
   614 #define IDirect3DSwapChain9_Present(p,a,b,c,d,e)	(p)->lpVtbl->Present(p,a,b,c,d,e)
       
   615 #define IDirect3DSwapChain9_GetFrontBufferData(p,a)	(p)->lpVtbl->GetFrontBufferData(p,a)
       
   616 #define IDirect3DSwapChain9_GetBackBuffer(p,a,b,c)	(p)->lpVtbl->GetBackBuffer(p,a,b,c)
       
   617 #define IDirect3DSwapChain9_GetRasterStatus(p,a)	(p)->lpVtbl->GetRasterStatus(p,a)
       
   618 #define IDirect3DSwapChain9_GetDisplayMode(p,a)	(p)->lpVtbl->GetDisplayMode(p,a)
       
   619 #define IDirect3DSwapChain9_GetDevice(p,a)	(p)->lpVtbl->GetDevice(p,a)
       
   620 #define IDirect3DSwapChain9_GetPresentParameters(p,a)	(p)->lpVtbl->GetPresentParameters(p,a)
       
   621 #else
       
   622 #define IDirect3DSwapChain9_QueryInterface(p,a,b)	(p)->QueryInterface(a,b)
       
   623 #define IDirect3DSwapChain9_AddRef(p)	(p)->AddRef()
       
   624 #define IDirect3DSwapChain9_Release(p)	(p)->Release()
       
   625 #define IDirect3DSwapChain9_Present(p,a,b,c,d,e)	(p)->Present(a,b,c,d,e)
       
   626 #define IDirect3DSwapChain9_GetFrontBufferData(p,a)	(p)->GetFrontBufferData(a)
       
   627 #define IDirect3DSwapChain9_GetBackBuffer(p,a,b,c)	(p)->GetBackBuffer(a,b,c)
       
   628 #define IDirect3DSwapChain9_GetRasterStatus(p,a)	(p)->GetRasterStatus(a)
       
   629 #define IDirect3DSwapChain9_GetDisplayMode(p,a)	(p)->GetDisplayMode(a)
       
   630 #define IDirect3DSwapChain9_GetDevice(p,a)	(p)->GetDevice(a)
       
   631 #define IDirect3DSwapChain9_GetPresentParameters(p,a)	(p)->GetPresentParameters(a)
       
   632 #endif
       
   633 
       
   634 #undef INTERFACE
       
   635 #define INTERFACE IDirect3DResource9
       
   636 DECLARE_INTERFACE_(IDirect3DResource9,IUnknown)
       
   637 {
       
   638 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
   639 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
   640 	STDMETHOD_(ULONG,Release)(THIS) PURE;
       
   641 	STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9**) PURE;
       
   642 	STDMETHOD(SetPrivateData)(THIS_ REFGUID,CONST void*,DWORD,DWORD) PURE;
       
   643 	STDMETHOD(GetPrivateData)(THIS_ REFGUID,void*,DWORD*) PURE;
       
   644 	STDMETHOD(FreePrivateData)(THIS_ REFGUID) PURE;
       
   645 	STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD) PURE;
       
   646 	STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
       
   647 	STDMETHOD_(void,PreLoad)(THIS) PURE;
       
   648 	STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE;
       
   649 };
       
   650 typedef struct IDirect3DResource9 *LPDIRECT3DRESOURCE9, *PDIRECT3DRESOURCE9;
       
   651 
       
   652 #if !defined(__cplusplus) || defined(CINTERFACE)
       
   653 #define IDirect3DResource9_QueryInterface(p,a,b)	(p)->lpVtbl->QueryInterface(p,a,b)
       
   654 #define IDirect3DResource9_AddRef(p)	(p)->lpVtbl->AddRef(p)
       
   655 #define IDirect3DResource9_Release(p)	(p)->lpVtbl->Release(p)
       
   656 #define IDirect3DResource9_GetDevice(p,a)	(p)->lpVtbl->GetDevice(p,a)
       
   657 #define IDirect3DResource9_SetPrivateData(p,a,b,c,d)	(p)->lpVtbl->SetPrivateData(p,a,b,c,d)
       
   658 #define IDirect3DResource9_GetPrivateData(p,a,b,c)	(p)->lpVtbl->GetPrivateData(p,a,b,c)
       
   659 #define IDirect3DResource9_FreePrivateData(p,a)	(p)->lpVtbl->FreePrivateData(p,a)
       
   660 #define IDirect3DResource9_SetPriority(p,a)	(p)->lpVtbl->SetPriority(p,a)
       
   661 #define IDirect3DResource9_GetPriority(p)	(p)->lpVtbl->GetPriority(p)
       
   662 #define IDirect3DResource9_PreLoad(p)	(p)->lpVtbl->PreLoad(p)
       
   663 #define IDirect3DResource9_GetType(p)	(p)->lpVtbl->GetType(p)
       
   664 #else
       
   665 #define IDirect3DResource9_QueryInterface(p,a,b)	(p)->QueryInterface(a,b)
       
   666 #define IDirect3DResource9_AddRef(p)	(p)->AddRef()
       
   667 #define IDirect3DResource9_Release(p)	(p)->Release()
       
   668 #define IDirect3DResource9_GetDevice(p,a)	(p)->GetDevice(a)
       
   669 #define IDirect3DResource9_SetPrivateData(p,a,b,c,d)	(p)->SetPrivateData(a,b,c,d)
       
   670 #define IDirect3DResource9_GetPrivateData(p,a,b,c)	(p)->GetPrivateData(a,b,c)
       
   671 #define IDirect3DResource9_FreePrivateData(p,a)	(p)->FreePrivateData(a)
       
   672 #define IDirect3DResource9_SetPriority(p,a)	(p)->SetPriority(a)
       
   673 #define IDirect3DResource9_GetPriority(p)	(p)->GetPriority()
       
   674 #define IDirect3DResource9_PreLoad(p)	(p)->PreLoad()
       
   675 #define IDirect3DResource9_GetType(p)	(p)->GetType()
       
   676 #endif
       
   677 
       
   678 #undef INTERFACE
       
   679 #define INTERFACE IDirect3DSurface9
       
   680 DECLARE_INTERFACE_(IDirect3DSurface9,IDirect3DResource9)
       
   681 {
       
   682 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
   683 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
   684 	STDMETHOD_(ULONG,Release)(THIS) PURE;
       
   685 	STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9**) PURE;
       
   686 	STDMETHOD(SetPrivateData)(THIS_ REFGUID,CONST void*,DWORD,DWORD) PURE;
       
   687 	STDMETHOD(GetPrivateData)(THIS_ REFGUID,void*,DWORD*) PURE;
       
   688 	STDMETHOD(FreePrivateData)(THIS_ REFGUID) PURE;
       
   689 	STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD) PURE;
       
   690 	STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
       
   691 	STDMETHOD_(void,PreLoad)(THIS) PURE;
       
   692 	STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE;
       
   693 	STDMETHOD(GetContainer)(THIS_ REFIID,void**) PURE;
       
   694 	STDMETHOD(GetDesc)(THIS_ D3DSURFACE_DESC*) PURE;
       
   695 	STDMETHOD(LockRect)(THIS_ D3DLOCKED_RECT*,CONST RECT*,DWORD) PURE;
       
   696 	STDMETHOD(UnlockRect)(THIS) PURE;
       
   697 	STDMETHOD(GetDC)(THIS_ HDC*) PURE;
       
   698 	STDMETHOD(ReleaseDC)(THIS_ HDC) PURE;
       
   699 };
       
   700 typedef struct IDirect3DSurface9 *LPDIRECT3DSURFACE9, *PDIRECT3DSURFACE9;
       
   701 
       
   702 #if !defined(__cplusplus) || defined(CINTERFACE)
       
   703 #define IDirect3DSurface9_QueryInterface(p,a,b)	(p)->lpVtbl->QueryInterface(p,a,b)
       
   704 #define IDirect3DSurface9_AddRef(p)	(p)->lpVtbl->AddRef(p)
       
   705 #define IDirect3DSurface9_Release(p)	(p)->lpVtbl->Release(p)
       
   706 #define IDirect3DSurface9_GetDevice(p,a)	(p)->lpVtbl->GetDevice(p,a)
       
   707 #define IDirect3DSurface9_SetPrivateData(p,a,b,c,d)	(p)->lpVtbl->SetPrivateData(p,a,b,c,d)
       
   708 #define IDirect3DSurface9_GetPrivateData(p,a,b,c)	(p)->lpVtbl->GetPrivateData(p,a,b,c)
       
   709 #define IDirect3DSurface9_FreePrivateData(p,a)	(p)->lpVtbl->FreePrivateData(p,a)
       
   710 #define IDirect3DSurface9_SetPriority(p,a)	(p)->lpVtbl->SetPriority(p,a)
       
   711 #define IDirect3DSurface9_GetPriority(p)	(p)->lpVtbl->GetPriority(p)
       
   712 #define IDirect3DSurface9_PreLoad(p)	(p)->lpVtbl->PreLoad(p)
       
   713 #define IDirect3DSurface9_GetType(p)	(p)->lpVtbl->GetType(p)
       
   714 #define IDirect3DSurface9_GetContainer(p,a,b)	(p)->lpVtbl->GetContainer(p,a,b)
       
   715 #define IDirect3DSurface9_GetDesc(p,a)	(p)->lpVtbl->GetDesc(p,a)
       
   716 #define IDirect3DSurface9_LockRect(p,a,b,c)	(p)->lpVtbl->LockRect(p,a,b,c)
       
   717 #define IDirect3DSurface9_UnlockRect(p)	(p)->lpVtbl->UnlockRect(p)
       
   718 #define IDirect3DSurface9_GetDC(p,a)	(p)->lpVtbl->GetDC(p,a)
       
   719 #define IDirect3DSurface9_ReleaseDC(p,a)	(p)->lpVtbl->ReleaseDC(p,a)
       
   720 #else
       
   721 #define IDirect3DSurface9_QueryInterface(p,a,b)	(p)->QueryInterface(a,b)
       
   722 #define IDirect3DSurface9_AddRef(p)	(p)->AddRef()
       
   723 #define IDirect3DSurface9_Release(p)	(p)->Release()
       
   724 #define IDirect3DSurface9_GetDevice(p,a)	(p)->GetDevice(a)
       
   725 #define IDirect3DSurface9_SetPrivateData(p,a,b,c,d)	(p)->SetPrivateData(a,b,c,d)
       
   726 #define IDirect3DSurface9_GetPrivateData(p,a,b,c)	(p)->GetPrivateData(a,b,c)
       
   727 #define IDirect3DSurface9_FreePrivateData(p,a)	(p)->FreePrivateData(a)
       
   728 #define IDirect3DSurface9_SetPriority(p,a)	(p)->SetPriority(a)
       
   729 #define IDirect3DSurface9_GetPriority(p)	(p)->GetPriority()
       
   730 #define IDirect3DSurface9_PreLoad(p)	(p)->PreLoad()
       
   731 #define IDirect3DSurface9_GetType(p)	(p)->GetType()
       
   732 #define IDirect3DSurface9_GetContainer(p,a,b)	(p)->GetContainer(a,b)
       
   733 #define IDirect3DSurface9_GetDesc(p,a)	(p)->GetDesc(a)
       
   734 #define IDirect3DSurface9_LockRect(p,a,b,c)	(p)->LockRect(a,b,c)
       
   735 #define IDirect3DSurface9_UnlockRect(p)	(p)->UnlockRect()
       
   736 #define IDirect3DSurface9_GetDC(p,a)	(p)->GetDC(a)
       
   737 #define IDirect3DSurface9_ReleaseDC(p,a)	(p)->ReleaseDC(a)
       
   738 #endif
       
   739 
       
   740 #undef INTERFACE
       
   741 #define INTERFACE IDirect3DVertexBuffer9
       
   742 DECLARE_INTERFACE_(IDirect3DVertexBuffer9,IDirect3DResource9)
       
   743 {
       
   744 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
   745 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
   746 	STDMETHOD_(ULONG,Release)(THIS) PURE;
       
   747 	STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9**) PURE;
       
   748 	STDMETHOD(SetPrivateData)(THIS_ REFGUID,CONST void*,DWORD,DWORD) PURE;
       
   749 	STDMETHOD(GetPrivateData)(THIS_ REFGUID,void*,DWORD*) PURE;
       
   750 	STDMETHOD(FreePrivateData)(THIS_ REFGUID) PURE;
       
   751 	STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD) PURE;
       
   752 	STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
       
   753 	STDMETHOD_(void,PreLoad)(THIS) PURE;
       
   754 	STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE;
       
   755 	STDMETHOD(Lock)(THIS_ UINT,UINT,void**,DWORD) PURE;
       
   756 	STDMETHOD(Unlock)(THIS) PURE;
       
   757 	STDMETHOD(GetDesc)(THIS_ D3DVERTEXBUFFER_DESC*) PURE;
       
   758 };
       
   759 typedef struct IDirect3DVertexBuffer9 *LPDIRECT3DVERTEXBUFFER9, *PDIRECT3DVERTEXBUFFER9;
       
   760 
       
   761 #if !defined(__cplusplus) || defined(CINTERFACE)
       
   762 #define IDirect3DVertexBuffer9_QueryInterface(p,a,b)	(p)->lpVtbl->QueryInterface(p,a,b)
       
   763 #define IDirect3DVertexBuffer9_AddRef(p)	(p)->lpVtbl->AddRef(p)
       
   764 #define IDirect3DVertexBuffer9_Release(p)	(p)->lpVtbl->Release(p)
       
   765 #define IDirect3DVertexBuffer9_GetDevice(p,a)	(p)->lpVtbl->GetDevice(p,a)
       
   766 #define IDirect3DVertexBuffer9_SetPrivateData(p,a,b,c,d)	(p)->lpVtbl->SetPrivateData(p,a,b,c,d)
       
   767 #define IDirect3DVertexBuffer9_GetPrivateData(p,a,b,c)	(p)->lpVtbl->GetPrivateData(p,a,b,c)
       
   768 #define IDirect3DVertexBuffer9_FreePrivateData(p,a)	(p)->lpVtbl->FreePrivateData(p,a)
       
   769 #define IDirect3DVertexBuffer9_SetPriority(p,a)	(p)->lpVtbl->SetPriority(p,a)
       
   770 #define IDirect3DVertexBuffer9_GetPriority(p)	(p)->lpVtbl->GetPriority(p)
       
   771 #define IDirect3DVertexBuffer9_PreLoad(p)	(p)->lpVtbl->PreLoad(p)
       
   772 #define IDirect3DVertexBuffer9_GetType(p)	(p)->lpVtbl->GetType(p)
       
   773 #define IDirect3DVertexBuffer9_Lock(p,a,b,c,d)	(p)->lpVtbl->Lock(p,a,b,c,d)
       
   774 #define IDirect3DVertexBuffer9_Unlock(p)	(p)->lpVtbl->Unlock(p)
       
   775 #define IDirect3DVertexBuffer9_GetDesc(p,a)	(p)->lpVtbl->GetDesc(p,a)
       
   776 #else
       
   777 #define IDirect3DVertexBuffer9_QueryInterface(p,a,b)	(p)->QueryInterface(a,b)
       
   778 #define IDirect3DVertexBuffer9_AddRef(p)	(p)->AddRef()
       
   779 #define IDirect3DVertexBuffer9_Release(p)	(p)->Release()
       
   780 #define IDirect3DVertexBuffer9_GetDevice(p,a)	(p)->GetDevice(a)
       
   781 #define IDirect3DVertexBuffer9_SetPrivateData(p,a,b,c,d)	(p)->SetPrivateData(a,b,c,d)
       
   782 #define IDirect3DVertexBuffer9_GetPrivateData(p,a,b,c)	(p)->GetPrivateData(a,b,c)
       
   783 #define IDirect3DVertexBuffer9_FreePrivateData(p,a)	(p)->FreePrivateData(a)
       
   784 #define IDirect3DVertexBuffer9_SetPriority(p,a)	(p)->SetPriority(a)
       
   785 #define IDirect3DVertexBuffer9_GetPriority(p)	(p)->GetPriority()
       
   786 #define IDirect3DVertexBuffer9_PreLoad(p)	(p)->PreLoad()
       
   787 #define IDirect3DVertexBuffer9_GetType(p)	(p)->GetType()
       
   788 #define IDirect3DVertexBuffer9_Lock(p,a,b,c,d)	(p)->Lock(a,b,c,d)
       
   789 #define IDirect3DVertexBuffer9_Unlock(p)	(p)->Unlock()
       
   790 #define IDirect3DVertexBuffer9_GetDesc(p,a)	(p)->GetDesc(a)
       
   791 #endif
       
   792 
       
   793 #undef INTERFACE
       
   794 #define INTERFACE IDirect3DIndexBuffer9
       
   795 DECLARE_INTERFACE_(IDirect3DIndexBuffer9,IDirect3DResource9)
       
   796 {
       
   797 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
   798 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
   799 	STDMETHOD_(ULONG,Release)(THIS) PURE;
       
   800 	STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9**) PURE;
       
   801 	STDMETHOD(SetPrivateData)(THIS_ REFGUID,CONST void*,DWORD,DWORD) PURE;
       
   802 	STDMETHOD(GetPrivateData)(THIS_ REFGUID,void*,DWORD*) PURE;
       
   803 	STDMETHOD(FreePrivateData)(THIS_ REFGUID) PURE;
       
   804 	STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD) PURE;
       
   805 	STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
       
   806 	STDMETHOD_(void,PreLoad)(THIS) PURE;
       
   807 	STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE;
       
   808 	STDMETHOD(Lock)(THIS_ UINT,UINT,void**,DWORD) PURE;
       
   809 	STDMETHOD(Unlock)(THIS) PURE;
       
   810 	STDMETHOD(GetDesc)(THIS_ D3DINDEXBUFFER_DESC*) PURE;
       
   811 };
       
   812 typedef struct IDirect3DIndexBuffer9 *LPDIRECT3DINDEXBUFFER9, *PDIRECT3DINDEXBUFFER9;
       
   813 
       
   814 #if !defined(__cplusplus) || defined(CINTERFACE)
       
   815 #define IDirect3DIndexBuffer9_QueryInterface(p,a,b)	(p)->lpVtbl->QueryInterface(p,a,b)
       
   816 #define IDirect3DIndexBuffer9_AddRef(p)	(p)->lpVtbl->AddRef(p)
       
   817 #define IDirect3DIndexBuffer9_Release(p)	(p)->lpVtbl->Release(p)
       
   818 #define IDirect3DIndexBuffer9_GetDevice(p,a)	(p)->lpVtbl->GetDevice(p,a)
       
   819 #define IDirect3DIndexBuffer9_SetPrivateData(p,a,b,c,d)	(p)->lpVtbl->SetPrivateData(p,a,b,c,d)
       
   820 #define IDirect3DIndexBuffer9_GetPrivateData(p,a,b,c)	(p)->lpVtbl->GetPrivateData(p,a,b,c)
       
   821 #define IDirect3DIndexBuffer9_FreePrivateData(p,a)	(p)->lpVtbl->FreePrivateData(p,a)
       
   822 #define IDirect3DIndexBuffer9_SetPriority(p,a)	(p)->lpVtbl->SetPriority(p,a)
       
   823 #define IDirect3DIndexBuffer9_GetPriority(p)	(p)->lpVtbl->GetPriority(p)
       
   824 #define IDirect3DIndexBuffer9_PreLoad(p)	(p)->lpVtbl->PreLoad(p)
       
   825 #define IDirect3DIndexBuffer9_GetType(p)	(p)->lpVtbl->GetType(p)
       
   826 #define IDirect3DIndexBuffer9_Lock(p,a,b,c,d)	(p)->lpVtbl->Lock(p,a,b,c,d)
       
   827 #define IDirect3DIndexBuffer9_Unlock(p)	(p)->lpVtbl->Unlock(p)
       
   828 #define IDirect3DIndexBuffer9_GetDesc(p,a)	(p)->lpVtbl->GetDesc(p,a)
       
   829 #else
       
   830 #define IDirect3DIndexBuffer9_QueryInterface(p,a,b)	(p)->QueryInterface(a,b)
       
   831 #define IDirect3DIndexBuffer9_AddRef(p)	(p)->AddRef()
       
   832 #define IDirect3DIndexBuffer9_Release(p)	(p)->Release()
       
   833 #define IDirect3DIndexBuffer9_GetDevice(p,a)	(p)->GetDevice(a)
       
   834 #define IDirect3DIndexBuffer9_SetPrivateData(p,a,b,c,d)	(p)->SetPrivateData(a,b,c,d)
       
   835 #define IDirect3DIndexBuffer9_GetPrivateData(p,a,b,c)	(p)->GetPrivateData(a,b,c)
       
   836 #define IDirect3DIndexBuffer9_FreePrivateData(p,a)	(p)->FreePrivateData(a)
       
   837 #define IDirect3DIndexBuffer9_SetPriority(p,a)	(p)->SetPriority(a)
       
   838 #define IDirect3DIndexBuffer9_GetPriority(p)	(p)->GetPriority()
       
   839 #define IDirect3DIndexBuffer9_PreLoad(p)	(p)->PreLoad()
       
   840 #define IDirect3DIndexBuffer9_GetType(p)	(p)->GetType()
       
   841 #define IDirect3DIndexBuffer9_Lock(p,a,b,c,d)	(p)->Lock(a,b,c,d)
       
   842 #define IDirect3DIndexBuffer9_Unlock(p)	(p)->Unlock()
       
   843 #define IDirect3DIndexBuffer9_GetDesc(p,a)	(p)->GetDesc(a)
       
   844 #endif
       
   845 
       
   846 #undef INTERFACE
       
   847 #define INTERFACE IDirect3DBaseTexture9
       
   848 DECLARE_INTERFACE_(IDirect3DBaseTexture9,IDirect3DResource9)
       
   849 {
       
   850 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
   851 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
   852 	STDMETHOD_(ULONG,Release)(THIS) PURE;
       
   853 	STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9**) PURE;
       
   854 	STDMETHOD(SetPrivateData)(THIS_ REFGUID,CONST void*,DWORD,DWORD) PURE;
       
   855 	STDMETHOD(GetPrivateData)(THIS_ REFGUID,void*,DWORD*) PURE;
       
   856 	STDMETHOD(FreePrivateData)(THIS_ REFGUID) PURE;
       
   857 	STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD) PURE;
       
   858 	STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
       
   859 	STDMETHOD_(void,PreLoad)(THIS) PURE;
       
   860 	STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE;
       
   861 	STDMETHOD_(DWORD,SetLOD)(THIS_ DWORD) PURE;
       
   862 	STDMETHOD_(DWORD,GetLOD)(THIS) PURE;
       
   863 	STDMETHOD_(DWORD,GetLevelCount)(THIS) PURE;
       
   864 	STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE) PURE;
       
   865 	STDMETHOD_(D3DTEXTUREFILTERTYPE,GetAutoGenFilterType)(THIS) PURE;
       
   866 	STDMETHOD_(void,GenerateMipSubLevels)(THIS) PURE;
       
   867 };
       
   868 typedef struct IDirect3DBaseTexture9 *LPDIRECT3DBASETEXTURE9, *PDIRECT3DBASETEXTURE9;
       
   869 
       
   870 #if !defined(__cplusplus) || defined(CINTERFACE)
       
   871 #define IDirect3DBaseTexture9_QueryInterface(p,a,b)	(p)->lpVtbl->QueryInterface(p,a,b)
       
   872 #define IDirect3DBaseTexture9_AddRef(p)	(p)->lpVtbl->AddRef(p)
       
   873 #define IDirect3DBaseTexture9_Release(p)	(p)->lpVtbl->Release(p)
       
   874 #define IDirect3DBaseTexture9_GetDevice(p,a)	(p)->lpVtbl->GetDevice(p,a)
       
   875 #define IDirect3DBaseTexture9_SetPrivateData(p,a,b,c,d)	(p)->lpVtbl->SetPrivateData(p,a,b,c,d)
       
   876 #define IDirect3DBaseTexture9_GetPrivateData(p,a,b,c)	(p)->lpVtbl->GetPrivateData(p,a,b,c)
       
   877 #define IDirect3DBaseTexture9_FreePrivateData(p,a)	(p)->lpVtbl->FreePrivateData(p,a)
       
   878 #define IDirect3DBaseTexture9_SetPriority(p,a)	(p)->lpVtbl->SetPriority(p,a)
       
   879 #define IDirect3DBaseTexture9_GetPriority(p)	(p)->lpVtbl->GetPriority(p)
       
   880 #define IDirect3DBaseTexture9_PreLoad(p)	(p)->lpVtbl->PreLoad(p)
       
   881 #define IDirect3DBaseTexture9_GetType(p)	(p)->lpVtbl->GetType(p)
       
   882 #define IDirect3DBaseTexture9_SetLOD(p,a)	(p)->lpVtbl->SetLOD(p,a)
       
   883 #define IDirect3DBaseTexture9_GetLOD(p)	(p)->lpVtbl->GetLOD(p)
       
   884 #define IDirect3DBaseTexture9_GetLevelCount(p)	(p)->lpVtbl->GetLevelCount(p)
       
   885 #define IDirect3DBaseTexture9_SetAutoGenFilterType(p,a)	(p)->lpVtbl->SetAutoGenFilterType(p,a)
       
   886 #define IDirect3DBaseTexture9_GetAutoGenFilterType(p)	(p)->lpVtbl->GetAutoGenFilterType(p)
       
   887 #define IDirect3DBaseTexture9_GenerateMipSubLevels(p)	(p)->lpVtbl->GenerateMipSubLevels(p)
       
   888 #else
       
   889 #define IDirect3DBaseTexture9_QueryInterface(p,a,b)	(p)->QueryInterface(a,b)
       
   890 #define IDirect3DBaseTexture9_AddRef(p)	(p)->AddRef()
       
   891 #define IDirect3DBaseTexture9_Release(p)	(p)->Release()
       
   892 #define IDirect3DBaseTexture9_GetDevice(p,a)	(p)->GetDevice(a)
       
   893 #define IDirect3DBaseTexture9_SetPrivateData(p,a,b,c,d)	(p)->SetPrivateData(a,b,c,d)
       
   894 #define IDirect3DBaseTexture9_GetPrivateData(p,a,b,c)	(p)->GetPrivateData(a,b,c)
       
   895 #define IDirect3DBaseTexture9_FreePrivateData(p,a)	(p)->FreePrivateData(a)
       
   896 #define IDirect3DBaseTexture9_SetPriority(p,a)	(p)->SetPriority(a)
       
   897 #define IDirect3DBaseTexture9_GetPriority(p)	(p)->GetPriority()
       
   898 #define IDirect3DBaseTexture9_PreLoad(p)	(p)->PreLoad()
       
   899 #define IDirect3DBaseTexture9_GetType(p)	(p)->GetType()
       
   900 #define IDirect3DBaseTexture9_SetLOD(p,a)	(p)->SetLOD(a)
       
   901 #define IDirect3DBaseTexture9_GetLOD(p)	(p)->GetLOD()
       
   902 #define IDirect3DBaseTexture9_GetLevelCount(p)	(p)->GetLevelCount()
       
   903 #define IDirect3DBaseTexture9_SetAutoGenFilterType(p,a)	(p)->SetAutoGenFilterType(a)
       
   904 #define IDirect3DBaseTexture9_GetAutoGenFilterType(p)	(p)->GetAutoGenFilterType()
       
   905 #define IDirect3DBaseTexture9_GenerateMipSubLevels(p)	(p)->GenerateMipSubLevels()
       
   906 #endif
       
   907 
       
   908 #undef INTERFACE
       
   909 #define INTERFACE IDirect3DCubeTexture9
       
   910 DECLARE_INTERFACE_(IDirect3DCubeTexture9,IDirect3DBaseTexture9)
       
   911 {
       
   912 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
   913 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
   914 	STDMETHOD_(ULONG,Release)(THIS) PURE;
       
   915 	STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9**) PURE;
       
   916 	STDMETHOD(SetPrivateData)(THIS_ REFGUID,CONST void*,DWORD,DWORD) PURE;
       
   917 	STDMETHOD(GetPrivateData)(THIS_ REFGUID,void*,DWORD*) PURE;
       
   918 	STDMETHOD(FreePrivateData)(THIS_ REFGUID) PURE;
       
   919 	STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD) PURE;
       
   920 	STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
       
   921 	STDMETHOD_(void,PreLoad)(THIS) PURE;
       
   922 	STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE;
       
   923 	STDMETHOD_(DWORD,SetLOD)(THIS_ DWORD) PURE;
       
   924 	STDMETHOD_(DWORD,GetLOD)(THIS) PURE;
       
   925 	STDMETHOD_(DWORD,GetLevelCount)(THIS) PURE;
       
   926 	STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE) PURE;
       
   927 	STDMETHOD_(D3DTEXTUREFILTERTYPE,GetAutoGenFilterType)(THIS) PURE;
       
   928 	STDMETHOD_(void,GenerateMipSubLevels)(THIS) PURE;
       
   929 	STDMETHOD(GetLevelDesc)(THIS_ UINT,D3DSURFACE_DESC*) PURE; \
       
   930 	STDMETHOD(GetCubeMapSurface)(THIS_ D3DCUBEMAP_FACES,UINT,IDirect3DSurface9**) PURE; \
       
   931 	STDMETHOD(LockRect)(THIS_ D3DCUBEMAP_FACES,UINT,D3DLOCKED_RECT*,CONST RECT*,DWORD) PURE; \
       
   932 	STDMETHOD(UnlockRect)(THIS_ D3DCUBEMAP_FACES,UINT) PURE; \
       
   933 	STDMETHOD(AddDirtyRect)(THIS_ D3DCUBEMAP_FACES,CONST RECT*) PURE;
       
   934 };
       
   935 typedef struct IDirect3DCubeTexture9 *LPDIRECT3DCUBETEXTURE9, *PDIRECT3DCUBETEXTURE9;
       
   936 
       
   937 #if !defined(__cplusplus) || defined(CINTERFACE)
       
   938 #define IDirect3DCubeTexture9_QueryInterface(p,a,b)	(p)->lpVtbl->QueryInterface(p,a,b)
       
   939 #define IDirect3DCubeTexture9_AddRef(p)	(p)->lpVtbl->AddRef(p)
       
   940 #define IDirect3DCubeTexture9_Release(p)	(p)->lpVtbl->Release(p)
       
   941 #define IDirect3DCubeTexture9_GetDevice(p,a)	(p)->lpVtbl->GetDevice(p,a)
       
   942 #define IDirect3DCubeTexture9_SetPrivateData(p,a,b,c,d)	(p)->lpVtbl->SetPrivateData(p,a,b,c,d)
       
   943 #define IDirect3DCubeTexture9_GetPrivateData(p,a,b,c)	(p)->lpVtbl->GetPrivateData(p,a,b,c)
       
   944 #define IDirect3DCubeTexture9_FreePrivateData(p,a)	(p)->lpVtbl->FreePrivateData(p,a)
       
   945 #define IDirect3DCubeTexture9_SetPriority(p,a)	(p)->lpVtbl->SetPriority(p,a)
       
   946 #define IDirect3DCubeTexture9_GetPriority(p)	(p)->lpVtbl->GetPriority(p)
       
   947 #define IDirect3DCubeTexture9_PreLoad(p)	(p)->lpVtbl->PreLoad(p)
       
   948 #define IDirect3DCubeTexture9_GetType(p)	(p)->lpVtbl->GetType(p)
       
   949 #define IDirect3DCubeTexture9_SetLOD(p,a)	(p)->lpVtbl->SetLOD(p,a)
       
   950 #define IDirect3DCubeTexture9_GetLOD(p)	(p)->lpVtbl->GetLOD(p)
       
   951 #define IDirect3DCubeTexture9_GetLevelCount(p)	(p)->lpVtbl->GetLevelCount(p)
       
   952 #define IDirect3DCubeTexture9_SetAutoGenFilterType(p,a)	(p)->lpVtbl->SetAutoGenFilterType(p,a)
       
   953 #define IDirect3DCubeTexture9_GetAutoGenFilterType(p)	(p)->lpVtbl->GetAutoGenFilterType(p)
       
   954 #define IDirect3DCubeTexture9_GenerateMipSubLevels(p)	(p)->lpVtbl->GenerateMipSubLevels(p)
       
   955 #define IDirect3DCubeTexture9_GetLevelDesc(p,a,b)	(p)->lpVtbl->GetLevelDesc(p,a,b)
       
   956 #define IDirect3DCubeTexture9_GetCubeMapSurface(p,a,b,c)	(p)->lpVtbl->GetCubeMapSurface(p,a,b,c)
       
   957 #define IDirect3DCubeTexture9_LockRect(p,a,b,c,d,e)	(p)->lpVtbl->LockRect(p,a,b,c,d,e)
       
   958 #define IDirect3DCubeTexture9_UnlockRect(p,a,b)	(p)->lpVtbl->UnlockRect(p,a,b)
       
   959 #define IDirect3DCubeTexture9_AddDirtyRect(p,a,b)	(p)->lpVtbl->AddDirtyRect(p,a,b)
       
   960 #else
       
   961 #define IDirect3DCubeTexture9_QueryInterface(p,a,b)	(p)->QueryInterface(a,b)
       
   962 #define IDirect3DCubeTexture9_AddRef(p)	(p)->AddRef()
       
   963 #define IDirect3DCubeTexture9_Release(p)	(p)->Release()
       
   964 #define IDirect3DCubeTexture9_GetDevice(p,a)	(p)->GetDevice(a)
       
   965 #define IDirect3DCubeTexture9_SetPrivateData(p,a,b,c,d)	(p)->SetPrivateData(a,b,c,d)
       
   966 #define IDirect3DCubeTexture9_GetPrivateData(p,a,b,c)	(p)->GetPrivateData(a,b,c)
       
   967 #define IDirect3DCubeTexture9_FreePrivateData(p,a)	(p)->FreePrivateData(a)
       
   968 #define IDirect3DCubeTexture9_SetPriority(p,a)	(p)->SetPriority(a)
       
   969 #define IDirect3DCubeTexture9_GetPriority(p)	(p)->GetPriority()
       
   970 #define IDirect3DCubeTexture9_PreLoad(p)	(p)->PreLoad()
       
   971 #define IDirect3DCubeTexture9_GetType(p)	(p)->GetType()
       
   972 #define IDirect3DCubeTexture9_SetLOD(p,a)	(p)->SetLOD(a)
       
   973 #define IDirect3DCubeTexture9_GetLOD(p)	(p)->GetLOD()
       
   974 #define IDirect3DCubeTexture9_GetLevelCount(p)	(p)->GetLevelCount()
       
   975 #define IDirect3DCubeTexture9_SetAutoGenFilterType(p,a)	(p)->SetAutoGenFilterType(a)
       
   976 #define IDirect3DCubeTexture9_GetAutoGenFilterType(p)	(p)->GetAutoGenFilterType()
       
   977 #define IDirect3DCubeTexture9_GenerateMipSubLevels(p)	(p)->GenerateMipSubLevels()
       
   978 #define IDirect3DCubeTexture9_GetLevelDesc(p,a,b)	(p)->GetLevelDesc(a,b)
       
   979 #define IDirect3DCubeTexture9_GetCubeMapSurface(p,a,b,c)	(p)->GetCubeMapSurface(a,b,c)
       
   980 #define IDirect3DCubeTexture9_LockRect(p,a,b,c,d,e)	(p)->LockRect(a,b,c,d,e)
       
   981 #define IDirect3DCubeTexture9_UnlockRect(p,a,b)	(p)->UnlockRect(a,b)
       
   982 #define IDirect3DCubeTexture9_AddDirtyRect(p,a,b)	(p)->AddDirtyRect(a,b)
       
   983 #endif
       
   984 
       
   985 #undef INTERFACE
       
   986 #define INTERFACE IDirect3DTexture9
       
   987 DECLARE_INTERFACE_(IDirect3DTexture9,IDirect3DBaseTexture9)
       
   988 {
       
   989 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
   990 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
   991 	STDMETHOD_(ULONG,Release)(THIS) PURE;
       
   992 	STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9**) PURE;
       
   993 	STDMETHOD(SetPrivateData)(THIS_ REFGUID,CONST void*,DWORD,DWORD) PURE;
       
   994 	STDMETHOD(GetPrivateData)(THIS_ REFGUID,void*,DWORD*) PURE;
       
   995 	STDMETHOD(FreePrivateData)(THIS_ REFGUID) PURE;
       
   996 	STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD) PURE;
       
   997 	STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
       
   998 	STDMETHOD_(void,PreLoad)(THIS) PURE;
       
   999 	STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE;
       
  1000 	STDMETHOD_(DWORD,SetLOD)(THIS_ DWORD) PURE;
       
  1001 	STDMETHOD_(DWORD,GetLOD)(THIS) PURE;
       
  1002 	STDMETHOD_(DWORD,GetLevelCount)(THIS) PURE;
       
  1003 	STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE) PURE;
       
  1004 	STDMETHOD_(D3DTEXTUREFILTERTYPE,GetAutoGenFilterType)(THIS) PURE;
       
  1005 	STDMETHOD_(void,GenerateMipSubLevels)(THIS) PURE;
       
  1006 	STDMETHOD(GetLevelDesc)(THIS_ UINT,D3DSURFACE_DESC*) PURE;
       
  1007 	STDMETHOD(GetSurfaceLevel)(THIS_ UINT,IDirect3DSurface9**) PURE;
       
  1008 	STDMETHOD(LockRect)(THIS_ UINT,D3DLOCKED_RECT*,CONST RECT*,DWORD) PURE;
       
  1009 	STDMETHOD(UnlockRect)(THIS_ UINT) PURE;
       
  1010 	STDMETHOD(AddDirtyRect)(THIS_ CONST RECT*) PURE;
       
  1011 };
       
  1012 typedef struct IDirect3DTexture9 *LPDIRECT3DTEXTURE9, *PDIRECT3DTEXTURE9;
       
  1013 
       
  1014 #if !defined(__cplusplus) || defined(CINTERFACE)
       
  1015 #define IDirect3DTexture9_QueryInterface(p,a,b)	(p)->lpVtbl->QueryInterface(p,a,b)
       
  1016 #define IDirect3DTexture9_AddRef(p)	(p)->lpVtbl->AddRef(p)
       
  1017 #define IDirect3DTexture9_Release(p)	(p)->lpVtbl->Release(p)
       
  1018 #define IDirect3DTexture9_GetDevice(p,a)	(p)->lpVtbl->GetDevice(p,a)
       
  1019 #define IDirect3DTexture9_SetPrivateData(p,a,b,c,d)	(p)->lpVtbl->SetPrivateData(p,a,b,c,d)
       
  1020 #define IDirect3DTexture9_GetPrivateData(p,a,b,c)	(p)->lpVtbl->GetPrivateData(p,a,b,c)
       
  1021 #define IDirect3DTexture9_FreePrivateData(p,a)	(p)->lpVtbl->FreePrivateData(p,a)
       
  1022 #define IDirect3DTexture9_SetPriority(p,a)	(p)->lpVtbl->SetPriority(p,a)
       
  1023 #define IDirect3DTexture9_GetPriority(p)	(p)->lpVtbl->GetPriority(p)
       
  1024 #define IDirect3DTexture9_PreLoad(p)	(p)->lpVtbl->PreLoad(p)
       
  1025 #define IDirect3DTexture9_GetType(p)	(p)->lpVtbl->GetType(p)
       
  1026 #define IDirect3DTexture9_SetLOD(p,a)	(p)->lpVtbl->SetLOD(p,a)
       
  1027 #define IDirect3DTexture9_GetLOD(p)	(p)->lpVtbl->GetLOD(p)
       
  1028 #define IDirect3DTexture9_GetLevelCount(p)	(p)->lpVtbl->GetLevelCount(p)
       
  1029 #define IDirect3DTexture9_SetAutoGenFilterType(p,a)	(p)->lpVtbl->SetAutoGenFilterType(p,a)
       
  1030 #define IDirect3DTexture9_GetAutoGenFilterType(p)	(p)->lpVtbl->GetAutoGenFilterType(p)
       
  1031 #define IDirect3DTexture9_GenerateMipSubLevels(p)	(p)->lpVtbl->GenerateMipSubLevels(p)
       
  1032 #define IDirect3DTexture9_GetLevelDesc(p,a,b)	(p)->lpVtbl->GetLevelDesc(p,a,b)
       
  1033 #define IDirect3DTexture9_GetSurfaceLevel(p,a,b)	(p)->lpVtbl->GetSurfaceLevel(p,a,b)
       
  1034 #define IDirect3DTexture9_LockRect(p,a,b,c,d)	(p)->lpVtbl->LockRect(p,a,b,c,d)
       
  1035 #define IDirect3DTexture9_UnlockRect(p,a)	(p)->lpVtbl->UnlockRect(p,a)
       
  1036 #define IDirect3DTexture9_AddDirtyRect(p,a)	(p)->lpVtbl->AddDirtyRect(p,a)
       
  1037 #else
       
  1038 #define IDirect3DTexture9_QueryInterface(p,a,b)	(p)->QueryInterface(a,b)
       
  1039 #define IDirect3DTexture9_AddRef(p)	(p)->AddRef()
       
  1040 #define IDirect3DTexture9_Release(p)	(p)->Release()
       
  1041 #define IDirect3DTexture9_GetDevice(p,a)	(p)->GetDevice(a)
       
  1042 #define IDirect3DTexture9_SetPrivateData(p,a,b,c,d)	(p)->SetPrivateData(a,b,c,d)
       
  1043 #define IDirect3DTexture9_GetPrivateData(p,a,b,c)	(p)->GetPrivateData(a,b,c)
       
  1044 #define IDirect3DTexture9_FreePrivateData(p,a)	(p)->FreePrivateData(a)
       
  1045 #define IDirect3DTexture9_SetPriority(p,a)	(p)->SetPriority(a)
       
  1046 #define IDirect3DTexture9_GetPriority(p)	(p)->GetPriority()
       
  1047 #define IDirect3DTexture9_PreLoad(p)	(p)->PreLoad()
       
  1048 #define IDirect3DTexture9_GetType(p)	(p)->GetType()
       
  1049 #define IDirect3DTexture9_SetLOD(p,a)	(p)->SetLOD(a)
       
  1050 #define IDirect3DTexture9_GetLOD(p)	(p)->GetLOD()
       
  1051 #define IDirect3DTexture9_GetLevelCount(p)	(p)->GetLevelCount()
       
  1052 #define IDirect3DTexture9_SetAutoGenFilterType(p,a)	(p)->SetAutoGenFilterType(a)
       
  1053 #define IDirect3DTexture9_GetAutoGenFilterType(p)	(p)->GetAutoGenFilterType()
       
  1054 #define IDirect3DTexture9_GenerateMipSubLevels(p)	(p)->GenerateMipSubLevels()
       
  1055 #define IDirect3DTexture9_GetLevelDesc(p,a,b)	(p)->GetLevelDesc(a,b)
       
  1056 #define IDirect3DTexture9_GetSurfaceLevel(p,a,b)	(p)->GetSurfaceLevel(a,b)
       
  1057 #define IDirect3DTexture9_LockRect(p,a,b,c,d)	(p)->LockRect(a,b,c,d)
       
  1058 #define IDirect3DTexture9_UnlockRect(p,a)	(p)->UnlockRect(a)
       
  1059 #define IDirect3DTexture9_AddDirtyRect(p,a)	(p)->AddDirtyRect(a)
       
  1060 #endif
       
  1061 
       
  1062 #undef INTERFACE
       
  1063 #define INTERFACE IDirect3DVolumeTexture9
       
  1064 DECLARE_INTERFACE_(IDirect3DVolumeTexture9,IDirect3DBaseTexture9)
       
  1065 {
       
  1066 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
  1067 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
  1068 	STDMETHOD_(ULONG,Release)(THIS) PURE;
       
  1069 	STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9**) PURE;
       
  1070 	STDMETHOD(SetPrivateData)(THIS_ REFGUID,CONST void*,DWORD,DWORD) PURE;
       
  1071 	STDMETHOD(GetPrivateData)(THIS_ REFGUID,void*,DWORD*) PURE;
       
  1072 	STDMETHOD(FreePrivateData)(THIS_ REFGUID) PURE;
       
  1073 	STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD) PURE;
       
  1074 	STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
       
  1075 	STDMETHOD_(void,PreLoad)(THIS) PURE;
       
  1076 	STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE;
       
  1077 	STDMETHOD_(DWORD,SetLOD)(THIS_ DWORD) PURE;
       
  1078 	STDMETHOD_(DWORD,GetLOD)(THIS) PURE;
       
  1079 	STDMETHOD_(DWORD,GetLevelCount)(THIS) PURE;
       
  1080 	STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE) PURE;
       
  1081 	STDMETHOD_(D3DTEXTUREFILTERTYPE,GetAutoGenFilterType)(THIS) PURE;
       
  1082 	STDMETHOD_(void,GenerateMipSubLevels)(THIS) PURE;
       
  1083     STDMETHOD(GetLevelDesc)(THIS_ UINT,D3DVOLUME_DESC*) PURE;
       
  1084     STDMETHOD(GetVolumeLevel)(THIS_ UINT,IDirect3DVolume9**) PURE;
       
  1085     STDMETHOD(LockBox)(THIS_ UINT,D3DLOCKED_BOX*,CONST D3DBOX*,DWORD) PURE;
       
  1086     STDMETHOD(UnlockBox)(THIS_ UINT) PURE;
       
  1087     STDMETHOD(AddDirtyBox)(THIS_ CONST D3DBOX*) PURE;
       
  1088 };
       
  1089 typedef struct IDirect3DVolumeTexture9 *LPDIRECT3DVOLUMETEXTURE9, *PDIRECT3DVOLUMETEXTURE9;
       
  1090 
       
  1091 #if !defined(__cplusplus) || defined(CINTERFACE)
       
  1092 #define IDirect3DVolumeTexture9_QueryInterface(p,a,b)	(p)->lpVtbl->QueryInterface(p,a,b)
       
  1093 #define IDirect3DVolumeTexture9_AddRef(p)	(p)->lpVtbl->AddRef(p)
       
  1094 #define IDirect3DVolumeTexture9_Release(p)	(p)->lpVtbl->Release(p)
       
  1095 #define IDirect3DVolumeTexture9_GetDevice(p,a)	(p)->lpVtbl->GetDevice(p,a)
       
  1096 #define IDirect3DVolumeTexture9_SetPrivateData(p,a,b,c,d)	(p)->lpVtbl->SetPrivateData(p,a,b,c,d)
       
  1097 #define IDirect3DVolumeTexture9_GetPrivateData(p,a,b,c)	(p)->lpVtbl->GetPrivateData(p,a,b,c)
       
  1098 #define IDirect3DVolumeTexture9_FreePrivateData(p,a)	(p)->lpVtbl->FreePrivateData(p,a)
       
  1099 #define IDirect3DVolumeTexture9_SetPriority(p,a)	(p)->lpVtbl->SetPriority(p,a)
       
  1100 #define IDirect3DVolumeTexture9_GetPriority(p)	(p)->lpVtbl->GetPriority(p)
       
  1101 #define IDirect3DVolumeTexture9_PreLoad(p)	(p)->lpVtbl->PreLoad(p)
       
  1102 #define IDirect3DVolumeTexture9_GetType(p)	(p)->lpVtbl->GetType(p)
       
  1103 #define IDirect3DVolumeTexture9_SetLOD(p,a)	(p)->lpVtbl->SetLOD(p,a)
       
  1104 #define IDirect3DVolumeTexture9_GetLOD(p)	(p)->lpVtbl->GetLOD(p)
       
  1105 #define IDirect3DVolumeTexture9_GetLevelCount(p)	(p)->lpVtbl->GetLevelCount(p)
       
  1106 #define IDirect3DVolumeTexture9_SetAutoGenFilterType(p,a)	(p)->lpVtbl->SetAutoGenFilterType(p,a)
       
  1107 #define IDirect3DVolumeTexture9_GetAutoGenFilterType(p)	(p)->lpVtbl->GetAutoGenFilterType(p)
       
  1108 #define IDirect3DVolumeTexture9_GenerateMipSubLevels(p)	(p)->lpVtbl->GenerateMipSubLevels(p)
       
  1109 #define IDirect3DVolumeTexture9_GetLevelDesc(p,a,b)	(p)->lpVtbl->GetLevelDesc(p,a,b)
       
  1110 #define IDirect3DVolumeTexture9_GetVolumeLevel(p,a,b)	(p)->lpVtbl->GetVolumeLevel(p,a,b)
       
  1111 #define IDirect3DVolumeTexture9_LockBox(p,a,b,c,d)	(p)->lpVtbl->LockBox(p,a,b,c,d)
       
  1112 #define IDirect3DVolumeTexture9_UnlockBox(p,a)	(p)->lpVtbl->UnlockBox(p,a)
       
  1113 #define IDirect3DVolumeTexture9_AddDirtyBox(p,a)	(p)->lpVtbl->AddDirtyBox(p,a)
       
  1114 #else
       
  1115 #define IDirect3DVolumeTexture9_QueryInterface(p,a,b)	(p)->QueryInterface(a,b)
       
  1116 #define IDirect3DVolumeTexture9_AddRef(p)	(p)->AddRef()
       
  1117 #define IDirect3DVolumeTexture9_Release(p)	(p)->Release()
       
  1118 #define IDirect3DVolumeTexture9_GetDevice(p,a)	(p)->GetDevice(a)
       
  1119 #define IDirect3DVolumeTexture9_SetPrivateData(p,a,b,c,d)	(p)->SetPrivateData(a,b,c,d)
       
  1120 #define IDirect3DVolumeTexture9_GetPrivateData(p,a,b,c)	(p)->GetPrivateData(a,b,c)
       
  1121 #define IDirect3DVolumeTexture9_FreePrivateData(p,a)	(p)->FreePrivateData(a)
       
  1122 #define IDirect3DVolumeTexture9_SetPriority(p,a)	(p)->SetPriority(a)
       
  1123 #define IDirect3DVolumeTexture9_GetPriority(p)	(p)->GetPriority()
       
  1124 #define IDirect3DVolumeTexture9_PreLoad(p)	(p)->PreLoad()
       
  1125 #define IDirect3DVolumeTexture9_GetType(p)	(p)->GetType()
       
  1126 #define IDirect3DVolumeTexture9_SetLOD(p,a)	(p)->SetLOD(a)
       
  1127 #define IDirect3DVolumeTexture9_GetLOD(p)	(p)->GetLOD()
       
  1128 #define IDirect3DVolumeTexture9_GetLevelCount(p)	(p)->GetLevelCount()
       
  1129 #define IDirect3DVolumeTexture9_SetAutoGenFilterType(p,a)	(p)->SetAutoGenFilterType(a)
       
  1130 #define IDirect3DVolumeTexture9_GetAutoGenFilterType(p)	(p)->GetAutoGenFilterType()
       
  1131 #define IDirect3DVolumeTexture9_GenerateMipSubLevels(p)	(p)->GenerateMipSubLevels()
       
  1132 #define IDirect3DVolumeTexture9_GetLevelDesc(p,a,b)	(p)->GetLevelDesc(a,b)
       
  1133 #define IDirect3DVolumeTexture9_GetVolumeLevel(p,a,b)	(p)->GetVolumeLevel(a,b)
       
  1134 #define IDirect3DVolumeTexture9_LockBox(p,a,b,c,d)	(p)->LockBox(a,b,c,d)
       
  1135 #define IDirect3DVolumeTexture9_UnlockBox(p,a)	(p)->UnlockBox(a)
       
  1136 #define IDirect3DVolumeTexture9_AddDirtyBox(p,a)	(p)->AddDirtyBox(a)
       
  1137 #endif
       
  1138 
       
  1139 #undef INTERFACE
       
  1140 #define INTERFACE IDirect3DVertexDeclaration9
       
  1141 DECLARE_INTERFACE_(IDirect3DVertexDeclaration9,IUnknown)
       
  1142 {
       
  1143 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
  1144 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
  1145 	STDMETHOD_(ULONG,Release)(THIS) PURE;
       
  1146 	STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9**) PURE;
       
  1147 	STDMETHOD(GetDeclaration)(THIS_ D3DVERTEXELEMENT9*,UINT*) PURE;
       
  1148 };
       
  1149 typedef struct IDirect3DVertexDeclaration9 *LPDIRECT3DVERTEXDECLARATION9, *PDIRECT3DVERTEXDECLARATION9;
       
  1150 
       
  1151 #if !defined(__cplusplus) || defined(CINTERFACE)
       
  1152 #define IDirect3DVertexDeclaration9_QueryInterface(p,a,b)	(p)->lpVtbl->QueryInterface(p,a,b)
       
  1153 #define IDirect3DVertexDeclaration9_AddRef(p)	(p)->lpVtbl->AddRef(p)
       
  1154 #define IDirect3DVertexDeclaration9_Release(p)	(p)->lpVtbl->Release(p)
       
  1155 #define IDirect3DVertexDeclaration9_GetDevice(p,a)	(p)->lpVtbl->GetDevice(p,a)
       
  1156 #define IDirect3DVertexDeclaration9_GetDeclaration(p,a,b)	(p)->lpVtbl->GetDeclaration(p,a,b)
       
  1157 #else
       
  1158 #define IDirect3DVertexDeclaration9_QueryInterface(p,a,b)	(p)->QueryInterface(a,b)
       
  1159 #define IDirect3DVertexDeclaration9_AddRef(p)	(p)->AddRef()
       
  1160 #define IDirect3DVertexDeclaration9_Release(p)	(p)->Release()
       
  1161 #define IDirect3DVertexDeclaration9_GetDevice(p,a)	(p)->GetDevice(a)
       
  1162 #define IDirect3DVertexDeclaration9_GetDeclaration(p,a,b)	(p)->GetDeclaration(a,b)
       
  1163 #endif
       
  1164 
       
  1165 #undef INTERFACE
       
  1166 #define INTERFACE IDirect3DVertexShader9
       
  1167 DECLARE_INTERFACE_(IDirect3DVertexShader9,IUnknown)
       
  1168 {
       
  1169 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
  1170 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
  1171 	STDMETHOD_(ULONG,Release)(THIS) PURE;
       
  1172 	STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9**) PURE;
       
  1173 	STDMETHOD(GetFunction)(THIS_ void*,UINT*) PURE;
       
  1174 };
       
  1175 typedef struct IDirect3DVertexShader9 *LPDIRECT3DVERTEXSHADER9, *PDIRECT3DVERTEXSHADER9;
       
  1176 
       
  1177 #if !defined(__cplusplus) || defined(CINTERFACE)
       
  1178 #define IDirect3DVertexShader9_QueryInterface(p,a,b)	(p)->lpVtbl->QueryInterface(p,a,b)
       
  1179 #define IDirect3DVertexShader9_AddRef(p)	(p)->lpVtbl->AddRef(p)
       
  1180 #define IDirect3DVertexShader9_Release(p)	(p)->lpVtbl->Release(p)
       
  1181 #define IDirect3DVertexShader9_GetDevice(p,a)	(p)->lpVtbl->GetDevice(p,a)
       
  1182 #define IDirect3DVertexShader9_GetFunction(p,a,b)	(p)->lpVtbl->GetFunction(p,a,b)
       
  1183 #else
       
  1184 #define IDirect3DVertexShader9_QueryInterface(p,a,b)	(p)->QueryInterface(a,b)
       
  1185 #define IDirect3DVertexShader9_AddRef(p)	(p)->AddRef()
       
  1186 #define IDirect3DVertexShader9_Release(p)	(p)->Release()
       
  1187 #define IDirect3DVertexShader9_GetDevice(p,a)	(p)->GetDevice(a)
       
  1188 #define IDirect3DVertexShader9_GetFunction(p,a,b)	(p)->GetFunction(a,b)
       
  1189 #endif
       
  1190 
       
  1191 #undef INTERFACE
       
  1192 #define INTERFACE IDirect3DPixelShader9
       
  1193 DECLARE_INTERFACE_(IDirect3DPixelShader9,IUnknown)
       
  1194 {
       
  1195 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
  1196 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
  1197 	STDMETHOD_(ULONG,Release)(THIS) PURE;
       
  1198 	STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9**) PURE;
       
  1199 	STDMETHOD(GetFunction)(THIS_ void*,UINT*) PURE;
       
  1200 };
       
  1201 typedef struct IDirect3DPixelShader9 *LPDIRECT3DPIXELSHADER9, *PDIRECT3DPIXELSHADER9;
       
  1202 
       
  1203 #if !defined(__cplusplus) || defined(CINTERFACE)
       
  1204 #define IDirect3DPixelShader9_QueryInterface(p,a,b)	(p)->lpVtbl->QueryInterface(p,a,b)
       
  1205 #define IDirect3DPixelShader9_AddRef(p)	(p)->lpVtbl->AddRef(p)
       
  1206 #define IDirect3DPixelShader9_Release(p)	(p)->lpVtbl->Release(p)
       
  1207 #define IDirect3DPixelShader9_GetDevice(p,a)	(p)->lpVtbl->GetDevice(p,a)
       
  1208 #define IDirect3DPixelShader9_GetFunction(p,a,b)	(p)->lpVtbl->GetFunction(p,a,b)
       
  1209 #else
       
  1210 #define IDirect3DPixelShader9_QueryInterface(p,a,b)	(p)->QueryInterface(a,b)
       
  1211 #define IDirect3DPixelShader9_AddRef(p)	(p)->AddRef()
       
  1212 #define IDirect3DPixelShader9_Release(p)	(p)->Release()
       
  1213 #define IDirect3DPixelShader9_GetDevice(p,a)	(p)->GetDevice(a)
       
  1214 #define IDirect3DPixelShader9_GetFunction(p,a,b)	(p)->GetFunction(a,b)
       
  1215 #endif
       
  1216 
       
  1217 #undef INTERFACE
       
  1218 #define INTERFACE IDirect3DStateBlock9
       
  1219 DECLARE_INTERFACE_(IDirect3DStateBlock9,IUnknown)
       
  1220 {
       
  1221 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
  1222 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
  1223 	STDMETHOD_(ULONG,Release)(THIS) PURE;
       
  1224 	STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9**) PURE;
       
  1225 	STDMETHOD(Capture)(THIS) PURE;
       
  1226 	STDMETHOD(Apply)(THIS) PURE;
       
  1227 };
       
  1228 typedef struct IDirect3DStateBlock9 *LPDIRECT3DSTATEBLOCK9, *PDIRECT3DSTATEBLOCK9;
       
  1229 
       
  1230 #if !defined(__cplusplus) || defined(CINTERFACE)
       
  1231 #define IDirect3DStateBlock9_QueryInterface(p,a,b)	(p)->lpVtbl->QueryInterface(p,a,b)
       
  1232 #define IDirect3DStateBlock9_AddRef(p)	(p)->lpVtbl->AddRef(p)
       
  1233 #define IDirect3DStateBlock9_Release(p)	(p)->lpVtbl->Release(p)
       
  1234 #define IDirect3DStateBlock9_GetDevice(p,a)	(p)->lpVtbl->GetDevice(p,a)
       
  1235 #define IDirect3DStateBlock9_Capture(p)	(p)->lpVtbl->Capture(p)
       
  1236 #define IDirect3DStateBlock9_Apply(p)	(p)->lpVtbl->Apply(p)
       
  1237 #else
       
  1238 #define IDirect3DStateBlock9_QueryInterface(p,a,b)	(p)->QueryInterface(a,b)
       
  1239 #define IDirect3DStateBlock9_AddRef(p)	(p)->AddRef()
       
  1240 #define IDirect3DStateBlock9_Release(p)	(p)->Release()
       
  1241 #define IDirect3DStateBlock9_GetDevice(p,a)	(p)->GetDevice(a)
       
  1242 #define IDirect3DStateBlock9_Capture(p)	(p)->Capture()
       
  1243 #define IDirect3DStateBlock9_Apply(p)	(p)->Apply()
       
  1244 #endif
       
  1245 
       
  1246 #undef INTERFACE
       
  1247 #define INTERFACE IDirect3DQuery9
       
  1248 DECLARE_INTERFACE_(IDirect3DQuery9,IUnknown)
       
  1249 {
       
  1250 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
  1251 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
  1252 	STDMETHOD_(ULONG,Release)(THIS) PURE;
       
  1253 	STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9**) PURE;
       
  1254 	STDMETHOD_(D3DQUERYTYPE, GetType)(THIS) PURE;
       
  1255 	STDMETHOD_(DWORD, GetDataSize)(THIS) PURE;
       
  1256 	STDMETHOD(Issue)(THIS_ DWORD) PURE;
       
  1257 	STDMETHOD(GetData)(THIS_ void*,DWORD,DWORD) PURE;
       
  1258 };
       
  1259 typedef struct IDirect3DQuery9 *LPDIRECT3DQUERY9, *PDIRECT3DQUERY9;
       
  1260 
       
  1261 #if !defined(__cplusplus) || defined(CINTERFACE)
       
  1262 #define IDirect3DQuery9_QueryInterface(p,a,b)	(p)->lpVtbl->QueryInterface(p,a,b)
       
  1263 #define IDirect3DQuery9_AddRef(p)	(p)->lpVtbl->AddRef(p)
       
  1264 #define IDirect3DQuery9_Release(p)	(p)->lpVtbl->Release(p)
       
  1265 #define IDirect3DQuery9_GetDevice(p,a)	(p)->lpVtbl->GetDevice(p,a)
       
  1266 #define IDirect3DQuery9_GetType(p)	(p)->lpVtbl->GetType(p)
       
  1267 #define IDirect3DQuery9_GetDataSize(p)	(p)->lpVtbl->GetDataSize(p)
       
  1268 #define IDirect3DQuery9_Issue(p,a)	(p)->lpVtbl->Issue(p,a)
       
  1269 #define IDirect3DQuery9_GetData(p,a,b,c)	(p)->lpVtbl->GetData(p,a,b,c)
       
  1270 #else
       
  1271 #define IDirect3DQuery9_QueryInterface(p,a,b)	(p)->QueryInterface(a,b)
       
  1272 #define IDirect3DQuery9_AddRef(p)	(p)->AddRef()
       
  1273 #define IDirect3DQuery9_Release(p)	(p)->Release()
       
  1274 #define IDirect3DQuery9_GetDevice(p,a)	(p)->GetDevice(a)
       
  1275 #define IDirect3DQuery9_GetType(p)	(p)->GetType()
       
  1276 #define IDirect3DQuery9_GetDataSize(p)	(p)->GetDataSize()
       
  1277 #define IDirect3DQuery9_Issue(p,a)	(p)->Issue(a)
       
  1278 #define IDirect3DQuery9_GetData(p,a,b,c)	(p)->GetData(a,b,c)
       
  1279 #endif
       
  1280 
       
  1281 #ifdef __cplusplus
       
  1282 extern "C" IDirect3D9* WINAPI Direct3DCreate9(UINT SDKVersion);
       
  1283 #else
       
  1284 extern IDirect3D9* WINAPI Direct3DCreate9(UINT SDKVersion);
       
  1285 #endif
       
  1286 
       
  1287 #endif
       
  1288 #endif