~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Wine Cross Reference
wine/include/d3d8.h

Version: ~ [ wine-1.0-rc1 ] ~ [ wine-0.9.61 ] ~ [ wine-0.9.60 ] ~ [ wine-0.9.59 ] ~ [ wine-0.9.58 ] ~ [ wine-0.9.57 ] ~ [ wine-0.9.56 ] ~ [ wine-0.9.55 ] ~ [ wine-0.9.54 ] ~ [ wine-0.9.53 ] ~ [ wine-0.9.52 ] ~ [ wine-0.9.51 ] ~ [ wine-0.9.50 ] ~ [ wine-0.9.49 ] ~ [ wine-0.9.48 ] ~ [ wine-0.9.47 ] ~ [ wine-0.9.46 ] ~ [ wine-0.9.45 ] ~ [ wine-0.9.44 ] ~ [ wine-0.9.43 ] ~ [ wine-0.9.42 ] ~ [ wine-0.9.41 ] ~ [ wine-0.9.40 ] ~ [ wine-0.9.39 ] ~ [ wine-0.9.38 ] ~ [ wine-0.9.37 ] ~ [ wine-0.9.36 ] ~ [ wine-0.9.35 ] ~ [ wine-0.9.34 ] ~ [ wine-0.9.33 ] ~ [ wine-0.9.32 ] ~ [ wine-0.9.31 ] ~ [ wine-0.9.30 ] ~ [ wine-0.9.29 ] ~ [ wine-0.9.28 ] ~ [ wine-0.9.27 ] ~ [ wine-0.9.26 ] ~ [ wine-0.9.25 ] ~ [ wine-0.9.24 ] ~ [ wine-0.9.23 ] ~ [ wine-0.9.22 ] ~ [ wine-0.9.21 ] ~ [ wine-0.9.20 ] ~ [ wine-0.9.19 ] ~ [ wine-0.9.18 ] ~ [ wine-0.9.17 ] ~ [ wine-0.9.16 ] ~ [ wine-0.9.15 ] ~ [ wine-0.9.14 ] ~ [ wine-0.9.13 ] ~ [ wine-0.9.12 ] ~ [ wine-0.9.11 ] ~ [ wine-0.9.10 ] ~ [ wine-0.9.9 ] ~ [ wine-0.9.8 ] ~ [ wine-0.9.7 ] ~ [ wine-0.9.6 ] ~ [ wine-0.9.5 ] ~ [ wine-0.9.4 ] ~ [ wine-0.9.3 ] ~ [ wine-0.9.2 ] ~ [ wine-0.9.1 ] ~ [ wine-0.9 ] ~ [ wine20050930 ] ~ [ wine20050830 ] ~ [ wine20050725 ] ~ [ wine20050628 ] ~ [ wine20050524 ] ~ [ wine20050419 ] ~ [ wine20050310 ] ~ [ wine20050211 ] ~ [ wine20050111 ] ~ [ wine20041201 ] ~ [ wine20041019 ] ~ [ wine20040914 ] ~ [ wine20040813 ] ~ [ wine20040716 ] ~ [ wine20040615 ] ~ [ wine20040505 ] ~ [ wine20040408 ] ~ [ wine20040309 ] ~ [ wine20040213 ] ~ [ wine20040121 ] ~ [ wine20031212 ] ~ [ wine20031118 ] ~ [ wine20031016 ] ~ [ wine20030911 ] ~ [ wine20030813 ] ~ [ wine20030709 ] ~ [ wine20030618 ] ~ [ wine20030508 ] ~ [ wine20030408 ] ~ [ wine20030318 ] ~ [ wine20030219 ] ~ [ wine20030115 ] ~ [ wine20021219 ] ~ [ wine20021125 ] ~ [ wine20021031 ] ~ [ wine20021007 ] ~ [ wine20020904 ] ~ [ wine20020804 ] ~ [ wine20020710 ] ~ [ wine20020605 ] ~ [ wine20020509 ] ~ [ wine20020411 ] ~ [ wine20020310 ] ~ [ wine20020228 ] ~ [ wine20011226 ] ~ [ wine20011108 ] ~ [ wine20011004 ] ~ [ wine20010824 ] ~ [ wine20010731 ] ~ [ wine20010629 ] ~ [ wine20010510 ] ~ [ wine20010418 ] ~ [ wine20010326 ] ~ [ wine20010305 ] ~ [ wine20010216 ] ~ [ wine20010112 ] ~ [ wine20001222 ] ~ [ wine20001202 ] ~ [ wine20001026 ] ~ [ wine20001002 ] ~ [ wine20000909 ] ~ [ wine20000821 ] ~ [ wine20000801 ] ~ [ wine20000716 ] ~ [ wine20000326 ] ~ [ wine20000227 ] ~ [ wine20000130 ] ~ [ wine20000109 ] ~

  1 /*
  2  * Copyright (C) 2002 Jason Edmeades
  3  *
  4  * This library is free software; you can redistribute it and/or
  5  * modify it under the terms of the GNU Lesser General Public
  6  * License as published by the Free Software Foundation; either
  7  * version 2.1 of the License, or (at your option) any later version.
  8  *
  9  * This library is distributed in the hope that it will be useful,
 10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 12  * Lesser General Public License for more details.
 13  *
 14  * You should have received a copy of the GNU Lesser General Public
 15  * License along with this library; if not, write to the Free Software
 16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 17  */
 18 
 19 #ifndef __WINE_D3D8_H
 20 #define __WINE_D3D8_H
 21 
 22 #ifndef DIRECT3D_VERSION
 23 #define DIRECT3D_VERSION  0x0800
 24 #endif
 25 
 26 #include <stdlib.h>
 27 
 28 #define COM_NO_WINDOWS_H
 29 #include <objbase.h>
 30 
 31 #ifndef __WINESRC__
 32 # include <windows.h>
 33 #endif
 34 
 35 #include <d3d8types.h>
 36 #include <d3d8caps.h>
 37 
 38 /*****************************************************************************
 39  * Behavior Flags for IDirect3D8::CreateDevice
 40  */
 41 #define D3DCREATE_FPU_PRESERVE                  0x00000002L
 42 #define D3DCREATE_MULTITHREADED                 0x00000004L
 43 #define D3DCREATE_PUREDEVICE                    0x00000010L
 44 #define D3DCREATE_SOFTWARE_VERTEXPROCESSING     0x00000020L
 45 #define D3DCREATE_HARDWARE_VERTEXPROCESSING     0x00000040L
 46 #define D3DCREATE_MIXED_VERTEXPROCESSING        0x00000080L
 47 
 48 /*****************************************************************************
 49  * Flags for SetPrivateData
 50  */
 51 #define D3DSPD_IUNKNOWN                         0x00000001L
 52 
 53 /*****************************************************************************
 54  * #defines and error codes
 55  */
 56 #define D3D_SDK_VERSION              220
 57 #define D3DADAPTER_DEFAULT           0
 58 #define D3DENUM_NO_WHQL_LEVEL        2
 59 
 60 #define _FACD3D  0x876
 61 #define MAKE_D3DHRESULT( code )  MAKE_HRESULT( 1, _FACD3D, code )
 62 
 63 /*
 64  * Direct3D Errors
 65  */
 66 #define D3D_OK                                  S_OK
 67 #define D3DERR_WRONGTEXTUREFORMAT               MAKE_D3DHRESULT(2072)
 68 #define D3DERR_UNSUPPORTEDCOLOROPERATION        MAKE_D3DHRESULT(2073)
 69 #define D3DERR_UNSUPPORTEDCOLORARG              MAKE_D3DHRESULT(2074)
 70 #define D3DERR_UNSUPPORTEDALPHAOPERATION        MAKE_D3DHRESULT(2075)
 71 #define D3DERR_UNSUPPORTEDALPHAARG              MAKE_D3DHRESULT(2076)
 72 #define D3DERR_TOOMANYOPERATIONS                MAKE_D3DHRESULT(2077)
 73 #define D3DERR_CONFLICTINGTEXTUREFILTER         MAKE_D3DHRESULT(2078)
 74 #define D3DERR_UNSUPPORTEDFACTORVALUE           MAKE_D3DHRESULT(2079)
 75 #define D3DERR_CONFLICTINGRENDERSTATE           MAKE_D3DHRESULT(2081)
 76 #define D3DERR_UNSUPPORTEDTEXTUREFILTER         MAKE_D3DHRESULT(2082)
 77 #define D3DERR_CONFLICTINGTEXTUREPALETTE        MAKE_D3DHRESULT(2086)
 78 #define D3DERR_DRIVERINTERNALERROR              MAKE_D3DHRESULT(2087)
 79 
 80 #define D3DERR_NOTFOUND                         MAKE_D3DHRESULT(2150)
 81 #define D3DERR_MOREDATA                         MAKE_D3DHRESULT(2151)
 82 #define D3DERR_DEVICELOST                       MAKE_D3DHRESULT(2152)
 83 #define D3DERR_DEVICENOTRESET                   MAKE_D3DHRESULT(2153)
 84 #define D3DERR_NOTAVAILABLE                     MAKE_D3DHRESULT(2154)
 85 #define D3DERR_OUTOFVIDEOMEMORY                 MAKE_D3DHRESULT(380)
 86 #define D3DERR_INVALIDDEVICE                    MAKE_D3DHRESULT(2155)
 87 #define D3DERR_INVALIDCALL                      MAKE_D3DHRESULT(2156)
 88 #define D3DERR_DRIVERINVALIDCALL                MAKE_D3DHRESULT(2157)
 89 
 90 /*****************************************************************************
 91  * Predeclare the interfaces
 92  */
 93 DEFINE_GUID(IID_IDirect3D8,              0x1DD9E8DA,0x1C77,0x4D40,0xB0,0xCF,0x98,0xFE,0xFD,0xFF,0x95,0x12);
 94 typedef struct IDirect3D8 *LPDIRECT3D8;
 95 
 96 DEFINE_GUID(IID_IDirect3DDevice8,        0x7385E5DF,0x8FE8,0x41D5,0x86,0xB6,0xD7,0xB4,0x85,0x47,0xB6,0xCF);
 97 typedef struct IDirect3DDevice8 *LPDIRECT3DDEVICE8;
 98 
 99 DEFINE_GUID(IID_IDirect3DResource8,      0x1B36BB7B,0x09B7,0x410A,0xB4,0x45,0x7D,0x14,0x30,0xD7,0xB3,0x3F);
