ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

d3d.h
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) the Wine project
00003  *
00004  * This library is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU Lesser General Public
00006  * License as published by the Free Software Foundation; either
00007  * version 2.1 of the License, or (at your option) any later version.
00008  *
00009  * This library is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  * Lesser General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public
00015  * License along with this library; if not, write to the Free Software
00016  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00017  */
00018 
00019 #ifndef __WINE_D3D_H
00020 #define __WINE_D3D_H
00021 
00022 #ifndef DIRECT3D_VERSION
00023 #define DIRECT3D_VERSION         0x0700
00024 #endif
00025 
00026 #if (DIRECT3D_VERSION < 0x0800)
00027 
00028 #include <stdlib.h>
00029 
00030 #define COM_NO_WINDOWS_H
00031 #include <objbase.h>
00032 #include <d3dtypes.h> /* must precede d3dcaps.h */
00033 #include <d3dcaps.h>
00034 
00035 /*****************************************************************************
00036  * Predeclare the interfaces
00037  */
00038 DEFINE_GUID(IID_IDirect3D,              0x3BBA0080,0x2421,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56);
00039 DEFINE_GUID(IID_IDirect3D2,             0x6aae1ec1,0x662a,0x11d0,0x88,0x9d,0x00,0xaa,0x00,0xbb,0xb7,0x6a);
00040 DEFINE_GUID(IID_IDirect3D3,             0xbb223240,0xe72b,0x11d0,0xa9,0xb4,0x00,0xaa,0x00,0xc0,0x99,0x3e);
00041 DEFINE_GUID(IID_IDirect3D7,             0xf5049e77,0x4861,0x11d2,0xa4,0x07,0x00,0xa0,0xc9,0x06,0x29,0xa8);
00042 
00043 DEFINE_GUID(IID_IDirect3DRampDevice,    0xF2086B20,0x259F,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56);
00044 DEFINE_GUID(IID_IDirect3DRGBDevice, 0xA4665C60,0x2673,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56);
00045 DEFINE_GUID(IID_IDirect3DHALDevice, 0x84E63dE0,0x46AA,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E);
00046 DEFINE_GUID(IID_IDirect3DMMXDevice, 0x881949a1,0xd6f3,0x11d0,0x89,0xab,0x00,0xa0,0xc9,0x05,0x41,0x29);
00047 DEFINE_GUID(IID_IDirect3DRefDevice,     0x50936643,0x13e9,0x11d1,0x89,0xaa,0x00,0xa0,0xc9,0x05,0x41,0x29);
00048 DEFINE_GUID(IID_IDirect3DTnLHalDevice,  0xf5049e78,0x4861,0x11d2,0xa4,0x07,0x00,0xa0,0xc9,0x06,0x29,0xa8);
00049 DEFINE_GUID(IID_IDirect3DNullDevice,    0x8767df22,0xbacc,0x11d1,0x89,0x69,0x00,0xa0,0xc9,0x06,0x29,0xa8);
00050 
00051 DEFINE_GUID(IID_IDirect3DDevice,    0x64108800,0x957d,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29);
00052 DEFINE_GUID(IID_IDirect3DDevice2,   0x93281501,0x8CF8,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29);
00053 DEFINE_GUID(IID_IDirect3DDevice3,       0xb0ab3b60,0x33d7,0x11d1,0xa9,0x81,0x00,0xc0,0x4f,0xd7,0xb1,0x74);
00054 DEFINE_GUID(IID_IDirect3DDevice7,       0xf5049e79,0x4861,0x11d2,0xa4,0x07,0x00,0xa0,0xc9,0x06,0x29,0xa8);
00055 
00056 DEFINE_GUID(IID_IDirect3DTexture,   0x2CDCD9E0,0x25A0,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56);
00057 DEFINE_GUID(IID_IDirect3DTexture2,  0x93281502,0x8CF8,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29);
00058 
00059 DEFINE_GUID(IID_IDirect3DLight,     0x4417C142,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E);
00060 
00061 DEFINE_GUID(IID_IDirect3DMaterial,  0x4417C144,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E);
00062 DEFINE_GUID(IID_IDirect3DMaterial2, 0x93281503,0x8CF8,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29);
00063 DEFINE_GUID(IID_IDirect3DMaterial3,     0xca9c46f4,0xd3c5,0x11d1,0xb7,0x5a,0x00,0x60,0x08,0x52,0xb3,0x12);
00064 
00065 DEFINE_GUID(IID_IDirect3DExecuteBuffer, 0x4417C145,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E);
00066 
00067 DEFINE_GUID(IID_IDirect3DViewport,  0x4417C146,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E);
00068 DEFINE_GUID(IID_IDirect3DViewport2, 0x93281500,0x8CF8,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29);
00069 DEFINE_GUID(IID_IDirect3DViewport3,     0xb0ab3b61,0x33d7,0x11d1,0xa9,0x81,0x00,0xc0,0x4f,0xd7,0xb1,0x74);
00070 
00071 DEFINE_GUID(IID_IDirect3DVertexBuffer,  0x7a503555,0x4a83,0x11d1,0xa5,0xdb,0x00,0xa0,0xc9,0x03,0x67,0xf8);
00072 DEFINE_GUID(IID_IDirect3DVertexBuffer7, 0xf5049e7d,0x4861,0x11d2,0xa4,0x07,0x00,0xa0,0xc9,0x06,0x29,0xa8);
00073 
00074 
00075 typedef struct IDirect3D *LPDIRECT3D;
00076 typedef struct IDirect3D2 *LPDIRECT3D2;
00077 typedef struct IDirect3D3 *LPDIRECT3D3;
00078 typedef struct IDirect3D7 *LPDIRECT3D7;
00079 
00080 typedef struct IDirect3DLight *LPDIRECT3DLIGHT;
00081 
00082 typedef struct IDirect3DDevice *LPDIRECT3DDEVICE;
00083 typedef struct IDirect3DDevice2 *LPDIRECT3DDEVICE2;
00084 typedef struct IDirect3DDevice3 *LPDIRECT3DDEVICE3;
00085 typedef struct IDirect3DDevice7 *LPDIRECT3DDEVICE7;
00086 
00087 typedef struct IDirect3DViewport *LPDIRECT3DVIEWPORT;
00088 typedef struct IDirect3DViewport2 *LPDIRECT3DVIEWPORT2;
00089 typedef struct IDirect3DViewport3 *LPDIRECT3DVIEWPORT3;
00090 
00091 typedef struct IDirect3DMaterial *LPDIRECT3DMATERIAL;
00092 typedef struct IDirect3DMaterial2 *LPDIRECT3DMATERIAL2;
00093 typedef struct IDirect3DMaterial3 *LPDIRECT3DMATERIAL3;
00094 
00095 typedef struct IDirect3DTexture *LPDIRECT3DTEXTURE;
00096 typedef struct IDirect3DTexture2 *LPDIRECT3DTEXTURE2;
00097 
00098 typedef struct IDirect3DExecuteBuffer *LPDIRECT3DEXECUTEBUFFER;
00099 
00100 typedef struct IDirect3DVertexBuffer *LPDIRECT3DVERTEXBUFFER;
00101 typedef struct IDirect3DVertexBuffer7 *LPDIRECT3DVERTEXBUFFER7;
00102 
00103 /* ********************************************************************
00104    Error Codes
00105    ******************************************************************** */
00106 #define D3D_OK                          DD_OK
00107 #define D3DERR_BADMAJORVERSION          MAKE_DDHRESULT(700)
00108 #define D3DERR_BADMINORVERSION          MAKE_DDHRESULT(701)
00109 #define D3DERR_INVALID_DEVICE           MAKE_DDHRESULT(705)
00110 #define D3DERR_INITFAILED               MAKE_DDHRESULT(706)
00111 #define D3DERR_DEVICEAGGREGATED         MAKE_DDHRESULT(707)
00112 #define D3DERR_EXECUTE_CREATE_FAILED    MAKE_DDHRESULT(710)
00113 #define D3DERR_EXECUTE_DESTROY_FAILED   MAKE_DDHRESULT(711)
00114 #define D3DERR_EXECUTE_LOCK_FAILED      MAKE_DDHRESULT(712)
00115 #define D3DERR_EXECUTE_UNLOCK_FAILED    MAKE_DDHRESULT(713)
00116 #define D3DERR_EXECUTE_LOCKED           MAKE_DDHRESULT(714)
00117 #define D3DERR_EXECUTE_NOT_LOCKED       MAKE_DDHRESULT(715)
00118 #define D3DERR_EXECUTE_FAILED           MAKE_DDHRESULT(716)
00119 #define D3DERR_EXECUTE_CLIPPED_FAILED   MAKE_DDHRESULT(717)
00120 #define D3DERR_TEXTURE_NO_SUPPORT       MAKE_DDHRESULT(720)
00121 #define D3DERR_TEXTURE_CREATE_FAILED    MAKE_DDHRESULT(721)
00122 #define D3DERR_TEXTURE_DESTROY_FAILED   MAKE_DDHRESULT(722)
00123 #define D3DERR_TEXTURE_LOCK_FAILED      MAKE_DDHRESULT(723)
00124 #define D3DERR_TEXTURE_UNLOCK_FAILED    MAKE_DDHRESULT(724)
00125 #define D3DERR_TEXTURE_LOAD_FAILED      MAKE_DDHRESULT(725)
00126 #define D3DERR_TEXTURE_SWAP_FAILED      MAKE_DDHRESULT(726)
00127 #define D3DERR_TEXTURE_LOCKED           MAKE_DDHRESULT(727)
00128 #define D3DERR_TEXTURE_NOT_LOCKED       MAKE_DDHRESULT(728)
00129 #define D3DERR_TEXTURE_GETSURF_FAILED   MAKE_DDHRESULT(729)
00130 #define D3DERR_MATRIX_CREATE_FAILED     MAKE_DDHRESULT(730)
00131 #define D3DERR_MATRIX_DESTROY_FAILED    MAKE_DDHRESULT(731)
00132 #define D3DERR_MATRIX_SETDATA_FAILED    MAKE_DDHRESULT(732)
00133 #define D3DERR_MATRIX_GETDATA_FAILED    MAKE_DDHRESULT(733)
00134 #define D3DERR_SETVIEWPORTDATA_FAILED   MAKE_DDHRESULT(734)
00135 #define D3DERR_INVALIDCURRENTVIEWPORT   MAKE_DDHRESULT(735)
00136 #define D3DERR_INVALIDPRIMITIVETYPE     MAKE_DDHRESULT(736)
00137 #define D3DERR_INVALIDVERTEXTYPE        MAKE_DDHRESULT(737)
00138 #define D3DERR_TEXTURE_BADSIZE          MAKE_DDHRESULT(738)
00139 #define D3DERR_INVALIDRAMPTEXTURE       MAKE_DDHRESULT(739)
00140 #define D3DERR_MATERIAL_CREATE_FAILED   MAKE_DDHRESULT(740)
00141 #define D3DERR_MATERIAL_DESTROY_FAILED  MAKE_DDHRESULT(741)
00142 #define D3DERR_MATERIAL_SETDATA_FAILED  MAKE_DDHRESULT(742)
00143 #define D3DERR_MATERIAL_GETDATA_FAILED  MAKE_DDHRESULT(743)
00144 #define D3DERR_INVALIDPALETTE           MAKE_DDHRESULT(744)
00145 #define D3DERR_ZBUFF_NEEDS_SYSTEMMEMORY MAKE_DDHRESULT(745)
00146 #define D3DERR_ZBUFF_NEEDS_VIDEOMEMORY  MAKE_DDHRESULT(746)
00147 #define D3DERR_SURFACENOTINVIDMEM       MAKE_DDHRESULT(747)
00148 #define D3DERR_LIGHT_SET_FAILED         MAKE_DDHRESULT(750)
00149 #define D3DERR_LIGHTHASVIEWPORT         MAKE_DDHRESULT(751)
00150 #define D3DERR_LIGHTNOTINTHISVIEWPORT   MAKE_DDHRESULT(752)
00151 #define D3DERR_SCENE_IN_SCENE           MAKE_DDHRESULT(760)
00152 #define D3DERR_SCENE_NOT_IN_SCENE       MAKE_DDHRESULT(761)
00153 #define D3DERR_SCENE_BEGIN_FAILED       MAKE_DDHRESULT(762)
00154 #define D3DERR_SCENE_END_FAILED         MAKE_DDHRESULT(763)
00155 #define D3DERR_INBEGIN                  MAKE_DDHRESULT(770)
00156 #define D3DERR_NOTINBEGIN               MAKE_DDHRESULT(771)
00157 #define D3DERR_NOVIEWPORTS              MAKE_DDHRESULT(772)
00158 #define D3DERR_VIEWPORTDATANOTSET       MAKE_DDHRESULT(773)
00159 #define D3DERR_VIEWPORTHASNODEVICE      MAKE_DDHRESULT(774)
00160 #define D3DERR_NOCURRENTVIEWPORT        MAKE_DDHRESULT(775)
00161 #define D3DERR_INVALIDVERTEXFORMAT  MAKE_DDHRESULT(2048)
00162 #define D3DERR_COLORKEYATTACHED         MAKE_DDHRESULT(2050)
00163 #define D3DERR_VERTEXBUFFEROPTIMIZED    MAKE_DDHRESULT(2060)
00164 #define D3DERR_VBUF_CREATE_FAILED   MAKE_DDHRESULT(2061)
00165 #define D3DERR_VERTEXBUFFERLOCKED   MAKE_DDHRESULT(2062)
00166 #define D3DERR_VERTEXBUFFERUNLOCKFAILED MAKE_DDHRESULT(2063)
00167 #define D3DERR_ZBUFFER_NOTPRESENT   MAKE_DDHRESULT(2070)
00168 #define D3DERR_STENCILBUFFER_NOTPRESENT MAKE_DDHRESULT(2071)
00169 
00170 #define D3DERR_WRONGTEXTUREFORMAT       MAKE_DDHRESULT(2072)
00171 #define D3DERR_UNSUPPORTEDCOLOROPERATION    MAKE_DDHRESULT(2073)
00172 #define D3DERR_UNSUPPORTEDCOLORARG      MAKE_DDHRESULT(2074)
00173 #define D3DERR_UNSUPPORTEDALPHAOPERATION    MAKE_DDHRESULT(2075)
00174 #define D3DERR_UNSUPPORTEDALPHAARG      MAKE_DDHRESULT(2076)
00175 #define D3DERR_TOOMANYOPERATIONS        MAKE_DDHRESULT(2077)
00176 #define D3DERR_CONFLICTINGTEXTUREFILTER     MAKE_DDHRESULT(2078)
00177 #define D3DERR_UNSUPPORTEDFACTORVALUE       MAKE_DDHRESULT(2079)
00178 #define D3DERR_CONFLICTINGRENDERSTATE       MAKE_DDHRESULT(2081)
00179 #define D3DERR_UNSUPPORTEDTEXTUREFILTER     MAKE_DDHRESULT(2082)
00180 #define D3DERR_TOOMANYPRIMITIVES        MAKE_DDHRESULT(2083)
00181 #define D3DERR_INVALIDMATRIX            MAKE_DDHRESULT(2084)
00182 #define D3DERR_TOOMANYVERTICES          MAKE_DDHRESULT(2085)
00183 #define D3DERR_CONFLICTINGTEXTUREPALETTE    MAKE_DDHRESULT(2086)
00184 
00185 #define D3DERR_INVALIDSTATEBLOCK    MAKE_DDHRESULT(2100)
00186 #define D3DERR_INBEGINSTATEBLOCK    MAKE_DDHRESULT(2101)
00187 #define D3DERR_NOTINBEGINSTATEBLOCK MAKE_DDHRESULT(2102)
00188 
00189 /* ********************************************************************
00190    Enums
00191    ******************************************************************** */
00192 #define D3DNEXT_NEXT 0x01l
00193 #define D3DNEXT_HEAD 0x02l
00194 #define D3DNEXT_TAIL 0x04l
00195 
00196 #define D3DDP_WAIT               0x00000001l
00197 #define D3DDP_OUTOFORDER         0x00000002l
00198 #define D3DDP_DONOTCLIP          0x00000004l
00199 #define D3DDP_DONOTUPDATEEXTENTS 0x00000008l
00200 #define D3DDP_DONOTLIGHT         0x00000010l
00201 
00202 /* ********************************************************************
00203    Types and structures
00204    ******************************************************************** */
00205 typedef DWORD D3DVIEWPORTHANDLE, *LPD3DVIEWPORTHANDLE;
00206 
00207 
00208 /*****************************************************************************
00209  * IDirect3D interface
00210  */
00211 #undef INTERFACE
00212 #define INTERFACE IDirect3D
00213 DECLARE_INTERFACE_(IDirect3D,IUnknown)
00214 {
00215     /*** IUnknown methods ***/
00216     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
00217     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
00218     STDMETHOD_(ULONG,Release)(THIS) PURE;
00219     /*** IDirect3D methods ***/
00220     STDMETHOD(Initialize)(THIS_ REFIID riid) PURE;
00221     STDMETHOD(EnumDevices)(THIS_ LPD3DENUMDEVICESCALLBACK lpEnumDevicesCallback, LPVOID lpUserArg) PURE;
00222     STDMETHOD(CreateLight)(THIS_ LPDIRECT3DLIGHT *lplpDirect3DLight, IUnknown *pUnkOuter) PURE;
00223     STDMETHOD(CreateMaterial)(THIS_ LPDIRECT3DMATERIAL *lplpDirect3DMaterial, IUnknown *pUnkOuter) PURE;
00224     STDMETHOD(CreateViewport)(THIS_ LPDIRECT3DVIEWPORT *lplpD3DViewport, IUnknown *pUnkOuter) PURE;
00225     STDMETHOD(FindDevice)(THIS_ LPD3DFINDDEVICESEARCH lpD3DDFS, LPD3DFINDDEVICERESULT lplpD3DDevice) PURE;
00226 };
00227 #undef INTERFACE
00228 
00229 #if !defined(__cplusplus) || defined(CINTERFACE)
00230 /*** IUnknown methods ***/
00231 #define IDirect3D_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
00232 #define IDirect3D_AddRef(p)             (p)->lpVtbl->AddRef(p)
00233 #define IDirect3D_Release(p)            (p)->lpVtbl->Release(p)
00234 /*** IDirect3D methods ***/
00235 #define IDirect3D_Initialize(p,a)       (p)->lpVtbl->Initialize(p,a)
00236 #define IDirect3D_EnumDevices(p,a,b)    (p)->lpVtbl->EnumDevices(p,a,b)
00237 #define IDirect3D_CreateLight(p,a,b)    (p)->lpVtbl->CreateLight(p,a,b)
00238 #define IDirect3D_CreateMaterial(p,a,b) (p)->lpVtbl->CreateMaterial(p,a,b)
00239 #define IDirect3D_CreateViewport(p,a,b) (p)->lpVtbl->CreateViewport(p,a,b)
00240 #define IDirect3D_FindDevice(p,a,b)     (p)->lpVtbl->FindDevice(p,a,b)
00241 #else
00242 /*** IUnknown methods ***/
00243 #define IDirect3D_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
00244 #define IDirect3D_AddRef(p)             (p)->AddRef()
00245 #define IDirect3D_Release(p)            (p)->Release()
00246 /*** IDirect3D methods ***/
00247 #define IDirect3D_Initialize(p,a)       (p)->Initialize(a)
00248 #define IDirect3D_EnumDevices(p,a,b)    (p)->EnumDevices(a,b)
00249 #define IDirect3D_CreateLight(p,a,b)    (p)->CreateLight(a,b)
00250 #define IDirect3D_CreateMaterial(p,a,b) (p)->CreateMaterial(a,b)
00251 #define IDirect3D_CreateViewport(p,a,b) (p)->CreateViewport(a,b)
00252 #define IDirect3D_FindDevice(p,a,b)     (p)->FindDevice(a,b)
00253 #endif
00254 
00255 
00256 /*****************************************************************************
00257  * IDirect3D2 interface
00258  */
00259 #define INTERFACE IDirect3D2
00260 DECLARE_INTERFACE_(IDirect3D2,IUnknown)
00261 {
00262     /*** IUnknown methods ***/
00263     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
00264     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
00265     STDMETHOD_(ULONG,Release)(THIS) PURE;
00266     /*** IDirect3D2 methods ***/
00267     STDMETHOD(EnumDevices)(THIS_ LPD3DENUMDEVICESCALLBACK lpEnumDevicesCallback, LPVOID lpUserArg) PURE;
00268     STDMETHOD(CreateLight)(THIS_ LPDIRECT3DLIGHT *lplpDirect3DLight, IUnknown *pUnkOuter) PURE;
00269     STDMETHOD(CreateMaterial)(THIS_ LPDIRECT3DMATERIAL2 *lplpDirect3DMaterial2, IUnknown *pUnkOuter) PURE;
00270     STDMETHOD(CreateViewport)(THIS_ LPDIRECT3DVIEWPORT2 *lplpD3DViewport2, IUnknown *pUnkOuter) PURE;
00271     STDMETHOD(FindDevice)(THIS_ LPD3DFINDDEVICESEARCH lpD3DDFS, LPD3DFINDDEVICERESULT lpD3DFDR) PURE;
00272     STDMETHOD(CreateDevice)(THIS_ REFCLSID rclsid, LPDIRECTDRAWSURFACE lpDDS, LPDIRECT3DDEVICE2 *lplpD3DDevice2) PURE;
00273 };
00274 #undef INTERFACE
00275 
00276 #if !defined(__cplusplus) || defined(CINTERFACE)
00277 /*** IUnknown methods ***/
00278 #define IDirect3D2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
00279 #define IDirect3D2_AddRef(p)             (p)->lpVtbl->AddRef(p)
00280 #define IDirect3D2_Release(p)            (p)->lpVtbl->Release(p)
00281 /*** IDirect3D2 methods ***/
00282 #define IDirect3D2_EnumDevices(p,a,b)    (p)->lpVtbl->EnumDevices(p,a,b)
00283 #define IDirect3D2_CreateLight(p,a,b)    (p)->lpVtbl->CreateLight(p,a,b)
00284 #define IDirect3D2_CreateMaterial(p,a,b) (p)->lpVtbl->CreateMaterial(p,a,b)
00285 #define IDirect3D2_CreateViewport(p,a,b) (p)->lpVtbl->CreateViewport(p,a,b)
00286 #define IDirect3D2_FindDevice(p,a,b)     (p)->lpVtbl->FindDevice(p,a,b)
00287 #define IDirect3D2_CreateDevice(p,a,b,c) (p)->lpVtbl->CreateDevice(p,a,b,c)
00288 #else
00289 /*** IUnknown methods ***/
00290 #define IDirect3D2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
00291 #define IDirect3D2_AddRef(p)             (p)->AddRef()
00292 #define IDirect3D2_Release(p)            (p)->Release()
00293 /*** IDirect3D2 methods ***/
00294 #define IDirect3D2_EnumDevices(p,a,b)    (p)->EnumDevices(a,b)
00295 #define IDirect3D2_CreateLight(p,a,b)    (p)->CreateLight(a,b)
00296 #define IDirect3D2_CreateMaterial(p,a,b) (p)->CreateMaterial(a,b)
00297 #define IDirect3D2_CreateViewport(p,a,b) (p)->CreateViewport(a,b)
00298 #define IDirect3D2_FindDevice(p,a,b)     (p)->FindDevice(a,b)
00299 #define IDirect3D2_CreateDevice(p,a,b,c) (p)->CreateDevice(a,b,c)
00300 #endif
00301 
00302 
00303 /*****************************************************************************
00304  * IDirect3D3 interface
00305  */
00306 #define INTERFACE IDirect3D3
00307 DECLARE_INTERFACE_(IDirect3D3,IUnknown)
00308 {
00309     /*** IUnknown methods ***/
00310     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
00311     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
00312     STDMETHOD_(ULONG,Release)(THIS) PURE;
00313     /*** IDirect3D3 methods ***/
00314     STDMETHOD(EnumDevices)(THIS_ LPD3DENUMDEVICESCALLBACK lpEnumDevicesCallback, LPVOID lpUserArg) PURE;
00315     STDMETHOD(CreateLight)(THIS_ LPDIRECT3DLIGHT *lplpDirect3DLight, IUnknown *pUnkOuter) PURE;
00316     STDMETHOD(CreateMaterial)(THIS_ LPDIRECT3DMATERIAL3 *lplpDirect3DMaterial3, IUnknown *pUnkOuter) PURE;
00317     STDMETHOD(CreateViewport)(THIS_ LPDIRECT3DVIEWPORT3 *lplpD3DViewport3, IUnknown *pUnkOuter) PURE;
00318     STDMETHOD(FindDevice)(THIS_ LPD3DFINDDEVICESEARCH lpD3DDFS, LPD3DFINDDEVICERESULT lpD3DFDR) PURE;
00319     STDMETHOD(CreateDevice)(THIS_ REFCLSID rclsid,LPDIRECTDRAWSURFACE4 lpDDS, LPDIRECT3DDEVICE3 *lplpD3DDevice3,LPUNKNOWN lpUnk) PURE;
00320     STDMETHOD(CreateVertexBuffer)(THIS_ LPD3DVERTEXBUFFERDESC lpD3DVertBufDesc,LPDIRECT3DVERTEXBUFFER *lplpD3DVertBuf,DWORD dwFlags,LPUNKNOWN lpUnk) PURE;
00321     STDMETHOD(EnumZBufferFormats)(THIS_ REFCLSID riidDevice,LPD3DENUMPIXELFORMATSCALLBACK lpEnumCallback,LPVOID lpContext) PURE;
00322     STDMETHOD(EvictManagedTextures)(THIS) PURE;
00323 };
00324 #undef INTERFACE
00325 
00326 #if !defined(__cplusplus) || defined(CINTERFACE)
00327 /*** IUnknown methods ***/
00328 #define IDirect3D3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
00329 #define IDirect3D3_AddRef(p)             (p)->lpVtbl->AddRef(p)
00330 #define IDirect3D3_Release(p)            (p)->lpVtbl->Release(p)
00331 /*** IDirect3D3 methods ***/
00332 #define IDirect3D3_EnumDevices(p,a,b)            (p)->lpVtbl->EnumDevices(p,a,b)
00333 #define IDirect3D3_CreateLight(p,a,b)            (p)->lpVtbl->CreateLight(p,a,b)
00334 #define IDirect3D3_CreateMaterial(p,a,b)         (p)->lpVtbl->CreateMaterial(p,a,b)
00335 #define IDirect3D3_CreateViewport(p,a,b)         (p)->lpVtbl->CreateViewport(p,a,b)
00336 #define IDirect3D3_FindDevice(p,a,b)             (p)->lpVtbl->FindDevice(p,a,b)
00337 #define IDirect3D3_CreateDevice(p,a,b,c,d)       (p)->lpVtbl->CreateDevice(p,a,b,c,d)
00338 #define IDirect3D3_CreateVertexBuffer(p,a,b,c,d) (p)->lpVtbl->CreateVertexBuffer(p,a,b,c,d)
00339 #define IDirect3D3_EnumZBufferFormats(p,a,b,c)   (p)->lpVtbl->EnumZBufferFormats(p,a,b,c)
00340 #define IDirect3D3_EvictManagedTextures(p)       (p)->lpVtbl->EvictManagedTextures(p)
00341 #else
00342 /*** IUnknown methods ***/
00343 #define IDirect3D3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
00344 #define IDirect3D3_AddRef(p)             (p)->AddRef()
00345 #define IDirect3D3_Release(p)            (p)->Release()
00346 /*** IDirect3D3 methods ***/
00347 #define IDirect3D3_EnumDevices(p,a,b)            (p)->EnumDevices(a,b)
00348 #define IDirect3D3_CreateLight(p,a,b)            (p)->CreateLight(a,b)
00349 #define IDirect3D3_CreateMaterial(p,a,b)         (p)->CreateMaterial(a,b)
00350 #define IDirect3D3_CreateViewport(p,a,b)         (p)->CreateViewport(a,b)
00351 #define IDirect3D3_FindDevice(p,a,b)             (p)->FindDevice(a,b)
00352 #define IDirect3D3_CreateDevice(p,a,b,c,d)       (p)->CreateDevice(a,b,c,d)
00353 #define IDirect3D3_CreateVertexBuffer(p,a,b,c,d) (p)->CreateVertexBuffer(a,b,c,d)
00354 #define IDirect3D3_EnumZBufferFormats(p,a,b,c)   (p)->EnumZBufferFormats(a,b,c)
00355 #define IDirect3D3_EvictManagedTextures(p)       (p)->EvictManagedTextures()
00356 #endif
00357 
00358 /*****************************************************************************
00359  * IDirect3D7 interface
00360  */
00361 #define INTERFACE IDirect3D7
00362 DECLARE_INTERFACE_(IDirect3D7,IUnknown)
00363 {
00364     /*** IUnknown methods ***/
00365     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
00366     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
00367     STDMETHOD_(ULONG,Release)(THIS) PURE;
00368     /*** IDirect3D7 methods ***/
00369     STDMETHOD(EnumDevices)(THIS_ LPD3DENUMDEVICESCALLBACK7 lpEnumDevicesCallback, LPVOID lpUserArg) PURE;
00370     STDMETHOD(CreateDevice)(THIS_ REFCLSID rclsid,LPDIRECTDRAWSURFACE7 lpDDS, LPDIRECT3DDEVICE7 *lplpD3DDevice) PURE;
00371     STDMETHOD(CreateVertexBuffer)(THIS_ LPD3DVERTEXBUFFERDESC lpD3DVertBufDesc,LPDIRECT3DVERTEXBUFFER7 *lplpD3DVertBuf,DWORD dwFlags) PURE;
00372     STDMETHOD(EnumZBufferFormats)(THIS_ REFCLSID riidDevice,LPD3DENUMPIXELFORMATSCALLBACK lpEnumCallback,LPVOID lpContext) PURE;
00373     STDMETHOD(EvictManagedTextures)(THIS) PURE;
00374 };
00375 #undef INTERFACE
00376 
00377 #if !defined(__cplusplus) || defined(CINTERFACE)
00378 /*** IUnknown methods ***/
00379 #define IDirect3D7_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
00380 #define IDirect3D7_AddRef(p)             (p)->lpVtbl->AddRef(p)
00381 #define IDirect3D7_Release(p)            (p)->lpVtbl->Release(p)
00382 /*** IDirect3D3 methods ***/
00383 #define IDirect3D7_EnumDevices(p,a,b)            (p)->lpVtbl->EnumDevices(p,a,b)
00384 #define IDirect3D7_CreateDevice(p,a,b,c)         (p)->lpVtbl->CreateDevice(p,a,b,c)
00385 #define IDirect3D7_CreateVertexBuffer(p,a,b,c)   (p)->lpVtbl->CreateVertexBuffer(p,a,b,c)
00386 #define IDirect3D7_EnumZBufferFormats(p,a,b,c)   (p)->lpVtbl->EnumZBufferFormats(p,a,b,c)
00387 #define IDirect3D7_EvictManagedTextures(p)       (p)->lpVtbl->EvictManagedTextures(p)
00388 #else
00389 /*** IUnknown methods ***/
00390 #define IDirect3D7_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
00391 #define IDirect3D7_AddRef(p)             (p)->AddRef()
00392 #define IDirect3D7_Release(p)            (p)->Release()
00393 /*** IDirect3D3 methods ***/
00394 #define IDirect3D7_EnumDevices(p,a,b)            (p)->EnumDevices(a,b)
00395 #define IDirect3D7_CreateDevice(p,a,b,c)         (p)->CreateDevice(a,b,c)
00396 #define IDirect3D7_CreateVertexBuffer(p,a,b,c)   (p)->CreateVertexBuffer(a,b,c)
00397 #define IDirect3D7_EnumZBufferFormats(p,a,b,c)   (p)->EnumZBufferFormats(a,b,c)
00398 #define IDirect3D7_EvictManagedTextures(p)       (p)->EvictManagedTextures()
00399 #endif
00400 
00401 
00402 /*****************************************************************************
00403  * IDirect3DLight interface
00404  */
00405 #define INTERFACE IDirect3DLight
00406 DECLARE_INTERFACE_(IDirect3DLight,IUnknown)
00407 {
00408     /*** IUnknown methods ***/
00409     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
00410     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
00411     STDMETHOD_(ULONG,Release)(THIS) PURE;
00412     /*** IDirect3DLight methods ***/
00413     STDMETHOD(Initialize)(THIS_ LPDIRECT3D lpDirect3D) PURE;
00414     STDMETHOD(SetLight)(THIS_ LPD3DLIGHT lpLight) PURE;
00415     STDMETHOD(GetLight)(THIS_ LPD3DLIGHT lpLight) PURE;
00416 };
00417 #undef INTERFACE
00418 
00419 #if !defined(__cplusplus) || defined(CINTERFACE)
00420 /*** IUnknown methods ***/
00421 #define IDirect3DLight_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
00422 #define IDirect3DLight_AddRef(p)             (p)->lpVtbl->AddRef(p)
00423 #define IDirect3DLight_Release(p)            (p)->lpVtbl->Release(p)
00424 /*** IDirect3DLight methods ***/
00425 #define IDirect3DLight_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
00426 #define IDirect3DLight_SetLight(p,a)   (p)->lpVtbl->SetLight(p,a)
00427 #define IDirect3DLight_GetLight(p,a)   (p)->lpVtbl->GetLight(p,a)
00428 #else
00429 /*** IUnknown methods ***/
00430 #define IDirect3DLight_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
00431 #define IDirect3DLight_AddRef(p)             (p)->AddRef()
00432 #define IDirect3DLight_Release(p)            (p)->Release()
00433 /*** IDirect3DLight methods ***/
00434 #define IDirect3DLight_Initialize(p,a) (p)->Initialize(a)
00435 #define IDirect3DLight_SetLight(p,a)   (p)->SetLight(a)
00436 #define IDirect3DLight_GetLight(p,a)   (p)->GetLight(a)
00437 #endif
00438 
00439 
00440 /*****************************************************************************
00441  * IDirect3DMaterial interface
00442  */
00443 #define INTERFACE IDirect3DMaterial
00444 DECLARE_INTERFACE_(IDirect3DMaterial,IUnknown)
00445 {
00446     /*** IUnknown methods ***/
00447     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
00448     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
00449     STDMETHOD_(ULONG,Release)(THIS) PURE;
00450     /*** IDirect3DMaterial methods ***/
00451     STDMETHOD(Initialize)(THIS_ LPDIRECT3D lpDirect3D) PURE;
00452     STDMETHOD(SetMaterial)(THIS_ LPD3DMATERIAL lpMat) PURE;
00453     STDMETHOD(GetMaterial)(THIS_ LPD3DMATERIAL lpMat) PURE;
00454     STDMETHOD(GetHandle)(THIS_ LPDIRECT3DDEVICE lpDirect3DDevice, LPD3DMATERIALHANDLE lpHandle) PURE;
00455     STDMETHOD(Reserve)(THIS) PURE;
00456     STDMETHOD(Unreserve)(THIS) PURE;
00457 };
00458 #undef INTERFACE
00459 
00460 #if !defined(__cplusplus) || defined(CINTERFACE)
00461 /*** IUnknown methods ***/
00462 #define IDirect3DMaterial_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
00463 #define IDirect3DMaterial_AddRef(p)             (p)->lpVtbl->AddRef(p)
00464 #define IDirect3DMaterial_Release(p)            (p)->lpVtbl->Release(p)
00465 /*** IDirect3DMaterial methods ***/
00466 #define IDirect3DMaterial_Initialize(p,a)  (p)->lpVtbl->Initialize(p,a)
00467 #define IDirect3DMaterial_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
00468 #define IDirect3DMaterial_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
00469 #define IDirect3DMaterial_GetHandle(p,a,b) (p)->lpVtbl->GetHandle(p,a,b)
00470 #define IDirect3DMaterial_Reserve(p)       (p)->lpVtbl->Reserve(p)
00471 #define IDirect3DMaterial_Unreserve(p)     (p)->lpVtbl->Unreserve(p)
00472 #else
00473 /*** IUnknown methods ***/
00474 #define IDirect3DMaterial_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
00475 #define IDirect3DMaterial_AddRef(p)             (p)->AddRef()
00476 #define IDirect3DMaterial_Release(p)            (p)->Release()
00477 /*** IDirect3DMaterial methods ***/
00478 #define IDirect3DMaterial_Initialize(p,a)  (p)->Initialize(a)
00479 #define IDirect3DMaterial_SetMaterial(p,a) (p)->SetMaterial(a)
00480 #define IDirect3DMaterial_GetMaterial(p,a) (p)->GetMaterial(a)
00481 #define IDirect3DMaterial_GetHandle(p,a,b) (p)->GetHandle(a,b)
00482 #define IDirect3DMaterial_Reserve(p)       (p)->Reserve()
00483 #define IDirect3DMaterial_Unreserve(p)     (p)->Unreserve()
00484 #endif
00485 
00486 
00487 /*****************************************************************************
00488  * IDirect3DMaterial2 interface
00489  */
00490 #define INTERFACE IDirect3DMaterial2
00491 DECLARE_INTERFACE_(IDirect3DMaterial2,IUnknown)
00492 {
00493     /*** IUnknown methods ***/
00494     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
00495     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
00496     STDMETHOD_(ULONG,Release)(THIS) PURE;
00497     /*** IDirect3DMaterial2 methods ***/
00498     STDMETHOD(SetMaterial)(THIS_ LPD3DMATERIAL lpMat) PURE;
00499     STDMETHOD(GetMaterial)(THIS_ LPD3DMATERIAL lpMat) PURE;
00500     STDMETHOD(GetHandle)(THIS_ LPDIRECT3DDEVICE2 lpDirect3DDevice2, LPD3DMATERIALHANDLE lpHandle) PURE;
00501 };
00502 #undef INTERFACE
00503 
00504 #if !defined(__cplusplus) || defined(CINTERFACE)
00505 /*** IUnknown methods ***/
00506 #define IDirect3DMaterial2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
00507 #define IDirect3DMaterial2_AddRef(p)             (p)->lpVtbl->AddRef(p)
00508 #define IDirect3DMaterial2_Release(p)            (p)->lpVtbl->Release(p)
00509 /*** IDirect3DMaterial2 methods ***/
00510 #define IDirect3DMaterial2_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
00511 #define IDirect3DMaterial2_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
00512 #define IDirect3DMaterial2_GetHandle(p,a,b) (p)->lpVtbl->GetHandle(p,a,b)
00513 #else
00514 /*** IUnknown methods ***/
00515 #define IDirect3DMaterial2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
00516 #define IDirect3DMaterial2_AddRef(p)             (p)->AddRef()
00517 #define IDirect3DMaterial2_Release(p)            (p)->Release()
00518 /*** IDirect3DMaterial2 methods ***/
00519 #define IDirect3DMaterial2_SetMaterial(p,a) (p)->SetMaterial(a)
00520 #define IDirect3DMaterial2_GetMaterial(p,a) (p)->GetMaterial(a)
00521 #define IDirect3DMaterial2_GetHandle(p,a,b) (p)->GetHandle(a,b)
00522 #endif
00523 
00524 
00525 /*****************************************************************************
00526  * IDirect3DMaterial3 interface
00527  */
00528 #define INTERFACE IDirect3DMaterial3
00529 DECLARE_INTERFACE_(IDirect3DMaterial3,IUnknown)
00530 {
00531     /*** IUnknown methods ***/
00532     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
00533     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
00534     STDMETHOD_(ULONG,Release)(THIS) PURE;
00535     /*** IDirect3DMaterial3 methods ***/
00536     STDMETHOD(SetMaterial)(THIS_ LPD3DMATERIAL lpMat) PURE;
00537     STDMETHOD(GetMaterial)(THIS_ LPD3DMATERIAL lpMat) PURE;
00538     STDMETHOD(GetHandle)(THIS_ LPDIRECT3DDEVICE3 lpDirect3DDevice3, LPD3DMATERIALHANDLE lpHandle) PURE;
00539 };
00540 #undef INTERFACE
00541 
00542 #if !defined(__cplusplus) || defined(CINTERFACE)
00543 /*** IUnknown methods ***/
00544 #define IDirect3DMaterial3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
00545 #define IDirect3DMaterial3_AddRef(p)             (p)->lpVtbl->AddRef(p)
00546 #define IDirect3DMaterial3_Release(p)            (p)->lpVtbl->Release(p)
00547 /*** IDirect3DMaterial3 methods ***/
00548 #define IDirect3DMaterial3_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
00549 #define IDirect3DMaterial3_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
00550 #define IDirect3DMaterial3_GetHandle(p,a,b) (p)->lpVtbl->GetHandle(p,a,b)
00551 #else
00552 /*** IUnknown methods ***/
00553 #define IDirect3DMaterial3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
00554 #define IDirect3DMaterial3_AddRef(p)             (p)->AddRef()
00555 #define IDirect3DMaterial3_Release(p)            (p)->Release()
00556 /*** IDirect3DMaterial3 methods ***/
00557 #define IDirect3DMaterial3_SetMaterial(p,a) (p)->SetMaterial(a)
00558 #define IDirect3DMaterial3_GetMaterial(p,a) (p)->GetMaterial(a)
00559 #define IDirect3DMaterial3_GetHandle(p,a,b) (p)->GetHandle(a,b)
00560 #endif
00561 
00562 
00563 /*****************************************************************************
00564  * IDirect3DTexture interface
00565  */
00566 #define INTERFACE IDirect3DTexture
00567 DECLARE_INTERFACE_(IDirect3DTexture,IUnknown)
00568 {
00569     /*** IUnknown methods ***/
00570     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
00571     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
00572     STDMETHOD_(ULONG,Release)(THIS) PURE;
00573     /*** IDirect3DTexture methods ***/
00574     STDMETHOD(Initialize)(THIS_ LPDIRECT3DDEVICE lpDirect3DDevice, LPDIRECTDRAWSURFACE lpDDSurface) PURE;
00575     STDMETHOD(GetHandle)(THIS_ LPDIRECT3DDEVICE lpDirect3DDevice, LPD3DTEXTUREHANDLE  lpHandle) PURE;
00576     STDMETHOD(PaletteChanged)(THIS_ DWORD dwStart, DWORD dwCount) PURE;
00577     STDMETHOD(Load)(THIS_ LPDIRECT3DTEXTURE lpD3DTexture) PURE;
00578     STDMETHOD(Unload)(THIS) PURE;
00579 };
00580 #undef INTERFACE
00581 
00582 #if !defined(__cplusplus) || defined(CINTERFACE)
00583 /*** IUnknown methods ***/
00584 #define IDirect3DTexture_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
00585 #define IDirect3DTexture_AddRef(p)             (p)->lpVtbl->AddRef(p)
00586 #define IDirect3DTexture_Release(p)            (p)->lpVtbl->Release(p)
00587 /*** IDirect3DTexture methods ***/
00588 #define IDirect3DTexture_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
00589 #define IDirect3DTexture_GetHandle(p,a,b) (p)->lpVtbl->GetHandle(p,a,b)
00590 #define IDirect3DTexture_PaletteChanged(p,a,b) (p)->lpVtbl->PaletteChanged(p,a,b)
00591 #define IDirect3DTexture_Load(p,a) (p)->lpVtbl->Load(p,a)
00592 #define IDirect3DTexture_Unload(p) (p)->lpVtbl->Unload(p)
00593 #else
00594 /*** IUnknown methods ***/
00595 #define IDirect3DTexture_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
00596 #define IDirect3DTexture_AddRef(p)             (p)->AddRef()
00597 #define IDirect3DTexture_Release(p)            (p)->Release()
00598 /*** IDirect3DTexture methods ***/
00599 #define IDirect3DTexture_Initialize(p,a,b) (p)->Initialize(a,b)
00600 #define IDirect3DTexture_GetHandle(p,a,b) (p)->GetHandle(a,b)
00601 #define IDirect3DTexture_PaletteChanged(p,a,b) (p)->PaletteChanged(a,b)
00602 #define IDirect3DTexture_Load(p,a) (p)->Load(a)
00603 #define IDirect3DTexture_Unload(p) (p)->Unload()
00604 #endif
00605 
00606 
00607 /*****************************************************************************
00608  * IDirect3DTexture2 interface
00609  */
00610 #define INTERFACE IDirect3DTexture2
00611 DECLARE_INTERFACE_(IDirect3DTexture2,IUnknown)
00612 {
00613     /*** IUnknown methods ***/
00614     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
00615     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
00616     STDMETHOD_(ULONG,Release)(THIS) PURE;
00617     /*** IDirect3DTexture2 methods ***/
00618     STDMETHOD(GetHandle)(THIS_ LPDIRECT3DDEVICE2 lpDirect3DDevice2, LPD3DTEXTUREHANDLE lpHandle) PURE;
00619     STDMETHOD(PaletteChanged)(THIS_ DWORD dwStart, DWORD dwCount) PURE;
00620     STDMETHOD(Load)(THIS_ LPDIRECT3DTEXTURE2 lpD3DTexture2) PURE;
00621 };
00622 #undef INTERFACE
00623 
00624 #if !defined(__cplusplus) || defined(CINTERFACE)
00625 /*** IUnknown methods ***/
00626 #define IDirect3DTexture2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
00627 #define IDirect3DTexture2_AddRef(p)             (p)->lpVtbl->AddRef(p)
00628 #define IDirect3DTexture2_Release(p)            (p)->lpVtbl->Release(p)
00629 /*** IDirect3DTexture2 methods ***/
00630 #define IDirect3DTexture2_GetHandle(p,a,b)      (p)->lpVtbl->GetHandle(p,a,b)
00631 #define IDirect3DTexture2_PaletteChanged(p,a,b) (p)->lpVtbl->PaletteChanged(p,a,b)
00632 #define IDirect3DTexture2_Load(p,a)             (p)->lpVtbl->Load(p,a)
00633 #else
00634 /*** IUnknown methods ***/
00635 #define IDirect3DTexture2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
00636 #define IDirect3DTexture2_AddRef(p)             (p)->AddRef()
00637 #define IDirect3DTexture2_Release(p)            (p)->Release()
00638 /*** IDirect3DTexture2 methods ***/
00639 #define IDirect3DTexture2_GetHandle(p,a,b)      (p)->GetHandle(a,b)
00640 #define IDirect3DTexture2_PaletteChanged(p,a,b) (p)->PaletteChanged(a,b)
00641 #define IDirect3DTexture2_Load(p,a)             (p)->Load(a)
00642 #endif
00643 
00644 
00645 /*****************************************************************************
00646  * IDirect3DViewport interface
00647  */
00648 #define INTERFACE IDirect3DViewport
00649 DECLARE_INTERFACE_(IDirect3DViewport,IUnknown)
00650 {
00651     /*** IUnknown methods ***/
00652     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
00653     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
00654     STDMETHOD_(ULONG,Release)(THIS) PURE;
00655     /*** IDirect3DViewport methods ***/
00656     STDMETHOD(Initialize)(THIS_ LPDIRECT3D lpDirect3D) PURE;
00657     STDMETHOD(GetViewport)(THIS_ LPD3DVIEWPORT lpData) PURE;
00658     STDMETHOD(SetViewport)(THIS_ LPD3DVIEWPORT lpData) PURE;
00659     STDMETHOD(TransformVertices)(THIS_ DWORD dwVertexCount, LPD3DTRANSFORMDATA lpData, DWORD dwFlags, LPDWORD lpOffScreen) PURE;
00660     STDMETHOD(LightElements)(THIS_ DWORD dwElementCount, LPD3DLIGHTDATA lpData) PURE;
00661     STDMETHOD(SetBackground)(THIS_ D3DMATERIALHANDLE hMat) PURE;
00662     STDMETHOD(GetBackground)(THIS_ LPD3DMATERIALHANDLE lphMat, LPBOOL lpValid) PURE;
00663     STDMETHOD(SetBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE lpDDSurface) PURE;
00664     STDMETHOD(GetBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE *lplpDDSurface, LPBOOL lpValid) PURE;
00665     STDMETHOD(Clear)(THIS_ DWORD dwCount, LPD3DRECT lpRects, DWORD dwFlags) PURE;
00666     STDMETHOD(AddLight)(THIS_ LPDIRECT3DLIGHT lpDirect3DLight) PURE;
00667     STDMETHOD(DeleteLight)(THIS_ LPDIRECT3DLIGHT lpDirect3DLight) PURE;
00668     STDMETHOD(NextLight)(THIS_ LPDIRECT3DLIGHT lpDirect3DLight, LPDIRECT3DLIGHT *lplpDirect3DLight, DWORD dwFlags) PURE;
00669 };
00670 #undef INTERFACE
00671 
00672 #if !defined(__cplusplus) || defined(CINTERFACE)
00673 /*** IUnknown methods ***/
00674 #define IDirect3DViewport_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
00675 #define IDirect3DViewport_AddRef(p)             (p)->lpVtbl->AddRef(p)
00676 #define IDirect3DViewport_Release(p)            (p)->lpVtbl->Release(p)
00677 /*** IDirect3DViewport methods ***/
00678 #define IDirect3DViewport_Initialize(p,a)              (p)->lpVtbl->Initialize(p,a)
00679 #define IDirect3DViewport_GetViewport(p,a)             (p)->lpVtbl->GetViewport(p,a)
00680 #define IDirect3DViewport_SetViewport(p,a)             (p)->lpVtbl->SetViewport(p,a)
00681 #define IDirect3DViewport_TransformVertices(p,a,b,c,d) (p)->lpVtbl->TransformVertices(p,a,b,c,d)
00682 #define IDirect3DViewport_LightElements(p,a,b)         (p)->lpVtbl->LightElements(p,a,b)
00683 #define IDirect3DViewport_SetBackground(p,a)           (p)->lpVtbl->SetBackground(p,a)
00684 #define IDirect3DViewport_GetBackground(p,a,b)         (p)->lpVtbl->GetBackground(p,a,b)
00685 #define IDirect3DViewport_SetBackgroundDepth(p,a)      (p)->lpVtbl->SetBackgroundDepth(p,a)
00686 #define IDirect3DViewport_GetBackgroundDepth(p,a,b)    (p)->lpVtbl->GetBackgroundDepth(p,a,b)
00687 #define IDirect3DViewport_Clear(p,a,b,c)               (p)->lpVtbl->Clear(p,a,b,c)
00688 #define IDirect3DViewport_AddLight(p,a)                (p)->lpVtbl->AddLight(p,a)
00689 #define IDirect3DViewport_DeleteLight(p,a)             (p)->lpVtbl->DeleteLight(p,a)
00690 #define IDirect3DViewport_NextLight(p,a,b,c)           (p)->lpVtbl->NextLight(p,a,b,c)
00691 #else
00692 /*** IUnknown methods ***/
00693 #define IDirect3DViewport_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
00694 #define IDirect3DViewport_AddRef(p)             (p)->AddRef()
00695 #define IDirect3DViewport_Release(p)            (p)->Release()
00696 /*** IDirect3DViewport methods ***/
00697 #define IDirect3DViewport_Initialize(p,a)              (p)->Initialize(a)
00698 #define IDirect3DViewport_GetViewport(p,a)             (p)->GetViewport(a)
00699 #define IDirect3DViewport_SetViewport(p,a)             (p)->SetViewport(a)
00700 #define IDirect3DViewport_TransformVertices(p,a,b,c,d) (p)->TransformVertices(a,b,c,d)
00701 #define IDirect3DViewport_LightElements(p,a,b)         (p)->LightElements(a,b)
00702 #define IDirect3DViewport_SetBackground(p,a)           (p)->SetBackground(a)
00703 #define IDirect3DViewport_GetBackground(p,a,b)         (p)->GetBackground(a,b)
00704 #define IDirect3DViewport_SetBackgroundDepth(p,a)      (p)->SetBackgroundDepth(a)
00705 #define IDirect3DViewport_GetBackgroundDepth(p,a,b)    (p)->GetBackgroundDepth(a,b)
00706 #define IDirect3DViewport_Clear(p,a,b,c)               (p)->Clear(a,b,c)
00707 #define IDirect3DViewport_AddLight(p,a)                (p)->AddLight(a)
00708 #define IDirect3DViewport_DeleteLight(p,a)             (p)->DeleteLight(a)
00709 #define IDirect3DViewport_NextLight(p,a,b,c)           (p)->NextLight(a,b,c)
00710 #endif
00711 
00712 
00713 /*****************************************************************************
00714  * IDirect3DViewport2 interface
00715  */
00716 #define INTERFACE IDirect3DViewport2
00717 DECLARE_INTERFACE_(IDirect3DViewport2,IDirect3DViewport)
00718 {
00719     /*** IUnknown methods ***/
00720     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
00721     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
00722     STDMETHOD_(ULONG,Release)(THIS) PURE;
00723     /*** IDirect3DViewport methods ***/
00724     STDMETHOD(Initialize)(THIS_ LPDIRECT3D lpDirect3D) PURE;
00725     STDMETHOD(GetViewport)(THIS_ LPD3DVIEWPORT lpData) PURE;
00726     STDMETHOD(SetViewport)(THIS_ LPD3DVIEWPORT lpData) PURE;
00727     STDMETHOD(TransformVertices)(THIS_ DWORD dwVertexCount, LPD3DTRANSFORMDATA lpData, DWORD dwFlags, LPDWORD lpOffScreen) PURE;
00728     STDMETHOD(LightElements)(THIS_ DWORD dwElementCount, LPD3DLIGHTDATA lpData) PURE;
00729     STDMETHOD(SetBackground)(THIS_ D3DMATERIALHANDLE hMat) PURE;
00730     STDMETHOD(GetBackground)(THIS_ LPD3DMATERIALHANDLE lphMat, LPBOOL lpValid) PURE;
00731     STDMETHOD(SetBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE lpDDSurface) PURE;
00732     STDMETHOD(GetBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE *lplpDDSurface, LPBOOL lpValid) PURE;
00733     STDMETHOD(Clear)(THIS_ DWORD dwCount, LPD3DRECT lpRects, DWORD dwFlags) PURE;
00734     STDMETHOD(AddLight)(THIS_ LPDIRECT3DLIGHT lpDirect3DLight) PURE;
00735     STDMETHOD(DeleteLight)(THIS_ LPDIRECT3DLIGHT lpDirect3DLight) PURE;
00736     STDMETHOD(NextLight)(THIS_ LPDIRECT3DLIGHT lpDirect3DLight, LPDIRECT3DLIGHT *lplpDirect3DLight, DWORD dwFlags) PURE;
00737     /*** IDirect3DViewport2 methods ***/
00738     STDMETHOD(GetViewport2)(THIS_ LPD3DVIEWPORT2 lpData) PURE;
00739     STDMETHOD(SetViewport2)(THIS_ LPD3DVIEWPORT2 lpData) PURE;
00740 };
00741 #undef INTERFACE
00742 
00743 #if !defined(__cplusplus) || defined(CINTERFACE)
00744 /*** IUnknown methods ***/
00745 #define IDirect3DViewport2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
00746 #define IDirect3DViewport2_AddRef(p)             (p)->lpVtbl->AddRef(p)
00747 #define IDirect3DViewport2_Release(p)            (p)->lpVtbl->Release(p)
00748 /*** IDirect3Viewport methods ***/
00749 #define IDirect3DViewport2_Initialize(p,a)              (p)->lpVtbl->Initialize(p,a)
00750 #define IDirect3DViewport2_GetViewport(p,a)             (p)->lpVtbl->GetViewport(p,a)
00751 #define IDirect3DViewport2_SetViewport(p,a)             (p)->lpVtbl->SetViewport(p,a)
00752 #define IDirect3DViewport2_TransformVertices(p,a,b,c,d) (p)->lpVtbl->TransformVertices(p,a,b,c,d)
00753 #define IDirect3DViewport2_LightElements(p,a,b)         (p)->lpVtbl->LightElements(p,a,b)
00754 #define IDirect3DViewport2_SetBackground(p,a)           (p)->lpVtbl->SetBackground(p,a)
00755 #define IDirect3DViewport2_GetBackground(p,a,b)         (p)->lpVtbl->GetBackground(p,a,b)
00756 #define IDirect3DViewport2_SetBackgroundDepth(p,a)      (p)->lpVtbl->SetBackgroundDepth(p,a)
00757 #define IDirect3DViewport2_GetBackgroundDepth(p,a,b)    (p)->lpVtbl->GetBackgroundDepth(p,a,b)
00758 #define IDirect3DViewport2_Clear(p,a,b,c)               (p)->lpVtbl->Clear(p,a,b,c)
00759 #define IDirect3DViewport2_AddLight(p,a)                (p)->lpVtbl->AddLight(p,a)
00760 #define IDirect3DViewport2_DeleteLight(p,a)             (p)->lpVtbl->DeleteLight(p,a)
00761 #define IDirect3DViewport2_NextLight(p,a,b,c)           (p)->lpVtbl->NextLight(p,a,b,c)
00762 /*** IDirect3DViewport2 methods ***/
00763 #define IDirect3DViewport2_GetViewport2(p,a) (p)->lpVtbl->GetViewport2(p,a)
00764 #define IDirect3DViewport2_SetViewport2(p,a) (p)->lpVtbl->SetViewport2(p,a)
00765 #else
00766 /*** IUnknown methods ***/
00767 #define IDirect3DViewport2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
00768 #define IDirect3DViewport2_AddRef(p)             (p)->AddRef()
00769 #define IDirect3DViewport2_Release(p)            (p)->Release()
00770 /*** IDirect3Viewport methods ***/
00771 #define IDirect3DViewport2_Initialize(p,a)              (p)->Initialize(a)
00772 #define IDirect3DViewport2_GetViewport(p,a)             (p)->GetViewport(a)
00773 #define IDirect3DViewport2_SetViewport(p,a)             (p)->SetViewport(a)
00774 #define IDirect3DViewport2_TransformVertices(p,a,b,c,d) (p)->TransformVertices(a,b,c,d)
00775 #define IDirect3DViewport2_LightElements(p,a,b)         (p)->LightElements(a,b)
00776 #define IDirect3DViewport2_SetBackground(p,a)           (p)->SetBackground(a)
00777 #define IDirect3DViewport2_GetBackground(p,a,b)         (p)->GetBackground(a,b)
00778 #define IDirect3DViewport2_SetBackgroundDepth(p,a)      (p)->SetBackgroundDepth(a)
00779 #define IDirect3DViewport2_GetBackgroundDepth(p,a,b)    (p)->GetBackgroundDepth(a,b)
00780 #define IDirect3DViewport2_Clear(p,a,b,c)               (p)->Clear(a,b,c)
00781 #define IDirect3DViewport2_AddLight(p,a)                (p)->AddLight(a)
00782 #define IDirect3DViewport2_DeleteLight(p,a)             (p)->DeleteLight(a)
00783 #define IDirect3DViewport2_NextLight(p,a,b,c)           (p)->NextLight(a,b,c)
00784 /*** IDirect3DViewport2 methods ***/
00785 #define IDirect3DViewport2_GetViewport2(p,a) (p)->GetViewport2(a)
00786 #define IDirect3DViewport2_SetViewport2(p,a) (p)->SetViewport2(a)
00787 #endif
00788 
00789 /*****************************************************************************
00790  * IDirect3DViewport3 interface
00791  */
00792 #define INTERFACE IDirect3DViewport3
00793 DECLARE_INTERFACE_(IDirect3DViewport3,IDirect3DViewport2)
00794 {
00795     /*** IUnknown methods ***/
00796     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
00797     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
00798     STDMETHOD_(ULONG,Release)(THIS) PURE;
00799     /*** IDirect3DViewport methods ***/
00800     STDMETHOD(Initialize)(THIS_ LPDIRECT3D lpDirect3D) PURE;
00801     STDMETHOD(GetViewport)(THIS_ LPD3DVIEWPORT lpData) PURE;
00802     STDMETHOD(SetViewport)(THIS_ LPD3DVIEWPORT lpData) PURE;
00803     STDMETHOD(TransformVertices)(THIS_ DWORD dwVertexCount, LPD3DTRANSFORMDATA lpData, DWORD dwFlags, LPDWORD lpOffScreen) PURE;
00804     STDMETHOD(LightElements)(THIS_ DWORD dwElementCount, LPD3DLIGHTDATA lpData) PURE;
00805     STDMETHOD(SetBackground)(THIS_ D3DMATERIALHANDLE hMat) PURE;
00806     STDMETHOD(GetBackground)(THIS_ LPD3DMATERIALHANDLE lphMat, LPBOOL lpValid) PURE;
00807     STDMETHOD(SetBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE lpDDSurface) PURE;
00808     STDMETHOD(GetBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE *lplpDDSurface, LPBOOL lpValid) PURE;
00809     STDMETHOD(Clear)(THIS_ DWORD dwCount, LPD3DRECT lpRects, DWORD dwFlags) PURE;
00810     STDMETHOD(AddLight)(THIS_ LPDIRECT3DLIGHT lpDirect3DLight) PURE;
00811     STDMETHOD(DeleteLight)(THIS_ LPDIRECT3DLIGHT lpDirect3DLight) PURE;
00812     STDMETHOD(NextLight)(THIS_ LPDIRECT3DLIGHT lpDirect3DLight, LPDIRECT3DLIGHT *lplpDirect3DLight, DWORD dwFlags) PURE;
00813     /*** IDirect3DViewport2 methods ***/
00814     STDMETHOD(GetViewport2)(THIS_ LPD3DVIEWPORT2 lpData) PURE;
00815     STDMETHOD(SetViewport2)(THIS_ LPD3DVIEWPORT2 lpData) PURE;
00816     /*** IDirect3DViewport3 methods ***/
00817     STDMETHOD(SetBackgroundDepth2)(THIS_ LPDIRECTDRAWSURFACE4 lpDDS) PURE;
00818     STDMETHOD(GetBackgroundDepth2)(THIS_ LPDIRECTDRAWSURFACE4 *lplpDDS,LPBOOL lpValid) PURE;
00819     STDMETHOD(Clear2)(THIS_ DWORD dwCount,LPD3DRECT lpRects,DWORD dwFlags,DWORD dwColor,D3DVALUE dvZ,DWORD dwStencil) PURE;
00820 };
00821 #undef INTERFACE
00822 
00823 #if !defined(__cplusplus) || defined(CINTERFACE)
00824 /*** IUnknown methods ***/
00825 #define IDirect3DViewport3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
00826 #define IDirect3DViewport3_AddRef(p)             (p)->lpVtbl->AddRef(p)
00827 #define IDirect3DViewport3_Release(p)            (p)->lpVtbl->Release(p)
00828 /*** IDirect3Viewport methods ***/
00829 #define IDirect3DViewport3_Initialize(p,a)              (p)->lpVtbl->Initialize(p,a)
00830 #define IDirect3DViewport3_GetViewport(p,a)             (p)->lpVtbl->GetViewport(p,a)
00831 #define IDirect3DViewport3_SetViewport(p,a)             (p)->lpVtbl->SetViewport(p,a)
00832 #define IDirect3DViewport3_TransformVertices(p,a,b,c,d) (p)->lpVtbl->TransformVertices(p,a,b,c,d)
00833 #define IDirect3DViewport3_LightElements(p,a,b)         (p)->lpVtbl->LightElements(p,a,b)
00834 #define IDirect3DViewport3_SetBackground(p,a)           (p)->lpVtbl->SetBackground(p,a)
00835 #define IDirect3DViewport3_GetBackground(p,a,b)         (p)->lpVtbl->GetBackground(p,a,b)
00836 #define IDirect3DViewport3_SetBackgroundDepth(p,a)      (p)->lpVtbl->SetBackgroundDepth(p,a)
00837 #define IDirect3DViewport3_GetBackgroundDepth(p,a,b)    (p)->lpVtbl->GetBackgroundDepth(p,a,b)
00838 #define IDirect3DViewport3_Clear(p,a,b,c)               (p)->lpVtbl->Clear(p,a,b,c)
00839 #define IDirect3DViewport3_AddLight(p,a)                (p)->lpVtbl->AddLight(p,a)
00840 #define IDirect3DViewport3_DeleteLight(p,a)             (p)->lpVtbl->DeleteLight(p,a)
00841 #define IDirect3DViewport3_NextLight(p,a,b,c)           (p)->lpVtbl->NextLight(p,a,b,c)
00842 /*** IDirect3DViewport2 methods ***/
00843 #define IDirect3DViewport3_GetViewport2(p,a) (p)->lpVtbl->GetViewport2(p,a)
00844 #define IDirect3DViewport3_SetViewport2(p,a) (p)->lpVtbl->SetViewport2(p,a)
00845 /*** IDirect3DViewport3 methods ***/
00846 #define IDirect3DViewport3_SetBackgroundDepth2(p,a)   (p)->lpVtbl->SetBackgroundDepth2(p,a)
00847 #define IDirect3DViewport3_GetBackgroundDepth2(p,a,b) (p)->lpVtbl->GetBackgroundDepth2(p,a,b)
00848 #define IDirect3DViewport3_Clear2(p,a,b,c,d,e,f)      (p)->lpVtbl->Clear2(p,a,b,c,d,e,f)
00849 #else
00850 /*** IUnknown methods ***/
00851 #define IDirect3DViewport3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
00852 #define IDirect3DViewport3_AddRef(p)             (p)->AddRef()
00853 #define IDirect3DViewport3_Release(p)            (p)->Release()
00854 /*** IDirect3Viewport methods ***/
00855 #define IDirect3DViewport3_Initialize(p,a)              (p)->Initialize(a)
00856 #define IDirect3DViewport3_GetViewport(p,a)             (p)->GetViewport(a)
00857 #define IDirect3DViewport3_SetViewport(p,a)             (p)->SetViewport(a)
00858 #define IDirect3DViewport3_TransformVertices(p,a,b,c,d) (p)->TransformVertices(a,b,c,d)
00859 #define IDirect3DViewport3_LightElements(p,a,b)         (p)->LightElements(a,b)
00860 #define IDirect3DViewport3_SetBackground(p,a)           (p)->SetBackground(a)
00861 #define IDirect3DViewport3_GetBackground(p,a,b)         (p)->GetBackground(a,b)
00862 #define IDirect3DViewport3_SetBackgroundDepth(p,a)      (p)->SetBackgroundDepth(a)
00863 #define IDirect3DViewport3_GetBackgroundDepth(p,a,b)    (p)->GetBackgroundDepth(a,b)
00864 #define IDirect3DViewport3_Clear(p,a,b,c)               (p)->Clear(a,b,c)
00865 #define IDirect3DViewport3_AddLight(p,a)                (p)->AddLight(a)
00866 #define IDirect3DViewport3_DeleteLight(p,a)             (p)->DeleteLight(a)
00867 #define IDirect3DViewport3_NextLight(p,a,b,c)           (p)->NextLight(a,b,c)
00868 /*** IDirect3DViewport2 methods ***/
00869 #define IDirect3DViewport3_GetViewport2(p,a) (p)->GetViewport2(a)
00870 #define IDirect3DViewport3_SetViewport2(p,a) (p)->SetViewport2(a)
00871 /*** IDirect3DViewport3 methods ***/
00872 #define IDirect3DViewport3_SetBackgroundDepth2(p,a)   (p)->SetBackgroundDepth2(a)
00873 #define IDirect3DViewport3_GetBackgroundDepth2(p,a,b) (p)->GetBackgroundDepth2(a,b)
00874 #define IDirect3DViewport3_Clear2(p,a,b,c,d,e,f)      (p)->Clear2(a,b,c,d,e,f)
00875 #endif
00876 
00877 
00878 
00879 /*****************************************************************************
00880  * IDirect3DExecuteBuffer interface
00881  */
00882 #define INTERFACE IDirect3DExecuteBuffer
00883 DECLARE_INTERFACE_(IDirect3DExecuteBuffer,IUnknown)
00884 {
00885     /*** IUnknown methods ***/
00886     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
00887     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
00888     STDMETHOD_(ULONG,Release)(THIS) PURE;
00889     /*** IDirect3DExecuteBuffer methods ***/
00890     STDMETHOD(Initialize)(THIS_ LPDIRECT3DDEVICE lpDirect3DDevice, LPD3DEXECUTEBUFFERDESC lpDesc) PURE;
00891     STDMETHOD(Lock)(THIS_ LPD3DEXECUTEBUFFERDESC lpDesc) PURE;
00892     STDMETHOD(Unlock)(THIS) PURE;
00893     STDMETHOD(SetExecuteData)(THIS_ LPD3DEXECUTEDATA lpData) PURE;
00894     STDMETHOD(GetExecuteData)(THIS_ LPD3DEXECUTEDATA lpData) PURE;
00895     STDMETHOD(Validate)(THIS_ LPDWORD lpdwOffset, LPD3DVALIDATECALLBACK lpFunc, LPVOID lpUserArg, DWORD dwReserved) PURE;
00896     STDMETHOD(Optimize)(THIS_ DWORD dwDummy) PURE;
00897 };
00898 #undef INTERFACE
00899 
00900 #if !defined(__cplusplus) || defined(CINTERFACE)
00901 /*** IUnknown methods ***/
00902 #define IDirect3DExecuteBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
00903 #define IDirect3DExecuteBuffer_AddRef(p)             (p)->lpVtbl->AddRef(p)
00904 #define IDirect3DExecuteBuffer_Release(p)            (p)->lpVtbl->Release(p)
00905 /*** IDirect3DExecuteBuffer methods ***/
00906 #define IDirect3DExecuteBuffer_Initialize(p,a,b)   (p)->lpVtbl->Initialize(p,a,b)
00907 #define IDirect3DExecuteBuffer_Lock(p,a)           (p)->lpVtbl->Lock(p,a)
00908 #define IDirect3DExecuteBuffer_Unlock(p)           (p)->lpVtbl->Unlock(p)
00909 #define IDirect3DExecuteBuffer_SetExecuteData(p,a) (p)->lpVtbl->SetExecuteData(p,a)
00910 #define IDirect3DExecuteBuffer_GetExecuteData(p,a) (p)->lpVtbl->GetExecuteData(p,a)
00911 #define IDirect3DExecuteBuffer_Validate(p,a,b,c,d) (p)->lpVtbl->Validate(p,a,b,c,d)
00912 #define IDirect3DExecuteBuffer_Optimize(p,a)       (p)->lpVtbl->Optimize(p,a)
00913 #else
00914 /*** IUnknown methods ***/
00915 #define IDirect3DExecuteBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
00916 #define IDirect3DExecuteBuffer_AddRef(p)             (p)->AddRef()
00917 #define IDirect3DExecuteBuffer_Release(p)            (p)->Release()
00918 /*** IDirect3DExecuteBuffer methods ***/
00919 #define IDirect3DExecuteBuffer_Initialize(p,a,b)   (p)->Initialize(a,b)
00920 #define IDirect3DExecuteBuffer_Lock(p,a)           (p)->Lock(a)
00921 #define IDirect3DExecuteBuffer_Unlock(p)           (p)->Unlock()
00922 #define IDirect3DExecuteBuffer_SetExecuteData(p,a) (p)->SetExecuteData(a)
00923 #define IDirect3DExecuteBuffer_GetExecuteData(p,a) (p)->GetExecuteData(a)
00924 #define IDirect3DExecuteBuffer_Validate(p,a,b,c,d) (p)->Validate(a,b,c,d)
00925 #define IDirect3DExecuteBuffer_Optimize(p,a)       (p)->Optimize(a)
00926 #endif
00927 
00928 
00929 /*****************************************************************************
00930  * IDirect3DDevice interface
00931  */
00932 #define INTERFACE IDirect3DDevice
00933 DECLARE_INTERFACE_(IDirect3DDevice,IUnknown)
00934 {
00935     /*** IUnknown methods ***/
00936     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
00937     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
00938     STDMETHOD_(ULONG,Release)(THIS) PURE;
00939     /*** IDirect3DDevice methods ***/
00940     STDMETHOD(Initialize)(THIS_ LPDIRECT3D lpDirect3D, LPGUID lpGUID, LPD3DDEVICEDESC lpD3DDVDesc) PURE;
00941     STDMETHOD(GetCaps)(THIS_ LPD3DDEVICEDESC lpD3DHWDevDesc, LPD3DDEVICEDESC lpD3DHELDevDesc) PURE;
00942     STDMETHOD(SwapTextureHandles)(THIS_ LPDIRECT3DTEXTURE lpD3Dtex1, LPDIRECT3DTEXTURE lpD3DTex2) PURE;
00943     STDMETHOD(CreateExecuteBuffer)(THIS_ LPD3DEXECUTEBUFFERDESC lpDesc, LPDIRECT3DEXECUTEBUFFER *lplpDirect3DExecuteBuffer, IUnknown *pUnkOuter) PURE;
00944     STDMETHOD(GetStats)(THIS_ LPD3DSTATS lpD3DStats) PURE;
00945     STDMETHOD(Execute)(THIS_ LPDIRECT3DEXECUTEBUFFER lpDirect3DExecuteBuffer, LPDIRECT3DVIEWPORT lpDirect3DViewport, DWORD dwFlags) PURE;
00946     STDMETHOD(AddViewport)(THIS_ LPDIRECT3DVIEWPORT lpDirect3DViewport) PURE;
00947     STDMETHOD(DeleteViewport)(THIS_ LPDIRECT3DVIEWPORT lpDirect3DViewport) PURE;
00948     STDMETHOD(NextViewport)(THIS_ LPDIRECT3DVIEWPORT lpDirect3DViewport, LPDIRECT3DVIEWPORT *lplpDirect3DViewport, DWORD dwFlags) PURE;
00949     STDMETHOD(Pick)(THIS_ LPDIRECT3DEXECUTEBUFFER lpDirect3DExecuteBuffer, LPDIRECT3DVIEWPORT lpDirect3DViewport, DWORD dwFlags, LPD3DRECT lpRect) PURE;
00950     STDMETHOD(GetPickRecords)(THIS_ LPDWORD lpCount, LPD3DPICKRECORD lpD3DPickRec) PURE;
00951     STDMETHOD(EnumTextureFormats)(THIS_ LPD3DENUMTEXTUREFORMATSCALLBACK lpD3DEnumTextureProc, LPVOID lpArg) PURE;
00952     STDMETHOD(CreateMatrix)(THIS_ LPD3DMATRIXHANDLE lpD3DMatHandle) PURE;
00953     STDMETHOD(SetMatrix)(THIS_ D3DMATRIXHANDLE D3DMatHandle, LPD3DMATRIX lpD3DMatrix) PURE;
00954     STDMETHOD(GetMatrix)(THIS_ D3DMATRIXHANDLE D3DMatHandle, LPD3DMATRIX lpD3DMatrix) PURE;
00955     STDMETHOD(DeleteMatrix)(THIS_ D3DMATRIXHANDLE D3DMatHandle) PURE;
00956     STDMETHOD(BeginScene)(THIS) PURE;
00957     STDMETHOD(EndScene)(THIS) PURE;
00958     STDMETHOD(GetDirect3D)(THIS_ LPDIRECT3D *lplpDirect3D) PURE;
00959 };
00960 #undef INTERFACE
00961 
00962 #if !defined(__cplusplus) || defined(CINTERFACE)
00963 /*** IUnknown methods ***/
00964 #define IDirect3DDevice_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
00965 #define IDirect3DDevice_AddRef(p)             (p)->lpVtbl->AddRef(p)
00966 #define IDirect3DDevice_Release(p)            (p)->lpVtbl->Release(p)
00967 /*** IDirect3DDevice methods ***/
00968 #define IDirect3DDevice_Initialize(p,a,b,c)          (p)->lpVtbl->Initialize(p,a,b,c)
00969 #define IDirect3DDevice_GetCaps(p,a,b)               (p)->lpVtbl->GetCaps(p,a,b)
00970 #define IDirect3DDevice_SwapTextureHandles(p,a,b)    (p)->lpVtbl->SwapTextureHandles(p,a,b)
00971 #define IDirect3DDevice_CreateExecuteBuffer(p,a,b,c) (p)->lpVtbl->CreateExecuteBuffer(p,a,b,c)
00972 #define IDirect3DDevice_GetStats(p,a)                (p)->lpVtbl->GetStats(p,a)
00973 #define IDirect3DDevice_Execute(p,a,b,c)             (p)->lpVtbl->Execute(p,a,b,c)
00974 #define IDirect3DDevice_AddViewport(p,a)             (p)->lpVtbl->AddViewport(p,a)
00975 #define IDirect3DDevice_DeleteViewport(p,a)          (p)->lpVtbl->DeleteViewport(p,a)
00976 #define IDirect3DDevice_NextViewport(p,a,b,c)        (p)->lpVtbl->NextViewport(p,a,b,c)
00977 #define IDirect3DDevice_Pick(p,a,b,c,d)              (p)->lpVtbl->Pick(p,a,b,c,d)
00978 #define IDirect3DDevice_GetPickRecords(p,a,b)        (p)->lpVtbl->GetPickRecords(p,a,b)
00979 #define IDirect3DDevice_EnumTextureFormats(p,a,b)    (p)->lpVtbl->EnumTextureFormats(p,a,b)
00980 #define IDirect3DDevice_CreateMatrix(p,a)            (p)->lpVtbl->CreateMatrix(p,a)
00981 #define IDirect3DDevice_SetMatrix(p,a,b)             (p)->lpVtbl->SetMatrix(p,a,b)
00982 #define IDirect3DDevice_GetMatrix(p,a,b)             (p)->lpVtbl->GetMatrix(p,a,b)
00983 #define IDirect3DDevice_DeleteMatrix(p,a)            (p)->lpVtbl->DeleteMatrix(p,a)
00984 #define IDirect3DDevice_BeginScene(p)                (p)->lpVtbl->BeginScene(p)
00985 #define IDirect3DDevice_EndScene(p)                  (p)->lpVtbl->EndScene(p)
00986 #define IDirect3DDevice_GetDirect3D(p,a)             (p)->lpVtbl->GetDirect3D(p,a)
00987 #else
00988 /*** IUnknown methods ***/
00989 #define IDirect3DDevice_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
00990 #define IDirect3DDevice_AddRef(p)             (p)->AddRef()
00991 #define IDirect3DDevice_Release(p)            (p)->Release()
00992 /*** IDirect3DDevice methods ***/
00993 #define IDirect3DDevice_Initialize(p,a,b,c)          (p)->Initialize(a,b,c)
00994 #define IDirect3DDevice_GetCaps(p,a,b)               (p)->GetCaps(a,b)
00995 #define IDirect3DDevice_SwapTextureHandles(p,a,b)    (p)->SwapTextureHandles(a,b)
00996 #define IDirect3DDevice_CreateExecuteBuffer(p,a,b,c) (p)->CreateExecuteBuffer(a,b,c)
00997 #define IDirect3DDevice_GetStats(p,a)                (p)->GetStats(a)
00998 #define IDirect3DDevice_Execute(p,a,b,c)             (p)->Execute(a,b,c)
00999 #define IDirect3DDevice_AddViewport(p,a)             (p)->AddViewport(a)
01000 #define IDirect3DDevice_DeleteViewport(p,a)          (p)->DeleteViewport(a)
01001 #define IDirect3DDevice_NextViewport(p,a,b,c)        (p)->NextViewport(a,b,c)
01002 #define IDirect3DDevice_Pick(p,a,b,c,d)              (p)->Pick(a,b,c,d)
01003 #define IDirect3DDevice_GetPickRecords(p,a,b)        (p)->GetPickRecords(a,b)
01004 #define IDirect3DDevice_EnumTextureFormats(p,a,b)    (p)->EnumTextureFormats(a,b)
01005 #define IDirect3DDevice_CreateMatrix(p,a)            (p)->CreateMatrix(a)
01006 #define IDirect3DDevice_SetMatrix(p,a,b)             (p)->SetMatrix(a,b)
01007 #define IDirect3DDevice_GetMatrix(p,a,b)             (p)->GetMatrix(a,b)
01008 #define IDirect3DDevice_DeleteMatrix(p,a)            (p)->DeleteMatrix(a)
01009 #define IDirect3DDevice_BeginScene(p)                (p)->BeginScene()
01010 #define IDirect3DDevice_EndScene(p)                  (p)->EndScene()
01011 #define IDirect3DDevice_GetDirect3D(p,a)             (p)->GetDirect3D(a)
01012 #endif
01013 
01014 
01015 /*****************************************************************************
01016  * IDirect3DDevice2 interface
01017  */
01018 #define INTERFACE IDirect3DDevice2
01019 DECLARE_INTERFACE_(IDirect3DDevice2,IUnknown)
01020 {
01021     /*** IUnknown methods ***/
01022     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
01023     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
01024     STDMETHOD_(ULONG,Release)(THIS) PURE;
01025     /*** IDirect3DDevice2 methods ***/
01026     STDMETHOD(GetCaps)(THIS_ LPD3DDEVICEDESC lpD3DHWDevDesc, LPD3DDEVICEDESC lpD3DHELDevDesc) PURE;
01027     STDMETHOD(SwapTextureHandles)(THIS_ LPDIRECT3DTEXTURE2 lpD3DTex1, LPDIRECT3DTEXTURE2 lpD3DTex2) PURE;
01028     STDMETHOD(GetStats)(THIS_ LPD3DSTATS lpD3DStats) PURE;
01029     STDMETHOD(AddViewport)(THIS_ LPDIRECT3DVIEWPORT2 lpDirect3DViewport2) PURE;
01030     STDMETHOD(DeleteViewport)(THIS_ LPDIRECT3DVIEWPORT2 lpDirect3DViewport2) PURE;
01031     STDMETHOD(NextViewport)(THIS_ LPDIRECT3DVIEWPORT2 lpDirect3DViewport2, LPDIRECT3DVIEWPORT2 *lplpDirect3DViewport2, DWORD dwFlags) PURE;
01032     STDMETHOD(EnumTextureFormats)(THIS_ LPD3DENUMTEXTUREFORMATSCALLBACK lpD3DEnumTextureProc, LPVOID lpArg) PURE;
01033     STDMETHOD(BeginScene)(THIS) PURE;
01034     STDMETHOD(EndScene)(THIS) PURE;
01035     STDMETHOD(GetDirect3D)(THIS_ LPDIRECT3D2 *lplpDirect3D2) PURE;
01036     /*** DrawPrimitive API ***/
01037     STDMETHOD(SetCurrentViewport)(THIS_ LPDIRECT3DVIEWPORT2 lpDirect3DViewport2) PURE;
01038     STDMETHOD(GetCurrentViewport)(THIS_ LPDIRECT3DVIEWPORT2 *lplpDirect3DViewport2) PURE;
01039     STDMETHOD(SetRenderTarget)(THIS_ LPDIRECTDRAWSURFACE lpNewRenderTarget, DWORD dwFlags) PURE;
01040     STDMETHOD(GetRenderTarget)(THIS_ LPDIRECTDRAWSURFACE *lplpRenderTarget) PURE;
01041     STDMETHOD(Begin)(THIS_ D3DPRIMITIVETYPE d3dpt,D3DVERTEXTYPE dwVertexTypeDesc,DWORD dwFlags) PURE;
01042     STDMETHOD(BeginIndexed)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType, D3DVERTEXTYPE d3dvtVertexType, LPVOID lpvVertices, DWORD dwNumVertices, DWORD dwFlags) PURE;
01043     STDMETHOD(Vertex)(THIS_ LPVOID lpVertexType) PURE;
01044     STDMETHOD(Index)(THIS_ WORD wVertexIndex) PURE;
01045     STDMETHOD(End)(THIS_ DWORD dwFlags) PURE;
01046     STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, LPDWORD lpdwRenderState) PURE;
01047     STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, DWORD dwRenderState) PURE;
01048     STDMETHOD(GetLightState)(THIS_ D3DLIGHTSTATETYPE dwLightStateType, LPDWORD lpdwLightState) PURE;
01049     STDMETHOD(SetLightState)(THIS_ D3DLIGHTSTATETYPE dwLightStateType, DWORD dwLightState) PURE;
01050     STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix) PURE;
01051     STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix) PURE;
01052     STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix) PURE;
01053     STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType, D3DVERTEXTYPE d3dvtVertexType, LPVOID lpvVertices, DWORD dwVertexCount, DWORD dwFlags) PURE;
01054     STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType, D3DVERTEXTYPE d3dvtVertexType, LPVOID lpvVertices, DWORD dwVertexCount, LPWORD dwIndices, DWORD dwIndexCount, DWORD dwFlags) PURE;
01055     STDMETHOD(SetClipStatus)(THIS_ LPD3DCLIPSTATUS lpD3DClipStatus) PURE;
01056     STDMETHOD(GetClipStatus)(THIS_ LPD3DCLIPSTATUS lpD3DClipStatus) PURE;
01057 };
01058 #undef INTERFACE
01059 
01060 #if !defined(__cplusplus) || defined(CINTERFACE)
01061 /*** IUnknown methods ***/
01062 #define IDirect3DDevice2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
01063 #define IDirect3DDevice2_AddRef(p)             (p)->lpVtbl->AddRef(p)
01064 #define IDirect3DDevice2_Release(p)            (p)->lpVtbl->Release(p)
01065 /*** IDirect3DDevice2 methods ***/
01066 #define IDirect3DDevice2_GetCaps(p,a,b)                        (p)->lpVtbl->GetCaps(p,a,b)
01067 #define IDirect3DDevice2_SwapTextureHandles(p,a,b)             (p)->lpVtbl->SwapTextureHandles(p,a,b)
01068 #define IDirect3DDevice2_GetStats(p,a)                         (p)->lpVtbl->GetStats(p,a)
01069 #define IDirect3DDevice2_AddViewport(p,a)                      (p)->lpVtbl->AddViewport(p,a)
01070 #define IDirect3DDevice2_DeleteViewport(p,a)                   (p)->lpVtbl->DeleteViewport(p,a)
01071 #define IDirect3DDevice2_NextViewport(p,a,b,c)                 (p)->lpVtbl->NextViewport(p,a,b,c)
01072 #define IDirect3DDevice2_EnumTextureFormats(p,a,b)             (p)->lpVtbl->EnumTextureFormats(p,a,b)
01073 #define IDirect3DDevice2_BeginScene(p)                         (p)->lpVtbl->BeginScene(p)
01074 #define IDirect3DDevice2_EndScene(p)                           (p)->lpVtbl->EndScene(p)
01075 #define IDirect3DDevice2_GetDirect3D(p,a)                      (p)->lpVtbl->GetDirect3D(p,a)
01076 #define IDirect3DDevice2_SetCurrentViewport(p,a)               (p)->lpVtbl->SetCurrentViewport(p,a)
01077 #define IDirect3DDevice2_GetCurrentViewport(p,a)               (p)->lpVtbl->GetCurrentViewport(p,a)
01078 #define IDirect3DDevice2_SetRenderTarget(p,a,b)                (p)->lpVtbl->SetRenderTarget(p,a,b)
01079 #define IDirect3DDevice2_GetRenderTarget(p,a)                  (p)->lpVtbl->GetRenderTarget(p,a)
01080 #define IDirect3DDevice2_Begin(p,a,b,c)                        (p)->lpVtbl->Begin(p,a,b,c)
01081 #define IDirect3DDevice2_BeginIndexed(p,a,b,c,d,e)             (p)->lpVtbl->BeginIndexed(p,a,b,c,d,e)
01082 #define IDirect3DDevice2_Vertex(p,a)                           (p)->lpVtbl->Vertex(p,a)
01083 #define IDirect3DDevice2_Index(p,a)                            (p)->lpVtbl->Index(p,a)
01084 #define IDirect3DDevice2_End(p,a)                              (p)->lpVtbl->End(p,a)
01085 #define IDirect3DDevice2_GetRenderState(p,a,b)                 (p)->lpVtbl->GetRenderState(p,a,b)
01086 #define IDirect3DDevice2_SetRenderState(p,a,b)                 (p)->lpVtbl->SetRenderState(p,a,b)
01087 #define IDirect3DDevice2_GetLightState(p,a,b)                  (p)->lpVtbl->GetLightState(p,a,b)
01088 #define IDirect3DDevice2_SetLightState(p,a,b)                  (p)->lpVtbl->SetLightState(p,a,b)
01089 #define IDirect3DDevice2_SetTransform(p,a,b)                   (p)->lpVtbl->SetTransform(p,a,b)
01090 #define IDirect3DDevice2_GetTransform(p,a,b)                   (p)->lpVtbl->GetTransform(p,a,b)
01091 #define IDirect3DDevice2_MultiplyTransform(p,a,b)              (p)->lpVtbl->MultiplyTransform(p,a,b)
01092 #define IDirect3DDevice2_DrawPrimitive(p,a,b,c,d,e)            (p)->lpVtbl->DrawPrimitive(p,a,b,c,d,e)
01093 #define IDirect3DDevice2_DrawIndexedPrimitive(p,a,b,c,d,e,f,g) (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f,g)
01094 #define IDirect3DDevice2_SetClipStatus(p,a)                    (p)->lpVtbl->SetClipStatus(p,a)
01095 #define IDirect3DDevice2_GetClipStatus(p,a)                    (p)->lpVtbl->GetClipStatus(p,a)
01096 #else
01097 /*** IUnknown methods ***/
01098 #define IDirect3DDevice2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
01099 #define IDirect3DDevice2_AddRef(p)             (p)->AddRef()
01100 #define IDirect3DDevice2_Release(p)            (p)->Release()
01101 /*** IDirect3DDevice2 methods ***/
01102 #define IDirect3DDevice2_GetCaps(p,a,b)                        (p)->GetCaps(a,b)
01103 #define IDirect3DDevice2_SwapTextureHandles(p,a,b)             (p)->SwapTextureHandles(a,b)
01104 #define IDirect3DDevice2_GetStats(p,a)                         (p)->GetStats(a)
01105 #define IDirect3DDevice2_AddViewport(p,a)                      (p)->AddViewport(a)
01106 #define IDirect3DDevice2_DeleteViewport(p,a)                   (p)->DeleteViewport(a)
01107 #define IDirect3DDevice2_NextViewport(p,a,b,c)                 (p)->NextViewport(a,b,c)
01108 #define IDirect3DDevice2_EnumTextureFormats(p,a,b)             (p)->EnumTextureFormats(a,b)
01109 #define IDirect3DDevice2_BeginScene(p)                         (p)->BeginScene()
01110 #define IDirect3DDevice2_EndScene(p)                           (p)->EndScene()
01111 #define IDirect3DDevice2_GetDirect3D(p,a)                      (p)->GetDirect3D(a)
01112 #define IDirect3DDevice2_SetCurrentViewport(p,a)               (p)->SetCurrentViewport(a)
01113 #define IDirect3DDevice2_GetCurrentViewport(p,a)               (p)->GetCurrentViewport(a)
01114 #define IDirect3DDevice2_SetRenderTarget(p,a,b)                (p)->SetRenderTarget(a,b)
01115 #define IDirect3DDevice2_GetRenderTarget(p,a)                  (p)->GetRenderTarget(a)
01116 #define IDirect3DDevice2_Begin(p,a,b,c)                        (p)->Begin(a,b,c)
01117 #define IDirect3DDevice2_BeginIndexed(p,a,b,c,d,e)             (p)->BeginIndexed(a,b,c,d,e)
01118 #define IDirect3DDevice2_Vertex(p,a)                           (p)->Vertex(a)
01119 #define IDirect3DDevice2_Index(p,a)                            (p)->Index(a)
01120 #define IDirect3DDevice2_End(p,a)                              (p)->End(a)
01121 #define IDirect3DDevice2_GetRenderState(p,a,b)                 (p)->GetRenderState(a,b)
01122 #define IDirect3DDevice2_SetRenderState(p,a,b)                 (p)->SetRenderState(a,b)
01123 #define IDirect3DDevice2_GetLightState(p,a,b)                  (p)->GetLightState(a,b)
01124 #define IDirect3DDevice2_SetLightState(p,a,b)                  (p)->SetLightState(a,b)
01125 #define IDirect3DDevice2_SetTransform(p,a,b)                   (p)->SetTransform(a,b)
01126 #define IDirect3DDevice2_GetTransform(p,a,b)                   (p)->GetTransform(a,b)
01127 #define IDirect3DDevice2_MultiplyTransform(p,a,b)              (p)->MultiplyTransform(a,b)
01128 #define IDirect3DDevice2_DrawPrimitive(p,a,b,c,d,e)            (p)->DrawPrimitive(a,b,c,d,e)
01129 #define IDirect3DDevice2_DrawIndexedPrimitive(p,a,b,c,d,e,f,g) (p)->DrawIndexedPrimitive(a,b,c,d,e,f,g)
01130 #define IDirect3DDevice2_SetClipStatus(p,a)                    (p)->SetClipStatus(a)
01131 #define IDirect3DDevice2_GetClipStatus(p,a)                    (p)->GetClipStatus(a)
01132 #endif
01133 
01134 /*****************************************************************************
01135  * IDirect3DDevice3 interface
01136  */
01137 #define INTERFACE IDirect3DDevice3
01138 DECLARE_INTERFACE_(IDirect3DDevice3,IUnknown)
01139 {
01140     /*** IUnknown methods ***/
01141     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
01142     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
01143     STDMETHOD_(ULONG,Release)(THIS) PURE;
01144     /*** IDirect3DDevice3 methods ***/
01145     STDMETHOD(GetCaps)(THIS_ LPD3DDEVICEDESC lpD3DHWDevDesc, LPD3DDEVICEDESC lpD3DHELDevDesc) PURE;
01146     STDMETHOD(GetStats)(THIS_ LPD3DSTATS lpD3DStats) PURE;
01147     STDMETHOD(AddViewport)(THIS_ LPDIRECT3DVIEWPORT3 lpDirect3DViewport3) PURE;
01148     STDMETHOD(DeleteViewport)(THIS_ LPDIRECT3DVIEWPORT3 lpDirect3DViewport3) PURE;
01149     STDMETHOD(NextViewport)(THIS_ LPDIRECT3DVIEWPORT3 lpDirect3DViewport3, LPDIRECT3DVIEWPORT3 *lplpDirect3DViewport3, DWORD dwFlags) PURE;
01150     STDMETHOD(EnumTextureFormats)(THIS_ LPD3DENUMPIXELFORMATSCALLBACK lpD3DEnumPixelProc, LPVOID lpArg) PURE;
01151     STDMETHOD(BeginScene)(THIS) PURE;
01152     STDMETHOD(EndScene)(THIS) PURE;
01153     STDMETHOD(GetDirect3D)(THIS_ LPDIRECT3D3 *lplpDirect3D3) PURE;
01154     /*** DrawPrimitive API ***/
01155     STDMETHOD(SetCurrentViewport)(THIS_ LPDIRECT3DVIEWPORT3 lpDirect3DViewport3) PURE;
01156     STDMETHOD(GetCurrentViewport)(THIS_ LPDIRECT3DVIEWPORT3 *lplpDirect3DViewport3) PURE;
01157     STDMETHOD(SetRenderTarget)(THIS_ LPDIRECTDRAWSURFACE4 lpNewRenderTarget, DWORD dwFlags) PURE;
01158     STDMETHOD(GetRenderTarget)(THIS_ LPDIRECTDRAWSURFACE4 *lplpRenderTarget) PURE;
01159     STDMETHOD(Begin)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,DWORD dwVertexTypeDesc, DWORD dwFlags) PURE;
01160     STDMETHOD(BeginIndexed)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,DWORD d3dvtVertexType, LPVOID lpvVertices, DWORD dwNumVertices, DWORD dwFlags) PURE;
01161     STDMETHOD(Vertex)(THIS_ LPVOID lpVertexType) PURE;
01162     STDMETHOD(Index)(THIS_ WORD wVertexIndex) PURE;
01163     STDMETHOD(End)(THIS_ DWORD dwFlags) PURE;
01164     STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, LPDWORD lpdwRenderState) PURE;
01165     STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, DWORD dwRenderState) PURE;
01166     STDMETHOD(GetLightState)(THIS_ D3DLIGHTSTATETYPE dwLightStateType, LPDWORD lpdwLightState) PURE;
01167     STDMETHOD(SetLightState)(THIS_ D3DLIGHTSTATETYPE dwLightStateType, DWORD dwLightState) PURE;
01168     STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix) PURE;
01169     STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix) PURE;
01170     STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix) PURE;
01171     STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType, DWORD d3dvtVertexType, LPVOID lpvVertices, DWORD dwVertexCount, DWORD dwFlags) PURE;
01172     STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType, DWORD d3dvtVertexType, LPVOID lpvVertices, DWORD dwVertexCount, LPWORD dwIndices, DWORD dwIndexCount, DWORD dwFlags) PURE;
01173     STDMETHOD(SetClipStatus)(THIS_ LPD3DCLIPSTATUS lpD3DClipStatus) PURE;
01174     STDMETHOD(GetClipStatus)(THIS_ LPD3DCLIPSTATUS lpD3DClipStatus) PURE;
01175     STDMETHOD(DrawPrimitiveStrided)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,DWORD dwVertexType,LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData,DWORD dwVertexCount,DWORD dwFlags) PURE;
01176     STDMETHOD(DrawIndexedPrimitiveStrided)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,DWORD dwVertexType,LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData,DWORD dwVertexCount,LPWORD lpIndex,DWORD dwIndexCount,DWORD dwFlags) PURE;
01177     STDMETHOD(DrawPrimitiveVB)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,LPDIRECT3DVERTEXBUFFER lpD3DVertexBuf,DWORD dwStartVertex,DWORD dwNumVertices,DWORD dwFlags) PURE;
01178     STDMETHOD(DrawIndexedPrimitiveVB)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,LPDIRECT3DVERTEXBUFFER lpD3DVertexBuf,LPWORD lpwIndices,DWORD dwIndexCount,DWORD dwFlags) PURE;
01179     STDMETHOD(ComputeSphereVisibility)(THIS_ LPD3DVECTOR lpCenters,LPD3DVALUE lpRadii,DWORD dwNumSpheres,DWORD dwFlags,LPDWORD lpdwReturnValues) PURE;
01180     STDMETHOD(GetTexture)(THIS_ DWORD dwStage,LPDIRECT3DTEXTURE2 *lplpTexture2) PURE;
01181     STDMETHOD(SetTexture)(THIS_ DWORD dwStage,LPDIRECT3DTEXTURE2 lpTexture2) PURE;
01182     STDMETHOD(GetTextureStageState)(THIS_ DWORD dwStage,D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,LPDWORD lpdwState) PURE;
01183     STDMETHOD(SetTextureStageState)(THIS_ DWORD dwStage,D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,DWORD dwState) PURE;
01184     STDMETHOD(ValidateDevice)(THIS_ LPDWORD lpdwPasses) PURE;
01185 };
01186 #undef INTERFACE
01187 
01188 #if !defined(__cplusplus) || defined(CINTERFACE)
01189 /*** IUnknown methods ***/
01190 #define IDirect3DDevice3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
01191 #define IDirect3DDevice3_AddRef(p)             (p)->lpVtbl->AddRef(p)
01192 #define IDirect3DDevice3_Release(p)            (p)->lpVtbl->Release(p)
01193 /*** IDirect3DDevice3 methods ***/
01194 #define IDirect3DDevice3_GetCaps(p,a,b)                        (p)->lpVtbl->GetCaps(p,a,b)
01195 #define IDirect3DDevice3_GetStats(p,a)                         (p)->lpVtbl->GetStats(p,a)
01196 #define IDirect3DDevice3_AddViewport(p,a)                      (p)->lpVtbl->AddViewport(p,a)
01197 #define IDirect3DDevice3_DeleteViewport(p,a)                   (p)->lpVtbl->DeleteViewport(p,a)
01198 #define IDirect3DDevice3_NextViewport(p,a,b,c)                 (p)->lpVtbl->NextViewport(p,a,b,c)
01199 #define IDirect3DDevice3_EnumTextureFormats(p,a,b)             (p)->lpVtbl->EnumTextureFormats(p,a,b)
01200 #define IDirect3DDevice3_BeginScene(p)                         (p)->lpVtbl->BeginScene(p)
01201 #define IDirect3DDevice3_EndScene(p)                           (p)->lpVtbl->EndScene(p)
01202 #define IDirect3DDevice3_GetDirect3D(p,a)                      (p)->lpVtbl->GetDirect3D(p,a)
01203 #define IDirect3DDevice3_SetCurrentViewport(p,a)               (p)->lpVtbl->SetCurrentViewport(p,a)
01204 #define IDirect3DDevice3_GetCurrentViewport(p,a)               (p)->lpVtbl->GetCurrentViewport(p,a)
01205 #define IDirect3DDevice3_SetRenderTarget(p,a,b)                (p)->lpVtbl->SetRenderTarget(p,a,b)
01206 #define IDirect3DDevice3_GetRenderTarget(p,a)                  (p)->lpVtbl->GetRenderTarget(p,a)
01207 #define IDirect3DDevice3_Begin(p,a,b,c)                        (p)->lpVtbl->Begin(p,a,b,c)
01208 #define IDirect3DDevice3_BeginIndexed(p,a,b,c,d,e)             (p)->lpVtbl->BeginIndexed(p,a,b,c,d,e)
01209 #define IDirect3DDevice3_Vertex(p,a)                           (p)->lpVtbl->Vertex(p,a)
01210 #define IDirect3DDevice3_Index(p,a)                            (p)->lpVtbl->Index(p,a)
01211 #define IDirect3DDevice3_End(p,a)                              (p)->lpVtbl->End(p,a)
01212 #define IDirect3DDevice3_GetRenderState(p,a,b)                 (p)->lpVtbl->GetRenderState(p,a,b)
01213 #define IDirect3DDevice3_SetRenderState(p,a,b)                 (p)->lpVtbl->SetRenderState(p,a,b)
01214 #define IDirect3DDevice3_GetLightState(p,a,b)                  (p)->lpVtbl->GetLightState(p,a,b)
01215 #define IDirect3DDevice3_SetLightState(p,a,b)                  (p)->lpVtbl->SetLightState(p,a,b)
01216 #define IDirect3DDevice3_SetTransform(p,a,b)                   (p)->lpVtbl->SetTransform(p,a,b)
01217 #define IDirect3DDevice3_GetTransform(p,a,b)                   (p)->lpVtbl->GetTransform(p,a,b)
01218 #define IDirect3DDevice3_MultiplyTransform(p,a,b)              (p)->lpVtbl->MultiplyTransform(p,a,b)
01219 #define IDirect3DDevice3_DrawPrimitive(p,a,b,c,d,e)            (p)->lpVtbl->DrawPrimitive(p,a,b,c,d,e)
01220 #define IDirect3DDevice3_DrawIndexedPrimitive(p,a,b,c,d,e,f,g) (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f,g)
01221 #define IDirect3DDevice3_SetClipStatus(p,a)                    (p)->lpVtbl->SetClipStatus(p,a)
01222 #define IDirect3DDevice3_GetClipStatus(p,a)                    (p)->lpVtbl->GetClipStatus(p,a)
01223 #define IDirect3DDevice3_DrawPrimitiveStrided(p,a,b,c,d,e)     (p)->lpVtbl->DrawPrimitiveStrided(p,a,b,c,d,e)
01224 #define IDirect3DDevice3_DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g) (p)->lpVtbl->DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g)
01225 #define IDirect3DDevice3_DrawPrimitiveVB(p,a,b,c,d,e)          (p)->lpVtbl->DrawPrimitiveVB(p,a,b,c,d,e)
01226 #define IDirect3DDevice3_DrawIndexedPrimitiveVB(p,a,b,c,d,e)   (p)->lpVtbl->DrawIndexedPrimitiveVB(p,a,b,c,d,e)
01227 #define IDirect3DDevice3_ComputeSphereVisibility(p,a,b,c,d,e)  (p)->lpVtbl->ComputeSphereVisibility(p,a,b,c,d,e)
01228 #define IDirect3DDevice3_GetTexture(p,a,b)                     (p)->lpVtbl->GetTexture(p,a,b)
01229 #define IDirect3DDevice3_SetTexture(p,a,b)                     (p)->lpVtbl->SetTexture(p,a,b)
01230 #define IDirect3DDevice3_GetTextureStageState(p,a,b,c)         (p)->lpVtbl->GetTextureStageState(p,a,b,c)
01231 #define IDirect3DDevice3_SetTextureStageState(p,a,b,c)         (p)->lpVtbl->SetTextureStageState(p,a,b,c)
01232 #define IDirect3DDevice3_ValidateDevice(p,a)                   (p)->lpVtbl->ValidateDevice(p,a)
01233 #else
01234 /*** IUnknown methods ***/
01235 #define IDirect3DDevice3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
01236 #define IDirect3DDevice3_AddRef(p)             (p)->AddRef()
01237 #define IDirect3DDevice3_Release(p)            (p)->Release()
01238 /*** IDirect3DDevice3 methods ***/
01239 #define IDirect3DDevice3_GetCaps(p,a,b)                        (p)->GetCaps(a,b)
01240 #define IDirect3DDevice3_GetStats(p,a)                         (p)->GetStats(a)
01241 #define IDirect3DDevice3_AddViewport(p,a)                      (p)->AddViewport(a)
01242 #define IDirect3DDevice3_DeleteViewport(p,a)                   (p)->DeleteViewport(a)
01243 #define IDirect3DDevice3_NextViewport(p,a,b,c)                 (p)->NextViewport(a,b,c)
01244 #define IDirect3DDevice3_EnumTextureFormats(p,a,b)             (p)->EnumTextureFormats(a,b)
01245 #define IDirect3DDevice3_BeginScene(p)                         (p)->BeginScene()
01246 #define IDirect3DDevice3_EndScene(p)                           (p)->EndScene()
01247 #define IDirect3DDevice3_GetDirect3D(p,a)                      (p)->GetDirect3D(a)
01248 #define IDirect3DDevice3_SetCurrentViewport(p,a)               (p)->SetCurrentViewport(a)
01249 #define IDirect3DDevice3_GetCurrentViewport(p,a)               (p)->GetCurrentViewport(a)
01250 #define IDirect3DDevice3_SetRenderTarget(p,a,b)                (p)->SetRenderTarget(a,b)
01251 #define IDirect3DDevice3_GetRenderTarget(p,a)                  (p)->GetRenderTarget(a)
01252 #define IDirect3DDevice3_Begin(p,a,b,c)                        (p)->Begin(a,b,c)
01253 #define IDirect3DDevice3_BeginIndexed(p,a,b,c,d,e)             (p)->BeginIndexed(a,b,c,d,e)
01254 #define IDirect3DDevice3_Vertex(p,a)                           (p)->Vertex(a)
01255 #define IDirect3DDevice3_Index(p,a)                            (p)->Index(a)
01256 #define IDirect3DDevice3_End(p,a)                              (p)->End(a)
01257 #define IDirect3DDevice3_GetRenderState(p,a,b)                 (p)->GetRenderState(a,b)
01258 #define IDirect3DDevice3_SetRenderState(p,a,b)                 (p)->SetRenderState(a,b)
01259 #define IDirect3DDevice3_GetLightState(p,a,b)                  (p)->GetLightState(a,b)
01260 #define IDirect3DDevice3_SetLightState(p,a,b)                  (p)->SetLightState(a,b)
01261 #define IDirect3DDevice3_SetTransform(p,a,b)                   (p)->SetTransform(a,b)
01262 #define IDirect3DDevice3_GetTransform(p,a,b)                   (p)->GetTransform(a,b)
01263 #define IDirect3DDevice3_MultiplyTransform(p,a,b)              (p)->MultiplyTransform(a,b)
01264 #define IDirect3DDevice3_DrawPrimitive(p,a,b,c,d,e)            (p)->DrawPrimitive(a,b,c,d,e)
01265 #define IDirect3DDevice3_DrawIndexedPrimitive(p,a,b,c,d,e,f,g) (p)->DrawIndexedPrimitive(a,b,c,d,e,f,g)
01266 #define IDirect3DDevice3_SetClipStatus(p,a)                    (p)->SetClipStatus(a)
01267 #define IDirect3DDevice3_GetClipStatus(p,a)                    (p)->GetClipStatus(a)
01268 #define IDirect3DDevice3_DrawPrimitiveStrided(p,a,b,c,d,e)     (p)->DrawPrimitiveStrided(a,b,c,d,e)
01269 #define IDirect3DDevice3_DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g) (p)->DrawIndexedPrimitiveStrided(a,b,c,d,e,f,g)
01270 #define IDirect3DDevice3_DrawPrimitiveVB(p,a,b,c,d,e)          (p)->DrawPrimitiveVB(a,b,c,d,e)
01271 #define IDirect3DDevice3_DrawIndexedPrimitiveVB(p,a,b,c,d,e)   (p)->DrawIndexedPrimitiveVB(a,b,c,d,e)
01272 #define IDirect3DDevice3_ComputeSphereVisibility(p,a,b,c,d,e)  (p)->ComputeSphereVisibility(a,b,c,d,e)
01273 #define IDirect3DDevice3_GetTexture(p,a,b)                     (p)->GetTexture(a,b)
01274 #define IDirect3DDevice3_SetTexture(p,a,b)                     (p)->SetTexture(a,b)
01275 #define IDirect3DDevice3_GetTextureStageState(p,a,b,c)         (p)->GetTextureStageState(a,b,c)
01276 #define IDirect3DDevice3_SetTextureStageState(p,a,b,c)         (p)->SetTextureStageState(a,b,c)
01277 #define IDirect3DDevice3_ValidateDevice(p,a)                   (p)->ValidateDevice(a)
01278 #endif
01279 
01280 /*****************************************************************************
01281  * IDirect3DDevice7 interface
01282  */
01283 #define INTERFACE IDirect3DDevice7
01284 DECLARE_INTERFACE_(IDirect3DDevice7,IUnknown)
01285 {
01286     /*** IUnknown methods ***/
01287     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
01288     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
01289     STDMETHOD_(ULONG,Release)(THIS) PURE;
01290     /*** IDirect3DDevice7 methods ***/
01291     STDMETHOD(GetCaps)(THIS_ LPD3DDEVICEDESC7 lpD3DHELDevDesc) PURE;
01292     STDMETHOD(EnumTextureFormats)(THIS_ LPD3DENUMPIXELFORMATSCALLBACK lpD3DEnumPixelProc, LPVOID lpArg) PURE;
01293     STDMETHOD(BeginScene)(THIS) PURE;
01294     STDMETHOD(EndScene)(THIS) PURE;
01295     STDMETHOD(GetDirect3D)(THIS_ LPDIRECT3D7 *lplpDirect3D3) PURE;
01296     STDMETHOD(SetRenderTarget)(THIS_ LPDIRECTDRAWSURFACE7 lpNewRenderTarget,DWORD dwFlags) PURE;
01297     STDMETHOD(GetRenderTarget)(THIS_ LPDIRECTDRAWSURFACE7 *lplpRenderTarget) PURE;
01298     STDMETHOD(Clear)(THIS_ DWORD dwCount,LPD3DRECT lpRects,DWORD dwFlags,D3DCOLOR dwColor,D3DVALUE dvZ,DWORD dwStencil) PURE;
01299     STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix) PURE;
01300     STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix) PURE;
01301     STDMETHOD(SetViewport)(THIS_ LPD3DVIEWPORT7 lpData) PURE;
01302     STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE dtstTransformStateType,LPD3DMATRIX lpD3DMatrix) PURE;
01303     STDMETHOD(GetViewport)(THIS_ LPD3DVIEWPORT7 lpData) PURE;
01304     STDMETHOD(SetMaterial)(THIS_ LPD3DMATERIAL7 lpMat) PURE;
01305     STDMETHOD(GetMaterial)(THIS_ LPD3DMATERIAL7 lpMat) PURE;
01306     STDMETHOD(SetLight)(THIS_ DWORD dwLightIndex,LPD3DLIGHT7 lpLight) PURE;
01307     STDMETHOD(GetLight)(THIS_ DWORD dwLightIndex,LPD3DLIGHT7 lpLight) PURE;
01308     STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, DWORD dwRenderState) PURE;
01309     STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, LPDWORD lpdwRenderState) PURE;
01310     STDMETHOD(BeginStateBlock)(THIS) PURE;
01311     STDMETHOD(EndStateBlock)(THIS_ LPDWORD lpdwBlockHandle) PURE;
01312     STDMETHOD(PreLoad)(THIS_ LPDIRECTDRAWSURFACE7 lpddsTexture) PURE;
01313     STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType, DWORD d3dvtVertexType, LPVOID lpvVertices, DWORD dwVertexCount, DWORD dwFlags) PURE;
01314     STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType, DWORD d3dvtVertexType, LPVOID lpvVertices, DWORD dwVertexCount, LPWORD dwIndices, DWORD dwIndexCount, DWORD dwFlags) PURE;
01315     STDMETHOD(SetClipStatus)(THIS_ LPD3DCLIPSTATUS lpD3DClipStatus) PURE;
01316     STDMETHOD(GetClipStatus)(THIS_ LPD3DCLIPSTATUS lpD3DClipStatus) PURE;
01317     STDMETHOD(DrawPrimitiveStrided)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,DWORD dwVertexType,LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData,DWORD dwVertexCount,DWORD dwFlags) PURE;
01318     STDMETHOD(DrawIndexedPrimitiveStrided)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,DWORD dwVertexType,LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData,DWORD dwVertexCount,LPWORD lpIndex,DWORD dwIndexCount,DWORD dwFlags) PURE;
01319     STDMETHOD(DrawPrimitiveVB)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,LPDIRECT3DVERTEXBUFFER7 lpD3DVertexBuf,DWORD dwStartVertex,DWORD dwNumVertices,DWORD dwFlags) PURE;
01320     STDMETHOD(DrawIndexedPrimitiveVB)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,LPDIRECT3DVERTEXBUFFER7 lpD3DVertexBuf,DWORD dwStartVertex,DWORD dwNumVertices,LPWORD lpwIndices,DWORD dwIndexCount,DWORD dwFlags) PURE;
01321     STDMETHOD(ComputeSphereVisibility)(THIS_ LPD3DVECTOR lpCenters,LPD3DVALUE lpRadii,DWORD dwNumSpheres,DWORD dwFlags,LPDWORD lpdwReturnValues) PURE;
01322     STDMETHOD(GetTexture)(THIS_ DWORD dwStage,LPDIRECTDRAWSURFACE7 *lpTexture) PURE;
01323     STDMETHOD(SetTexture)(THIS_ DWORD dwStage,LPDIRECTDRAWSURFACE7 lpTexture) PURE;
01324     STDMETHOD(GetTextureStageState)(THIS_ DWORD dwStage,D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,LPDWORD lpdwState) PURE;
01325     STDMETHOD(SetTextureStageState)(THIS_ DWORD dwStage,D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,DWORD dwState) PURE;
01326     STDMETHOD(ValidateDevice)(THIS_ LPDWORD lpdwPasses) PURE;
01327     STDMETHOD(ApplyStateBlock)(THIS_ DWORD dwBlockHandle) PURE;
01328     STDMETHOD(CaptureStateBlock)(THIS_ DWORD dwBlockHandle) PURE;
01329     STDMETHOD(DeleteStateBlock)(THIS_ DWORD dwBlockHandle) PURE;
01330     STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE d3dsbType,LPDWORD lpdwBlockHandle) PURE;
01331     STDMETHOD(Load)(THIS_ LPDIRECTDRAWSURFACE7 lpDestTex,LPPOINT lpDestPoint,LPDIRECTDRAWSURFACE7 lpSrcTex,LPRECT lprcSrcRect,DWORD dwFlags) PURE;
01332     STDMETHOD(LightEnable)(THIS_ DWORD dwLightIndex,BOOL bEnable) PURE;
01333     STDMETHOD(GetLightEnable)(THIS_ DWORD dwLightIndex,BOOL *pbEnable) PURE;
01334     STDMETHOD(SetClipPlane)(THIS_ DWORD dwIndex,D3DVALUE *pPlaneEquation) PURE;
01335     STDMETHOD(GetClipPlane)(THIS_ DWORD dwIndex,D3DVALUE *pPlaneEquation) PURE;
01336     STDMETHOD(GetInfo)(THIS_ DWORD dwDevInfoID,LPVOID pDevInfoStruct,DWORD dwSize) PURE;
01337 };
01338 #undef INTERFACE
01339 
01340 #if !defined(__cplusplus) || defined(CINTERFACE)
01341 /*** IUnknown methods ***/
01342 #define IDirect3DDevice7_QueryInterface(p,a,b)                        (p)->lpVtbl->QueryInterface(p,a,b)
01343 #define IDirect3DDevice7_AddRef(p)                                    (p)->lpVtbl->AddRef(p)
01344 #define IDirect3DDevice7_Release(p)                                   (p)->lpVtbl->Release(p)
01345 /*** IDirect3DDevice7 methods ***/
01346 #define IDirect3DDevice7_GetCaps(p,a)                                 (p)->lpVtbl->GetCaps(p,a)
01347 #define IDirect3DDevice7_EnumTextureFormats(p,a,b)                    (p)->lpVtbl->EnumTextureFormats(p,a,b)
01348 #define IDirect3DDevice7_BeginScene(p)                                (p)->lpVtbl->BeginScene(p)
01349 #define IDirect3DDevice7_EndScene(p)                                  (p)->lpVtbl->EndScene(p)
01350 #define IDirect3DDevice7_GetDirect3D(p,a)                             (p)->lpVtbl->GetDirect3D(p,a)
01351 #define IDirect3DDevice7_SetRenderTarget(p,a,b)                       (p)->lpVtbl->SetRenderTarget(p,a,b)
01352 #define IDirect3DDevice7_GetRenderTarget(p,a)                         (p)->lpVtbl->GetRenderTarget(p,a)
01353 #define IDirect3DDevice7_Clear(p,a,b,c,d,e,f)                         (p)->lpVtbl->Clear(p,a,b,c,d,e,f)
01354 #define IDirect3DDevice7_SetTransform(p,a,b)                          (p)->lpVtbl->SetTransform(p,a,b)
01355 #define IDirect3DDevice7_GetTransform(p,a,b)                          (p)->lpVtbl->GetTransform(p,a,b)
01356 #define IDirect3DDevice7_SetViewport(p,a)                             (p)->lpVtbl->SetViewport(p,a)
01357 #define IDirect3DDevice7_MultiplyTransform(p,a,b)                     (p)->lpVtbl->MultiplyTransform(p,a,b)
01358 #define IDirect3DDevice7_GetViewport(p,a)                             (p)->lpVtbl->GetViewport(p,a)
01359 #define IDirect3DDevice7_SetMaterial(p,a)                             (p)->lpVtbl->SetMaterial(p,a)
01360 #define IDirect3DDevice7_GetMaterial(p,a)                             (p)->lpVtbl->GetMaterial(p,a)
01361 #define IDirect3DDevice7_SetLight(p,a,b)                              (p)->lpVtbl->SetLight(p,a,b)
01362 #define IDirect3DDevice7_GetLight(p,a,b)                              (p)->lpVtbl->GetLight(p,a,b)
01363 #define IDirect3DDevice7_SetRenderState(p,a,b)                        (p)->lpVtbl->SetRenderState(p,a,b)
01364 #define IDirect3DDevice7_GetRenderState(p,a,b)                        (p)->lpVtbl->GetRenderState(p,a,b)
01365 #define IDirect3DDevice7_BeginStateBlock(p)                           (p)->lpVtbl->BeginStateBlock(p)
01366 #define IDirect3DDevice7_EndStateBlock(p,a)                           (p)->lpVtbl->EndStateBlock(p,a)
01367 #define IDirect3DDevice7_PreLoad(p,a)                                 (p)->lpVtbl->PreLoad(p,a)
01368 #define IDirect3DDevice7_DrawPrimitive(p,a,b,c,d,e)                   (p)->lpVtbl->DrawPrimitive(p,a,b,c,d,e)
01369 #define IDirect3DDevice7_DrawIndexedPrimitive(p,a,b,c,d,e,f,g)        (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f,g)
01370 #define IDirect3DDevice7_SetClipStatus(p,a)                           (p)->lpVtbl->SetClipStatus(p,a)
01371 #define IDirect3DDevice7_GetClipStatus(p,a)                           (p)->lpVtbl->GetClipStatus(p,a)
01372 #define IDirect3DDevice7_DrawPrimitiveStrided(p,a,b,c,d,e)            (p)->lpVtbl->DrawPrimitiveStrided(p,a,b,c,d,e)
01373 #define IDirect3DDevice7_DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g) (p)->lpVtbl->DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g)
01374 #define IDirect3DDevice7_DrawPrimitiveVB(p,a,b,c,d,e)                 (p)->lpVtbl->DrawPrimitiveVB(p,a,b,c,d,e)
01375 #define IDirect3DDevice7_DrawIndexedPrimitiveVB(p,a,b,c,d,e,f,g)      (p)->lpVtbl->DrawIndexedPrimitiveVB(p,a,b,c,d,e,f,g)
01376 #define IDirect3DDevice7_ComputeSphereVisibility(p,a,b,c,d,e)         (p)->lpVtbl->ComputeSphereVisibility(p,a,b,c,d,e)
01377 #define IDirect3DDevice7_GetTexture(p,a,b)                            (p)->lpVtbl->GetTexture(p,a,b)
01378 #define IDirect3DDevice7_SetTexture(p,a,b)                            (p)->lpVtbl->SetTexture(p,a,b)
01379 #define IDirect3DDevice7_GetTextureStageState(p,a,b,c)                (p)->lpVtbl->GetTextureStageState(p,a,b,c)
01380 #define IDirect3DDevice7_SetTextureStageState(p,a,b,c)                (p)->lpVtbl->SetTextureStageState(p,a,b,c)
01381 #define IDirect3DDevice7_ValidateDevice(p,a)                          (p)->lpVtbl->ValidateDevice(p,a)
01382 #define IDirect3DDevice7_ApplyStateBlock(p,a)                         (p)->lpVtbl->ApplyStateBlock(p,a)
01383 #define IDirect3DDevice7_CaptureStateBlock(p,a)                       (p)->lpVtbl->CaptureStateBlock(p,a)
01384 #define IDirect3DDevice7_DeleteStateBlock(p,a)                        (p)->lpVtbl->DeleteStateBlock(p,a)
01385 #define IDirect3DDevice7_CreateStateBlock(p,a,b)                      (p)->lpVtbl->CreateStateBlock(p,a,b)
01386 #define IDirect3DDevice7_Load(p,a,b,c,d,e)                            (p)->lpVtbl->Load(p,a,b,c,d,e)
01387 #define IDirect3DDevice7_LightEnable(p,a,b)                           (p)->lpVtbl->LightEnable(p,a,b)
01388 #define IDirect3DDevice7_GetLightEnable(p,a,b)                        (p)->lpVtbl->GetLightEnable(p,a,b)
01389 #define IDirect3DDevice7_SetClipPlane(p,a,b)                          (p)->lpVtbl->SetClipPlane(p,a,b)
01390 #define IDirect3DDevice7_GetClipPlane(p,a,b)                          (p)->lpVtbl->GetClipPlane(p,a,b)
01391 #define IDirect3DDevice7_GetInfo(p,a,b,c)                             (p)->lpVtbl->GetInfo(p,a,b,c)
01392 #else
01393 /*** IUnknown methods ***/
01394 #define IDirect3DDevice7_QueryInterface(p,a,b)                        (p)->QueryInterface(a,b)
01395 #define IDirect3DDevice7_AddRef(p)                                    (p)->AddRef()
01396 #define IDirect3DDevice7_Release(p)                                   (p)->Release()
01397 /*** IDirect3DDevice7 methods ***/
01398 #define IDirect3DDevice7_GetCaps(p,a)                                 (p)->GetCaps(a)
01399 #define IDirect3DDevice7_EnumTextureFormats(p,a,b)                    (p)->EnumTextureFormats(a,b)
01400 #define IDirect3DDevice7_BeginScene(p)                                (p)->BeginScene()
01401 #define IDirect3DDevice7_EndScene(p)                                  (p)->EndScene()
01402 #define IDirect3DDevice7_GetDirect3D(p,a)                             (p)->GetDirect3D(a)
01403 #define IDirect3DDevice7_SetRenderTarget(p,a,b)                       (p)->SetRenderTarget(a,b)
01404 #define IDirect3DDevice7_GetRenderTarget(p,a)                         (p)->GetRenderTarget(a)
01405 #define IDirect3DDevice7_Clear(p,a,b,c,d,e,f)                         (p)->Clear(a,b,c,d,e,f)
01406 #define IDirect3DDevice7_SetTransform(p,a,b)                          (p)->SetTransform(a,b)
01407 #define IDirect3DDevice7_GetTransform(p,a,b)                          (p)->GetTransform(a,b)
01408 #define IDirect3DDevice7_SetViewport(p,a)                             (p)->SetViewport(a)
01409 #define IDirect3DDevice7_MultiplyTransform(p,a,b)                     (p)->MultiplyTransform(a,b)
01410 #define IDirect3DDevice7_GetViewport(p,a)                             (p)->GetViewport(a)
01411 #define IDirect3DDevice7_SetMaterial(p,a)                             (p)->SetMaterial(a)
01412 #define IDirect3DDevice7_GetMaterial(p,a)                             (p)->GetMaterial(a)
01413 #define IDirect3DDevice7_SetLight(p,a,b)                              (p)->SetLight(a,b)
01414 #define IDirect3DDevice7_GetLight(p,a,b)                              (p)->GetLight(a,b)
01415 #define IDirect3DDevice7_SetRenderState(p,a,b)                        (p)->SetRenderState(a,b)
01416 #define IDirect3DDevice7_GetRenderState(p,a,b)                        (p)->GetRenderState(a,b)
01417 #define IDirect3DDevice7_BeginStateBlock(p)                           (p)->BeginStateBlock()
01418 #define IDirect3DDevice7_EndStateBlock(p,a)                           (p)->EndStateBlock(a)
01419 #define IDirect3DDevice7_PreLoad(p,a)                                 (p)->PreLoad(a)
01420 #define IDirect3DDevice7_DrawPrimitive(p,a,b,c,d,e)                   (p)->DrawPrimitive(a,b,c,d,e)
01421 #define IDirect3DDevice7_DrawIndexedPrimitive(p,a,b,c,d,e,f,g)        (p)->DrawIndexedPrimitive(a,b,c,d,e,f,g)
01422 #define IDirect3DDevice7_SetClipStatus(p,a)                           (p)->SetClipStatus(a)
01423 #define IDirect3DDevice7_GetClipStatus(p,a)                           (p)->GetClipStatus(a)
01424 #define IDirect3DDevice7_DrawPrimitiveStrided(p,a,b,c,d,e)            (p)->DrawPrimitiveStrided(a,b,c,d,e)
01425 #define IDirect3DDevice7_DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g) (p)->DrawIndexedPrimitiveStrided(a,b,c,d,e,f,g)
01426 #define IDirect3DDevice7_DrawPrimitiveVB(p,a,b,c,d,e)                 (p)->DrawPrimitiveVB(a,b,c,d,e)
01427 #define IDirect3DDevice7_DrawIndexedPrimitiveVB(p,a,b,c,d,e,f,g)      (p)->DrawIndexedPrimitiveVB(a,b,c,d,e,f,g)
01428 #define IDirect3DDevice7_ComputeSphereVisibility(p,a,b,c,d,e)         (p)->ComputeSphereVisibility(a,b,c,d,e)
01429 #define IDirect3DDevice7_GetTexture(p,a,b)                            (p)->GetTexture(a,b)
01430 #define IDirect3DDevice7_SetTexture(p,a,b)                            (p)->SetTexture(a,b)
01431 #define IDirect3DDevice7_GetTextureStageState(p,a,b,c)                (p)->GetTextureStageState(a,b,c)
01432 #define IDirect3DDevice7_SetTextureStageState(p,a,b,c)                (p)->SetTextureStageState(a,b,c)
01433 #define IDirect3DDevice7_ValidateDevice(p,a)                          (p)->ValidateDevice(a)
01434 #define IDirect3DDevice7_ApplyStateBlock(p,a)                         (p)->ApplyStateBlock(a)
01435 #define IDirect3DDevice7_CaptureStateBlock(p,a)                       (p)->CaptureStateBlock(a)
01436 #define IDirect3DDevice7_DeleteStateBlock(p,a)                        (p)->DeleteStateBlock(a)
01437 #define IDirect3DDevice7_CreateStateBlock(p,a,b)                      (p)->CreateStateBlock(a,b)
01438 #define IDirect3DDevice7_Load(p,a,b,c,d,e)                            (p)->Load(a,b,c,d,e)
01439 #define IDirect3DDevice7_LightEnable(p,a,b)                           (p)->LightEnable(a,b)
01440 #define IDirect3DDevice7_GetLightEnable(p,a,b)                        (p)->GetLightEnable(a,b)
01441 #define IDirect3DDevice7_SetClipPlane(p,a,b)                          (p)->SetClipPlane(a,b)
01442 #define IDirect3DDevice7_GetClipPlane(p,a,b)                          (p)->GetClipPlane(a,b)
01443 #define IDirect3DDevice7_GetInfo(p,a,b,c)                             (p)->GetInfo(a,b,c)
01444 #endif
01445 
01446 
01447 
01448 /*****************************************************************************
01449  * IDirect3DVertexBuffer interface
01450  */
01451 #define INTERFACE IDirect3DVertexBuffer
01452 DECLARE_INTERFACE_(IDirect3DVertexBuffer,IUnknown)
01453 {
01454     /*** IUnknown methods ***/
01455     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
01456     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
01457     STDMETHOD_(ULONG,Release)(THIS) PURE;
01458     /*** IDirect3DVertexBuffer methods ***/
01459     STDMETHOD(Lock)(THIS_ DWORD dwFlags,LPVOID *lplpData,LPDWORD lpdwSize) PURE;
01460     STDMETHOD(Unlock)(THIS) PURE;
01461     STDMETHOD(ProcessVertices)(THIS_ DWORD dwVertexOp,DWORD dwDestIndex,DWORD dwCount,LPDIRECT3DVERTEXBUFFER lpSrcBuffer,DWORD dwSrcIndex,LPDIRECT3DDEVICE3 lpD3DDevice,DWORD dwFlags) PURE;
01462     STDMETHOD(GetVertexBufferDesc)(THIS_ LPD3DVERTEXBUFFERDESC lpD3DVertexBufferDesc) PURE;
01463     STDMETHOD(Optimize)(THIS_ LPDIRECT3DDEVICE3  lpD3DDevice,DWORD dwFlags) PURE;
01464 };
01465 #undef INTERFACE
01466 
01467 #if !defined(__cplusplus) || defined(CINTERFACE)
01468 /*** IUnknown methods ***/
01469 #define IDirect3DVertexBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
01470 #define IDirect3DVertexBuffer_AddRef(p)             (p)->lpVtbl->AddRef(p)
01471 #define IDirect3DVertexBuffer_Release(p)            (p)->lpVtbl->Release(p)
01472 /*** IDirect3DVertexBuffer methods ***/
01473 #define IDirect3DVertexBuffer_Lock(p,a,b,c)                    (p)->lpVtbl->Lock(p,a,b,c)
01474 #define IDirect3DVertexBuffer_Unlock(p)                        (p)->lpVtbl->Unlock(p)
01475 #define IDirect3DVertexBuffer_ProcessVertices(p,a,b,c,d,e,f,g) (p)->lpVtbl->ProcessVertices(p,a,b,c,d,e,f,g)
01476 #define IDirect3DVertexBuffer_GetVertexBufferDesc(p,a)         (p)->lpVtbl->GetVertexBufferDesc(p,a)
01477 #define IDirect3DVertexBuffer_Optimize(p,a,b)                  (p)->lpVtbl->Optimize(p,a,b)
01478 #else
01479 /*** IUnknown methods ***/
01480 #define IDirect3DVertexBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
01481 #define IDirect3DVertexBuffer_AddRef(p)             (p)->AddRef()
01482 #define IDirect3DVertexBuffer_Release(p)            (p)->Release()
01483 /*** IDirect3DVertexBuffer methods ***/
01484 #define IDirect3DVertexBuffer_Lock(p,a,b,c)                    (p)->Lock(a,b,c)
01485 #define IDirect3DVertexBuffer_Unlock(p)                        (p)->Unlock()
01486 #define IDirect3DVertexBuffer_ProcessVertices(p,a,b,c,d,e,f,g) (p)->ProcessVertices(a,b,c,d,e,f,g)
01487 #define IDirect3DVertexBuffer_GetVertexBufferDesc(p,a)         (p)->GetVertexBufferDesc(a)
01488 #define IDirect3DVertexBuffer_Optimize(p,a,b)                  (p)->Optimize(a,b)
01489 #endif
01490 
01491 /*****************************************************************************
01492  * IDirect3DVertexBuffer7 interface
01493  */
01494 #define INTERFACE IDirect3DVertexBuffer7
01495 DECLARE_INTERFACE_(IDirect3DVertexBuffer7,IUnknown)
01496 {
01497     /*** IUnknown methods ***/
01498     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
01499     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
01500     STDMETHOD_(ULONG,Release)(THIS) PURE;
01501     /*** IDirect3DVertexBuffer7 methods ***/
01502     STDMETHOD(Lock)(THIS_ DWORD dwFlags,LPVOID *lplpData,LPDWORD lpdwSize) PURE;
01503     STDMETHOD(Unlock)(THIS) PURE;
01504     STDMETHOD(ProcessVertices)(THIS_ DWORD dwVertexOp,DWORD dwDestIndex,DWORD dwCount,LPDIRECT3DVERTEXBUFFER7 lpSrcBuffer,DWORD dwSrcIndex,LPDIRECT3DDEVICE7 lpD3DDevice,DWORD dwFlags) PURE;
01505     STDMETHOD(GetVertexBufferDesc)(THIS_ LPD3DVERTEXBUFFERDESC lpD3DVertexBufferDesc) PURE;
01506     STDMETHOD(Optimize)(THIS_ LPDIRECT3DDEVICE7  lpD3DDevice,DWORD dwFlags) PURE;
01507     STDMETHOD(ProcessVerticesStrided)(THIS_ DWORD dwVertexOp,DWORD dwDestIndex,DWORD dwCount,LPD3DDRAWPRIMITIVESTRIDEDDATA lpStrideData,DWORD dwVertexTypeDesc,LPDIRECT3DDEVICE7 lpD3DDevice,DWORD dwFlags) PURE;
01508 };
01509 #undef INTERFACE
01510 
01511 #if !defined(__cplusplus) || defined(CINTERFACE)
01512 /*** IUnknown methods ***/
01513 #define IDirect3DVertexBuffer7_QueryInterface(p,a,b)                   (p)->lpVtbl->QueryInterface(p,a,b)
01514 #define IDirect3DVertexBuffer7_AddRef(p)                               (p)->lpVtbl->AddRef(p)
01515 #define IDirect3DVertexBuffer7_Release(p)                              (p)->lpVtbl->Release(p)
01516 /*** IDirect3DVertexBuffer7 methods ***/
01517 #define IDirect3DVertexBuffer7_Lock(p,a,b,c)                           (p)->lpVtbl->Lock(p,a,b,c)
01518 #define IDirect3DVertexBuffer7_Unlock(p)                               (p)->lpVtbl->Unlock(p)
01519 #define IDirect3DVertexBuffer7_ProcessVertices(p,a,b,c,d,e,f,g)        (p)->lpVtbl->ProcessVertices(p,a,b,c,d,e,f,g)
01520 #define IDirect3DVertexBuffer7_GetVertexBufferDesc(p,a)                (p)->lpVtbl->GetVertexBufferDesc(p,a)
01521 #define IDirect3DVertexBuffer7_Optimize(p,a,b)                         (p)->lpVtbl->Optimize(p,a,b)
01522 #define IDirect3DVertexBuffer7_ProcessVerticesStrided(p,a,b,c,d,e,f,g) (p)->lpVtbl->ProcessVerticesStrided(p,a,b,c,d,e,f,g)
01523 #else
01524 /*** IUnknown methods ***/
01525 #define IDirect3DVertexBuffer7_QueryInterface(p,a,b)                   (p)->QueryInterface(a,b)
01526 #define IDirect3DVertexBuffer7_AddRef(p)                               (p)->AddRef()
01527 #define IDirect3DVertexBuffer7_Release(p)                              (p)->Release()
01528 /*** IDirect3DVertexBuffer7 methods ***/
01529 #define IDirect3DVertexBuffer7_Lock(p,a,b,c)                           (p)->Lock(a,b,c)
01530 #define IDirect3DVertexBuffer7_Unlock(p)                               (p)->Unlock()
01531 #define IDirect3DVertexBuffer7_ProcessVertices(p,a,b,c,d,e,f,g)        (p)->ProcessVertices(a,b,c,d,e,f,g)
01532 #define IDirect3DVertexBuffer7_GetVertexBufferDesc(p,a)                (p)->GetVertexBufferDesc(a)
01533 #define IDirect3DVertexBuffer7_Optimize(p,a,b)                         (p)->Optimize(a,b)
01534 #define IDirect3DVertexBuffer7_ProcessVerticesStrided(p,a,b,c,d,e,f,g) (p)->ProcessVerticesStrided(a,b,c,d,e,f,g)
01535 #endif
01536 
01537 #endif /* (DIRECT3D_VERSION < 0x0800) */
01538 #endif /* __WINE_D3D_H */

Generated on Sun May 27 2012 04:31:16 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.