100 typedef struct IDirect3DResource8 *LPDIRECT3DRESOURCE8, *PDIRECT3DRESOURCE8;
101 
102 DEFINE_GUID(IID_IDirect3DVertexBuffer8,  0x8AEEEAC7,0x05F9,0x44D4,0xB5,0x91,0x00,0x0B,0x0D,0xF1,0xCB,0x95);
103 typedef struct IDirect3DVertexBuffer8 *LPDIRECT3DVERTEXBUFFER8, *PDIRECT3DVERTEXBUFFER8;
104 
105 DEFINE_GUID(IID_IDirect3DVolume8,        0xBD7349F5,0x14F1,0x42E4,0x9C,0x79,0x97,0x23,0x80,0xDB,0x40,0xC0);
106 typedef struct IDirect3DVolume8 *LPDIRECT3DVOLUME8, *PDIRECT3DVOLUME8;
107 
108 DEFINE_GUID(IID_IDirect3DSwapChain8,     0x928C088B,0x76B9,0x4C6B,0xA5,0x36,0xA5,0x90,0x85,0x38,0x76,0xCD);
109 typedef struct IDirect3DSwapChain8 *LPDIRECT3DSWAPCHAIN8, *PDIRECT3DSWAPCHAIN8;
110 
111 DEFINE_GUID(IID_IDirect3DSurface8,       0xB96EEBCA,0xB326,0x4EA5,0x88,0x2F,0x2F,0xF5,0xBA,0xE0,0x21,0xDD);
112 typedef struct IDirect3DSurface8 *LPDIRECT3DSURFACE8, *PDIRECT3DSURFACE8;
113 
114 DEFINE_GUID(IID_IDirect3DIndexBuffer8,   0x0E689C9A,0x053D,0x44A0,0x9D,0x92,0xDB,0x0E,0x3D,0x75,0x0F,0x86);
115 typedef struct IDirect3DIndexBuffer8 *LPDIRECT3DINDEXBUFFER8, *PDIRECT3DINDEXBUFFER8;
116 
117 DEFINE_GUID(IID_IDirect3DBaseTexture8,   0xB4211CFA,0x51B9,0x4A9F,0xAB,0x78,0xDB,0x99,0xB2,0xBB,0x67,0x8E);
118 typedef struct IDirect3DBaseTexture8 *LPDIRECT3DBASETEXTURE8, *PDIRECT3DBASETEXTURE8;
119 
120 DEFINE_GUID(IID_IDirect3DTexture8,       0xE4CDD575,0x2866,0x4F01,0xB1,0x2E,0x7E,0xEC,0xE1,0xEC,0x93,0x58);
121 typedef struct IDirect3DTexture8 *LPDIRECT3DTEXTURE8, *PDIRECT3DTEXTURE8;
122 
123 DEFINE_GUID(IID_IDirect3DCubeTexture8,   0x3EE5B968,0x2ACA,0x4C34,0x8B,0xB5,0x7E,0x0C,0x3D,0x19,0xB7,0x50);
124 typedef struct IDirect3DCubeTexture8 *LPDIRECT3DCUBETEXTURE8, *PDIRECT3DCUBETEXTURE8;
125 
126 DEFINE_GUID(IID_IDirect3DVolumeTexture8, 0x4B8AAAFA,0x140F,0x42BA,0x91,0x31,0x59,0x7E,0xAF,0xAA,0x2E,0xAD);
127 typedef struct IDirect3DVolumeTexture8 *LPDIRECT3DVOLUMETEXTURE8, *PDIRECT3DVOLUMETEXTURE8;
128 
129 /*****************************************************************************
130  * IDirect3D8 interface
131  */
132 #define INTERFACE IDirect3D8
133 DECLARE_INTERFACE_(IDirect3D8,IUnknown)
134 {
135     /*** IUnknown methods ***/
136     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
137     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
138     STDMETHOD_(ULONG,Release)(THIS) PURE;
139     /*** IDirect3D8 methods ***/
140     STDMETHOD(RegisterSoftwareDevice)(THIS_ void * pInitializeFunction) PURE;
141     STDMETHOD_(UINT,GetAdapterCount             )(THIS) PURE;
142     STDMETHOD(GetAdapterIdentifier)(THIS_ UINT  Adapter, DWORD  Flags, D3DADAPTER_IDENTIFIER8 * pIdentifier) PURE;
143     STDMETHOD_(UINT,GetAdapterModeCount)(THIS_ UINT  Adapter) PURE;
144     STDMETHOD(EnumAdapterModes)(THIS_ UINT  Adapter, UINT  Mode, D3DDISPLAYMODE * pMode) PURE;
145     STDMETHOD(GetAdapterDisplayMode)(THIS_ UINT  Adapter, D3DDISPLAYMODE * pMode) PURE;
146     STDMETHOD(CheckDeviceType)(THIS_ UINT  Adapter, D3DDEVTYPE  CheckType, D3DFORMAT  DisplayFormat, D3DFORMAT  BackBufferFormat, BOOL  Windowed) PURE;
147     STDMETHOD(CheckDeviceFormat)(THIS_ UINT  Adapter, D3DDEVTYPE  DeviceType, D3DFORMAT  AdapterFormat, DWORD  Usage, D3DRESOURCETYPE  RType, D3DFORMAT  CheckFormat) PURE;
148     STDMETHOD(CheckDeviceMultiSampleType)(THIS_ UINT  Adapter, D3DDEVTYPE  DeviceType, D3DFORMAT  SurfaceFormat, BOOL  Windowed, D3DMULTISAMPLE_TYPE  MultiSampleType) PURE;
149     STDMETHOD(CheckDepthStencilMatch)(THIS_ UINT  Adapter, D3DDEVTYPE  DeviceType, D3DFORMAT  AdapterFormat, D3DFORMAT  RenderTargetFormat, D3DFORMAT  DepthStencilFormat) PURE;
150     STDMETHOD(GetDeviceCaps)(THIS_ UINT  Adapter, D3DDEVTYPE  DeviceType, D3DCAPS8 * pCaps) PURE;
151     STDMETHOD_(HMONITOR,GetAdapterMonitor)(THIS_ UINT  Adapter) PURE;
152     STDMETHOD(CreateDevice)(THIS_ UINT  Adapter, D3DDEVTYPE  DeviceType,HWND  hFocusWindow, DWORD  BehaviorFlags, D3DPRESENT_PARAMETERS * pPresentationParameters, struct IDirect3DDevice8 ** ppReturnedDeviceInterface) PURE;
153 };
154 #undef INTERFACE
155 
156 #if !defined(__cplusplus) || defined(CINTERFACE)
157 /*** IUnknown methods ***/
158 #define IDirect3D8_QueryInterface(p,a,b)                    (p)->lpVtbl->QueryInterface(p,a,b)
159 #define IDirect3D8_AddRef(p)                                (p)->lpVtbl->AddRef(p)
160 #define IDirect3D8_Release(p)                               (p)->lpVtbl->Release(p)
161 /*** IDirect3D8 methods ***/
162 #define IDirect3D8_RegisterSoftwareDevice(p,a)              (p)->lpVtbl->RegisterSoftwareDevice(p,a)
163 #define IDirect3D8_GetAdapterCount(p)                       (p)->lpVtbl->GetAdapterCount(p)
164 #define IDirect3D8_GetAdapterIdentifier(p,a,b,c)            (p)->lpVtbl->GetAdapterIdentifier(p,a,b,c)
165 #define IDirect3D8_GetAdapterModeCount(p,a)                 (p)->lpVtbl->GetAdapterModeCount(p,a)
166 #define IDirect3D8_EnumAdapterModes(p,a,b,c)                (p)->lpVtbl->EnumAdapterModes(p,a,b,c)
167 #define IDirect3D8_GetAdapterDisplayMode(p,a,b)             (p)->lpVtbl->GetAdapterDisplayMode(p,a,b)
168 #define IDirect3D8_CheckDeviceType(p,a,b,c,d,e)             (p)->lpVtbl->CheckDeviceType(p,a,b,c,d,e)
169 #define IDirect3D8_CheckDeviceFormat(p,a,b,c,d,e,f)         (p)->lpVtbl->CheckDeviceFormat(p,a,b,c,d,e,f)
170 #define IDirect3D8_CheckDeviceMultiSampleType(p,a,b,c,d,e)  (p)->lpVtbl->CheckDeviceMultiSampleType(p,a,b,c,d,e)
171 #define IDirect3D8_CheckDepthStencilMatch(p,a,b,c,d,e)      (p)->lpVtbl->CheckDepthStencilMatch(p,a,b,c,d,e)
172 #define IDirect3D8_GetDeviceCaps(p,a,b,c)                   (p)->lpVtbl->GetDeviceCaps(p,a,b,c)
173 #define IDirect3D8_GetAdapterMonitor(p,a)                   (p)->lpVtbl->GetAdapterMonitor(p,a)
174 #define IDirect3D8_CreateDevice(p,a,b,c,d,e,f)              (p)->lpVtbl->CreateDevice(p,a,b,c,d,e,f)
175 #else
176 /*** IUnknown methods ***/
177 #define IDirect3D8_QueryInterface(p,a,b)                    (p)->QueryInterface(a,b)
178 #define IDirect3D8_AddRef(p)                                (p)->AddRef()
179 #define IDirect3D8_Release(p)                               (p)->Release()
180 /*** IDirect3D8 methods ***/
181 #define IDirect3D8_RegisterSoftwareDevice(p,a)              (p)->RegisterSoftwareDevice(a)
182 #define IDirect3D8_GetAdapterCount(p)                       (p)->GetAdapterCount()
183 #define IDirect3D8_GetAdapterIdentifier(p,a,b,c)            (p)->GetAdapterIdentifier(a,b,c)
184 #define IDirect3D8_GetAdapterModeCount(p,a)                 (p)->GetAdapterModeCount(a)
185 #define IDirect3D8_EnumAdapterModes(p,a,b,c)                (p)->EnumAdapterModes(a,b,c)
186 #define IDirect3D8_GetAdapterDisplayMode(p,a,b)             (p)->GetAdapterDisplayMode(a,b)
187 #define IDirect3D8_CheckDeviceType(p,a,b,c,d,e)             (p)->CheckDeviceType(a,b,c,d,e)
188 #define IDirect3D8_CheckDeviceFormat(p,a,b,c,d,e,f)         (p)->CheckDeviceFormat(a,b,c,d,e,f)
189 #define IDirect3D8_CheckDeviceMultiSampleType(p,a,b,c,d,e)  (p)->CheckDeviceMultiSampleType(a,b,c,d,e)
190 #define IDirect3D8_CheckDepthStencilMatch(p,a,b,c,d,e)      (p)->CheckDepthStencilMatch(a,b,c,d,e)
191 #define IDirect3D8_GetDeviceCaps(p,a,b,c)                   (p)->GetDeviceCaps(a,b,c)
192 #define IDirect3D8_GetAdapterMonitor(p,a)                   (p)->GetAdapterMonitor(a)
193 #define IDirect3D8_CreateDevice(p,a,b,c,d,e,f)              (p)->CreateDevice(a,b,c,d,e,f)
194 #endif
195 
196 /*****************************************************************************
197  * IDirect3DVolume8 interface
198  */
199 #define INTERFACE IDirect3DVolume8
200 DECLARE_INTERFACE_(IDirect3DVolume8,IUnknown)
201 {
202     /*** IUnknown methods ***/
203     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
204     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
205     STDMETHOD_(ULONG,Release)(THIS) PURE;
206     /*** IDirect3DVolume8 methods ***/
207     STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
208     STDMETHOD(SetPrivateData)(THIS_ REFGUID  refguid,CONST void * pData, DWORD  SizeOfData, DWORD  Flags) PURE;
209     STDMETHOD(GetPrivateData)(THIS_ REFGUID   refguid,void * pData, DWORD * pSizeOfData) PURE;
210     STDMETHOD(FreePrivateData)(THIS_ REFGUID  refguid) PURE;
211     STDMETHOD(GetContainer)(THIS_ REFIID  riid, void ** ppContainer) PURE;
212     STDMETHOD(GetDesc)(THIS_ D3DVOLUME_DESC * pDesc) PURE;
213     STDMETHOD(LockBox)(THIS_ D3DLOCKED_BOX * pLockedVolume,CONST D3DBOX * pBox, DWORD  Flags) PURE;
214     STDMETHOD(UnlockBox)(THIS) PURE;
215 };
216 #undef INTERFACE
217 
218 #if !defined(__cplusplus) || defined(CINTERFACE)
219 /*** IUnknown methods ***/
220 #define IDirect3DVolume8_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
221 #define IDirect3DVolume8_AddRef(p)                    (p)->lpVtbl->AddRef(p)
222 #define IDirect3DVolume8_Release(p)                   (p)->lpVtbl->Release(p)
223 /*** IDirect3DVolume8 methods ***/
224 #define IDirect3DVolume8_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
225 #define IDirect3DVolume8_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
226 #define IDirect3DVolume8_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
227 #define IDirect3DVolume8_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
228 #define IDirect3DVolume8_GetContainer(p,a,b)          (p)->lpVtbl->GetContainer(p,a,b)
229 #define IDirect3DVolume8_GetDesc(p,a)                 (p)->lpVtbl->GetDesc(p,a)
230 #define IDirect3DVolume8_LockBox(p,a,b,c)             (p)->lpVtbl->LockBox(p,a,b,c)
231 #define IDirect3DVolume8_UnlockBox(p)                 (p)->lpVtbl->UnlockBox(p)
232 #else
233 /*** IUnknown methods ***/
234 #define IDirect3DVolume8_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
235 #define IDirect3DVolume8_AddRef(p)                    (p)->AddRef()
236 #define IDirect3DVolume8_Release(p)                   (p)->Release()
237 /*** IDirect3DVolume8 methods ***/
238 #define IDirect3DVolume8_GetDevice(p,a)               (p)->GetDevice(a)
239 #define IDirect3DVolume8_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
240 #define IDirect3DVolume8_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
241 #define IDirect3DVolume8_FreePrivateData(p,a)         (p)->FreePrivateData(a)
242 #define IDirect3DVolume8_GetContainer(p,a,b)          (p)->GetContainer(a,b)
243 #define IDirect3DVolume8_GetDesc(p,a)                 (p)->GetDesc(a)
244 #define IDirect3DVolume8_LockBox(p,a,b,c)             (p)->LockBox(a,b,c)
245 #define IDirect3DVolume8_UnlockBox(p)                 (p)->UnlockBox()
246 #endif
247 
248 /*****************************************************************************
249  * IDirect3DSwapChain8 interface
250  */
251 #define INTERFACE IDirect3DSwapChain8
252 DECLARE_INTERFACE_(IDirect3DSwapChain8,IUnknown)
253 {
254     /*** IUnknown methods ***/
255     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
256     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
257     STDMETHOD_(ULONG,Release)(THIS) PURE;
258     /*** IDirect3DSwapChain8 methods ***/
259     STDMETHOD(Present)(THIS_ CONST RECT * pSourceRect, CONST RECT * pDestRect, HWND  hDestWindowOverride,CONST RGNDATA * pDirtyRegion) PURE;
260     STDMETHOD(GetBackBuffer)(THIS_ UINT  BackBuffer, D3DBACKBUFFER_TYPE  Type, struct IDirect3DSurface8 ** ppBackBuffer) PURE;
261 };
262 #undef INTERFACE
263 
264 #if !defined(__cplusplus) || defined(CINTERFACE)
265 /*** IUnknown methods ***/
266 #define IDirect3DSwapChain8_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
267 #define IDirect3DSwapChain8_AddRef(p)                    (p)->lpVtbl->AddRef(p)
268 #define IDirect3DSwapChain8_Release(p)                   (p)->lpVtbl->Release(p)
269 /*** IDirect3DSwapChain8 methods ***/
270 #define IDirect3DSwapChain8_Present(p,a,b,c)             (p)->lpVtbl->Present(p,a,b,c)
271 #define IDirect3DSwapChain8_GetBackBuffer(p,a,b,c)       (p)->lpVtbl->GetBackBuffer(p,a,b,c)
272 #else
273 /*** IUnknown methods ***/
274 #define IDirect3DSwapChain8_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
275 #define IDirect3DSwapChain8_AddRef(p)                    (p)->AddRef()
276 #define IDirect3DSwapChain8_Release(p)                   (p)->Release()
277 /*** IDirect3DSwapChain8 methods ***/
278 #define IDirect3DSwapChain8_Present(p,a,b,c)             (p)->Present(a,b,c)
279 #define IDirect3DSwapChain8_GetBackBuffer(p,a,b,c)       (p)->GetBackBuffer(a,b,c)
280 #endif
281 
282 /*****************************************************************************
283  * IDirect3DSurface8 interface
284  */
285 #define INTERFACE IDirect3DSurface8
286 DECLARE_INTERFACE_(IDirect3DSurface8,IUnknown)
287 {
288     /*** IUnknown methods ***/
289     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
290     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
291     STDMETHOD_(ULONG,Release)(THIS) PURE;
292     /*** IDirect3DSurface8 methods ***/
293     STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
294     STDMETHOD(SetPrivateData)(THIS_ REFGUID  refguid,CONST void * pData,DWORD  SizeOfData,DWORD  Flags) PURE;
295     STDMETHOD(GetPrivateData)(THIS_ REFGUID  refguid,void * pData,DWORD * pSizeOfData) PURE;
296     STDMETHOD(FreePrivateData)(THIS_ REFGUID  refguid) PURE;
297     STDMETHOD(GetContainer)(THIS_ REFIID  riid, void ** ppContainer) PURE;
298     STDMETHOD(GetDesc)(THIS_ D3DSURFACE_DESC * pDesc) PURE;
299     STDMETHOD(LockRect)(THIS_ D3DLOCKED_RECT * pLockedRect, CONST RECT * pRect,DWORD  Flags) PURE;
300     STDMETHOD(UnlockRect)(THIS) PURE;
301 };
302 #undef INTERFACE
303 
304 #if !defined(__cplusplus) || defined(CINTERFACE)
305 /*** IUnknown methods ***/
306 #define IDirect3DSurface8_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
307 #define IDirect3DSurface8_AddRef(p)                    (p)->lpVtbl->AddRef(p)
308 #define IDirect3DSurface8_Release(p)                   (p)->lpVtbl->Release(p)
309 /*** IDirect3DSurface8 methods ***/
310 #define IDirect3DSurface8_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
311 #define IDirect3DSurface8_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
312 #define IDirect3DSurface8_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
313 #define IDirect3DSurface8_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
314 #define IDirect3DSurface8_GetContainer(p,a,b)          (p)->lpVtbl->GetContainer(p,a,b)
315 #define IDirect3DSurface8_GetDesc(p,a)                 (p)->lpVtbl->GetDesc(p,a)
316 #define IDirect3DSurface8_LockRect(p,a,b,c)            (p)->lpVtbl->LockRect(p,a,b,c)
317 #define IDirect3DSurface8_UnlockRect(p)                (p)->lpVtbl->UnlockRect(p)
318 #else
319 /*** IUnknown methods ***/
320 #define IDirect3DSurface8_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
321 #define IDirect3DSurface8_AddRef(p)                    (p)->AddRef()
322 #define IDirect3DSurface8_Release(p)                   (p)->Release()
323 /*** IDirect3DSurface8 methods ***/
324 #define IDirect3DSurface8_GetDevice(p,a)               (p)->GetDevice(a)
325 #define IDirect3DSurface8_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
326 #define IDirect3DSurface8_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
327 #define IDirect3DSurface8_FreePrivateData(p,a)         (p)->FreePrivateData(a)
328 #define IDirect3DSurface8_GetContainer(p,a,b)          (p)->GetContainer(a,b)
329 #define IDirect3DSurface8_GetDesc(p,a)                 (p)->GetDesc(a)
330 #define IDirect3DSurface8_LockRect(p,a,b,c)            (p)->LockRect(a,b,c)
331 #define IDirect3DSurface8_UnlockRect(p)                (p)->UnlockRect()
332 #endif
333 
334 /*****************************************************************************
335  * IDirect3DResource8 interface
336  */
337 #define INTERFACE IDirect3DResource8
338 DECLARE_INTERFACE_(IDirect3DResource8,IUnknown)
339 {
340     /*** IUnknown methods ***/
341     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
342     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
343     STDMETHOD_(ULONG,Release)(THIS) PURE;
344     /*** IDirect3DResource8 methods ***/
345     STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
346     STDMETHOD(SetPrivateData)(THIS_ REFGUID  refguid, CONST void * pData, DWORD  SizeOfData, DWORD  Flags) PURE;
347     STDMETHOD(GetPrivateData)(THIS_ REFGUID  refguid, void * pData, DWORD * pSizeOfData) PURE;
348     STDMETHOD(FreePrivateData)(THIS_ REFGUID  refguid) PURE;
349     STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD  PriorityNew) PURE;
350     STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
351     STDMETHOD_(void,PreLoad)(THIS) PURE;
352     STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE;
353 };
354 #undef INTERFACE
355 
356 #if !defined(__cplusplus) || defined(CINTERFACE)
357 /*** IUnknown methods ***/
358 #define IDirect3DResource8_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
359 #define IDirect3DResource8_AddRef(p)                    (p)->lpVtbl->AddRef(p)
360 #define IDirect3DResource8_Release(p)                   (p)->lpVtbl->Release(p)
361 /*** IDirect3DResource8 methods ***/
362 #define IDirect3DResource8_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
363 #define IDirect3DResource8_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
364 #define IDirect3DResource8_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
365 #define IDirect3DResource8_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
366 #define IDirect3DResource8_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
367 #define IDirect3DResource8_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
368 #define IDirect3DResource8_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
369 #define IDirect3DResource8_GetType(p)                   (p)->lpVtbl->GetType(p)
370 #else
371 /*** IUnknown methods ***/
372 #define IDirect3DResource8_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
373 #define IDirect3DResource8_AddRef(p)                    (p)->AddRef()
374 #define IDirect3DResource8_Release(p)                   (p)->Release()
375 /*** IDirect3DResource8 methods ***/
376 #define IDirect3DResource8_GetDevice(p,a)               (p)->GetDevice(a)
377 #define IDirect3DResource8_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
378 #define IDirect3DResource8_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
379 #define IDirect3DResource8_FreePrivateData(p,a)         (p)->FreePrivateData(a)
380 #define IDirect3DResource8_SetPriority(p,a)             (p)->SetPriority(a)
381 #define IDirect3DResource8_GetPriority(p)               (p)->GetPriority()
382 #define IDirect3DResource8_PreLoad(p)                   (p)->PreLoad()
383 #define IDirect3DResource8_GetType(p)                   (p)->GetType()
384 #endif
385 
386 /*****************************************************************************
387  * IDirect3DVertexBuffer8 interface
388  */
389 #define INTERFACE IDirect3DVertexBuffer8
390 DECLARE_INTERFACE_(IDirect3DVertexBuffer8,IDirect3DResource8)
391 {
392     /*** IUnknown methods ***/
393     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
394     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
395     STDMETHOD_(ULONG,Release)(THIS) PURE;
396     /*** IDirect3DResource8 methods ***/
397     STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
398     STDMETHOD(SetPrivateData)(THIS_ REFGUID  refguid, CONST void * pData, DWORD  SizeOfData, DWORD  Flags) PURE;
399     STDMETHOD(GetPrivateData)(THIS_ REFGUID  refguid, void * pData, DWORD * pSizeOfData) PURE;
400     STDMETHOD(FreePrivateData)(THIS_ REFGUID  refguid) PURE;
401     STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD  PriorityNew) PURE;
402     STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
403     STDMETHOD_(void,PreLoad)(THIS) PURE;
404     STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE;
405     /*** IDirect3DVertexBuffer8 methods ***/
406     STDMETHOD(Lock)(THIS_ UINT  OffsetToLock, UINT  SizeToLock, BYTE ** ppbData, DWORD  Flags) PURE;
407     STDMETHOD(Unlock)(THIS) PURE;
408     STDMETHOD(GetDesc)(THIS_ D3DVERTEXBUFFER_DESC  * pDesc) PURE;
409 };
410 #undef INTERFACE
411 
412 #if !defined(__cplusplus) || defined(CINTERFACE)
413 /*** IUnknown methods ***/
414 #define IDirect3DVertexBuffer8_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
415 #define IDirect3DVertexBuffer8_AddRef(p)                    (p)->lpVtbl->AddRef(p)
416 #define IDirect3DVertexBuffer8_Release(p)                   (p)->lpVtbl->Release(p)
417 /*** IDirect3DVertexBuffer8 methods: IDirect3DResource8 ***/
418 #define IDirect3DVertexBuffer8_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
419 #define IDirect3DVertexBuffer8_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
420 #define IDirect3DVertexBuffer8_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
421 #define IDirect3DVertexBuffer8_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
422 #define IDirect3DVertexBuffer8_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
423 #define IDirect3DVertexBuffer8_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
424 #define IDirect3DVertexBuffer8_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
425 #define IDirect3DVertexBuffer8_GetType(p)                   (p)->lpVtbl->GetType(p)
426 /*** IDirect3DVertexBuffer8 methods ***/
427 #define IDirect3DVertexBuffer8_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
428 #define IDirect3DVertexBuffer8_Unlock(p)                    (p)->lpVtbl->Unlock(p)
429 #define IDirect3DVertexBuffer8_GetDesc(p,a)                 (p)->lpVtbl->GetDesc(p,a)
430 #else
431 /*** IUnknown methods ***/
432 #define IDirect3DVertexBuffer8_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
433 #define IDirect3DVertexBuffer8_AddRef(p)                    (p)->AddRef()
434 #define IDirect3DVertexBuffer8_Release(p)                   (p)->Release()
435 /*** IDirect3DVertexBuffer8 methods: IDirect3DResource8 ***/
436 #define IDirect3DVertexBuffer8_GetDevice(p,a)               (p)->GetDevice(a)
437 #define IDirect3DVertexBuffer8_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
438 #define IDirect3DVertexBuffer8_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
439 #define IDirect3DVertexBuffer8_FreePrivateData(p,a)         (p)->FreePrivateData(a)
440 #define IDirect3DVertexBuffer8_SetPriority(p,a)             (p)->SetPriority(a)
441 #define IDirect3DVertexBuffer8_GetPriority(p)               (p)->GetPriority()
442 #define IDirect3DVertexBuffer8_PreLoad(p)                   (p)->PreLoad()
443 #define IDirect3DVertexBuffer8_GetType(p)                   (p)->GetType()
444 /*** IDirect3DVertexBuffer8 methods ***/
445 #define IDirect3DVertexBuffer8_Lock(p,a,b,c,d)              (p)->Lock(a,b,c,d)
446 #define IDirect3DVertexBuffer8_Unlock(p)                    (p)->Unlock()
447 #define IDirect3DVertexBuffer8_GetDesc(p,a)                 (p)->GetDesc(a)
448 #endif
449 
450 /*****************************************************************************
451  * IDirect3DIndexBuffer8 interface
452  */
453 #define INTERFACE IDirect3DIndexBuffer8
454 DECLARE_INTERFACE_(IDirect3DIndexBuffer8,IDirect3DResource8)
455 {
456     /*** IUnknown methods ***/
457     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
458     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
459     STDMETHOD_(ULONG,Release)(THIS) PURE;
460     /*** IDirect3DResource8 methods ***/
461     STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
462     STDMETHOD(SetPrivateData)(THIS_ REFGUID  refguid, CONST void * pData, DWORD  SizeOfData, DWORD  Flags) PURE;
463     STDMETHOD(GetPrivateData)(THIS_ REFGUID  refguid, void * pData, DWORD * pSizeOfData) PURE;
464     STDMETHOD(FreePrivateData)(THIS_ REFGUID  refguid) PURE;
465     STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD  PriorityNew) PURE;
466     STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
467     STDMETHOD_(void,PreLoad)(THIS) PURE;
468     STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE;
469     /*** IDirect3DIndexBuffer8 methods ***/
470     STDMETHOD(Lock)(THIS_ UINT  OffsetToLock, UINT  SizeToLock, BYTE ** ppbData, DWORD  Flags) PURE;
471     STDMETHOD(Unlock)(THIS) PURE;
472     STDMETHOD(GetDesc)(THIS_ D3DINDEXBUFFER_DESC * pDesc) PURE;
473 };
474 #undef INTERFACE
475 
476 #if !defined(__cplusplus) || defined(CINTERFACE)
477 /*** IUnknown methods ***/
478 #define IDirect3DIndexBuffer8_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
479 #define IDirect3DIndexBuffer8_AddRef(p)                    (p)->lpVtbl->AddRef(p)
480 #define IDirect3DIndexBuffer8_Release(p)                   (p)->lpVtbl->Release(p)
481 /*** IDirect3DIndexBuffer8 methods: IDirect3DResource8 ***/
482 #define IDirect3DIndexBuffer8_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
483 #define IDirect3DIndexBuffer8_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
484 #define IDirect3DIndexBuffer8_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
485 #define IDirect3DIndexBuffer8_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
486 #define IDirect3DIndexBuffer8_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
487 #define IDirect3DIndexBuffer8_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
488 #define IDirect3DIndexBuffer8_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
489 #define IDirect3DIndexBuffer8_GetType(p)                   (p)->lpVtbl->GetType(p)
490 /*** IDirect3DIndexBuffer8 methods ***/
491 #define IDirect3DIndexBuffer8_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
492 #define IDirect3DIndexBuffer8_Unlock(p)                    (p)->lpVtbl->Unlock(p)
493 #define IDirect3DIndexBuffer8_GetDesc(p,a)                 (p)->lpVtbl->GetDesc(p,a)
494 #else
495 /*** IUnknown methods ***/
496 #define IDirect3DIndexBuffer8_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
497 #define IDirect3DIndexBuffer8_AddRef(p)                    (p)->AddRef()
498 #define IDirect3DIndexBuffer8_Release(p)                   (p)->Release()
499 /*** IDirect3DIndexBuffer8 methods: IDirect3DResource8 ***/
500 #define IDirect3DIndexBuffer8_GetDevice(p,a)               (p)->GetDevice(a)
501 #define IDirect3DIndexBuffer8_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
502 #define IDirect3DIndexBuffer8_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
503 #define IDirect3DIndexBuffer8_FreePrivateData(p,a)         (p)->FreePrivateData(a)
504 #define IDirect3DIndexBuffer8_SetPriority(p,a)             (p)->SetPriority(a)
505 #define IDirect3DIndexBuffer8_GetPriority(p)               (p)->GetPriority()
506 #define IDirect3DIndexBuffer8_PreLoad(p)                   (p)->PreLoad()
507 #define IDirect3DIndexBuffer8_GetType(p)                   (p)->GetType()
508 /*** IDirect3DIndexBuffer8 methods ***/
509 #define IDirect3DIndexBuffer8_Lock(p,a,b,c,d)              (p)->Lock(a,b,c,d)
510 #define IDirect3DIndexBuffer8_Unlock(p)                    (p)->Unlock()
511 #define IDirect3DIndexBuffer8_GetDesc(p,a)                 (p)->GetDesc(a)
512 #endif
513 
514 /*****************************************************************************
515  * IDirect3DBaseTexture8 interface
516  */
517 #define INTERFACE IDirect3DBaseTexture8
518 DECLARE_INTERFACE_(IDirect3DBaseTexture8,IDirect3DResource8)
519 {
520     /*** IUnknown methods ***/
521     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
522     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
523     STDMETHOD_(ULONG,Release)(THIS) PURE;
524     /*** IDirect3DResource8 methods ***/
525     STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
526     STDMETHOD(SetPrivateData)(THIS_ REFGUID  refguid, CONST void * pData, DWORD  SizeOfData, DWORD  Flags) PURE;
527     STDMETHOD(GetPrivateData)(THIS_ REFGUID  refguid, void * pData, DWORD * pSizeOfData) PURE;
528     STDMETHOD(FreePrivateData)(THIS_ REFGUID  refguid) PURE;
529     STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD  PriorityNew) PURE;
530     STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
531     STDMETHOD_(void,PreLoad)(THIS) PURE;
532     STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE;
533     /*** IDirect3DBaseTexture8 methods ***/
534     STDMETHOD_(DWORD,SetLOD)(THIS_ DWORD  LODNew) PURE;
535     STDMETHOD_(DWORD,GetLOD)(THIS) PURE;
536     STDMETHOD_(DWORD,GetLevelCount)(THIS) PURE;
537 };
538 #undef INTERFACE
539 
540 #if !defined(__cplusplus) || defined(CINTERFACE)
541 /*** IUnknown methods ***/
542 #define IDirect3DBaseTexture8_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
543 #define IDirect3DBaseTexture8_AddRef(p)                    (p)->lpVtbl->AddRef(p)
544 #define IDirect3DBaseTexture8_Release(p)                   (p)->lpVtbl->Release(p)
545 /*** IDirect3DBaseTexture8 methods: IDirect3DResource8 ***/
546 #define IDirect3DBaseTexture8_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
547 #define IDirect3DBaseTexture8_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
548 #define IDirect3DBaseTexture8_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
549 #define IDirect3DBaseTexture8_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
550 #define IDirect3DBaseTexture8_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
551 #define IDirect3DBaseTexture8_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
552 #define IDirect3DBaseTexture8_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
553 #define IDirect3DBaseTexture8_GetType(p)                   (p)->lpVtbl->GetType(p)
554 /*** IDirect3DBaseTexture8 methods ***/
555 #define IDirect3DBaseTexture8_SetLOD(p,a)                  (p)->lpVtbl->SetLOD(p,a)
556 #define IDirect3DBaseTexture8_GetLOD(p)                    (p)->lpVtbl->GetLOD(p)
557 #define IDirect3DBaseTexture8_GetLevelCount(p)             (p)->lpVtbl->GetLevelCount(p)
558 #else
559 /*** IUnknown methods ***/
560 #define IDirect3DBaseTexture8_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
561 #define IDirect3DBaseTexture8_AddRef(p)                    (p)->AddRef()
562 #define IDirect3DBaseTexture8_Release(p)                   (p)->Release()
563 /*** IDirect3DBaseTexture8 methods: IDirect3DResource8 ***/
564 #define IDirect3DBaseTexture8_GetDevice(p,a)               (p)->GetDevice(a)
565 #define IDirect3DBaseTexture8_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
566 #define IDirect3DBaseTexture8_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
567 #define IDirect3DBaseTexture8_FreePrivateData(p,a)         (p)->FreePrivateData(a)
568 #define IDirect3DBaseTexture8_SetPriority(p,a)             (p)->SetPriority(a)
569 #define IDirect3DBaseTexture8_GetPriority(p)               (p)->GetPriority()
570 #define IDirect3DBaseTexture8_PreLoad(p)                   (p)->PreLoad()
571 #define IDirect3DBaseTexture8_GetType(p)                   (p)->GetType()
572 /*** IDirect3DBaseTexture8 methods ***/
573 #define IDirect3DBaseTexture8_SetLOD(p,a)                  (p)->SetLOD(a)
574 #define IDirect3DBaseTexture8_GetLOD(p)                    (p)->GetLOD()
575 #define IDirect3DBaseTexture8_GetLevelCount(p)             (p)->GetLevelCount()
576 #endif
577 
578 /*****************************************************************************
579  * IDirect3DCubeTexture8 interface
580  */
581 #define INTERFACE IDirect3DCubeTexture8
582 DECLARE_INTERFACE_(IDirect3DCubeTexture8,IDirect3DBaseTexture8)
583 {
584     /*** IUnknown methods ***/
585     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
586     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
587     STDMETHOD_(ULONG,Release)(THIS) PURE;
588     /*** IDirect3DResource8 methods ***/
589     STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
590     STDMETHOD(SetPrivateData)(THIS_ REFGUID  refguid, CONST void * pData, DWORD  SizeOfData, DWORD  Flags) PURE;
591     STDMETHOD(GetPrivateData)(THIS_ REFGUID  refguid, void * pData, DWORD * pSizeOfData) PURE;
592     STDMETHOD(FreePrivateData)(THIS_ REFGUID  refguid) PURE;
593     STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD  PriorityNew) PURE;
594     STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
595     STDMETHOD_(void,PreLoad)(THIS) PURE;
596     STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE;
597     /*** IDirect3DBaseTexture8 methods ***/
598     STDMETHOD_(DWORD,SetLOD)(THIS_ DWORD  LODNew) PURE;
599     STDMETHOD_(DWORD,GetLOD)(THIS) PURE;
600     STDMETHOD_(DWORD,GetLevelCount)(THIS) PURE;
601     /*** IDirect3DCubeTexture8 methods ***/
602     STDMETHOD(GetLevelDesc)(THIS_ UINT  Level,D3DSURFACE_DESC * pDesc) PURE;
603     STDMETHOD(GetCubeMapSurface)(THIS_ D3DCUBEMAP_FACES  FaceType,UINT  Level,IDirect3DSurface8 ** ppCubeMapSurface) PURE;
604     STDMETHOD(LockRect)(THIS_ D3DCUBEMAP_FACES  FaceType,UINT  Level,D3DLOCKED_RECT * pLockedRect,CONST RECT * pRect,DWORD  Flags) PURE;
605     STDMETHOD(UnlockRect)(THIS_ D3DCUBEMAP_FACES  FaceType,UINT  Level) PURE;
606     STDMETHOD(AddDirtyRect)(THIS_ D3DCUBEMAP_FACES  FaceType,CONST RECT * pDirtyRect) PURE;
607 };
608 #undef INTERFACE
609 
610 #if !defined(__cplusplus) || defined(CINTERFACE)
611 /*** IUnknown methods ***/
612 #define IDirect3DCubeTexture8_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
613 #define IDirect3DCubeTexture8_AddRef(p)                    (p)->lpVtbl->AddRef(p)
614 #define IDirect3DCubeTexture8_Release(p)                   (p)->lpVtbl->Release(p)
615 /*** IDirect3DCubeTexture8 methods: IDirect3DResource8 ***/
616 #define IDirect3DCubeTexture8_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
617