wined3d: Use IDL to generate wined3d.h.
diff --git a/.gitignore b/.gitignore
index 2315e1f..dd81905 100644
--- a/.gitignore
+++ b/.gitignore
@@ -200,6 +200,7 @@
 include/vmr9.h
 include/wine/itss.h
 include/wine/svcctl.h
+include/wine/wined3d.h
 include/wtypes.h
 include/xmldom.h
 include/xmldso.h
diff --git a/dlls/d3d8/d3d8_private.h b/dlls/d3d8/d3d8_private.h
index 86adcba..c8051dc 100644
--- a/dlls/d3d8/d3d8_private.h
+++ b/dlls/d3d8/d3d8_private.h
@@ -33,7 +33,7 @@
 #include "wingdi.h"
 #include "wine/debug.h"
 #include "d3d8.h"
-#include "wine/wined3d_interface.h"
+#include "wine/wined3d.h"
 
 /* Device caps */
 #define INITIAL_SHADER_HANDLE_TABLE_SIZE        64
diff --git a/dlls/d3d9/d3d9_private.h b/dlls/d3d9/d3d9_private.h
index 03c4d47..c925cf5 100644
--- a/dlls/d3d9/d3d9_private.h
+++ b/dlls/d3d9/d3d9_private.h
@@ -36,7 +36,7 @@
 #include "wine/unicode.h"
 
 #include "d3d9.h"
-#include "wine/wined3d_interface.h"
+#include "wine/wined3d.h"
 
 /* ===========================================================================
    Internal use
diff --git a/dlls/ddraw/clipper.c b/dlls/ddraw/clipper.c
index e3bbfb9..b43ca0e 100644
--- a/dlls/ddraw/clipper.c
+++ b/dlls/ddraw/clipper.c
@@ -25,6 +25,8 @@
 #include <stdlib.h>
 #include <string.h>
 
+#define COBJMACROS
+
 #include "windef.h"
 #include "winbase.h"
 #include "wingdi.h"
diff --git a/dlls/ddraw/ddraw_private.h b/dlls/ddraw/ddraw_private.h
index cd1ce15..7a5eadb 100644
--- a/dlls/ddraw/ddraw_private.h
+++ b/dlls/ddraw/ddraw_private.h
@@ -35,7 +35,7 @@
 
 #include "ddcomimpl.h"
 
-#include "wine/wined3d_interface.h"
+#include "wine/wined3d.h"
 #include "wine/list.h"
 
 /*****************************************************************************
diff --git a/dlls/dxgi/dxgi_private.h b/dlls/dxgi/dxgi_private.h
index 95cfe58..1e8ca51 100644
--- a/dlls/dxgi/dxgi_private.h
+++ b/dlls/dxgi/dxgi_private.h
@@ -28,7 +28,7 @@
 #include "objbase.h"
 
 #include "dxgi.h"
-#include "wine/wined3d_interface.h"
+#include "wine/wined3d.h"
 #ifdef DXGI_INIT_GUID
 #include "initguid.h"
 #endif
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index cb3a26d..dbbdf4f 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -37,9 +37,9 @@
 #include "wine/debug.h"
 #include "wine/unicode.h"
 
+#include "objbase.h"
 #include "wined3d_private_types.h"
-#include "wine/wined3d_interface.h"
-#include "wine/wined3d_caps.h"
+#include "wine/wined3d.h"
 #include "wined3d_gl.h"
 #include "wine/list.h"
 
diff --git a/include/Makefile.in b/include/Makefile.in
index 8d229bb..3254080 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -4,7 +4,10 @@
 VPATH	  = @srcdir@
 MODULE	  = none
 
-IDL_H_SRCS = \
+PRIVATE_IDL_H_SRCS = \
+	wine/wined3d.idl
+
+PUBLIC_IDL_H_SRCS = \
 	activaut.idl \
 	activdbg.idl \
 	activscp.idl \
@@ -80,7 +83,7 @@
 
 SRCDIR_INCLUDES = \
 	$(IDL_TLB_SRCS) \
-	$(IDL_H_SRCS) \
+	$(PUBLIC_IDL_H_SRCS) \
 	accctrl.h \
 	aclapi.h \
 	adshlp.h \
@@ -475,11 +478,13 @@
 	$(DESTDIR)$(includedir)/msvcrt \
 	$(DESTDIR)$(includedir)
 
+IDL_H_SRCS = $(PUBLIC_IDL_H_SRCS) $(PRIVATE_IDL_H_SRCS)
+
 @MAKE_RULES@
 
-OBJDIR_INCLUDES = $(IDL_H_SRCS:.idl=.h) $(IDL_TLB_SRCS:.idl=.tlb)
+OBJDIR_INCLUDES = $(PUBLIC_IDL_H_SRCS:.idl=.h) $(IDL_TLB_SRCS:.idl=.tlb)
 
-all: $(OBJDIR_INCLUDES)
+all: $(IDL_H_SRCS:.idl=.h) $(IDL_TLB_SRCS:.idl=.tlb)
 
 install install-dev:: $(OBJDIR_INCLUDES) $(INSTALLDIRS)
 	for f in $(SRCDIR_INCLUDES); do case $$f in \
diff --git a/include/wine/wined3d.idl b/include/wine/wined3d.idl
new file mode 100644
index 0000000..3116a5e
--- /dev/null
+++ b/include/wine/wined3d.idl
@@ -0,0 +1,3429 @@
+/*
+ * Copyright 2002-2003 The wine-d3d team
+ * Copyright 2002-2003 Jason Edmeades
+ * Copyright 2002-2003 Raphael Junqueira
+ * Copyright 2005 Oliver Stieber
+ * Copyright 2006 Stefan Dösinger
+ * Copyright 2006 Stefan Dösinger for CodeWeavers
+ * Copyright 2007 Henri Verbeet
+ * Copyright 2008 Henri Verbeet for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+import "unknwn.idl";
+
+cpp_quote("#if 0")
+typedef HANDLE HMONITOR;
+
+typedef struct _RGNDATAHEADER
+{
+    DWORD dwSize;
+    DWORD iType;
+    DWORD nCount;
+    DWORD nRgnSize;
+    RECT rcBound;
+} RGNDATAHEADER;
+
+typedef struct _RGNDATA
+{
+    RGNDATAHEADER rdh;
+    char Buffer[1];
+} RGNDATA;
+cpp_quote("#endif")
+
+cpp_quote("#define WINED3D_OK                                  S_OK")
+
+const UINT _FACWINED3D = 0x876;
+cpp_quote("#define MAKE_WINED3DSTATUS(code)                    MAKE_HRESULT(0, _FACWINED3D, code)")
+cpp_quote("#define WINED3DOK_NOAUTOGEN                         MAKE_WINED3DSTATUS(2159)")
+
+cpp_quote("#define MAKE_WINED3DHRESULT(code)                   MAKE_HRESULT(1, _FACWINED3D, code)")
+cpp_quote("#define WINED3DERR_WRONGTEXTUREFORMAT               MAKE_WINED3DHRESULT(2072)")
+cpp_quote("#define WINED3DERR_UNSUPPORTEDCOLOROPERATION        MAKE_WINED3DHRESULT(2073)")
+cpp_quote("#define WINED3DERR_UNSUPPORTEDCOLORARG              MAKE_WINED3DHRESULT(2074)")
+cpp_quote("#define WINED3DERR_UNSUPPORTEDALPHAOPERATION        MAKE_WINED3DHRESULT(2075)")
+cpp_quote("#define WINED3DERR_UNSUPPORTEDALPHAARG              MAKE_WINED3DHRESULT(2076)")
+cpp_quote("#define WINED3DERR_TOOMANYOPERATIONS                MAKE_WINED3DHRESULT(2077)")
+cpp_quote("#define WINED3DERR_CONFLICTINGTEXTUREFILTER         MAKE_WINED3DHRESULT(2078)")
+cpp_quote("#define WINED3DERR_UNSUPPORTEDFACTORVALUE           MAKE_WINED3DHRESULT(2079)")
+cpp_quote("#define WINED3DERR_CONFLICTINGRENDERSTATE           MAKE_WINED3DHRESULT(2081)")
+cpp_quote("#define WINED3DERR_UNSUPPORTEDTEXTUREFILTER         MAKE_WINED3DHRESULT(2082)")
+cpp_quote("#define WINED3DERR_CONFLICTINGTEXTUREPALETTE        MAKE_WINED3DHRESULT(2086)")
+cpp_quote("#define WINED3DERR_DRIVERINTERNALERROR              MAKE_WINED3DHRESULT(2087)")
+cpp_quote("#define WINED3DERR_NOTFOUND                         MAKE_WINED3DHRESULT(2150)")
+cpp_quote("#define WINED3DERR_MOREDATA                         MAKE_WINED3DHRESULT(2151)")
+cpp_quote("#define WINED3DERR_DEVICELOST                       MAKE_WINED3DHRESULT(2152)")
+cpp_quote("#define WINED3DERR_DEVICENOTRESET                   MAKE_WINED3DHRESULT(2153)")
+cpp_quote("#define WINED3DERR_NOTAVAILABLE                     MAKE_WINED3DHRESULT(2154)")
+cpp_quote("#define WINED3DERR_OUTOFVIDEOMEMORY                 MAKE_WINED3DHRESULT(380)")
+cpp_quote("#define WINED3DERR_INVALIDDEVICE                    MAKE_WINED3DHRESULT(2155)")
+cpp_quote("#define WINED3DERR_INVALIDCALL                      MAKE_WINED3DHRESULT(2156)")
+cpp_quote("#define WINED3DERR_DRIVERINVALIDCALL                MAKE_WINED3DHRESULT(2157)")
+cpp_quote("#define WINED3DERR_WASSTILLDRAWING                  MAKE_WINED3DHRESULT(540)")
+cpp_quote("#define WINEDDERR_NOTAOVERLAYSURFACE                MAKE_WINED3DHRESULT(580)")
+cpp_quote("#define WINEDDERR_NODC                              MAKE_WINED3DHRESULT(586)")
+cpp_quote("#define WINEDDERR_DCALREADYCREATED                  MAKE_WINED3DHRESULT(620)")
+cpp_quote("#define WINEDDERR_NOTFLIPPABLE                      MAKE_WINED3DHRESULT(582)")
+cpp_quote("#define WINEDDERR_SURFACEBUSY                       MAKE_WINED3DHRESULT(430)")
+cpp_quote("#define WINEDDERR_INVALIDRECT                       MAKE_WINED3DHRESULT(150)")
+cpp_quote("#define WINEDDERR_NOCLIPLIST                        MAKE_WINED3DHRESULT(205)")
+cpp_quote("#define WINEDDERR_OVERLAYNOTVISIBLE                 MAKE_WINED3DHRESULT(577)")
+
+typedef DWORD WINED3DCOLOR;
+
+typedef enum _WINED3DLIGHTTYPE
+{
+    WINED3DLIGHT_POINT                      = 1,
+    WINED3DLIGHT_SPOT                       = 2,
+    WINED3DLIGHT_DIRECTIONAL                = 3,
+    WINED3DLIGHT_PARALLELPOINT              = 4, /* D3D7 */
+    WINED3DLIGHT_GLSPOT                     = 5, /* D3D7 */
+    WINED3DLIGHT_FORCE_DWORD                = 0x7fffffff
+} WINED3DLIGHTTYPE;
+
+typedef enum _WINED3DPRIMITIVETYPE
+{
+    WINED3DPT_POINTLIST                     = 1,
+    WINED3DPT_LINELIST                      = 2,
+    WINED3DPT_LINESTRIP                     = 3,
+    WINED3DPT_TRIANGLELIST                  = 4,
+    WINED3DPT_TRIANGLESTRIP                 = 5,
+    WINED3DPT_TRIANGLEFAN                   = 6,
+    WINED3DPT_FORCE_DWORD                   = 0x7fffffff
+} WINED3DPRIMITIVETYPE;
+
+typedef enum _WINED3DDEVTYPE
+{
+    WINED3DDEVTYPE_HAL                      = 1,
+    WINED3DDEVTYPE_REF                      = 2,
+    WINED3DDEVTYPE_SW                       = 3,
+    WINED3DDEVTYPE_NULLREF                  = 4,
+    WINED3DDEVTYPE_FORCE_DWORD              = 0xffffffff
+} WINED3DDEVTYPE;
+
+typedef enum _WINED3DDEGREETYPE
+{
+    WINED3DDEGREE_LINEAR                    = 1,
+    WINED3DDEGREE_QUADRATIC                 = 2,
+    WINED3DDEGREE_CUBIC                     = 3,
+    WINED3DDEGREE_QUINTIC                   = 5,
+    WINED3DDEGREE_FORCE_DWORD               = 0x7fffffff
+} WINED3DDEGREETYPE;
+
+typedef enum _WINED3DFORMAT
+{
+    WINED3DFMT_UNKNOWN                      = 0,
+    WINED3DFMT_R8G8B8                       = 20,
+    WINED3DFMT_A8R8G8B8                     = 21,
+    WINED3DFMT_X8R8G8B8                     = 22,
+    WINED3DFMT_R5G6B5                       = 23,
+    WINED3DFMT_X1R5G5B5                     = 24,
+    WINED3DFMT_A1R5G5B5                     = 25,
+    WINED3DFMT_A4R4G4B4                     = 26,
+    WINED3DFMT_R3G3B2                       = 27,
+    WINED3DFMT_A8                           = 28,
+    WINED3DFMT_A8R3G3B2                     = 29,
+    WINED3DFMT_X4R4G4B4                     = 30,
+    WINED3DFMT_A2B10G10R10                  = 31,
+    WINED3DFMT_A8B8G8R8                     = 32,
+    WINED3DFMT_X8B8G8R8                     = 33,
+    WINED3DFMT_G16R16                       = 34,
+    WINED3DFMT_A2R10G10B10                  = 35,
+    WINED3DFMT_A16B16G16R16                 = 36,
+    WINED3DFMT_A8P8                         = 40,
+    WINED3DFMT_P8                           = 41,
+    WINED3DFMT_L8                           = 50,
+    WINED3DFMT_A8L8                         = 51,
+    WINED3DFMT_A4L4                         = 52,
+    WINED3DFMT_V8U8                         = 60,
+    WINED3DFMT_L6V5U5                       = 61,
+    WINED3DFMT_X8L8V8U8                     = 62,
+    WINED3DFMT_Q8W8V8U8                     = 63,
+    WINED3DFMT_V16U16                       = 64,
+    WINED3DFMT_W11V11U10                    = 65,
+    WINED3DFMT_A2W10V10U10                  = 67,
+    WINED3DFMT_D16_LOCKABLE                 = 70,
+    WINED3DFMT_D32                          = 71,
+    WINED3DFMT_D15S1                        = 73,
+    WINED3DFMT_D24S8                        = 75,
+    WINED3DFMT_D24X8                        = 77,
+    WINED3DFMT_D24X4S4                      = 79,
+    WINED3DFMT_D16                          = 80,
+    WINED3DFMT_L16                          = 81,
+    WINED3DFMT_D32F_LOCKABLE                = 82,
+    WINED3DFMT_D24FS8                       = 83,
+    WINED3DFMT_VERTEXDATA                   = 100,
+    WINED3DFMT_INDEX16                      = 101,
+    WINED3DFMT_INDEX32                      = 102,
+    WINED3DFMT_Q16W16V16U16                 = 110,
+    WINED3DFMT_R16F                         = 111,
+    WINED3DFMT_G16R16F                      = 112,
+    WINED3DFMT_A16B16G16R16F                = 113,
+    WINED3DFMT_R32F                         = 114,
+    WINED3DFMT_G32R32F                      = 115,
+    WINED3DFMT_A32B32G32R32F                = 116,
+    WINED3DFMT_CxV8U8                       = 117,
+    WINED3DFMT_FORCE_DWORD                  = 0xffffffff
+} WINED3DFORMAT;
+cpp_quote("#define WINEMAKEFOURCC(ch0, ch1, ch2, ch3) \\")
+cpp_quote("        ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | \\")
+cpp_quote("        ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 ))")
+cpp_quote("#define WINED3DFMT_UYVY         WINEMAKEFOURCC('U', 'Y', 'V', 'Y')")
+cpp_quote("#define WINED3DFMT_YUY2         WINEMAKEFOURCC('Y', 'U', 'Y', '2')")
+cpp_quote("#define WINED3DFMT_YV12         WINEMAKEFOURCC('Y', 'V', '1', '2')")
+cpp_quote("#define WINED3DFMT_DXT1         WINEMAKEFOURCC('D', 'X', 'T', '1')")
+cpp_quote("#define WINED3DFMT_DXT2         WINEMAKEFOURCC('D', 'X', 'T', '2')")
+cpp_quote("#define WINED3DFMT_DXT3         WINEMAKEFOURCC('D', 'X', 'T', '3')")
+cpp_quote("#define WINED3DFMT_DXT4         WINEMAKEFOURCC('D', 'X', 'T', '4')")
+cpp_quote("#define WINED3DFMT_DXT5         WINEMAKEFOURCC('D', 'X', 'T', '5')")
+cpp_quote("#define WINED3DFMT_MULTI2_ARGB8 WINEMAKEFOURCC('M', 'E', 'T', '1')")
+cpp_quote("#define WINED3DFMT_G8R8_G8B8    WINEMAKEFOURCC('G', 'R', 'G', 'B')")
+cpp_quote("#define WINED3DFMT_R8G8_B8G8    WINEMAKEFOURCC('R', 'G', 'B', 'G')")
+/* Vendor specific formats */
+cpp_quote("#define WINED3DFMT_ATI2N        WINEMAKEFOURCC('A', 'T', 'I', '2')")
+cpp_quote("#define WINED3DFMT_NVHU         WINEMAKEFOURCC('N', 'V', 'H', 'U')")
+cpp_quote("#define WINED3DFMT_NVHS         WINEMAKEFOURCC('N', 'V', 'H', 'S')")
+
+typedef enum _WINED3DRENDERSTATETYPE
+{
+    WINED3DRS_TEXTUREHANDLE                 = 1, /* d3d7 */
+    WINED3DRS_ANTIALIAS                     = 2, /* d3d7 */
+    WINED3DRS_TEXTUREADDRESS                = 3, /* d3d7 */
+    WINED3DRS_TEXTUREPERSPECTIVE            = 4, /* d3d7 */
+    WINED3DRS_WRAPU                         = 5, /* d3d7 */
+    WINED3DRS_WRAPV                         = 6, /* d3d7 */
+    WINED3DRS_ZENABLE                       = 7,
+    WINED3DRS_FILLMODE                      = 8,
+    WINED3DRS_SHADEMODE                     = 9,
+    WINED3DRS_LINEPATTERN                   = 10, /* d3d7, d3d8 */
+    WINED3DRS_MONOENABLE                    = 11, /* d3d7 */
+    WINED3DRS_ROP2                          = 12, /* d3d7 */
+    WINED3DRS_PLANEMASK                     = 13, /* d3d7 */
+    WINED3DRS_ZWRITEENABLE                  = 14,
+    WINED3DRS_ALPHATESTENABLE               = 15,
+    WINED3DRS_LASTPIXEL                     = 16,
+    WINED3DRS_TEXTUREMAG                    = 17, /* d3d7 */
+    WINED3DRS_TEXTUREMIN                    = 18, /* d3d7 */
+    WINED3DRS_SRCBLEND                      = 19,
+    WINED3DRS_DESTBLEND                     = 20,
+    WINED3DRS_TEXTUREMAPBLEND               = 21, /* d3d7 */
+    WINED3DRS_CULLMODE                      = 22,
+    WINED3DRS_ZFUNC                         = 23,
+    WINED3DRS_ALPHAREF                      = 24,
+    WINED3DRS_ALPHAFUNC                     = 25,
+    WINED3DRS_DITHERENABLE                  = 26,
+    WINED3DRS_ALPHABLENDENABLE              = 27,
+    WINED3DRS_FOGENABLE                     = 28,
+    WINED3DRS_SPECULARENABLE                = 29,
+    WINED3DRS_ZVISIBLE                      = 30, /* d3d7, d3d8 */
+    WINED3DRS_SUBPIXEL                      = 31, /* d3d7 */
+    WINED3DRS_SUBPIXELX                     = 32, /* d3d7 */
+    WINED3DRS_STIPPLEDALPHA                 = 33, /* d3d7 */
+    WINED3DRS_FOGCOLOR                      = 34,
+    WINED3DRS_FOGTABLEMODE                  = 35,
+    WINED3DRS_FOGSTART                      = 36,
+    WINED3DRS_FOGEND                        = 37,
+    WINED3DRS_FOGDENSITY                    = 38,
+    WINED3DRS_STIPPLEENABLE                 = 39, /* d3d7 */
+    WINED3DRS_EDGEANTIALIAS                 = 40, /* d3d7, d3d8 */
+    WINED3DRS_COLORKEYENABLE                = 41, /* d3d7 */
+    WINED3DRS_BORDERCOLOR                   = 43, /* d3d7 */
+    WINED3DRS_TEXTUREADDRESSU               = 44, /* d3d7 */
+    WINED3DRS_TEXTUREADDRESSV               = 45, /* d3d7 */
+    WINED3DRS_MIPMAPLODBIAS                 = 46, /* d3d7 */
+    WINED3DRS_ZBIAS                         = 47, /* d3d7, d3d8 */
+    WINED3DRS_RANGEFOGENABLE                = 48,
+    WINED3DRS_ANISOTROPY                    = 49, /* d3d7 */
+    WINED3DRS_FLUSHBATCH                    = 50, /* d3d7 */
+    WINED3DRS_TRANSLUCENTSORTINDEPENDENT    = 51, /* d3d7 */
+    WINED3DRS_STENCILENABLE                 = 52,
+    WINED3DRS_STENCILFAIL                   = 53,
+    WINED3DRS_STENCILZFAIL                  = 54,
+    WINED3DRS_STENCILPASS                   = 55,
+    WINED3DRS_STENCILFUNC                   = 56,
+    WINED3DRS_STENCILREF                    = 57,
+    WINED3DRS_STENCILMASK                   = 58,
+    WINED3DRS_STENCILWRITEMASK              = 59,
+    WINED3DRS_TEXTUREFACTOR                 = 60,
+    WINED3DRS_STIPPLEPATTERN00              = 64,
+    WINED3DRS_STIPPLEPATTERN01              = 65,
+    WINED3DRS_STIPPLEPATTERN02              = 66,
+    WINED3DRS_STIPPLEPATTERN03              = 67,
+    WINED3DRS_STIPPLEPATTERN04              = 68,
+    WINED3DRS_STIPPLEPATTERN05              = 69,
+    WINED3DRS_STIPPLEPATTERN06              = 70,
+    WINED3DRS_STIPPLEPATTERN07              = 71,
+    WINED3DRS_STIPPLEPATTERN08              = 72,
+    WINED3DRS_STIPPLEPATTERN09              = 73,
+    WINED3DRS_STIPPLEPATTERN10              = 74,
+    WINED3DRS_STIPPLEPATTERN11              = 75,
+    WINED3DRS_STIPPLEPATTERN12              = 76,
+    WINED3DRS_STIPPLEPATTERN13              = 77,
+    WINED3DRS_STIPPLEPATTERN14              = 78,
+    WINED3DRS_STIPPLEPATTERN15              = 79,
+    WINED3DRS_STIPPLEPATTERN16              = 80,
+    WINED3DRS_STIPPLEPATTERN17              = 81,
+    WINED3DRS_STIPPLEPATTERN18              = 82,
+    WINED3DRS_STIPPLEPATTERN19              = 83,
+    WINED3DRS_STIPPLEPATTERN20              = 84,
+    WINED3DRS_STIPPLEPATTERN21              = 85,
+    WINED3DRS_STIPPLEPATTERN22              = 86,
+    WINED3DRS_STIPPLEPATTERN23              = 87,
+    WINED3DRS_STIPPLEPATTERN24              = 88,
+    WINED3DRS_STIPPLEPATTERN25              = 89,
+    WINED3DRS_STIPPLEPATTERN26              = 90,
+    WINED3DRS_STIPPLEPATTERN27              = 91,
+    WINED3DRS_STIPPLEPATTERN28              = 92,
+    WINED3DRS_STIPPLEPATTERN29              = 93,
+    WINED3DRS_STIPPLEPATTERN30              = 94,
+    WINED3DRS_STIPPLEPATTERN31              = 95,
+    WINED3DRS_WRAP0                         = 128,
+    WINED3DRS_WRAP1                         = 129,
+    WINED3DRS_WRAP2                         = 130,
+    WINED3DRS_WRAP3                         = 131,
+    WINED3DRS_WRAP4                         = 132,
+    WINED3DRS_WRAP5                         = 133,
+    WINED3DRS_WRAP6                         = 134,
+    WINED3DRS_WRAP7                         = 135,
+    WINED3DRS_CLIPPING                      = 136,
+    WINED3DRS_LIGHTING                      = 137,
+    WINED3DRS_EXTENTS                       = 138, /* d3d7 */
+    WINED3DRS_AMBIENT                       = 139,
+    WINED3DRS_FOGVERTEXMODE                 = 140,
+    WINED3DRS_COLORVERTEX                   = 141,
+    WINED3DRS_LOCALVIEWER                   = 142,
+    WINED3DRS_NORMALIZENORMALS              = 143,
+    WINED3DRS_COLORKEYBLENDENABLE           = 144, /* d3d7 */
+    WINED3DRS_DIFFUSEMATERIALSOURCE         = 145,
+    WINED3DRS_SPECULARMATERIALSOURCE        = 146,
+    WINED3DRS_AMBIENTMATERIALSOURCE         = 147,
+    WINED3DRS_EMISSIVEMATERIALSOURCE        = 148,
+    WINED3DRS_VERTEXBLEND                   = 151,
+    WINED3DRS_CLIPPLANEENABLE               = 152,
+    WINED3DRS_SOFTWAREVERTEXPROCESSING      = 153, /* d3d8 */
+    WINED3DRS_POINTSIZE                     = 154,
+    WINED3DRS_POINTSIZE_MIN                 = 155,
+    WINED3DRS_POINTSPRITEENABLE             = 156,
+    WINED3DRS_POINTSCALEENABLE              = 157,
+    WINED3DRS_POINTSCALE_A                  = 158,
+    WINED3DRS_POINTSCALE_B                  = 159,
+    WINED3DRS_POINTSCALE_C                  = 160,
+    WINED3DRS_MULTISAMPLEANTIALIAS          = 161,
+    WINED3DRS_MULTISAMPLEMASK               = 162,
+    WINED3DRS_PATCHEDGESTYLE                = 163,
+    WINED3DRS_PATCHSEGMENTS                 = 164, /* d3d8 */
+    WINED3DRS_DEBUGMONITORTOKEN             = 165,
+    WINED3DRS_POINTSIZE_MAX                 = 166,
+    WINED3DRS_INDEXEDVERTEXBLENDENABLE      = 167,
+    WINED3DRS_COLORWRITEENABLE              = 168,
+    WINED3DRS_TWEENFACTOR                   = 170,
+    WINED3DRS_BLENDOP                       = 171,
+    WINED3DRS_POSITIONORDER                 = 172,
+    WINED3DRS_NORMALORDER                   = 173,
+    WINED3DRS_POSITIONDEGREE                = 172,
+    WINED3DRS_NORMALDEGREE                  = 173,
+    WINED3DRS_SCISSORTESTENABLE             = 174,
+    WINED3DRS_SLOPESCALEDEPTHBIAS           = 175,
+    WINED3DRS_ANTIALIASEDLINEENABLE         = 176,
+    WINED3DRS_MINTESSELLATIONLEVEL          = 178,
+    WINED3DRS_MAXTESSELLATIONLEVEL          = 179,
+    WINED3DRS_ADAPTIVETESS_X                = 180,
+    WINED3DRS_ADAPTIVETESS_Y                = 181,
+    WINED3DRS_ADAPTIVETESS_Z                = 182,
+    WINED3DRS_ADAPTIVETESS_W                = 183,
+    WINED3DRS_ENABLEADAPTIVETESSELLATION    = 184,
+    WINED3DRS_TWOSIDEDSTENCILMODE           = 185,
+    WINED3DRS_CCW_STENCILFAIL               = 186,
+    WINED3DRS_CCW_STENCILZFAIL              = 187,
+    WINED3DRS_CCW_STENCILPASS               = 188,
+    WINED3DRS_CCW_STENCILFUNC               = 189,
+    WINED3DRS_COLORWRITEENABLE1             = 190,
+    WINED3DRS_COLORWRITEENABLE2             = 191,
+    WINED3DRS_COLORWRITEENABLE3             = 192,
+    WINED3DRS_BLENDFACTOR                   = 193,
+    WINED3DRS_SRGBWRITEENABLE               = 194,
+    WINED3DRS_DEPTHBIAS                     = 195,
+    WINED3DRS_WRAP8                         = 198,
+    WINED3DRS_WRAP9                         = 199,
+    WINED3DRS_WRAP10                        = 200,
+    WINED3DRS_WRAP11                        = 201,
+    WINED3DRS_WRAP12                        = 202,
+    WINED3DRS_WRAP13                        = 203,
+    WINED3DRS_WRAP14                        = 204,
+    WINED3DRS_WRAP15                        = 205,
+    WINED3DRS_SEPARATEALPHABLENDENABLE      = 206,
+    WINED3DRS_SRCBLENDALPHA                 = 207,
+    WINED3DRS_DESTBLENDALPHA                = 208,
+    WINED3DRS_BLENDOPALPHA                  = 209,
+    WINED3DRS_FORCE_DWORD                   = 0x7fffffff
+} WINED3DRENDERSTATETYPE;
+const UINT WINEHIGHEST_RENDER_STATE         = WINED3DRS_BLENDOPALPHA;
+
+typedef enum _WINED3DBLEND
+{
+    WINED3DBLEND_ZERO                       =  1,
+    WINED3DBLEND_ONE                        =  2,
+    WINED3DBLEND_SRCCOLOR                   =  3,
+    WINED3DBLEND_INVSRCCOLOR                =  4,
+    WINED3DBLEND_SRCALPHA                   =  5,
+    WINED3DBLEND_INVSRCALPHA                =  6,
+    WINED3DBLEND_DESTALPHA                  =  7,
+    WINED3DBLEND_INVDESTALPHA               =  8,
+    WINED3DBLEND_DESTCOLOR                  =  9,
+    WINED3DBLEND_INVDESTCOLOR               = 10,
+    WINED3DBLEND_SRCALPHASAT                = 11,
+    WINED3DBLEND_BOTHSRCALPHA               = 12,
+    WINED3DBLEND_BOTHINVSRCALPHA            = 13,
+    WINED3DBLEND_BLENDFACTOR                = 14,
+    WINED3DBLEND_INVBLENDFACTOR             = 15,
+    WINED3DBLEND_FORCE_DWORD                = 0x7fffffff
+} WINED3DBLEND;
+
+typedef enum _WINED3DBLENDOP
+{
+    WINED3DBLENDOP_ADD                      = 1,
+    WINED3DBLENDOP_SUBTRACT                 = 2,
+    WINED3DBLENDOP_REVSUBTRACT              = 3,
+    WINED3DBLENDOP_MIN                      = 4,
+    WINED3DBLENDOP_MAX                      = 5,
+    WINED3DBLENDOP_FORCE_DWORD              = 0x7fffffff
+} WINED3DBLENDOP;
+
+typedef enum _WINED3DVERTEXBLENDFLAGS
+{
+    WINED3DVBF_DISABLE                      = 0,
+    WINED3DVBF_1WEIGHTS                     = 1,
+    WINED3DVBF_2WEIGHTS                     = 2,
+    WINED3DVBF_3WEIGHTS                     = 3,
+    WINED3DVBF_TWEENING                     = 255,
+    WINED3DVBF_0WEIGHTS                     = 256
+} WINED3DVERTEXBLENDFLAGS;
+
+typedef enum _WINED3DCMPFUNC
+{
+    WINED3DCMP_NEVER                        = 1,
+    WINED3DCMP_LESS                         = 2,
+    WINED3DCMP_EQUAL                        = 3,
+    WINED3DCMP_LESSEQUAL                    = 4,
+    WINED3DCMP_GREATER                      = 5,
+    WINED3DCMP_NOTEQUAL                     = 6,
+    WINED3DCMP_GREATEREQUAL                 = 7,
+    WINED3DCMP_ALWAYS                       = 8,
+    WINED3DCMP_FORCE_DWORD                  = 0x7fffffff
+} WINED3DCMPFUNC;
+
+typedef enum _WINED3DZBUFFERTYPE
+{
+    WINED3DZB_FALSE                         = 0,
+    WINED3DZB_TRUE                          = 1,
+    WINED3DZB_USEW                          = 2,
+    WINED3DZB_FORCE_DWORD                   = 0x7fffffff
+} WINED3DZBUFFERTYPE;
+
+typedef enum _WINED3DFOGMODE
+{
+    WINED3DFOG_NONE                         = 0,
+    WINED3DFOG_EXP                          = 1,
+    WINED3DFOG_EXP2                         = 2,
+    WINED3DFOG_LINEAR                       = 3,
+    WINED3DFOG_FORCE_DWORD                  = 0x7fffffff
+} WINED3DFOGMODE;
+
+typedef enum _WINED3DSHADEMODE
+{
+    WINED3DSHADE_FLAT                       = 1,
+    WINED3DSHADE_GOURAUD                    = 2,
+    WINED3DSHADE_PHONG                      = 3,
+    WINED3DSHADE_FORCE_DWORD                = 0x7fffffff
+} WINED3DSHADEMODE;
+
+typedef enum _WINED3DFILLMODE
+{
+    WINED3DFILL_POINT                       = 1,
+    WINED3DFILL_WIREFRAME                   = 2,
+    WINED3DFILL_SOLID                       = 3,
+    WINED3DFILL_FORCE_DWORD                 = 0x7fffffff
+} WINED3DFILLMODE;
+
+typedef enum _WINED3DCULL
+{
+    WINED3DCULL_NONE                        = 1,
+    WINED3DCULL_CW                          = 2,
+    WINED3DCULL_CCW                         = 3,
+    WINED3DCULL_FORCE_DWORD                 = 0x7fffffff
+} WINED3DCULL;
+
+typedef enum _WINED3DSTENCILOP
+{
+    WINED3DSTENCILOP_KEEP                   = 1,
+    WINED3DSTENCILOP_ZERO                   = 2,
+    WINED3DSTENCILOP_REPLACE                = 3,
+    WINED3DSTENCILOP_INCRSAT                = 4,
+    WINED3DSTENCILOP_DECRSAT                = 5,
+    WINED3DSTENCILOP_INVERT                 = 6,
+    WINED3DSTENCILOP_INCR                   = 7,
+    WINED3DSTENCILOP_DECR                   = 8,
+    WINED3DSTENCILOP_FORCE_DWORD            = 0x7fffffff
+} WINED3DSTENCILOP;
+
+typedef enum _WINED3DMATERIALCOLORSOURCE
+{
+    WINED3DMCS_MATERIAL                     = 0,
+    WINED3DMCS_COLOR1                       = 1,
+    WINED3DMCS_COLOR2                       = 2,
+    WINED3DMCS_FORCE_DWORD                  = 0x7fffffff
+} WINED3DMATERIALCOLORSOURCE;
+
+typedef enum _WINED3DPATCHEDGESTYLE
+{
+    WINED3DPATCHEDGE_DISCRETE               = 0,
+    WINED3DPATCHEDGE_CONTINUOUS             = 1,
+    WINED3DPATCHEDGE_FORCE_DWORD            = 0x7fffffff
+} WINED3DPATCHEDGESTYLE;
+
+typedef enum _WINED3DBACKBUFFER_TYPE
+{
+    WINED3DBACKBUFFER_TYPE_MONO             = 0,
+    WINED3DBACKBUFFER_TYPE_LEFT             = 1,
+    WINED3DBACKBUFFER_TYPE_RIGHT            = 2,
+    WINED3DBACKBUFFER_TYPE_FORCE_DWORD      = 0x7fffffff
+} WINED3DBACKBUFFER_TYPE;
+
+typedef enum _WINED3DSWAPEFFECT
+{
+    WINED3DSWAPEFFECT_DISCARD               = 1,
+    WINED3DSWAPEFFECT_FLIP                  = 2,
+    WINED3DSWAPEFFECT_COPY                  = 3,
+    WINED3DSWAPEFFECT_COPY_VSYNC            = 4,
+    WINED3DSWAPEFFECT_FORCE_DWORD           = 0xffffffff
+} WINED3DSWAPEFFECT;
+
+typedef enum _WINED3DSAMPLERSTATETYPE
+{
+    WINED3DSAMP_ADDRESSU                    = 1,
+    WINED3DSAMP_ADDRESSV                    = 2,
+    WINED3DSAMP_ADDRESSW                    = 3,
+    WINED3DSAMP_BORDERCOLOR                 = 4,
+    WINED3DSAMP_MAGFILTER                   = 5,
+    WINED3DSAMP_MINFILTER                   = 6,
+    WINED3DSAMP_MIPFILTER                   = 7,
+    WINED3DSAMP_MIPMAPLODBIAS               = 8,
+    WINED3DSAMP_MAXMIPLEVEL                 = 9,
+    WINED3DSAMP_MAXANISOTROPY               = 10,
+    WINED3DSAMP_SRGBTEXTURE                 = 11,
+    WINED3DSAMP_ELEMENTINDEX                = 12,
+    WINED3DSAMP_DMAPOFFSET                  = 13,
+    WINED3DSAMP_FORCE_DWORD                 = 0x7fffffff,
+} WINED3DSAMPLERSTATETYPE;
+const UINT WINED3D_HIGHEST_SAMPLER_STATE    = WINED3DSAMP_DMAPOFFSET;
+
+typedef enum _WINED3DMULTISAMPLE_TYPE
+{
+    WINED3DMULTISAMPLE_NONE                 = 0,
+    WINED3DMULTISAMPLE_NONMASKABLE          = 1,
+    WINED3DMULTISAMPLE_2_SAMPLES            = 2,
+    WINED3DMULTISAMPLE_3_SAMPLES            = 3,
+    WINED3DMULTISAMPLE_4_SAMPLES            = 4,
+    WINED3DMULTISAMPLE_5_SAMPLES            = 5,
+    WINED3DMULTISAMPLE_6_SAMPLES            = 6,
+    WINED3DMULTISAMPLE_7_SAMPLES            = 7,
+    WINED3DMULTISAMPLE_8_SAMPLES            = 8,
+    WINED3DMULTISAMPLE_9_SAMPLES            = 9,
+    WINED3DMULTISAMPLE_10_SAMPLES           = 10,
+    WINED3DMULTISAMPLE_11_SAMPLES           = 11,
+    WINED3DMULTISAMPLE_12_SAMPLES           = 12,
+    WINED3DMULTISAMPLE_13_SAMPLES           = 13,
+    WINED3DMULTISAMPLE_14_SAMPLES           = 14,
+    WINED3DMULTISAMPLE_15_SAMPLES           = 15,
+    WINED3DMULTISAMPLE_16_SAMPLES           = 16,
+    WINED3DMULTISAMPLE_FORCE_DWORD          = 0xffffffff
+} WINED3DMULTISAMPLE_TYPE;
+
+typedef enum _WINED3DTEXTURESTAGESTATETYPE
+{
+    WINED3DTSS_COLOROP                      = 1,
+    WINED3DTSS_COLORARG1                    = 2,
+    WINED3DTSS_COLORARG2                    = 3,
+    WINED3DTSS_ALPHAOP                      = 4,
+    WINED3DTSS_ALPHAARG1                    = 5,
+    WINED3DTSS_ALPHAARG2                    = 6,
+    WINED3DTSS_BUMPENVMAT00                 = 7,
+    WINED3DTSS_BUMPENVMAT01                 = 8,
+    WINED3DTSS_BUMPENVMAT10                 = 9,
+    WINED3DTSS_BUMPENVMAT11                 = 10,
+    WINED3DTSS_TEXCOORDINDEX                = 11,
+    WINED3DTSS_ADDRESS                      = 12,
+    WINED3DTSS_ADDRESSU                     = 13,
+    WINED3DTSS_ADDRESSV                     = 14,
+    WINED3DTSS_BORDERCOLOR                  = 15,
+    WINED3DTSS_MAGFILTER                    = 16,
+    WINED3DTSS_MINFILTER                    = 17,
+    WINED3DTSS_MIPFILTER                    = 18,
+    WINED3DTSS_MIPMAPLODBIAS                = 19,
+    WINED3DTSS_MAXMIPLEVEL                  = 20,
+    WINED3DTSS_MAXANISOTROPY                = 21,
+    WINED3DTSS_BUMPENVLSCALE                = 22,
+    WINED3DTSS_BUMPENVLOFFSET               = 23,
+    WINED3DTSS_TEXTURETRANSFORMFLAGS        = 24,
+    WINED3DTSS_ADDRESSW                     = 25,
+    WINED3DTSS_COLORARG0                    = 26,
+    WINED3DTSS_ALPHAARG0                    = 27,
+    WINED3DTSS_RESULTARG                    = 28,
+    WINED3DTSS_CONSTANT                     = 32,
+    WINED3DTSS_FORCE_DWORD                  = 0x7fffffff
+} WINED3DTEXTURESTAGESTATETYPE;
+const UINT WINED3D_HIGHEST_TEXTURE_STATE    = WINED3DTSS_CONSTANT;
+
+typedef enum _WINED3DTEXTURETRANSFORMFLAGS
+{
+    WINED3DTTFF_DISABLE                     = 0,
+    WINED3DTTFF_COUNT1                      = 1,
+    WINED3DTTFF_COUNT2                      = 2,
+    WINED3DTTFF_COUNT3                      = 3,
+    WINED3DTTFF_COUNT4                      = 4,
+    WINED3DTTFF_PROJECTED                   = 256,
+    WINED3DTTFF_FORCE_DWORD                 = 0x7fffffff
+} WINED3DTEXTURETRANSFORMFLAGS;
+
+typedef enum _WINED3DTEXTUREOP
+{
+    WINED3DTOP_DISABLE                      = 1,
+    WINED3DTOP_SELECTARG1                   = 2,
+    WINED3DTOP_SELECTARG2                   = 3,
+    WINED3DTOP_MODULATE                     = 4,
+    WINED3DTOP_MODULATE2X                   = 5,
+    WINED3DTOP_MODULATE4X                   = 6,
+    WINED3DTOP_ADD                          = 7,
+    WINED3DTOP_ADDSIGNED                    = 8,
+    WINED3DTOP_ADDSIGNED2X                  = 9,
+    WINED3DTOP_SUBTRACT                     = 10,
+    WINED3DTOP_ADDSMOOTH                    = 11,
+    WINED3DTOP_BLENDDIFFUSEALPHA            = 12,
+    WINED3DTOP_BLENDTEXTUREALPHA            = 13,
+    WINED3DTOP_BLENDFACTORALPHA             = 14,
+    WINED3DTOP_BLENDTEXTUREALPHAPM          = 15,
+    WINED3DTOP_BLENDCURRENTALPHA            = 16,
+    WINED3DTOP_PREMODULATE                  = 17,
+    WINED3DTOP_MODULATEALPHA_ADDCOLOR       = 18,
+    WINED3DTOP_MODULATECOLOR_ADDALPHA       = 19,
+    WINED3DTOP_MODULATEINVALPHA_ADDCOLOR    = 20,
+    WINED3DTOP_MODULATEINVCOLOR_ADDALPHA    = 21,
+    WINED3DTOP_BUMPENVMAP                   = 22,
+    WINED3DTOP_BUMPENVMAPLUMINANCE          = 23,
+    WINED3DTOP_DOTPRODUCT3                  = 24,
+    WINED3DTOP_MULTIPLYADD                  = 25,
+    WINED3DTOP_LERP                         = 26,
+    WINED3DTOP_FORCE_DWORD                  = 0x7fffffff,
+} WINED3DTEXTUREOP;
+
+typedef enum _WINED3DTEXTUREADDRESS
+{
+    WINED3DTADDRESS_WRAP                    = 1,
+    WINED3DTADDRESS_MIRROR                  = 2,
+    WINED3DTADDRESS_CLAMP                   = 3,
+    WINED3DTADDRESS_BORDER                  = 4,
+    WINED3DTADDRESS_MIRRORONCE              = 5,
+    WINED3DTADDRESS_FORCE_DWORD             = 0x7fffffff
+} WINED3DTEXTUREADDRESS;
+
+typedef enum _WINED3DTRANSFORMSTATETYPE
+{
+    WINED3DTS_VIEW                          = 2,
+    WINED3DTS_PROJECTION                    = 3,
+    WINED3DTS_TEXTURE0                      = 16,
+    WINED3DTS_TEXTURE1                      = 17,
+    WINED3DTS_TEXTURE2                      = 18,
+    WINED3DTS_TEXTURE3                      = 19,
+    WINED3DTS_TEXTURE4                      = 20,
+    WINED3DTS_TEXTURE5                      = 21,
+    WINED3DTS_TEXTURE6                      = 22,
+    WINED3DTS_TEXTURE7                      = 23,
+    WINED3DTS_FORCE_DWORD                   = 0x7fffffff
+} WINED3DTRANSFORMSTATETYPE;
+cpp_quote("#define WINED3DTS_WORLD  WINED3DTS_WORLDMATRIX(0)")
+cpp_quote("#define WINED3DTS_WORLD1 WINED3DTS_WORLDMATRIX(1)")
+cpp_quote("#define WINED3DTS_WORLD2 WINED3DTS_WORLDMATRIX(2)")
+cpp_quote("#define WINED3DTS_WORLD3 WINED3DTS_WORLDMATRIX(3)")
+cpp_quote("#define WINED3DTS_WORLDMATRIX(index) (WINED3DTRANSFORMSTATETYPE)(index + 256)")
+
+typedef enum _WINED3DBASISTYPE
+{
+    WINED3DBASIS_BEZIER                     = 0,
+    WINED3DBASIS_BSPLINE                    = 1,
+    WINED3DBASIS_INTERPOLATE                = 2,
+    WINED3DBASIS_FORCE_DWORD                = 0x7fffffff
+} WINED3DBASISTYPE;
+
+typedef enum _WINED3DCUBEMAP_FACES
+{
+    WINED3DCUBEMAP_FACE_POSITIVE_X          = 0,
+    WINED3DCUBEMAP_FACE_NEGATIVE_X          = 1,
+    WINED3DCUBEMAP_FACE_POSITIVE_Y          = 2,
+    WINED3DCUBEMAP_FACE_NEGATIVE_Y          = 3,
+    WINED3DCUBEMAP_FACE_POSITIVE_Z          = 4,
+    WINED3DCUBEMAP_FACE_NEGATIVE_Z          = 5,
+    WINED3DCUBEMAP_FACE_FORCE_DWORD         = 0xffffffff
+} WINED3DCUBEMAP_FACES;
+
+typedef enum _WINED3DTEXTUREFILTERTYPE
+{
+    WINED3DTEXF_NONE                        = 0,
+    WINED3DTEXF_POINT                       = 1,
+    WINED3DTEXF_LINEAR                      = 2,
+    WINED3DTEXF_ANISOTROPIC                 = 3,
+    WINED3DTEXF_FLATCUBIC                   = 4,
+    WINED3DTEXF_GAUSSIANCUBIC               = 5,
+    WINED3DTEXF_PYRAMIDALQUAD               = 6,
+    WINED3DTEXF_GAUSSIANQUAD                = 7,
+    WINED3DTEXF_FORCE_DWORD                 = 0x7fffffff
+} WINED3DTEXTUREFILTERTYPE;
+
+typedef enum _WINED3DRESOURCETYPE
+{
+    WINED3DRTYPE_SURFACE                    = 1,
+    WINED3DRTYPE_VOLUME                     = 2,
+    WINED3DRTYPE_TEXTURE                    = 3,
+    WINED3DRTYPE_VOLUMETEXTURE              = 4,
+    WINED3DRTYPE_CUBETEXTURE                = 5,
+    WINED3DRTYPE_VERTEXBUFFER               = 6,
+    WINED3DRTYPE_INDEXBUFFER                = 7,
+    WINED3DRTYPE_FORCE_DWORD                = 0x7fffffff
+} WINED3DRESOURCETYPE;
+const UINT WINED3DRTYPECOUNT                = WINED3DRTYPE_INDEXBUFFER + 1;
+
+typedef enum _WINED3DPOOL
+{
+    WINED3DPOOL_DEFAULT                     = 0,
+    WINED3DPOOL_MANAGED                     = 1,
+    WINED3DPOOL_SYSTEMMEM                   = 2,
+    WINED3DPOOL_SCRATCH                     = 3,
+    WINED3DPOOL_FORCE_DWORD                 = 0x7fffffff
+} WINED3DPOOL;
+
+typedef enum _WINED3DQUERYTYPE
+{
+    WINED3DQUERYTYPE_VCACHE                 = 4,
+    WINED3DQUERYTYPE_RESOURCEMANAGER        = 5,
+    WINED3DQUERYTYPE_VERTEXSTATS            = 6,
+    WINED3DQUERYTYPE_EVENT                  = 8,
+    WINED3DQUERYTYPE_OCCLUSION              = 9,
+    WINED3DQUERYTYPE_TIMESTAMP              = 10,
+    WINED3DQUERYTYPE_TIMESTAMPDISJOINT      = 11,
+    WINED3DQUERYTYPE_TIMESTAMPFREQ          = 12,
+    WINED3DQUERYTYPE_PIPELINETIMINGS        = 13,
+    WINED3DQUERYTYPE_INTERFACETIMINGS       = 14,
+    WINED3DQUERYTYPE_VERTEXTIMINGS          = 15,
+    WINED3DQUERYTYPE_PIXELTIMINGS           = 16,
+    WINED3DQUERYTYPE_BANDWIDTHTIMINGS       = 17,
+    WINED3DQUERYTYPE_CACHEUTILIZATION       = 18
+} WINED3DQUERYTYPE;
+
+const UINT WINED3DISSUE_BEGIN               = (1 << 1);
+const UINT WINED3DISSUE_END                 = (1 << 0);
+const UINT WINED3DGETDATA_FLUSH             = (1 << 0);
+
+typedef enum _WINED3DSTATEBLOCKTYPE
+{
+    WINED3DSBT_INIT                         = 0,
+    WINED3DSBT_ALL                          = 1,
+    WINED3DSBT_PIXELSTATE                   = 2,
+    WINED3DSBT_VERTEXSTATE                  = 3,
+    WINED3DSBT_RECORDED                     = 4, /* WineD3D private */
+    WINED3DSBT_FORCE_DWORD                  = 0xffffffff
+} WINED3DSTATEBLOCKTYPE;
+
+typedef enum _WINED3DDECLMETHOD
+{
+    WINED3DDECLMETHOD_DEFAULT               = 0,
+    WINED3DDECLMETHOD_PARTIALU              = 1,
+    WINED3DDECLMETHOD_PARTIALV              = 2,
+    WINED3DDECLMETHOD_CROSSUV               = 3,
+    WINED3DDECLMETHOD_UV                    = 4,
+    WINED3DDECLMETHOD_LOOKUP                = 5,
+    WINED3DDECLMETHOD_LOOKUPPRESAMPLED      = 6
+} WINED3DDECLMETHOD;
+
+typedef enum _WINED3DDECLTYPE
+{
+    WINED3DDECLTYPE_FLOAT1                  = 0,
+    WINED3DDECLTYPE_FLOAT2                  = 1,
+    WINED3DDECLTYPE_FLOAT3                  = 2,
+    WINED3DDECLTYPE_FLOAT4                  = 3,
+    WINED3DDECLTYPE_D3DCOLOR                = 4,
+    WINED3DDECLTYPE_UBYTE4                  = 5,
+    WINED3DDECLTYPE_SHORT2                  = 6,
+    WINED3DDECLTYPE_SHORT4                  = 7,
+    /* VS 2.0 */
+    WINED3DDECLTYPE_UBYTE4N                 = 8,
+    WINED3DDECLTYPE_SHORT2N                 = 9,
+    WINED3DDECLTYPE_SHORT4N                 = 10,
+    WINED3DDECLTYPE_USHORT2N                = 11,
+    WINED3DDECLTYPE_USHORT4N                = 12,
+    WINED3DDECLTYPE_UDEC3                   = 13,
+    WINED3DDECLTYPE_DEC3N                   = 14,
+    WINED3DDECLTYPE_FLOAT16_2               = 15,
+    WINED3DDECLTYPE_FLOAT16_4               = 16,
+    WINED3DDECLTYPE_UNUSED                  = 17,
+} WINED3DDECLTYPE;
+cpp_quote("#define WINED3DDECL_END() {0xFF, 0, WINED3DDECLTYPE_UNUSED, 0, 0, 0, -1}")
+
+typedef enum _WINED3DDECLUSAGE
+{
+    WINED3DDECLUSAGE_POSITION               = 0,
+    WINED3DDECLUSAGE_BLENDWEIGHT            = 1,
+    WINED3DDECLUSAGE_BLENDINDICES           = 2,
+    WINED3DDECLUSAGE_NORMAL                 = 3,
+    WINED3DDECLUSAGE_PSIZE                  = 4,
+    WINED3DDECLUSAGE_TEXCOORD               = 5,
+    WINED3DDECLUSAGE_TANGENT                = 6,
+    WINED3DDECLUSAGE_BINORMAL               = 7,
+    WINED3DDECLUSAGE_TESSFACTOR             = 8,
+    WINED3DDECLUSAGE_POSITIONT              = 9,
+    WINED3DDECLUSAGE_COLOR                  = 10,
+    WINED3DDECLUSAGE_FOG                    = 11,
+    WINED3DDECLUSAGE_DEPTH                  = 12,
+    WINED3DDECLUSAGE_SAMPLE                 = 13
+} WINED3DDECLUSAGE;
+
+typedef enum _WINED3DSURFTYPE
+{
+    SURFACE_UNKNOWN                         = 0,    /* Default / Unknown surface type */
+    SURFACE_OPENGL,                                 /* OpenGL surface: Renders using libGL, needed for 3D */
+    SURFACE_GDI,                                    /* User surface. No 3D, DirectDraw rendering with GDI */
+} WINED3DSURFTYPE;
+
+const UINT WINED3DCOLORWRITEENABLE_RED                          = (1<<0);
+const UINT WINED3DCOLORWRITEENABLE_GREEN                        = (1<<1);
+const UINT WINED3DCOLORWRITEENABLE_BLUE                         = (1<<2);
+const UINT WINED3DCOLORWRITEENABLE_ALPHA                        = (1<<3);
+
+const UINT WINED3DADAPTER_DEFAULT                               = 0;
+const UINT WINED3DENUM_NO_WHQL_LEVEL                            = 2;
+const UINT WINED3DPRESENT_BACK_BUFFER_MAX                       = 3;
+
+const UINT WINED3DTSS_TCI_PASSTHRU                              = 0x00000;
+const UINT WINED3DTSS_TCI_CAMERASPACENORMAL                     = 0x10000;
+const UINT WINED3DTSS_TCI_CAMERASPACEPOSITION                   = 0x20000;
+const UINT WINED3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR           = 0x30000;
+const UINT WINED3DTSS_TCI_SPHEREMAP                             = 0x40000;
+
+const UINT WINED3DTA_SELECTMASK                                 = 0x0000000f;
+const UINT WINED3DTA_DIFFUSE                                    = 0x00000000;
+const UINT WINED3DTA_CURRENT                                    = 0x00000001;
+const UINT WINED3DTA_TEXTURE                                    = 0x00000002;
+const UINT WINED3DTA_TFACTOR                                    = 0x00000003;
+const UINT WINED3DTA_SPECULAR                                   = 0x00000004;
+const UINT WINED3DTA_TEMP                                       = 0x00000005;
+const UINT WINED3DTA_CONSTANT                                   = 0x00000006;
+const UINT WINED3DTA_COMPLEMENT                                 = 0x00000010;
+const UINT WINED3DTA_ALPHAREPLICATE                             = 0x00000020;
+
+const UINT WINED3DPRESENTFLAG_LOCKABLE_BACKBUFFER               = 0x00000001;
+const UINT WINED3DPRESENTFLAG_DISCARD_DEPTHSTENCIL              = 0x00000002;
+const UINT WINED3DPRESENTFLAG_DEVICECLIP                        = 0x00000004;
+const UINT WINED3DPRESENTFLAG_VIDEO                             = 0x00000010;
+const UINT WINED3DPRESENTFLAG_NOAUTOROTATE                      = 0x00000020;
+const UINT WINED3DPRESENTFLAG_UNPRUNEDMODE                      = 0x00000040;
+
+const UINT WINED3DDP_MAXTEXCOORD                                = 8;
+
+const UINT WINED3DUSAGE_RENDERTARGET                            = 0x00000001;
+const UINT WINED3DUSAGE_DEPTHSTENCIL                            = 0x00000002;
+const UINT WINED3DUSAGE_WRITEONLY                               = 0x00000008;
+const UINT WINED3DUSAGE_SOFTWAREPROCESSING                      = 0x00000010;
+const UINT WINED3DUSAGE_DONOTCLIP                               = 0x00000020;
+const UINT WINED3DUSAGE_POINTS                                  = 0x00000040;
+const UINT WINED3DUSAGE_RTPATCHES                               = 0x00000080;
+const UINT WINED3DUSAGE_NPATCHES                                = 0x00000100;
+const UINT WINED3DUSAGE_DYNAMIC                                 = 0x00000200;
+const UINT WINED3DUSAGE_AUTOGENMIPMAP                           = 0x00000400;
+const UINT WINED3DUSAGE_DMAP                                    = 0x00004000;
+const UINT WINED3DUSAGE_MASK                                    = 0x00004fff;
+const UINT WINED3DUSAGE_OVERLAY                                 = 0x80000000;
+
+const UINT WINED3DUSAGE_QUERY_LEGACYBUMPMAP                     = 0x00008000;
+const UINT WINED3DUSAGE_QUERY_FILTER                            = 0x00020000;
+const UINT WINED3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING          = 0x00080000;
+const UINT WINED3DUSAGE_QUERY_SRGBREAD                          = 0x00010000;
+const UINT WINED3DUSAGE_QUERY_SRGBWRITE                         = 0x00040000;
+const UINT WINED3DUSAGE_QUERY_VERTEXTEXTURE                     = 0x00100000;
+const UINT WINED3DUSAGE_QUERY_WRAPANDMIP                        = 0x00200000;
+const UINT WINED3DUSAGE_QUERY_MASK                              = 0x003f8000;
+
+const UINT WINED3DLOCK_READONLY                                 = 0x0010;
+const UINT WINED3DLOCK_NOSYSLOCK                                = 0x0800;
+const UINT WINED3DLOCK_NOOVERWRITE                              = 0x1000;
+const UINT WINED3DLOCK_DISCARD                                  = 0x2000;
+const UINT WINED3DLOCK_DONOTWAIT                                = 0x4000;
+const UINT WINED3DLOCK_NO_DIRTY_UPDATE                          = 0x8000;
+
+const UINT WINED3DPRESENT_RATE_DEFAULT                          = 0x000000000;
+
+const UINT WINED3DPRESENT_INTERVAL_DEFAULT                      = 0x00000000;
+const UINT WINED3DPRESENT_INTERVAL_ONE                          = 0x00000001;
+const UINT WINED3DPRESENT_INTERVAL_TWO                          = 0x00000002;
+const UINT WINED3DPRESENT_INTERVAL_THREE                        = 0x00000004;
+const UINT WINED3DPRESENT_INTERVAL_FOUR                         = 0x00000008;
+const UINT WINED3DPRESENT_INTERVAL_IMMEDIATE                    = 0x80000000;
+
+const UINT WINED3DMAXUSERCLIPPLANES                             = 32;
+const UINT WINED3DCLIPPLANE0                                    = (1 << 0);
+const UINT WINED3DCLIPPLANE1                                    = (1 << 1);
+const UINT WINED3DCLIPPLANE2                                    = (1 << 2);
+const UINT WINED3DCLIPPLANE3                                    = (1 << 3);
+const UINT WINED3DCLIPPLANE4                                    = (1 << 4);
+const UINT WINED3DCLIPPLANE5                                    = (1 << 5);
+
+/* FVF (Flexible Vertex Format) codes */
+const UINT WINED3DFVF_RESERVED0                                 = 0x0001;
+const UINT WINED3DFVF_POSITION_MASK                             = 0x000e;
+const UINT WINED3DFVF_XYZ                                       = 0x0002;
+const UINT WINED3DFVF_XYZRHW                                    = 0x0004;
+const UINT WINED3DFVF_XYZB1                                     = 0x0006;
+const UINT WINED3DFVF_XYZB2                                     = 0x0008;
+const UINT WINED3DFVF_XYZB3                                     = 0x000a;
+const UINT WINED3DFVF_XYZB4                                     = 0x000c;
+const UINT WINED3DFVF_XYZB5                                     = 0x000e;
+const UINT WINED3DFVF_XYZW                                      = 0x4002;
+const UINT WINED3DFVF_NORMAL                                    = 0x0010;
+const UINT WINED3DFVF_PSIZE                                     = 0x0020;
+const UINT WINED3DFVF_DIFFUSE                                   = 0x0040;
+const UINT WINED3DFVF_SPECULAR                                  = 0x0080;
+const UINT WINED3DFVF_TEXCOUNT_MASK                             = 0x0f00;
+const UINT WINED3DFVF_TEXCOUNT_SHIFT                            = 8;
+const UINT WINED3DFVF_TEX0                                      = 0x0000;
+const UINT WINED3DFVF_TEX1                                      = 0x0100;
+const UINT WINED3DFVF_TEX2                                      = 0x0200;
+const UINT WINED3DFVF_TEX3                                      = 0x0300;
+const UINT WINED3DFVF_TEX4                                      = 0x0400;
+const UINT WINED3DFVF_TEX5                                      = 0x0500;
+const UINT WINED3DFVF_TEX6                                      = 0x0600;
+const UINT WINED3DFVF_TEX7                                      = 0x0700;
+const UINT WINED3DFVF_TEX8                                      = 0x0800;
+const UINT WINED3DFVF_LASTBETA_UBYTE4                           = 0x1000;
+const UINT WINED3DFVF_LASTBETA_D3DCOLOR                         = 0x8000;
+const UINT WINED3DFVF_RESERVED2                                 = 0x6000;
+
+const UINT WINED3DFVF_TEXTUREFORMAT1                            = 3;
+const UINT WINED3DFVF_TEXTUREFORMAT2                            = 0;
+const UINT WINED3DFVF_TEXTUREFORMAT3                            = 1;
+const UINT WINED3DFVF_TEXTUREFORMAT4                            = 2;
+cpp_quote("#define WINED3DFVF_TEXCOORDSIZE1(CoordIndex) (WINED3DFVF_TEXTUREFORMAT1 << (CoordIndex*2 + 16))")
+cpp_quote("#define WINED3DFVF_TEXCOORDSIZE2(CoordIndex) (WINED3DFVF_TEXTUREFORMAT2)")
+cpp_quote("#define WINED3DFVF_TEXCOORDSIZE3(CoordIndex) (WINED3DFVF_TEXTUREFORMAT3 << (CoordIndex*2 + 16))")
+cpp_quote("#define WINED3DFVF_TEXCOORDSIZE4(CoordIndex) (WINED3DFVF_TEXTUREFORMAT4 << (CoordIndex*2 + 16))")
+
+/* Clear flags */
+const UINT WINED3DCLEAR_TARGET                                  = 0x00000001;
+const UINT WINED3DCLEAR_ZBUFFER                                 = 0x00000002;
+const UINT WINED3DCLEAR_STENCIL                                 = 0x00000004;
+
+/* Stream source flags */
+const UINT WINED3DSTREAMSOURCE_INDEXEDDATA                      = (1 << 30);
+const UINT WINED3DSTREAMSOURCE_INSTANCEDATA                     = (2 << 30);
+
+/* SetPrivateData flags */
+const UINT WINED3DSPD_IUNKNOWN                                  = 0x00000001;
+
+/* IWineD3D::CreateDevice behaviour flags */
+const UINT WINED3DCREATE_FPU_PRESERVE                           = 0x00000002;
+const UINT WINED3DCREATE_PUREDEVICE                             = 0x00000010;
+const UINT WINED3DCREATE_SOFTWARE_VERTEXPROCESSING              = 0x00000020;
+const UINT WINED3DCREATE_HARDWARE_VERTEXPROCESSING              = 0x00000040;
+const UINT WINED3DCREATE_MIXED_VERTEXPROCESSING                 = 0x00000080;
+const UINT WINED3DCREATE_DISABLE_DRIVER_MANAGEMENT              = 0x00000100;
+const UINT WINED3DCREATE_ADAPTERGROUP_DEVICE                    = 0x00000200;
+
+/* VTF defines */
+const UINT WINED3DDMAPSAMPLER                                   = 0x100;
+const UINT WINED3DVERTEXTEXTURESAMPLER0                         = (WINED3DDMAPSAMPLER + 1);
+const UINT WINED3DVERTEXTEXTURESAMPLER1                         = (WINED3DDMAPSAMPLER + 2);
+const UINT WINED3DVERTEXTEXTURESAMPLER2                         = (WINED3DDMAPSAMPLER + 3);
+const UINT WINED3DVERTEXTEXTURESAMPLER3                         = (WINED3DDMAPSAMPLER + 4);
+
+const UINT WINED3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD        = 0x00000020;
+const UINT WINED3DCAPS3_LINEAR_TO_SRGB_PRESENTATION             = 0x00000080;
+const UINT WINED3DCAPS3_COPY_TO_VIDMEM                          = 0x00000100;
+const UINT WINED3DCAPS3_COPY_TO_SYSTEMMEM                       = 0x00000200;
+const UINT WINED3DCAPS3_RESERVED                                = 0x8000001f;
+
+const UINT WINED3DDEVCAPS2_STREAMOFFSET                         = 0x00000001;
+const UINT WINED3DDEVCAPS2_DMAPNPATCH                           = 0x00000002;
+const UINT WINED3DDEVCAPS2_ADAPTIVETESSRTPATCH                  = 0x00000004;
+const UINT WINED3DDEVCAPS2_ADAPTIVETESSNPATCH                   = 0x00000008;
+const UINT WINED3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES        = 0x00000010;
+const UINT WINED3DDEVCAPS2_PRESAMPLEDDMAPNPATCH                 = 0x00000020;
+const UINT WINED3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET   = 0x00000040;
+
+const UINT WINED3DDTCAPS_UBYTE4                                 = 0x00000001;
+const UINT WINED3DDTCAPS_UBYTE4N                                = 0x00000002;
+const UINT WINED3DDTCAPS_SHORT2N                                = 0x00000004;
+const UINT WINED3DDTCAPS_SHORT4N                                = 0x00000008;
+const UINT WINED3DDTCAPS_USHORT2N                               = 0x00000010;
+const UINT WINED3DDTCAPS_USHORT4N                               = 0x00000020;
+const UINT WINED3DDTCAPS_UDEC3                                  = 0x00000040;
+const UINT WINED3DDTCAPS_DEC3N                                  = 0x00000080;
+const UINT WINED3DDTCAPS_FLOAT16_2                              = 0x00000100;
+const UINT WINED3DDTCAPS_FLOAT16_4                              = 0x00000200;
+
+const UINT WINED3DFVFCAPS_TEXCOORDCOUNTMASK                     = 0x0000ffff;
+const UINT WINED3DFVFCAPS_DONOTSTRIPELEMENTS                    = 0x00080000;
+const UINT WINED3DFVFCAPS_PSIZE                                 = 0x00100000;
+
+const UINT WINED3DLINECAPS_TEXTURE                              = 0x00000001;
+const UINT WINED3DLINECAPS_ZTEST                                = 0x00000002;
+const UINT WINED3DLINECAPS_BLEND                                = 0x00000004;
+const UINT WINED3DLINECAPS_ALPHACMP                             = 0x00000008;
+const UINT WINED3DLINECAPS_FOG                                  = 0x00000010;
+const UINT WINED3DLINECAPS_ANTIALIAS                            = 0x00000020;
+
+const UINT WINED3DMAX30SHADERINSTRUCTIONS                       = 32768;
+const UINT WINED3DMIN30SHADERINSTRUCTIONS                       = 512;
+
+const UINT WINED3DPBLENDCAPS_ZERO                               = 0x00000001;
+const UINT WINED3DPBLENDCAPS_ONE                                = 0x00000002;
+const UINT WINED3DPBLENDCAPS_SRCCOLOR                           = 0x00000004;
+const UINT WINED3DPBLENDCAPS_INVSRCCOLOR                        = 0x00000008;
+const UINT WINED3DPBLENDCAPS_SRCALPHA                           = 0x00000010;
+const UINT WINED3DPBLENDCAPS_INVSRCALPHA                        = 0x00000020;
+const UINT WINED3DPBLENDCAPS_DESTALPHA                          = 0x00000040;
+const UINT WINED3DPBLENDCAPS_INVDESTALPHA                       = 0x00000080;
+const UINT WINED3DPBLENDCAPS_DESTCOLOR                          = 0x00000100;
+const UINT WINED3DPBLENDCAPS_INVDESTCOLOR                       = 0x00000200;
+const UINT WINED3DPBLENDCAPS_SRCALPHASAT                        = 0x00000400;
+const UINT WINED3DPBLENDCAPS_BOTHSRCALPHA                       = 0x00000800;
+const UINT WINED3DPBLENDCAPS_BOTHINVSRCALPHA                    = 0x00001000;
+const UINT WINED3DPBLENDCAPS_BLENDFACTOR                        = 0x00002000;
+
+const UINT WINED3DPCMPCAPS_NEVER                                = 0x00000001;
+const UINT WINED3DPCMPCAPS_LESS                                 = 0x00000002;
+const UINT WINED3DPCMPCAPS_EQUAL                                = 0x00000004;
+const UINT WINED3DPCMPCAPS_LESSEQUAL                            = 0x00000008;
+const UINT WINED3DPCMPCAPS_GREATER                              = 0x00000010;
+const UINT WINED3DPCMPCAPS_NOTEQUAL                             = 0x00000020;
+const UINT WINED3DPCMPCAPS_GREATEREQUAL                         = 0x00000040;
+const UINT WINED3DPCMPCAPS_ALWAYS                               = 0x00000080;
+
+const UINT WINED3DPMISCCAPS_MASKZ                               = 0x00000002;
+const UINT WINED3DPMISCCAPS_LINEPATTERNREP                      = 0x00000004;
+const UINT WINED3DPMISCCAPS_CULLNONE                            = 0x00000010;
+const UINT WINED3DPMISCCAPS_CULLCW                              = 0x00000020;
+const UINT WINED3DPMISCCAPS_CULLCCW                             = 0x00000040;
+const UINT WINED3DPMISCCAPS_COLORWRITEENABLE                    = 0x00000080;
+const UINT WINED3DPMISCCAPS_CLIPPLANESCALEDPOINTS               = 0x00000100;
+const UINT WINED3DPMISCCAPS_CLIPTLVERTS                         = 0x00000200;
+const UINT WINED3DPMISCCAPS_TSSARGTEMP                          = 0x00000400;
+const UINT WINED3DPMISCCAPS_BLENDOP                             = 0x00000800;
+const UINT WINED3DPMISCCAPS_NULLREFERENCE                       = 0x00001000;
+const UINT WINED3DPMISCCAPS_INDEPENDENTWRITEMASKS               = 0x00004000;
+const UINT WINED3DPMISCCAPS_PERSTAGECONSTANT                    = 0x00008000;
+const UINT WINED3DPMISCCAPS_FOGANDSPECULARALPHA                 = 0x00010000;
+const UINT WINED3DPMISCCAPS_SEPARATEALPHABLEND                  = 0x00020000;
+const UINT WINED3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS             = 0x00040000;
+const UINT WINED3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING          = 0x00080000;
+const UINT WINED3DPMISCCAPS_FOGVERTEXCLAMPED                    = 0x00100000;
+
+const UINT WINED3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH              = 24;
+const UINT WINED3DPS20_MIN_DYNAMICFLOWCONTROLDEPTH              = 0;
+const UINT WINED3DPS20_MAX_NUMTEMPS                             = 32;
+const UINT WINED3DPS20_MIN_NUMTEMPS                             = 12;
+const UINT WINED3DPS20_MAX_STATICFLOWCONTROLDEPTH               = 4;
+const UINT WINED3DPS20_MIN_STATICFLOWCONTROLDEPTH               = 0;
+const UINT WINED3DPS20_MAX_NUMINSTRUCTIONSLOTS                  = 512;
+const UINT WINED3DPS20_MIN_NUMINSTRUCTIONSLOTS                  = 96;
+
+const UINT WINED3DPS20CAPS_ARBITRARYSWIZZLE                     = 0x00000001;
+const UINT WINED3DPS20CAPS_GRADIENTINSTRUCTIONS                 = 0x00000002;
+const UINT WINED3DPS20CAPS_PREDICATION                          = 0x00000004;
+const UINT WINED3DPS20CAPS_NODEPENDENTREADLIMIT                 = 0x00000008;
+const UINT WINED3DPS20CAPS_NOTEXINSTRUCTIONLIMIT                = 0x00000010;
+
+const UINT WINED3DPTADDRESSCAPS_WRAP                            = 0x00000001;
+const UINT WINED3DPTADDRESSCAPS_MIRROR                          = 0x00000002;
+const UINT WINED3DPTADDRESSCAPS_CLAMP                           = 0x00000004;
+const UINT WINED3DPTADDRESSCAPS_BORDER                          = 0x00000008;
+const UINT WINED3DPTADDRESSCAPS_INDEPENDENTUV                   = 0x00000010;
+const UINT WINED3DPTADDRESSCAPS_MIRRORONCE                      = 0x00000020;
+
+const UINT WINED3DSTENCILCAPS_KEEP                              = 0x00000001;
+const UINT WINED3DSTENCILCAPS_ZERO                              = 0x00000002;
+const UINT WINED3DSTENCILCAPS_REPLACE                           = 0x00000004;
+const UINT WINED3DSTENCILCAPS_INCRSAT                           = 0x00000008;
+const UINT WINED3DSTENCILCAPS_DECRSAT                           = 0x00000010;
+const UINT WINED3DSTENCILCAPS_INVERT                            = 0x00000020;
+const UINT WINED3DSTENCILCAPS_INCR                              = 0x00000040;
+const UINT WINED3DSTENCILCAPS_DECR                              = 0x00000080;
+const UINT WINED3DSTENCILCAPS_TWOSIDED                          = 0x00000100;
+
+const UINT WINED3DTEXOPCAPS_DISABLE                             = 0x00000001;
+const UINT WINED3DTEXOPCAPS_SELECTARG1                          = 0x00000002;
+const UINT WINED3DTEXOPCAPS_SELECTARG2                          = 0x00000004;
+const UINT WINED3DTEXOPCAPS_MODULATE                            = 0x00000008;
+const UINT WINED3DTEXOPCAPS_MODULATE2X                          = 0x00000010;
+const UINT WINED3DTEXOPCAPS_MODULATE4X                          = 0x00000020;
+const UINT WINED3DTEXOPCAPS_ADD                                 = 0x00000040;
+const UINT WINED3DTEXOPCAPS_ADDSIGNED                           = 0x00000080;
+const UINT WINED3DTEXOPCAPS_ADDSIGNED2X                         = 0x00000100;
+const UINT WINED3DTEXOPCAPS_SUBTRACT                            = 0x00000200;
+const UINT WINED3DTEXOPCAPS_ADDSMOOTH                           = 0x00000400;
+const UINT WINED3DTEXOPCAPS_BLENDDIFFUSEALPHA                   = 0x00000800;
+const UINT WINED3DTEXOPCAPS_BLENDTEXTUREALPHA                   = 0x00001000;
+const UINT WINED3DTEXOPCAPS_BLENDFACTORALPHA                    = 0x00002000;
+const UINT WINED3DTEXOPCAPS_BLENDTEXTUREALPHAPM                 = 0x00004000;
+const UINT WINED3DTEXOPCAPS_BLENDCURRENTALPHA                   = 0x00008000;
+const UINT WINED3DTEXOPCAPS_PREMODULATE                         = 0x00010000;
+const UINT WINED3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR              = 0x00020000;
+const UINT WINED3DTEXOPCAPS_MODULATECOLOR_ADDALPHA              = 0x00040000;
+const UINT WINED3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR           = 0x00080000;
+const UINT WINED3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA           = 0x00100000;
+const UINT WINED3DTEXOPCAPS_BUMPENVMAP                          = 0x00200000;
+const UINT WINED3DTEXOPCAPS_BUMPENVMAPLUMINANCE                 = 0x00400000;
+const UINT WINED3DTEXOPCAPS_DOTPRODUCT3                         = 0x00800000;
+const UINT WINED3DTEXOPCAPS_MULTIPLYADD                         = 0x01000000;
+const UINT WINED3DTEXOPCAPS_LERP                                = 0x02000000;
+
+const UINT WINED3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH              = 24;
+const UINT WINED3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH              = 0;
+const UINT WINED3DVS20_MAX_NUMTEMPS                             = 32;
+const UINT WINED3DVS20_MIN_NUMTEMPS                             = 12;
+const UINT WINED3DVS20_MAX_STATICFLOWCONTROLDEPTH               = 4;
+const UINT WINED3DVS20_MIN_STATICFLOWCONTROLDEPTH               = 1;
+
+const UINT WINED3DVS20CAPS_PREDICATION                          = 0x00000001;
+
+const UINT WINED3DCAPS2_NO2DDURING3DSCENE                       = 0x00000002;
+const UINT WINED3DCAPS2_FULLSCREENGAMMA                         = 0x00020000;
+const UINT WINED3DCAPS2_CANRENDERWINDOWED                       = 0x00080000;
+const UINT WINED3DCAPS2_CANCALIBRATEGAMMA                       = 0x00100000;
+const UINT WINED3DCAPS2_RESERVED                                = 0x02000000;
+const UINT WINED3DCAPS2_CANMANAGERESOURCE                       = 0x10000000;
+const UINT WINED3DCAPS2_DYNAMICTEXTURES                         = 0x20000000;
+const UINT WINED3DCAPS2_CANAUTOGENMIPMAP                        = 0x40000000;
+
+const UINT WINED3DPRASTERCAPS_DITHER                            = 0x00000001;
+const UINT WINED3DPRASTERCAPS_ROP2                              = 0x00000002;
+const UINT WINED3DPRASTERCAPS_XOR                               = 0x00000004;
+const UINT WINED3DPRASTERCAPS_PAT                               = 0x00000008;
+const UINT WINED3DPRASTERCAPS_ZTEST                             = 0x00000010;
+const UINT WINED3DPRASTERCAPS_SUBPIXEL                          = 0x00000020;
+const UINT WINED3DPRASTERCAPS_SUBPIXELX                         = 0x00000040;
+const UINT WINED3DPRASTERCAPS_FOGVERTEX                         = 0x00000080;
+const UINT WINED3DPRASTERCAPS_FOGTABLE                          = 0x00000100;
+const UINT WINED3DPRASTERCAPS_STIPPLE                           = 0x00000200;
+const UINT WINED3DPRASTERCAPS_ANTIALIASSORTDEPENDENT            = 0x00000400;
+const UINT WINED3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT          = 0x00000800;
+const UINT WINED3DPRASTERCAPS_ANTIALIASEDGES                    = 0x00001000;
+const UINT WINED3DPRASTERCAPS_MIPMAPLODBIAS                     = 0x00002000;
+const UINT WINED3DPRASTERCAPS_ZBIAS                             = 0x00004000;
+const UINT WINED3DPRASTERCAPS_ZBUFFERLESSHSR                    = 0x00008000;
+const UINT WINED3DPRASTERCAPS_FOGRANGE                          = 0x00010000;
+const UINT WINED3DPRASTERCAPS_ANISOTROPY                        = 0x00020000;
+const UINT WINED3DPRASTERCAPS_WBUFFER                           = 0x00040000;
+const UINT WINED3DPRASTERCAPS_TRANSLUCENTSORTINDEPENDENT        = 0x00080000;
+const UINT WINED3DPRASTERCAPS_WFOG                              = 0x00100000;
+const UINT WINED3DPRASTERCAPS_ZFOG                              = 0x00200000;
+const UINT WINED3DPRASTERCAPS_COLORPERSPECTIVE                  = 0x00400000;
+const UINT WINED3DPRASTERCAPS_SCISSORTEST                       = 0x01000000;
+const UINT WINED3DPRASTERCAPS_SLOPESCALEDEPTHBIAS               = 0x02000000;
+const UINT WINED3DPRASTERCAPS_DEPTHBIAS                         = 0x04000000;
+const UINT WINED3DPRASTERCAPS_MULTISAMPLE_TOGGLE                = 0x08000000;
+
+const UINT WINED3DPSHADECAPS_COLORFLATMONO                      = 0x00000001;
+const UINT WINED3DPSHADECAPS_COLORFLATRGB                       = 0x00000002;
+const UINT WINED3DPSHADECAPS_COLORGOURAUDMONO                   = 0x00000004;
+const UINT WINED3DPSHADECAPS_COLORGOURAUDRGB                    = 0x00000008;
+const UINT WINED3DPSHADECAPS_COLORPHONGMONO                     = 0x00000010;
+const UINT WINED3DPSHADECAPS_COLORPHONGRGB                      = 0x00000020;
+const UINT WINED3DPSHADECAPS_SPECULARFLATMONO                   = 0x00000040;
+const UINT WINED3DPSHADECAPS_SPECULARFLATRGB                    = 0x00000080;
+const UINT WINED3DPSHADECAPS_SPECULARGOURAUDMONO                = 0x00000100;
+const UINT WINED3DPSHADECAPS_SPECULARGOURAUDRGB                 = 0x00000200;
+const UINT WINED3DPSHADECAPS_SPECULARPHONGMONO                  = 0x00000400;
+const UINT WINED3DPSHADECAPS_SPECULARPHONGRGB                   = 0x00000800;
+const UINT WINED3DPSHADECAPS_ALPHAFLATBLEND                     = 0x00001000;
+const UINT WINED3DPSHADECAPS_ALPHAFLATSTIPPLED                  = 0x00002000;
+const UINT WINED3DPSHADECAPS_ALPHAGOURAUDBLEND                  = 0x00004000;
+const UINT WINED3DPSHADECAPS_ALPHAGOURAUDSTIPPLED               = 0x00008000;
+const UINT WINED3DPSHADECAPS_ALPHAPHONGBLEND                    = 0x00010000;
+const UINT WINED3DPSHADECAPS_ALPHAPHONGSTIPPLED                 = 0x00020000;
+const UINT WINED3DPSHADECAPS_FOGFLAT                            = 0x00040000;
+const UINT WINED3DPSHADECAPS_FOGGOURAUD                         = 0x00080000;
+const UINT WINED3DPSHADECAPS_FOGPHONG                           = 0x00100000;
+
+const UINT WINED3DPTEXTURECAPS_PERSPECTIVE                      = 0x00000001;
+const UINT WINED3DPTEXTURECAPS_POW2                             = 0x00000002;
+const UINT WINED3DPTEXTURECAPS_ALPHA                            = 0x00000004;
+const UINT WINED3DPTEXTURECAPS_TRANSPARENCY                     = 0x00000008;
+const UINT WINED3DPTEXTURECAPS_BORDER                           = 0x00000010;
+const UINT WINED3DPTEXTURECAPS_SQUAREONLY                       = 0x00000020;
+const UINT WINED3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE         = 0x00000040;
+const UINT WINED3DPTEXTURECAPS_ALPHAPALETTE                     = 0x00000080;
+const UINT WINED3DPTEXTURECAPS_NONPOW2CONDITIONAL               = 0x00000100;
+const UINT WINED3DPTEXTURECAPS_PROJECTED                        = 0x00000400;
+const UINT WINED3DPTEXTURECAPS_CUBEMAP                          = 0x00000800;
+const UINT WINED3DPTEXTURECAPS_COLORKEYBLEND                    = 0x00001000;
+const UINT WINED3DPTEXTURECAPS_VOLUMEMAP                        = 0x00002000;
+const UINT WINED3DPTEXTURECAPS_MIPMAP                           = 0x00004000;
+const UINT WINED3DPTEXTURECAPS_MIPVOLUMEMAP                     = 0x00008000;
+const UINT WINED3DPTEXTURECAPS_MIPCUBEMAP                       = 0x00010000;
+const UINT WINED3DPTEXTURECAPS_CUBEMAP_POW2                     = 0x00020000;
+const UINT WINED3DPTEXTURECAPS_VOLUMEMAP_POW2                   = 0x00040000;
+const UINT WINED3DPTEXTURECAPS_NOPROJECTEDBUMPENV               = 0x00200000;
+
+const UINT WINED3DPTFILTERCAPS_NEAREST                          = 0x00000001;
+const UINT WINED3DPTFILTERCAPS_LINEAR                           = 0x00000002;
+const UINT WINED3DPTFILTERCAPS_MIPNEAREST                       = 0x00000004;
+const UINT WINED3DPTFILTERCAPS_MIPLINEAR                        = 0x00000008;
+const UINT WINED3DPTFILTERCAPS_LINEARMIPNEAREST                 = 0x00000010;
+const UINT WINED3DPTFILTERCAPS_LINEARMIPLINEAR                  = 0x00000020;
+const UINT WINED3DPTFILTERCAPS_MINFPOINT                        = 0x00000100;
+const UINT WINED3DPTFILTERCAPS_MINFLINEAR                       = 0x00000200;
+const UINT WINED3DPTFILTERCAPS_MINFANISOTROPIC                  = 0x00000400;
+const UINT WINED3DPTFILTERCAPS_MIPFPOINT                        = 0x00010000;
+const UINT WINED3DPTFILTERCAPS_MIPFLINEAR                       = 0x00020000;
+const UINT WINED3DPTFILTERCAPS_MAGFPOINT                        = 0x01000000;
+const UINT WINED3DPTFILTERCAPS_MAGFLINEAR                       = 0x02000000;
+const UINT WINED3DPTFILTERCAPS_MAGFANISOTROPIC                  = 0x04000000;
+const UINT WINED3DPTFILTERCAPS_MAGFPYRAMIDALQUAD                = 0x08000000;
+const UINT WINED3DPTFILTERCAPS_MAGFGAUSSIANQUAD                 = 0x10000000;
+
+const UINT WINED3DVTXPCAPS_TEXGEN                               = 0x00000001;
+const UINT WINED3DVTXPCAPS_MATERIALSOURCE7                      = 0x00000002;
+const UINT WINED3DVTXPCAPS_VERTEXFOG                            = 0x00000004;
+const UINT WINED3DVTXPCAPS_DIRECTIONALLIGHTS                    = 0x00000008;
+const UINT WINED3DVTXPCAPS_POSITIONALLIGHTS                     = 0x00000010;
+const UINT WINED3DVTXPCAPS_LOCALVIEWER                          = 0x00000020;
+const UINT WINED3DVTXPCAPS_TWEENING                             = 0x00000040;
+const UINT WINED3DVTXPCAPS_TEXGEN_SPHEREMAP                     = 0x00000100;
+const UINT WINED3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER             = 0x00000200;
+
+const UINT WINED3DCURSORCAPS_COLOR                              = 0x00000001;
+const UINT WINED3DCURSORCAPS_LOWRES                             = 0x00000002;
+
+const UINT WINED3DDEVCAPS_FLOATTLVERTEX                         = 0x00000001;
+const UINT WINED3DDEVCAPS_SORTINCREASINGZ                       = 0x00000002;
+const UINT WINED3DDEVCAPS_SORTDECREASINGZ                       = 0X00000004;
+const UINT WINED3DDEVCAPS_SORTEXACT                             = 0x00000008;
+const UINT WINED3DDEVCAPS_EXECUTESYSTEMMEMORY                   = 0x00000010;
+const UINT WINED3DDEVCAPS_EXECUTEVIDEOMEMORY                    = 0x00000020;
+const UINT WINED3DDEVCAPS_TLVERTEXSYSTEMMEMORY                  = 0x00000040;
+const UINT WINED3DDEVCAPS_TLVERTEXVIDEOMEMORY                   = 0x00000080;
+const UINT WINED3DDEVCAPS_TEXTURESYSTEMMEMORY                   = 0x00000100;
+const UINT WINED3DDEVCAPS_TEXTUREVIDEOMEMORY                    = 0x00000200;
+const UINT WINED3DDEVCAPS_DRAWPRIMTLVERTEX                      = 0x00000400;
+const UINT WINED3DDEVCAPS_CANRENDERAFTERFLIP                    = 0x00000800;
+const UINT WINED3DDEVCAPS_TEXTURENONLOCALVIDMEM                 = 0x00001000;
+const UINT WINED3DDEVCAPS_DRAWPRIMITIVES2                       = 0x00002000;
+const UINT WINED3DDEVCAPS_SEPARATETEXTUREMEMORIES               = 0x00004000;
+const UINT WINED3DDEVCAPS_DRAWPRIMITIVES2EX                     = 0x00008000;
+const UINT WINED3DDEVCAPS_HWTRANSFORMANDLIGHT                   = 0x00010000;
+const UINT WINED3DDEVCAPS_CANBLTSYSTONONLOCAL                   = 0x00020000;
+const UINT WINED3DDEVCAPS_HWRASTERIZATION                       = 0x00080000;
+const UINT WINED3DDEVCAPS_PUREDEVICE                            = 0x00100000;
+const UINT WINED3DDEVCAPS_QUINTICRTPATCHES                      = 0x00200000;
+const UINT WINED3DDEVCAPS_RTPATCHES                             = 0x00400000;
+const UINT WINED3DDEVCAPS_RTPATCHHANDLEZERO                     = 0x00800000;
+const UINT WINED3DDEVCAPS_NPATCHES                              = 0x01000000;
+
+/* dwDDFX */
+/* arithmetic stretching along y axis */
+const UINT WINEDDBLTFX_ARITHSTRETCHY                            = 0x00000001;
+/* mirror on y axis */
+const UINT WINEDDBLTFX_MIRRORLEFTRIGHT                          = 0x00000002;
+/* mirror on x axis */
+const UINT WINEDDBLTFX_MIRRORUPDOWN                             = 0x00000004;
+/* do not tear */
+const UINT WINEDDBLTFX_NOTEARING                                = 0x00000008;
+/* 180 degrees clockwise rotation */
+const UINT WINEDDBLTFX_ROTATE180                                = 0x00000010;
+/* 270 degrees clockwise rotation */
+const UINT WINEDDBLTFX_ROTATE270                                = 0x00000020;
+/* 90 degrees clockwise rotation */
+const UINT WINEDDBLTFX_ROTATE90                                 = 0x00000040;
+/* dwZBufferLow and dwZBufferHigh specify limits to the copied Z values */
+const UINT WINEDDBLTFX_ZBUFFERRANGE                             = 0x00000080;
+/* add dwZBufferBaseDest to every source z value before compare */
+const UINT WINEDDBLTFX_ZBUFFERBASEDEST                          = 0x00000100;
+
+/* dwFlags for Blt* */
+const UINT WINEDDBLT_ALPHADEST                                  = 0x00000001;
+const UINT WINEDDBLT_ALPHADESTCONSTOVERRIDE                     = 0x00000002;
+const UINT WINEDDBLT_ALPHADESTNEG                               = 0x00000004;
+const UINT WINEDDBLT_ALPHADESTSURFACEOVERRIDE                   = 0x00000008;
+const UINT WINEDDBLT_ALPHAEDGEBLEND                             = 0x00000010;
+const UINT WINEDDBLT_ALPHASRC                                   = 0x00000020;
+const UINT WINEDDBLT_ALPHASRCCONSTOVERRIDE                      = 0x00000040;
+const UINT WINEDDBLT_ALPHASRCNEG                                = 0x00000080;
+const UINT WINEDDBLT_ALPHASRCSURFACEOVERRIDE                    = 0x00000100;
+const UINT WINEDDBLT_ASYNC                                      = 0x00000200;
+const UINT WINEDDBLT_COLORFILL                                  = 0x00000400;
+const UINT WINEDDBLT_DDFX                                       = 0x00000800;
+const UINT WINEDDBLT_DDROPS                                     = 0x00001000;
+const UINT WINEDDBLT_KEYDEST                                    = 0x00002000;
+const UINT WINEDDBLT_KEYDESTOVERRIDE                            = 0x00004000;
+const UINT WINEDDBLT_KEYSRC                                     = 0x00008000;
+const UINT WINEDDBLT_KEYSRCOVERRIDE                             = 0x00010000;
+const UINT WINEDDBLT_ROP                                        = 0x00020000;
+const UINT WINEDDBLT_ROTATIONANGLE                              = 0x00040000;
+const UINT WINEDDBLT_ZBUFFER                                    = 0x00080000;
+const UINT WINEDDBLT_ZBUFFERDESTCONSTOVERRIDE                   = 0x00100000;
+const UINT WINEDDBLT_ZBUFFERDESTOVERRIDE                        = 0x00200000;
+const UINT WINEDDBLT_ZBUFFERSRCCONSTOVERRIDE                    = 0x00400000;
+const UINT WINEDDBLT_ZBUFFERSRCOVERRIDE                         = 0x00800000;
+const UINT WINEDDBLT_WAIT                                       = 0x01000000;
+const UINT WINEDDBLT_DEPTHFILL                                  = 0x02000000;
+const UINT WINEDDBLT_DONOTWAIT                                  = 0x08000000;
+
+/* dwTrans for BltFast */
+const UINT WINEDDBLTFAST_NOCOLORKEY                             = 0x00000000;
+const UINT WINEDDBLTFAST_SRCCOLORKEY                            = 0x00000001;
+const UINT WINEDDBLTFAST_DESTCOLORKEY                           = 0x00000002;
+const UINT WINEDDBLTFAST_WAIT                                   = 0x00000010;
+const UINT WINEDDBLTFAST_DONOTWAIT                              = 0x00000020;
+
+/* DDSURFACEDESC.dwFlags */
+const UINT WINEDDSD_CAPS                                        = 0x00000001;
+const UINT WINEDDSD_HEIGHT                                      = 0x00000002;
+const UINT WINEDDSD_WIDTH                                       = 0x00000004;
+const UINT WINEDDSD_PITCH                                       = 0x00000008;
+const UINT WINEDDSD_BACKBUFFERCOUNT                             = 0x00000020;
+const UINT WINEDDSD_ZBUFFERBITDEPTH                             = 0x00000040;
+const UINT WINEDDSD_ALPHABITDEPTH                               = 0x00000080;
+const UINT WINEDDSD_LPSURFACE                                   = 0x00000800;
+const UINT WINEDDSD_PIXELFORMAT                                 = 0x00001000;
+const UINT WINEDDSD_CKDESTOVERLAY                               = 0x00002000;
+const UINT WINEDDSD_CKDESTBLT                                   = 0x00004000;
+const UINT WINEDDSD_CKSRCOVERLAY                                = 0x00008000;
+const UINT WINEDDSD_CKSRCBLT                                    = 0x00010000;
+const UINT WINEDDSD_MIPMAPCOUNT                                 = 0x00020000;
+const UINT WINEDDSD_REFRESHRATE                                 = 0x00040000;
+const UINT WINEDDSD_LINEARSIZE                                  = 0x00080000;
+const UINT WINEDDSD_TEXTURESTAGE                                = 0x00100000;
+const UINT WINEDDSD_FVF                                         = 0x00200000;
+const UINT WINEDDSD_SRCVBHANDLE                                 = 0x00400000;
+const UINT WINEDDSD_ALL                                         = 0x007ff9ee;
+
+/* Set/Get Colour Key Flags */
+const UINT WINEDDCKEY_COLORSPACE                                = 0x00000001; /* Struct is single colour space */
+const UINT WINEDDCKEY_DESTBLT                                   = 0x00000002; /* To be used as dest for blt */
+const UINT WINEDDCKEY_DESTOVERLAY                               = 0x00000004; /* To be used as dest for CK overlays */
+const UINT WINEDDCKEY_SRCBLT                                    = 0x00000008; /* To be used as src for blt */
+const UINT WINEDDCKEY_SRCOVERLAY                                = 0x00000010; /* To be used as src for CK overlays */
+
+/* dwFlags for GetBltStatus */
+const UINT WINEDDGBS_CANBLT                                     = 0x00000001;
+const UINT WINEDDGBS_ISBLTDONE                                  = 0x00000002;
+
+/* dwFlags for GetFlipStatus */
+const UINT WINEDDGFS_CANFLIP                                    = 0x00000001;
+const UINT WINEDDGFS_ISFLIPDONE                                 = 0x00000002;
+
+/* dwFlags for Flip */
+const UINT WINEDDFLIP_WAIT                                      = 0x00000001;
+const UINT WINEDDFLIP_EVEN                                      = 0x00000002; /* only valid for overlay */
+const UINT WINEDDFLIP_ODD                                       = 0x00000004; /* only valid for overlay */
+const UINT WINEDDFLIP_NOVSYNC                                   = 0x00000008;
+const UINT WINEDDFLIP_STEREO                                    = 0x00000010;
+const UINT WINEDDFLIP_DONOTWAIT                                 = 0x00000020;
+const UINT WINEDDFLIP_INTERVAL2                                 = 0x02000000;
+const UINT WINEDDFLIP_INTERVAL3                                 = 0x03000000;
+const UINT WINEDDFLIP_INTERVAL4                                 = 0x04000000;
+
+const UINT WINEDDOVER_ALPHADEST                                 = 0x00000001;
+const UINT WINEDDOVER_ALPHADESTCONSTOVERRIDE                    = 0x00000002;
+const UINT WINEDDOVER_ALPHADESTNEG                              = 0x00000004;
+const UINT WINEDDOVER_ALPHADESTSURFACEOVERRIDE                  = 0x00000008;
+const UINT WINEDDOVER_ALPHAEDGEBLEND                            = 0x00000010;
+const UINT WINEDDOVER_ALPHASRC                                  = 0x00000020;
+const UINT WINEDDOVER_ALPHASRCCONSTOVERRIDE                     = 0x00000040;
+const UINT WINEDDOVER_ALPHASRCNEG                               = 0x00000080;
+const UINT WINEDDOVER_ALPHASRCSURFACEOVERRIDE                   = 0x00000100;
+const UINT WINEDDOVER_HIDE                                      = 0x00000200;
+const UINT WINEDDOVER_KEYDEST                                   = 0x00000400;
+const UINT WINEDDOVER_KEYDESTOVERRIDE                           = 0x00000800;
+const UINT WINEDDOVER_KEYSRC                                    = 0x00001000;
+const UINT WINEDDOVER_KEYSRCOVERRIDE                            = 0x00002000;
+const UINT WINEDDOVER_SHOW                                      = 0x00004000;
+const UINT WINEDDOVER_ADDDIRTYRECT                              = 0x00008000;
+const UINT WINEDDOVER_REFRESHDIRTYRECTS                         = 0x00010000;
+const UINT WINEDDOVER_REFRESHALL                                = 0x00020000;
+const UINT WINEDDOVER_DDFX                                      = 0x00080000;
+const UINT WINEDDOVER_AUTOFLIP                                  = 0x00100000;
+const UINT WINEDDOVER_BOB                                       = 0x00200000;
+const UINT WINEDDOVER_OVERRIDEBOBWEAVE                          = 0x00400000;
+const UINT WINEDDOVER_INTERLEAVED                               = 0x00800000;
+
+/* DirectDraw Caps */
+const UINT WINEDDSCAPS_RESERVED1                                = 0x00000001;
+const UINT WINEDDSCAPS_ALPHA                                    = 0x00000002;
+const UINT WINEDDSCAPS_BACKBUFFER                               = 0x00000004;
+const UINT WINEDDSCAPS_COMPLEX                                  = 0x00000008;
+const UINT WINEDDSCAPS_FLIP                                     = 0x00000010;
+const UINT WINEDDSCAPS_FRONTBUFFER                              = 0x00000020;
+const UINT WINEDDSCAPS_OFFSCREENPLAIN                           = 0x00000040;
+const UINT WINEDDSCAPS_OVERLAY                                  = 0x00000080;
+const UINT WINEDDSCAPS_PALETTE                                  = 0x00000100;
+const UINT WINEDDSCAPS_PRIMARYSURFACE                           = 0x00000200;
+const UINT WINEDDSCAPS_PRIMARYSURFACELEFT                       = 0x00000400;
+const UINT WINEDDSCAPS_SYSTEMMEMORY                             = 0x00000800;
+const UINT WINEDDSCAPS_TEXTURE                                  = 0x00001000;
+const UINT WINEDDSCAPS_3DDEVICE                                 = 0x00002000;
+const UINT WINEDDSCAPS_VIDEOMEMORY                              = 0x00004000;
+const UINT WINEDDSCAPS_VISIBLE                                  = 0x00008000;
+const UINT WINEDDSCAPS_WRITEONLY                                = 0x00010000;
+const UINT WINEDDSCAPS_ZBUFFER                                  = 0x00020000;
+const UINT WINEDDSCAPS_OWNDC                                    = 0x00040000;
+const UINT WINEDDSCAPS_LIVEVIDEO                                = 0x00080000;
+const UINT WINEDDSCAPS_HWCODEC                                  = 0x00100000;
+const UINT WINEDDSCAPS_MODEX                                    = 0x00200000;
+const UINT WINEDDSCAPS_MIPMAP                                   = 0x00400000;
+const UINT WINEDDSCAPS_RESERVED2                                = 0x00800000;
+const UINT WINEDDSCAPS_ALLOCONLOAD                              = 0x04000000;
+const UINT WINEDDSCAPS_VIDEOPORT                                = 0x08000000;
+const UINT WINEDDSCAPS_LOCALVIDMEM                              = 0x10000000;
+const UINT WINEDDSCAPS_NONLOCALVIDMEM                           = 0x20000000;
+const UINT WINEDDSCAPS_STANDARDVGAMODE                          = 0x40000000;
+const UINT WINEDDSCAPS_OPTIMIZED                                = 0x80000000;
+
+const UINT WINEDDCKEYCAPS_DESTBLT                               = 0x00000001;
+const UINT WINEDDCKEYCAPS_DESTBLTCLRSPACE                       = 0x00000002;
+const UINT WINEDDCKEYCAPS_DESTBLTCLRSPACEYUV                    = 0x00000004;
+const UINT WINEDDCKEYCAPS_DESTBLTYUV                            = 0x00000008;
+const UINT WINEDDCKEYCAPS_DESTOVERLAY                           = 0x00000010;
+const UINT WINEDDCKEYCAPS_DESTOVERLAYCLRSPACE                   = 0x00000020;
+const UINT WINEDDCKEYCAPS_DESTOVERLAYCLRSPACEYUV                = 0x00000040;
+const UINT WINEDDCKEYCAPS_DESTOVERLAYONEACTIVE                  = 0x00000080;
+const UINT WINEDDCKEYCAPS_DESTOVERLAYYUV                        = 0x00000100;
+const UINT WINEDDCKEYCAPS_SRCBLT                                = 0x00000200;
+const UINT WINEDDCKEYCAPS_SRCBLTCLRSPACE                        = 0x00000400;
+const UINT WINEDDCKEYCAPS_SRCBLTCLRSPACEYUV                     = 0x00000800;
+const UINT WINEDDCKEYCAPS_SRCBLTYUV                             = 0x00001000;
+const UINT WINEDDCKEYCAPS_SRCOVERLAY                            = 0x00002000;
+const UINT WINEDDCKEYCAPS_SRCOVERLAYCLRSPACE                    = 0x00004000;
+const UINT WINEDDCKEYCAPS_SRCOVERLAYCLRSPACEYUV                 = 0x00008000;
+const UINT WINEDDCKEYCAPS_SRCOVERLAYONEACTIVE                   = 0x00010000;
+const UINT WINEDDCKEYCAPS_SRCOVERLAYYUV                         = 0x00020000;
+const UINT WINEDDCKEYCAPS_NOCOSTOVERLAY                         = 0x00040000;
+
+const UINT WINEDDFXCAPS_BLTALPHA                                = 0x00000001;
+const UINT WINEDDFXCAPS_OVERLAYALPHA                            = 0x00000004;
+const UINT WINEDDFXCAPS_BLTARITHSTRETCHYN                       = 0x00000010;
+const UINT WINEDDFXCAPS_BLTARITHSTRETCHY                        = 0x00000020;
+const UINT WINEDDFXCAPS_BLTMIRRORLEFTRIGHT                      = 0x00000040;
+const UINT WINEDDFXCAPS_BLTMIRRORUPDOWN                         = 0x00000080;
+const UINT WINEDDFXCAPS_BLTROTATION                             = 0x00000100;
+const UINT WINEDDFXCAPS_BLTROTATION90                           = 0x00000200;
+const UINT WINEDDFXCAPS_BLTSHRINKX                              = 0x00000400;
+const UINT WINEDDFXCAPS_BLTSHRINKXN                             = 0x00000800;
+const UINT WINEDDFXCAPS_BLTSHRINKY                              = 0x00001000;
+const UINT WINEDDFXCAPS_BLTSHRINKYN                             = 0x00002000;
+const UINT WINEDDFXCAPS_BLTSTRETCHX                             = 0x00004000;
+const UINT WINEDDFXCAPS_BLTSTRETCHXN                            = 0x00008000;
+const UINT WINEDDFXCAPS_BLTSTRETCHY                             = 0x00010000;
+const UINT WINEDDFXCAPS_BLTSTRETCHYN                            = 0x00020000;
+const UINT WINEDDFXCAPS_OVERLAYARITHSTRETCHY                    = 0x00040000;
+const UINT WINEDDFXCAPS_OVERLAYARITHSTRETCHYN                   = 0x00000008;
+const UINT WINEDDFXCAPS_OVERLAYSHRINKX                          = 0x00080000;
+const UINT WINEDDFXCAPS_OVERLAYSHRINKXN                         = 0x00100000;
+const UINT WINEDDFXCAPS_OVERLAYSHRINKY                          = 0x00200000;
+const UINT WINEDDFXCAPS_OVERLAYSHRINKYN                         = 0x00400000;
+const UINT WINEDDFXCAPS_OVERLAYSTRETCHX                         = 0x00800000;
+const UINT WINEDDFXCAPS_OVERLAYSTRETCHXN                        = 0x01000000;
+const UINT WINEDDFXCAPS_OVERLAYSTRETCHY                         = 0x02000000;
+const UINT WINEDDFXCAPS_OVERLAYSTRETCHYN                        = 0x04000000;
+const UINT WINEDDFXCAPS_OVERLAYMIRRORLEFTRIGHT                  = 0x08000000;
+const UINT WINEDDFXCAPS_OVERLAYMIRRORUPDOWN                     = 0x10000000;
+
+const UINT WINEDDCAPS_3D                                        = 0x00000001;
+const UINT WINEDDCAPS_ALIGNBOUNDARYDEST                         = 0x00000002;
+const UINT WINEDDCAPS_ALIGNSIZEDEST                             = 0x00000004;
+const UINT WINEDDCAPS_ALIGNBOUNDARYSRC                          = 0x00000008;
+const UINT WINEDDCAPS_ALIGNSIZESRC                              = 0x00000010;
+const UINT WINEDDCAPS_ALIGNSTRIDE                               = 0x00000020;
+const UINT WINEDDCAPS_BLT                                       = 0x00000040;
+const UINT WINEDDCAPS_BLTQUEUE                                  = 0x00000080;
+const UINT WINEDDCAPS_BLTFOURCC                                 = 0x00000100;
+const UINT WINEDDCAPS_BLTSTRETCH                                = 0x00000200;
+const UINT WINEDDCAPS_GDI                                       = 0x00000400;
+const UINT WINEDDCAPS_OVERLAY                                   = 0x00000800;
+const UINT WINEDDCAPS_OVERLAYCANTCLIP                           = 0x00001000;
+const UINT WINEDDCAPS_OVERLAYFOURCC                             = 0x00002000;
+const UINT WINEDDCAPS_OVERLAYSTRETCH                            = 0x00004000;
+const UINT WINEDDCAPS_PALETTE                                   = 0x00008000;
+const UINT WINEDDCAPS_PALETTEVSYNC                              = 0x00010000;
+const UINT WINEDDCAPS_READSCANLINE                              = 0x00020000;
+const UINT WINEDDCAPS_STEREOVIEW                                = 0x00040000;
+const UINT WINEDDCAPS_VBI                                       = 0x00080000;
+const UINT WINEDDCAPS_ZBLTS                                     = 0x00100000;
+const UINT WINEDDCAPS_ZOVERLAYS                                 = 0x00200000;
+const UINT WINEDDCAPS_COLORKEY                                  = 0x00400000;
+const UINT WINEDDCAPS_ALPHA                                     = 0x00800000;
+const UINT WINEDDCAPS_COLORKEYHWASSIST                          = 0x01000000;
+const UINT WINEDDCAPS_NOHARDWARE                                = 0x02000000;
+const UINT WINEDDCAPS_BLTCOLORFILL                              = 0x04000000;
+const UINT WINEDDCAPS_BANKSWITCHED                              = 0x08000000;
+const UINT WINEDDCAPS_BLTDEPTHFILL                              = 0x10000000;
+const UINT WINEDDCAPS_CANCLIP                                   = 0x20000000;
+const UINT WINEDDCAPS_CANCLIPSTRETCHED                          = 0x40000000;
+const UINT WINEDDCAPS_CANBLTSYSMEM                              = 0x80000000;
+
+const UINT WINEDDCAPS2_CERTIFIED                                = 0x00000001;
+const UINT WINEDDCAPS2_NO2DDURING3DSCENE                        = 0x00000002;
+const UINT WINEDDCAPS2_VIDEOPORT                                = 0x00000004;
+const UINT WINEDDCAPS2_AUTOFLIPOVERLAY                          = 0x00000008;
+const UINT WINEDDCAPS2_CANBOBINTERLEAVED                        = 0x00000010;
+const UINT WINEDDCAPS2_CANBOBNONINTERLEAVED                     = 0x00000020;
+const UINT WINEDDCAPS2_COLORCONTROLOVERLAY                      = 0x00000040;
+const UINT WINEDDCAPS2_COLORCONTROLPRIMARY                      = 0x00000080;
+const UINT WINEDDCAPS2_CANDROPZ16BIT                            = 0x00000100;
+const UINT WINEDDCAPS2_NONLOCALVIDMEM                           = 0x00000200;
+const UINT WINEDDCAPS2_NONLOCALVIDMEMCAPS                       = 0x00000400;
+const UINT WINEDDCAPS2_NOPAGELOCKREQUIRED                       = 0x00000800;
+const UINT WINEDDCAPS2_WIDESURFACES                             = 0x00001000;
+const UINT WINEDDCAPS2_CANFLIPODDEVEN                           = 0x00002000;
+const UINT WINEDDCAPS2_CANBOBHARDWARE                           = 0x00004000;
+const UINT WINEDDCAPS2_COPYFOURCC                               = 0x00008000;
+const UINT WINEDDCAPS2_PRIMARYGAMMA                             = 0x00020000;
+const UINT WINEDDCAPS2_CANRENDERWINDOWED                        = 0x00080000;
+const UINT WINEDDCAPS2_CANCALIBRATEGAMMA                        = 0x00100000;
+const UINT WINEDDCAPS2_FLIPINTERVAL                             = 0x00200000;
+const UINT WINEDDCAPS2_FLIPNOVSYNC                              = 0x00400000;
+const UINT WINEDDCAPS2_CANMANAGETEXTURE                         = 0x00800000;
+const UINT WINEDDCAPS2_TEXMANINNONLOCALVIDMEM                   = 0x01000000;
+const UINT WINEDDCAPS2_STEREO                                   = 0x02000000;
+const UINT WINEDDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL              = 0x04000000;
+
+/* DDCAPS.d */
+const UINT WINEDDPCAPS_4BIT                                     = 0x00000001;
+const UINT WINEDDPCAPS_8BITENTRIES                              = 0x00000002;
+const UINT WINEDDPCAPS_8BIT                                     = 0x00000004;
+const UINT WINEDDPCAPS_INITIALIZE                               = 0x00000008;
+const UINT WINEDDPCAPS_PRIMARYSURFACE                           = 0x00000010;
+const UINT WINEDDPCAPS_PRIMARYSURFACELEFT                       = 0x00000020;
+const UINT WINEDDPCAPS_ALLOW256                                 = 0x00000040;
+const UINT WINEDDPCAPS_VSYNC                                    = 0x00000080;
+const UINT WINEDDPCAPS_1BIT                                     = 0x00000100;
+const UINT WINEDDPCAPS_2BIT                                     = 0x00000200;
+const UINT WINEDDPCAPS_ALPHA                                    = 0x00000400;
+
+typedef struct _WINED3DDISPLAYMODE
+{
+    UINT Width;
+    UINT Height;
+    UINT RefreshRate;
+    WINED3DFORMAT Format;
+} WINED3DDISPLAYMODE;
+
+typedef struct _WINED3DCOLORVALUE
+{
+    float r;
+    float g;
+    float b;
+    float a;
+} WINED3DCOLORVALUE;
+
+typedef struct _WINED3DVECTOR
+{
+    float x;
+    float y;
+    float z;
+} WINED3DVECTOR;
+
+typedef struct _WINED3DMATRIX
+{
+    union
+    {
+        struct
+        {
+            float _11, _12, _13, _14;
+            float _21, _22, _23, _24;
+            float _31, _32, _33, _34;
+            float _41, _42, _43, _44;
+        } DUMMYSTRUCTNAME;
+        float m[4][4];
+    } DUMMYUNIONNAME;
+} WINED3DMATRIX;
+
+typedef struct _WINED3DRECT
+{
+    LONG x1;
+    LONG y1;
+    LONG x2;
+    LONG y2;
+} WINED3DRECT;
+
+typedef struct _WINED3DLIGHT
+{
+    WINED3DLIGHTTYPE Type;
+    WINED3DCOLORVALUE Diffuse;
+    WINED3DCOLORVALUE Specular;
+    WINED3DCOLORVALUE Ambient;
+    WINED3DVECTOR Position;
+    WINED3DVECTOR Direction;
+    float Range;
+    float Falloff;
+    float Attenuation0;
+    float Attenuation1;
+    float Attenuation2;
+    float Theta;
+    float Phi;
+} WINED3DLIGHT;
+
+typedef struct _WINED3DMATERIAL
+{
+    WINED3DCOLORVALUE Diffuse;
+    WINED3DCOLORVALUE Ambient;
+    WINED3DCOLORVALUE Specular;
+    WINED3DCOLORVALUE Emissive;
+    float Power;
+} WINED3DMATERIAL;
+
+typedef struct _WINED3DVIEWPORT
+{
+    DWORD X;
+    DWORD Y;
+    DWORD Width;
+    DWORD Height;
+    float MinZ;
+    float MaxZ;
+} WINED3DVIEWPORT;
+
+typedef struct _WINED3DGAMMARAMP
+{
+    WORD red[256];
+    WORD green[256];
+    WORD blue[256];
+} WINED3DGAMMARAMP;
+
+typedef struct _WINED3DLINEPATTERN
+{
+    WORD wRepeatFactor;
+    WORD wLinePattern;
+} WINED3DLINEPATTERN;
+
+typedef struct _WINEDD3DRECTPATCH_INFO
+{
+    UINT StartVertexOffsetWidth;
+    UINT StartVertexOffsetHeight;
+    UINT Width;
+    UINT Height;
+    UINT Stride;
+    WINED3DBASISTYPE Basis;
+    WINED3DDEGREETYPE Degree;
+} WINED3DRECTPATCH_INFO;
+
+typedef struct _WINED3DTRIPATCH_INFO
+{
+    UINT StartVertexOffset;
+    UINT NumVertices;
+    WINED3DBASISTYPE Basis;
+    WINED3DDEGREETYPE Degree;
+} WINED3DTRIPATCH_INFO;
+
+typedef struct _WINED3DADAPTER_IDENTIFIER
+{
+    char *Driver;
+    char *Description;
+    char *DeviceName;
+    LARGE_INTEGER *DriverVersion;
+    DWORD *VendorId;
+    DWORD *DeviceId;
+    DWORD *SubSysId;
+    DWORD *Revision;
+    GUID *DeviceIdentifier;
+    DWORD *WHQLLevel;
+} WINED3DADAPTER_IDENTIFIER;
+
+typedef struct _WINED3DPRESENT_PARAMETERS
+{
+    UINT BackBufferWidth;
+    UINT BackBufferHeight;
+    WINED3DFORMAT BackBufferFormat;
+    UINT BackBufferCount;
+    WINED3DMULTISAMPLE_TYPE MultiSampleType;
+    DWORD MultiSampleQuality;
+    WINED3DSWAPEFFECT SwapEffect;
+    HWND hDeviceWindow;
+    BOOL Windowed;
+    BOOL EnableAutoDepthStencil;
+    WINED3DFORMAT AutoDepthStencilFormat;
+    DWORD Flags;
+    UINT FullScreen_RefreshRateInHz;
+    UINT PresentationInterval;
+    BOOL AutoRestoreDisplayMode;
+} WINED3DPRESENT_PARAMETERS;
+
+typedef struct _WINED3DSURFACE_DESC
+{
+    WINED3DFORMAT *Format;
+    WINED3DRESOURCETYPE *Type;
+    DWORD *Usage;
+    WINED3DPOOL *Pool;
+    UINT *Size;
+    WINED3DMULTISAMPLE_TYPE *MultiSampleType;
+    DWORD *MultiSampleQuality;
+    UINT *Width;
+    UINT *Height;
+} WINED3DSURFACE_DESC;
+
+typedef struct _WINED3DVOLUME_DESC
+{
+    WINED3DFORMAT *Format;
+    WINED3DRESOURCETYPE *Type;
+    DWORD *Usage;
+    WINED3DPOOL *Pool;
+    UINT *Size;
+    UINT *Width;
+    UINT *Height;
+    UINT *Depth;
+} WINED3DVOLUME_DESC;
+
+typedef struct _WINED3DCLIPSTATUS
+{
+   DWORD ClipUnion;
+   DWORD ClipIntersection;
+} WINED3DCLIPSTATUS;
+
+typedef struct _WINED3DVERTEXELEMENT
+{
+  WORD Stream;
+  WORD Offset;
+  BYTE Type;
+  BYTE Method;
+  BYTE Usage;
+  BYTE UsageIndex;
+  int Reg; /* DirectX 8 */
+} WINED3DVERTEXELEMENT, *LPWINED3DVERTEXELEMENT;
+
+typedef struct _WINED3DDEVICE_CREATION_PARAMETERS
+{
+    UINT AdapterOrdinal;
+    WINED3DDEVTYPE DeviceType;
+    HWND hFocusWindow;
+    DWORD BehaviorFlags;
+} WINED3DDEVICE_CREATION_PARAMETERS;
+
+typedef struct _WINED3DDEVINFO_BANDWIDTHTIMINGS
+{
+    float MaxBandwidthUtilized;
+    float FrontEndUploadMemoryUtilizedPercent;
+    float VertexRateUtilizedPercent;
+    float TriangleSetupRateUtilizedPercent;
+    float FillRateUtilizedPercent;
+} WINED3DDEVINFO_BANDWIDTHTIMINGS;
+
+typedef struct _WINED3DDEVINFO_CACHEUTILIZATION
+{
+    float TextureCacheHitRate;
+    float PostTransformVertexCacheHitRate;
+} WINED3DDEVINFO_CACHEUTILIZATION;
+
+typedef struct _WINED3DDEVINFO_INTERFACETIMINGS
+{
+    float WaitingForGPUToUseApplicationResourceTimePercent;
+    float WaitingForGPUToAcceptMoreCommandsTimePercent;
+    float WaitingForGPUToStayWithinLatencyTimePercent;
+    float WaitingForGPUExclusiveResourceTimePercent;
+    float WaitingForGPUOtherTimePercent;
+} WINED3DDEVINFO_INTERFACETIMINGS;
+
+typedef struct _WINED3DDEVINFO_PIPELINETIMINGS
+{
+    float VertexProcessingTimePercent;
+    float PixelProcessingTimePercent;
+    float OtherGPUProcessingTimePercent;
+    float GPUIdleTimePercent;
+} WINED3DDEVINFO_PIPELINETIMINGS;
+
+typedef struct _WINED3DDEVINFO_STAGETIMINGS
+{
+    float MemoryProcessingPercent;
+    float ComputationProcessingPercent;
+} WINED3DDEVINFO_STAGETIMINGS;
+
+typedef struct _WINED3DRASTER_STATUS
+{
+    BOOL InVBlank;
+    UINT ScanLine;
+} WINED3DRASTER_STATUS;
+
+typedef struct WINED3DRESOURCESTATS
+{
+    BOOL bThrashing;
+    DWORD ApproxBytesDownloaded;
+    DWORD NumEvicts;
+    DWORD NumVidCreates;
+    DWORD LastPri;
+    DWORD NumUsed;
+    DWORD NumUsedInVidMem;
+    DWORD WorkingSet;
+    DWORD WorkingSetBytes;
+    DWORD TotalManaged;
+    DWORD TotalBytes;
+} WINED3DRESOURCESTATS;
+
+typedef struct _WINED3DDEVINFO_RESOURCEMANAGER
+{
+    WINED3DRESOURCESTATS stats[WINED3DRTYPECOUNT];
+} WINED3DDEVINFO_RESOURCEMANAGER;
+
+typedef struct _WINED3DDEVINFO_VERTEXSTATS
+{
+    DWORD NumRenderedTriangles;
+    DWORD NumExtraClippingTriangles;
+} WINED3DDEVINFO_VERTEXSTATS;
+
+typedef struct _WINED3DLOCKED_RECT
+{
+    INT Pitch;
+    void *pBits;
+} WINED3DLOCKED_RECT;
+
+typedef struct _WINED3DLOCKED_BOX
+{
+    INT RowPitch;
+    INT SlicePitch;
+    void *pBits;
+} WINED3DLOCKED_BOX;
+
+typedef struct _WINED3DBOX
+{
+    UINT Left;
+    UINT Top;
+    UINT Right;
+    UINT Bottom;
+    UINT Front;
+    UINT Back;
+} WINED3DBOX;
+
+/*Vertex cache optimization hints.*/
+typedef struct WINED3DDEVINFO_VCACHE
+{
+    DWORD Pattern;      /* Must be a 4 char code FOURCC (e.g. CACH) */
+    DWORD OptMethod;    /* 0 to get the longest  strips, 1 vertex cache */
+    DWORD CacheSize;    /* Cache size to use (only valid if OptMethod==1) */
+    DWORD MagicNumber;  /* Internal for deciding when to restart strips,
+                           non user modifiable (only valid if OptMethod==1) */
+} WINED3DDEVINFO_VCACHE;
+
+typedef struct _WINED3DVERTEXBUFFER_DESC
+{
+    WINED3DFORMAT Format;
+    WINED3DRESOURCETYPE Type;
+    DWORD Usage;
+    WINED3DPOOL Pool;
+    UINT Size;
+    DWORD FVF;
+} WINED3DVERTEXBUFFER_DESC;
+
+typedef struct _WINED3DINDEXBUFFER_DESC
+{
+    WINED3DFORMAT Format;
+    WINED3DRESOURCETYPE Type;
+    DWORD Usage;
+    WINED3DPOOL Pool;
+    UINT Size;
+} WINED3DINDEXBUFFER_DESC;
+
+typedef struct glDescriptor
+{
+    UINT textureName;
+    int level;
+    int /*GLenum*/ target;
+    int /*GLenum*/ glFormat;
+    int /*GLenum*/ glFormatInternal;
+    int /*GLenum*/ glType;
+} glDescriptor;
+
+typedef struct WineDirect3DStridedData
+{
+    BYTE *lpData;   /* Pointer to start of data */
+    DWORD dwStride; /* Stride between occurrences of this data */
+    DWORD dwType;   /* Type (as in D3DVSDT_TYPE) */
+    int VBO;        /* Vertex buffer object this data is in */
+    UINT streamNo;  /* D3D stream number */
+} WineDirect3DStridedData;
+
+typedef struct WineDirect3DVertexStridedData
+{
+    /*
+     * IMPORTANT:
+     * This structure can be accessed in two ways: Named access, and array
+     * access. Please note that named access is only valid with the fixed
+     * function vertex pipeline, and the arrays are only valid with the
+     * programmable vertex pipeline(vertex shaders).
+     */
+    union
+    {
+        struct
+        {
+            /* Do not add or reorder fields here,
+             * so this can be indexed as an array */
+            WineDirect3DStridedData position;
+            WineDirect3DStridedData blendWeights;
+            WineDirect3DStridedData blendMatrixIndices;
+            WineDirect3DStridedData normal;
+            WineDirect3DStridedData pSize;
+            WineDirect3DStridedData diffuse;
+            WineDirect3DStridedData specular;
+            WineDirect3DStridedData texCoords[WINED3DDP_MAXTEXCOORD];
+            WineDirect3DStridedData position2;  /* tween data */
+            WineDirect3DStridedData normal2;    /* tween data */
+            WineDirect3DStridedData tangent;
+            WineDirect3DStridedData binormal;
+            WineDirect3DStridedData tessFactor;
+            WineDirect3DStridedData fog;
+            WineDirect3DStridedData depth;
+            WineDirect3DStridedData sample;
+
+            /* Add fields here */
+            BOOL position_transformed;
+        } s;
+        WineDirect3DStridedData input[16];  /* Indexed by constants in D3DVSDE_REGISTER */
+    } u;
+} WineDirect3DVertexStridedData;
+
+typedef struct _WINED3DVSHADERCAPS2_0
+{
+    DWORD Caps;
+    INT DynamicFlowControlDepth;
+    INT NumTemps;
+    INT StaticFlowControlDepth;
+} WINED3DVSHADERCAPS2_0;
+
+typedef struct _WINED3DPSHADERCAPS2_0
+{
+    DWORD Caps;
+    INT DynamicFlowControlDepth;
+    INT NumTemps;
+    INT StaticFlowControlDepth;
+    INT NumInstructionSlots;
+} WINED3DPSHADERCAPS2_0;
+
+typedef struct _WINEDDCAPS
+{
+    DWORD Caps;
+    DWORD Caps2;
+    DWORD CKeyCaps;
+    DWORD FXCaps;
+    DWORD FXAlphaCaps;
+    DWORD PalCaps;
+    DWORD SVCaps;
+    DWORD SVBCaps;
+    DWORD SVBCKeyCaps;
+    DWORD SVBFXCaps;
+    DWORD VSBCaps;
+    DWORD VSBCKeyCaps;
+    DWORD VSBFXCaps;
+    DWORD SSBCaps;
+    DWORD SSBCKeyCaps;
+    DWORD SSBFXCaps;
+    DWORD ddsCaps;
+    DWORD StrideAlign;
+} WINEDDCAPS;
+
+typedef struct _WINED3DCAPS
+{
+    WINED3DDEVTYPE DeviceType;
+    UINT AdapterOrdinal;
+
+    DWORD Caps;
+    DWORD Caps2;
+    DWORD Caps3;
+    DWORD PresentationIntervals;
+
+    DWORD CursorCaps;
+    DWORD DevCaps;
+    DWORD PrimitiveMiscCaps;
+    DWORD RasterCaps;
+    DWORD ZCmpCaps;
+    DWORD SrcBlendCaps;
+    DWORD DestBlendCaps;
+    DWORD AlphaCmpCaps;
+    DWORD ShadeCaps;
+    DWORD TextureCaps;
+    DWORD TextureFilterCaps;
+    DWORD CubeTextureFilterCaps;
+    DWORD VolumeTextureFilterCaps;
+    DWORD TextureAddressCaps;
+    DWORD VolumeTextureAddressCaps;
+    DWORD LineCaps;
+
+    DWORD MaxTextureWidth;
+    DWORD MaxTextureHeight;
+    DWORD MaxVolumeExtent;
+    DWORD MaxTextureRepeat;
+    DWORD MaxTextureAspectRatio;
+    DWORD MaxAnisotropy;
+    float MaxVertexW;
+
+    float GuardBandLeft;
+    float GuardBandTop;
+    float GuardBandRight;
+    float GuardBandBottom;
+
+    float ExtentsAdjust;
+    DWORD StencilCaps;
+
+    DWORD FVFCaps;
+    DWORD TextureOpCaps;
+    DWORD MaxTextureBlendStages;
+    DWORD MaxSimultaneousTextures;
+
+    DWORD VertexProcessingCaps;
+    DWORD MaxActiveLights;
+    DWORD MaxUserClipPlanes;
+    DWORD MaxVertexBlendMatrices;
+    DWORD MaxVertexBlendMatrixIndex;
+
+    float MaxPointSize;
+
+    DWORD MaxPrimitiveCount;
+    DWORD MaxVertexIndex;
+    DWORD MaxStreams;
+    DWORD MaxStreamStride;
+
+    DWORD VertexShaderVersion;
+    DWORD MaxVertexShaderConst;
+
+    DWORD PixelShaderVersion;
+    float PixelShader1xMaxValue;
+
+    /* DX 9 */
+    DWORD DevCaps2;
+
+    float MaxNpatchTessellationLevel;
+    DWORD Reserved5; /* undocumented */
+
+    UINT MasterAdapterOrdinal;
+    UINT AdapterOrdinalInGroup;
+    UINT NumberOfAdaptersInGroup;
+    DWORD DeclTypes;
+    DWORD NumSimultaneousRTs;
+    DWORD StretchRectFilterCaps;
+    WINED3DVSHADERCAPS2_0 VS20Caps;
+    WINED3DPSHADERCAPS2_0 PS20Caps;
+    DWORD VertexTextureFilterCaps;
+    DWORD MaxVShaderInstructionsExecuted;
+    DWORD MaxPShaderInstructionsExecuted;
+    DWORD MaxVertexShader30InstructionSlots;
+    DWORD MaxPixelShader30InstructionSlots;
+    DWORD Reserved2; /* Not in the microsoft headers but documented */
+    DWORD Reserved3;
+
+    WINEDDCAPS DirectDrawCaps;
+} WINED3DCAPS;
+
+/* DirectDraw types */
+
+typedef struct _WINEDDCOLORKEY
+{
+    DWORD dwColorSpaceLowValue;     /* low boundary of color space that is to
+                                     * be treated as Color Key, inclusive */
+    DWORD dwColorSpaceHighValue;    /* high boundary of color space that is
+                                     * to be treated as Color Key, inclusive */
+} WINEDDCOLORKEY,*LPWINEDDCOLORKEY;
+
+typedef struct _WINEDDBLTFX
+{
+    DWORD dwSize;                                   /* size of structure */
+    DWORD dwDDFX;                                   /* FX operations */
+    DWORD dwROP;                                    /* Win32 raster operations */
+    DWORD dwDDROP;                                  /* Raster operations new for DirectDraw */
+    DWORD dwRotationAngle;                          /* Rotation angle for blt */
+    DWORD dwZBufferOpCode;                          /* ZBuffer compares */
+    DWORD dwZBufferLow;                             /* Low limit of Z buffer */
+    DWORD dwZBufferHigh;                            /* High limit of Z buffer */
+    DWORD dwZBufferBaseDest;                        /* Destination base value */
+    DWORD dwZDestConstBitDepth;                     /* Bit depth used to specify Z constant for destination */
+    union
+    {
+        DWORD dwZDestConst;                         /* Constant to use as Z buffer for dest */
+        struct IWineD3DSurface *lpDDSZBufferDest;   /* Surface to use as Z buffer for dest */
+    } DUMMYUNIONNAME1;
+    DWORD dwZSrcConstBitDepth;                      /* Bit depth used to specify Z constant for source */
+    union
+    {
+        DWORD dwZSrcConst;                          /* Constant to use as Z buffer for src */
+        struct IWineD3DSurface *lpDDSZBufferSrc;    /* Surface to use as Z buffer for src */
+    } DUMMYUNIONNAME2;
+    DWORD dwAlphaEdgeBlendBitDepth;                 /* Bit depth used to specify constant for alpha edge blend */
+    DWORD dwAlphaEdgeBlend;                         /* Alpha for edge blending */
+    DWORD dwReserved;
+    DWORD dwAlphaDestConstBitDepth;                 /* Bit depth used to specify alpha constant for destination */
+    union
+    {
+        DWORD dwAlphaDestConst;                     /* Constant to use as Alpha Channel */
+        struct IWineD3DSurface *lpDDSAlphaDest;     /* Surface to use as Alpha Channel */
+    } DUMMYUNIONNAME3;
+    DWORD dwAlphaSrcConstBitDepth;                  /* Bit depth used to specify alpha constant for source */
+    union
+    {
+        DWORD dwAlphaSrcConst;                      /* Constant to use as Alpha Channel */
+        struct IWineD3DSurface *lpDDSAlphaSrc;      /* Surface to use as Alpha Channel */
+    } DUMMYUNIONNAME4;
+    union
+    {
+        DWORD dwFillColor;                          /* color in RGB or Palettized */
+        DWORD dwFillDepth;                          /* depth value for z-buffer */
+        DWORD dwFillPixel;                          /* pixel val for RGBA or RGBZ */
+        struct IWineD3DSurface *lpDDSPattern;       /* Surface to use as pattern */
+    } DUMMYUNIONNAME5;
+    WINEDDCOLORKEY ddckDestColorkey;                /* DestColorkey override */
+    WINEDDCOLORKEY ddckSrcColorkey;                 /* SrcColorkey override */
+} WINEDDBLTFX,*LPWINEDDBLTFX;
+
+typedef struct _WINEDDOVERLAYFX
+{
+    DWORD dwSize;                                   /* size of structure */
+    DWORD dwAlphaEdgeBlendBitDepth;                 /* Bit depth used to specify constant for alpha edge blend */
+    DWORD dwAlphaEdgeBlend;                         /* Constant to use as alpha for edge blend */
+    DWORD dwReserved;
+    DWORD dwAlphaDestConstBitDepth;                 /* Bit depth used to specify alpha constant for destination */
+    union
+    {
+        DWORD dwAlphaDestConst;                     /* Constant to use as alpha channel for dest */
+        struct IWineD3DSurface *lpDDSAlphaDest;     /* Surface to use as alpha channel for dest */
+    } DUMMYUNIONNAME1;
+    DWORD dwAlphaSrcConstBitDepth;                  /* Bit depth used to specify alpha constant for source */
+    union
+    {
+        DWORD dwAlphaSrcConst;                      /* Constant to use as alpha channel for src */
+        struct IWineD3DSurface *lpDDSAlphaSrc;      /* Surface to use as alpha channel for src */
+    } DUMMYUNIONNAME2;
+    WINEDDCOLORKEY dckDestColorkey;                 /* DestColorkey override */
+    WINEDDCOLORKEY dckSrcColorkey;                  /* SrcColorkey override */
+    DWORD dwDDFX;                                   /* Overlay FX */
+    DWORD dwFlags;                                  /* flags */
+} WINEDDOVERLAYFX;
+
+interface IWineD3DResource;
+interface IWineD3DSurface;
+interface IWineD3DVolume;
+interface IWineD3DSwapChain;
+interface IWineD3DDevice;
+
+typedef HRESULT (*D3DCB_CREATESURFACEFN)(IUnknown *pDevice, IUnknown *pSuperior, UINT Width,
+        UINT Height, WINED3DFORMAT Format, DWORD Usage, WINED3DPOOL Pool, UINT Level, WINED3DCUBEMAP_FACES Face,
+        IWineD3DSurface **ppSurface, HANDLE *pSharedHandle);
+typedef HRESULT (*D3DCB_CREATERENDERTARGETFN)(IUnknown *pDevice, IUnknown *pSuperior, UINT Width,
+        UINT Height, WINED3DFORMAT Format, WINED3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality,
+        BOOL Lockable, IWineD3DSurface **ppSurface, HANDLE *pSharedHandle);
+typedef HRESULT (*D3DCB_CREATEDEPTHSTENCILSURFACEFN)(IUnknown *pDevice, IUnknown *pSuperior, UINT Width,
+        UINT Height, WINED3DFORMAT Format, WINED3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality,
+        BOOL Discard, IWineD3DSurface **ppSurface, HANDLE *pSharedHandle);
+typedef ULONG (*D3DCB_DESTROYSURFACEFN)(IWineD3DSurface *pSurface);
+typedef HRESULT (*D3DCB_CREATEVOLUMEFN)(IUnknown *pDevice, IUnknown *pSuperior, UINT Width,
+        UINT Height, UINT Depth, WINED3DFORMAT Format, WINED3DPOOL Pool, DWORD Usage,
+        IWineD3DVolume **ppVolume, HANDLE *pSharedHandle);
+typedef ULONG (*D3DCB_DESTROYVOLUMEFN)(IWineD3DVolume *pVolume);
+typedef HRESULT (*D3DCB_CREATESWAPCHAIN)(IUnknown *pDevice, WINED3DPRESENT_PARAMETERS *pPresentationParameters,
+        IWineD3DSwapChain **pSwapChain);
+typedef ULONG (*D3DCB_DESTROYSWAPCHAINFN)(IWineD3DSwapChain *pSwapChain);
+typedef HRESULT (*D3DCB_ENUMRESOURCES)(IWineD3DResource *resource, void *pData);
+
+[
+    object,
+    local,
+    uuid(46799311-8e0e-40ce-b2ec-ddb99f18fcb4)
+]
+interface IWineD3DBase : IUnknown
+{
+    HRESULT GetParent(
+        [out] IUnknown **parent
+    );
+}
+
+[
+    object,
+    local,
+    uuid(108f9c44-6f30-11d9-c687-00046142c14f)
+]
+interface IWineD3D : IWineD3DBase
+{
+    UINT GetAdapterCount(
+    );
+    HRESULT RegisterSoftwareDevice(
+        [in] void *pInitializeFunction
+    );
+    HMONITOR GetAdapterMonitor(
+        [in] UINT adapter_idx
+    );
+    UINT GetAdapterModeCount(
+        [in] UINT adapter_idx,
+        [in] WINED3DFORMAT format
+    );
+    HRESULT EnumAdapterModes(
+        [in] UINT adapter_idx,
+        [in] UINT mode_idx,
+        [in] WINED3DFORMAT format,
+        [out] WINED3DDISPLAYMODE *mode
+    );
+    HRESULT GetAdapterDisplayMode(
+        [in] UINT adapter_idx,
+        [out] WINED3DDISPLAYMODE *mode
+    );
+    HRESULT GetAdapterIdentifier(
+        [in] UINT adapter_idx,
+        [in] DWORD flags,
+        [out] WINED3DADAPTER_IDENTIFIER *identifier
+    );
+    HRESULT CheckDeviceMultiSampleType(
+        [in] UINT adapter_idx,
+        [in] WINED3DDEVTYPE device_type,
+        [in] WINED3DFORMAT surface_format,
+        [in] BOOL windowed,
+        [in] WINED3DMULTISAMPLE_TYPE multisample_type,
+        [out] DWORD *quality_levels
+    );
+    HRESULT CheckDepthStencilMatch(
+        [in] UINT adapter_idx,
+        [in] WINED3DDEVTYPE device_type,
+        [in] WINED3DFORMAT adapter_format,
+        [in] WINED3DFORMAT render_target_format,
+        [in] WINED3DFORMAT depth_stencil_format
+    );
+    HRESULT CheckDeviceType(
+        [in] UINT adapter_idx,
+        [in] WINED3DDEVTYPE device_type,
+        [in] WINED3DFORMAT display_format,
+        [in] WINED3DFORMAT backbuffer_format,
+        [in] BOOL windowed
+    );
+    HRESULT CheckDeviceFormat(
+        [in] UINT adaper_idx,
+        [in] WINED3DDEVTYPE device_type,
+        [in] WINED3DFORMAT adapter_format,
+        [in] DWORD usage,
+        [in] WINED3DRESOURCETYPE resource_type,
+        [in] WINED3DFORMAT check_format,
+        [in] WINED3DSURFTYPE surface_type
+    );
+    HRESULT CheckDeviceFormatConversion(
+        [in] UINT adapter_idx,
+        [in] WINED3DDEVTYPE device_type,
+        [in] WINED3DFORMAT source_format,
+        [in] WINED3DFORMAT target_format
+    );
+    HRESULT GetDeviceCaps(
+        [in] UINT adapter_idx,
+        [in] WINED3DDEVTYPE device_type,
+        [out] WINED3DCAPS *caps
+    );
+    HRESULT CreateDevice(
+        [in] UINT adapter_idx,
+        [in] WINED3DDEVTYPE device_type,
+        [in] HWND focus_window,
+        [in] DWORD behaviour_flags,
+        [out] IWineD3DDevice **device,
+        [in] IUnknown *parent
+    );
+}
+
+[
+    object,
+    local,
+    uuid(1f3bfb34-6f30-11d9-c687-00046142c14f)
+]
+interface IWineD3DResource : IWineD3DBase
+{
+    HRESULT GetDevice(
+        [out] IWineD3DDevice **device
+    );
+    HRESULT SetPrivateData(
+        [in] REFGUID guid,
+        [in] const void *data,
+        [in] DWORD data_size,
+        [in] DWORD flags
+    );
+    HRESULT GetPrivateData(
+        [in] REFGUID guid,
+        [out] void *data,
+        [in, out] DWORD *data_size
+    );
+    HRESULT FreePrivateData(
+        [in] REFGUID guid
+    );
+    DWORD SetPriority(
+        [in] DWORD new_priority
+    );
+    DWORD GetPriority(
+    );
+    void PreLoad(
+    );
+    void UnLoad(
+    );
+    WINED3DRESOURCETYPE GetType(
+    );
+}
+
+[
+    object,
+    local,
+    uuid(217f671e-6f30-11d9-c687-00046142c14f)
+]
+interface IWineD3DVertexBuffer : IWineD3DResource
+{
+    HRESULT Lock(
+        [in] UINT offset,
+        [in] UINT size,
+        [out] BYTE **data,
+        [in] DWORD flags
+    );
+    HRESULT Unlock(
+    );
+    HRESULT GetDesc(
+        [out] WINED3DVERTEXBUFFER_DESC *desc
+    );
+}
+
+[
+    object,
+    local,
+    uuid(3a02a54e-6f30-11d9-c687-00046142c14f)
+]
+interface IWineD3DIndexBuffer : IWineD3DResource
+{
+    HRESULT Lock(
+        [in] UINT offset,
+        [in] UINT size,
+        [out] BYTE **data,
+        [in] DWORD flags
+    );
+    HRESULT Unlock(
+    );
+    HRESULT GetDesc(
+        [out] WINED3DINDEXBUFFER_DESC *desc
+    );
+}
+
+[
+    object,
+    local,
+    uuid(f756720c-32b9-4439-b5a3-1d6c97037d9e)
+]
+interface IWineD3DPalette : IWineD3DBase
+{
+    HRESULT GetEntries(
+        [in] DWORD flags,
+        [in] DWORD start,
+        [in] DWORD count,
+        [out] PALETTEENTRY *entries
+    );
+    HRESULT GetCaps(
+        [out] DWORD *caps
+    );
+    HRESULT SetEntries(
+        [in] DWORD flags,
+        [in] DWORD start,
+        [in] DWORD count,
+        [in] PALETTEENTRY *entries
+    );
+}
+
+[
+    object,
+    local,
+    uuid(8f2bceb1-d338-488c-ab7f-0ec980bf5d2d)
+]
+interface IWineD3DClipper : IWineD3DBase
+{
+    HRESULT GetClipList(
+        [in] RECT *rect,
+        [out] RGNDATA *clip_list,
+        [in, out] DWORD *clip_list_size
+    );
+    HRESULT GetHWnd(
+        [out] HWND *hwnd
+    );
+    HRESULT IsClipListChanged(
+        [out] BOOL *changed
+    );
+    HRESULT SetClipList(
+        [in] RGNDATA *clip_list,
+        [in] DWORD flags
+    );
+    HRESULT SetHWnd(
+        [in] DWORD flags,
+        [in] HWND hwnd
+    );
+}
+
+[
+    object,
+    local,
+    uuid(37cd5526-6f30-11d9-c687-00046142c14f)
+]
+interface IWineD3DSurface : IWineD3DResource
+{
+    HRESULT GetContainer(
+        [in] REFIID riid,
+        [out] void **container
+    );
+    HRESULT GetDesc(
+        [out] WINED3DSURFACE_DESC *desc
+    );
+    HRESULT LockRect(
+        [out] WINED3DLOCKED_RECT *locked_rect,
+        [in] const RECT *rect,
+        [in] DWORD flags
+    );
+    HRESULT UnlockRect(
+    );
+    HRESULT GetDC(
+        [out] HDC *dc
+    );
+    HRESULT ReleaseDC(
+        [in] HDC dc
+    );
+    HRESULT Flip(
+        [in] IWineD3DSurface *override,
+        [in] DWORD flags
+    );
+    HRESULT Blt(
+        [in] RECT *dst_rect,
+        [in] IWineD3DSurface *src_surface,
+        [in] RECT *src_rect,
+        [in] DWORD flags,
+        [in] WINEDDBLTFX *blt_fx,
+        [in] WINED3DTEXTUREFILTERTYPE filter
+    );
+    HRESULT GetBltStatus(
+        [in] DWORD flags
+    );
+    HRESULT GetFlipStatus(
+        [in] DWORD flags
+    );
+    HRESULT IsLost(
+    );
+    HRESULT Restore(
+    );
+    HRESULT BltFast(
+        [in] DWORD dst_x,
+        [in] DWORD dst_y,
+        [in] IWineD3DSurface *src_surface,
+        [in] RECT *src_rect,
+        [in] DWORD trans
+    );
+    HRESULT GetPalette(
+        [out] IWineD3DPalette **palette
+    );
+    HRESULT SetPalette(
+        [in] IWineD3DPalette *palette
+    );
+    HRESULT RealizePalette(
+    );
+    HRESULT SetColorKey(
+        [in] DWORD flags,
+        [in] WINEDDCOLORKEY *color_key
+    );
+    DWORD GetPitch(
+    );
+    HRESULT SetMem(
+        [in] void *mem
+    );
+    HRESULT SetOverlayPosition(
+        [in] LONG x,
+        [in] LONG y
+    );
+    HRESULT GetOverlayPosition(
+        [out] LONG *x,
+        [out] LONG *y
+    );
+    HRESULT UpdateOverlayZOrder(
+        [in] DWORD flags,
+        [in] IWineD3DSurface *ref
+    );
+    HRESULT UpdateOverlay(
+        [in] RECT *src_rect,
+        [in] IWineD3DSurface *dst_surface,
+        [in] RECT *dst_rect,
+        [in] DWORD flags,
+        [in] WINEDDOVERLAYFX *fx
+    );
+    HRESULT SetClipper(
+        [in] IWineD3DClipper *clipper
+    );
+    HRESULT GetClipper(
+        [out] IWineD3DClipper **clipper
+    );
+    HRESULT AddDirtyRect(
+        [in] const RECT *dirty_rect
+    );
+    HRESULT LoadTexture(
+        [in] BOOL srgb_mode
+    );
+    void BindTexture(
+    );
+    HRESULT SaveSnapshot(
+        [in] const char *filename
+    );
+    HRESULT SetContainer(
+        [in] IWineD3DBase *container
+    );
+    void GetGlDesc(
+        [out] glDescriptor **desc
+    );
+    const void *GetData(
+    );
+    HRESULT SetFormat(
+        [in] WINED3DFORMAT format
+    );
+    HRESULT PrivateSetup(
+    );
+    void ModifyLocation(
+        [in] DWORD location,
+        [in] BOOL persistent
+    );
+    HRESULT LoadLocation(
+        [in] DWORD location,
+        [in] const RECT *rect
+    );
+    WINED3DSURFTYPE GetImplType(
+    );
+    HRESULT DrawOverlay(
+    );
+}
+
+[
+    object,
+    local,
+    uuid(24769ed8-6f30-11d9-c687-00046142c14f)
+]
+interface IWineD3DVolume : IWineD3DResource
+{
+    HRESULT GetContainer(
+        [in] REFIID riid,
+        [out] void **container
+    );
+    HRESULT GetDesc(
+        [out] WINED3DVOLUME_DESC *desc
+    );
+    HRESULT LockBox(
+        [out] WINED3DLOCKED_BOX *locked_box,
+        [in] const WINED3DBOX *box,
+        [in] DWORD flags
+    );
+    HRESULT UnlockBox(
+    );
+    HRESULT AddDirtyBox(
+        [in] const WINED3DBOX *dirty_box
+    );
+    HRESULT CleanDirtyBox(
+    );
+    HRESULT LoadTexture(
+        [in] int gl_level,
+        [in] BOOL srgb_mode
+    );
+    HRESULT SetContainer(
+        [in] IWineD3DBase *container
+    );
+}
+
+[
+    object,
+    local,
+    uuid(3c2aebf6-6f30-11d9-c687-00046142c14f)
+]
+interface IWineD3DBaseTexture : IWineD3DResource
+{
+    DWORD SetLOD(
+        [in] DWORD new_lod
+    );
+    DWORD GetLOD(
+    );
+    DWORD GetLevelCount(
+    );
+    HRESULT SetAutoGenFilterType(
+        WINED3DTEXTUREFILTERTYPE filter_type
+    );
+    WINED3DTEXTUREFILTERTYPE GetAutoGenFilterType(
+    );
+    void GenerateMipSubLevels(
+    );
+    BOOL SetDirty(
+        BOOL dirty
+    );
+    BOOL GetDirty(
+    );
+    HRESULT BindTexture(
+    );
+    UINT GetTextureDimensions(
+    );
+    BOOL IsCondNP2(
+    );
+    void ApplyStateChanges(
+        const DWORD texture_states[WINED3D_HIGHEST_TEXTURE_STATE + 1],
+        const DWORD sampler_states[WINED3D_HIGHEST_SAMPLER_STATE + 1]
+    );
+}
+
+[
+    object,
+    local,
+    uuid(3e72cc1c-6f30-11d9-c687-00046142c14f)
+]
+interface IWineD3DTexture : IWineD3DBaseTexture
+{
+    void Destroy(
+        [in] D3DCB_DESTROYSURFACEFN destroy_surface_callback
+    );
+    HRESULT GetLevelDesc(
+        [in] UINT level,
+        [out] WINED3DSURFACE_DESC *desc
+    );
+    HRESULT GetSurfaceLevel(
+        [in] UINT level,
+        [out] IWineD3DSurface **surface
+    );
+    HRESULT LockRect(
+        [in] UINT level,
+        [out] WINED3DLOCKED_RECT *locked_rect,
+        [in] const RECT *rect,
+        [in] DWORD flags
+    );
+    HRESULT UnlockRect(
+        [in] UINT level
+    );
+    HRESULT AddDirtyRect(
+        [in] const RECT *dirty_rect
+    );
+}
+
+[
+    object,
+    local,
+    uuid(41752900-6f30-11d9-c687-00046142c14f)
+]
+interface IWineD3DCubeTexture : IWineD3DBaseTexture
+{
+    void Destroy(
+        [in] D3DCB_DESTROYSURFACEFN destroy_surface_callback
+    );
+    HRESULT GetLevelDesc(
+        [in] UINT level,
+        [out] WINED3DSURFACE_DESC *desc
+    );
+    HRESULT GetCubeMapSurface(
+        [in] WINED3DCUBEMAP_FACES face,
+        [in] UINT level,
+        [out] IWineD3DSurface **surface
+    );
+    HRESULT LockRect(
+        [in] WINED3DCUBEMAP_FACES face,
+        [in] UINT level,
+        [out] WINED3DLOCKED_RECT *locked_rect,
+        [in] const RECT *rect,
+        [in] DWORD flags
+    );
+    HRESULT UnlockRect(
+        [in] WINED3DCUBEMAP_FACES face,
+        [in] UINT level
+    );
+    HRESULT AddDirtyRect(
+        [in] WINED3DCUBEMAP_FACES face,
+        [in] const RECT *dirty_rect
+    );
+}
+
+[
+    object,
+    local,
+    uuid(7b39470c-6f30-11d9-c687-00046142c14f)
+]
+interface IWineD3DVolumeTexture : IWineD3DBaseTexture
+{
+    void Destroy(
+        [in] D3DCB_DESTROYVOLUMEFN destroy_volume_callback
+    );
+    HRESULT GetLevelDesc(
+        [in] UINT level,
+        [out] WINED3DVOLUME_DESC *desc
+    );
+    HRESULT GetVolumeLevel(
+        [in] UINT level,
+        [out] IWineD3DVolume **volume
+    );
+    HRESULT LockBox(
+        [in] UINT level,
+        [out] WINED3DLOCKED_BOX *locked_box,
+        [in] const WINED3DBOX *box,
+        [in] DWORD flags
+    );
+    HRESULT UnlockBox(
+        [in] UINT level
+    );
+    HRESULT AddDirtyBox(
+        [in] const WINED3DBOX *dirty_box
+    );
+}
+
+[
+    object,
+    local,
+    uuid(7cd55be6-6f30-11d9-c687-00046142c14f)
+]
+interface IWineD3DVertexDeclaration : IWineD3DBase
+{
+    HRESULT GetDevice(
+        [out] IWineD3DDevice **device
+    );
+    HRESULT GetDeclaration(
+        [out] WINED3DVERTEXELEMENT *elements,
+        [out] UINT *element_count
+    );
+    HRESULT SetDeclaration(
+        [in] const WINED3DVERTEXELEMENT *elements,
+        [in] UINT element_count
+    );
+}
+
+[
+    object,
+    local,
+    uuid(83b073ce-6f30-11d9-c687-00046142c14f)
+]
+interface IWineD3DStateBlock : IWineD3DBase
+{
+    HRESULT GetDevice(
+        [out] IWineD3DDevice **device
+    );
+    HRESULT Capture(
+    );
+    HRESULT Apply(
+    );
+    HRESULT InitStartupStateBlock(
+    );
+}
+
+[
+    object,
+    local,
+    uuid(905ddbac-6f30-11d9-c687-00046142c14f)
+]
+interface IWineD3DQuery : IWineD3DBase
+{
+    HRESULT GetDevice(
+        [out] IWineD3DDevice **device
+    );
+    HRESULT GetData(
+        [out] void *data,
+        [in] DWORD data_size,
+        [in] DWORD flags
+    );
+    DWORD GetDataSize(
+    );
+    WINED3DQUERYTYPE GetType(
+    );
+    HRESULT Issue(
+        DWORD flags
+    );
+}
+
+[
+    object,
+    local,
+    uuid(34d01b10-6f30-11d9-c687-00046142c14f)
+]
+interface IWineD3DSwapChain : IWineD3DBase
+{
+    void Destroy(
+        [in] D3DCB_DESTROYSURFACEFN destroy_surface_callback
+    );
+    HRESULT GetDevice(
+        [out] IWineD3DDevice **device
+    );
+    HRESULT Present(
+        [in] const RECT *src_rect,
+        [in] const RECT *dst_rect,
+        [in] HWND dst_window_override,
+        [in] const RGNDATA *dirty_region,
+        [in] DWORD flags
+    );
+    HRESULT SetDestWindowOverride(
+        [in] HWND window
+    );
+    HRESULT GetFrontBufferData(
+        [in] IWineD3DSurface *dst_surface
+    );
+    HRESULT GetBackBuffer(
+        [in] UINT backbuffer_idx,
+        [in] WINED3DBACKBUFFER_TYPE backbuffer_type,
+        [out] IWineD3DSurface **backbuffer
+    );
+    HRESULT GetRasterStatus(
+        [out] WINED3DRASTER_STATUS *raster_status
+    );
+    HRESULT GetDisplayMode(
+        [out] WINED3DDISPLAYMODE *mode
+    );
+    HRESULT GetPresentParameters(
+        [out] WINED3DPRESENT_PARAMETERS *present_parameters
+    );
+    HRESULT SetGammaRamp(
+        [in] DWORD flags,
+        [in] const WINED3DGAMMARAMP *ramp
+    );
+    HRESULT GetGammaRamp(
+        [out] WINED3DGAMMARAMP *ramp
+    );
+}
+
+[
+    object,
+    local,
+    uuid(eac93065-a4df-446f-86a1-9ef2bca40a3c)
+]
+interface IWineD3DBaseShader : IWineD3DBase
+{
+    HRESULT SetFunction(
+        [in] const DWORD *function
+    );
+}
+
+[
+    object,
+    local,
+    uuid(7f7a2b60-6f30-11d9-c687-00046142c14f)
+]
+interface IWineD3DVertexShader : IWineD3DBaseShader
+{
+    HRESULT GetDevice(
+        [out] IWineD3DDevice **device
+    );
+    HRESULT GetFunction(
+        [out] void *data,
+        [in, out] UINT *data_size
+    );
+    void FakeSemantics(
+        [in] IWineD3DVertexDeclaration *vertex_declaration
+    );
+    HRESULT SetLocalConstantsF(
+        [in] UINT start_idx,
+        [in] const float *src_data,
+        [in] UINT vector4f_count
+    );
+}
+
+[
+    object,
+    local,
+    uuid(818503da-6f30-11d9-c687-00046142c14f)
+]
+interface IWineD3DPixelShader : IWineD3DBaseShader
+{
+    HRESULT UpdateSamplers(
+    );
+    HRESULT GetDevice(
+        [out] IWineD3DDevice **device
+    );
+    HRESULT GetFunction(
+        [out] void *data,
+        [in, out] UINT *data_size
+    );
+}
+
+[
+    object,
+    local,
+    uuid(6d10a2ce-09d0-4a53-a427-11388f9f8ca5)
+]
+interface IWineD3DDevice : IWineD3DBase
+{
+    HRESULT CreateVertexBuffer(
+        [in] UINT length,
+        [in] DWORD usage,
+        [in] DWORD fvf,
+        [in] WINED3DPOOL pool,
+        [out] IWineD3DVertexBuffer **vertex_buffer,
+        [in] HANDLE *shared_handle,
+        [in] IUnknown *parent
+    );
+    HRESULT CreateIndexBuffer(
+        [in] UINT length,
+        [in] DWORD usage,
+        [in] WINED3DFORMAT format,
+        [in] WINED3DPOOL pool,
+        [out] IWineD3DIndexBuffer **index_buffer,
+        [in] HANDLE *shared_handle,
+        [in] IUnknown *parent
+    );
+    HRESULT CreateStateBlock(
+        [in] WINED3DSTATEBLOCKTYPE type,
+        [out] IWineD3DStateBlock **stateblock,
+        [in] IUnknown *parent
+    );
+    HRESULT CreateSurface(
+        [in] UINT width,
+        [in] UINT height,
+        [in] WINED3DFORMAT format,
+        [in] BOOL lockable,
+        [in] BOOL discard,
+        [in] UINT level,
+        [out] IWineD3DSurface **surface,
+        [in] WINED3DRESOURCETYPE resource_type,
+        [in] DWORD usage,
+        [in] WINED3DPOOL pool,
+        [in] WINED3DMULTISAMPLE_TYPE multisample_type,
+        [in] DWORD multisample_quality,
+        [in] HANDLE *shared_handle,
+        [in] WINED3DSURFTYPE surface_type,
+        [in] IUnknown *parent
+    );
+    HRESULT CreateTexture(
+        [in] UINT width,
+        [in] UINT height,
+        [in] UINT levels,
+        [in] DWORD usage,
+        [in] WINED3DFORMAT format,
+        [in] WINED3DPOOL pool,
+        [out] IWineD3DTexture **texture,
+        [in] HANDLE *shared_handle,
+        [in] IUnknown *parent,
+        [in] D3DCB_CREATESURFACEFN create_surface_callback
+    );
+    HRESULT CreateVolumeTexture(
+        [in] UINT width,
+        [in] UINT height,
+        [in] UINT depth,
+        [in] UINT levels,
+        [in] DWORD usage,
+        [in] WINED3DFORMAT format,
+        [in] WINED3DPOOL pool,
+        [out] IWineD3DVolumeTexture **texture,
+        [in] HANDLE *shared_handle,
+        [in] IUnknown *parent,
+        [in] D3DCB_CREATEVOLUMEFN create_volume_callback
+    );
+    HRESULT CreateVolume(
+        [in] UINT width,
+        [in] UINT height,
+        [in] UINT depth,
+        [in] DWORD usage,
+        [in] WINED3DFORMAT format,
+        [in] WINED3DPOOL pool,
+        [out] IWineD3DVolume **volume,
+        [in] HANDLE *shared_handle,
+        [in] IUnknown *parent
+    );
+    HRESULT CreateCubeTexture(
+        [in] UINT edge_length,
+        [in] UINT levels,
+        [in] DWORD usage,
+        [in] WINED3DFORMAT format,
+        [in] WINED3DPOOL pool,
+        [out] IWineD3DCubeTexture **texture,
+        [in] HANDLE *shared_handle,
+        [in] IUnknown *parent,
+        [in] D3DCB_CREATESURFACEFN create_surface_callback
+    );
+    HRESULT CreateQuery(
+        [in] WINED3DQUERYTYPE type,
+        [out] IWineD3DQuery **query,
+        [in] IUnknown *parent
+    );
+    HRESULT CreateSwapChain(
+        [in] WINED3DPRESENT_PARAMETERS *present_parameters,
+        [out] IWineD3DSwapChain **swapchain,
+        [in] IUnknown *parent,
+        [in] D3DCB_CREATERENDERTARGETFN create_render_target_callback,
+        [in] D3DCB_CREATEDEPTHSTENCILSURFACEFN create_depth_stencil_callback,
+        [in] WINED3DSURFTYPE surface_type
+    );
+    HRESULT CreateVertexDeclaration(
+        [out] IWineD3DVertexDeclaration **declaration,
+        [in] IUnknown *parent,
+        [in] const WINED3DVERTEXELEMENT *elements,
+        [in] UINT element_count
+    );
+    HRESULT CreateVertexDeclarationFromFVF(
+        [out] IWineD3DVertexDeclaration **declaration,
+        [in] IUnknown *parent,
+        [in] DWORD fvf
+    );
+    HRESULT CreateVertexShader(
+        [in] IWineD3DVertexDeclaration *declaration,
+        [in] const DWORD *function,
+        [out] IWineD3DVertexShader **shader,
+        [in] IUnknown *parent
+    );
+    HRESULT CreatePixelShader(
+        [in] const DWORD *function,
+        [out] IWineD3DPixelShader **shader,
+        [in] IUnknown *parent
+    );
+    HRESULT CreatePalette(
+        [in] DWORD flags,
+        [in] PALETTEENTRY *palette_entry,
+        [out] IWineD3DPalette **palette,
+        [in] IUnknown *parent
+    );
+    HRESULT Init3D(
+        [in] WINED3DPRESENT_PARAMETERS *present_parameters,
+        [in] D3DCB_CREATESWAPCHAIN create_swapchain_callback
+    );
+    HRESULT InitGDI(
+        [in] WINED3DPRESENT_PARAMETERS *present_parameters,
+        [in] D3DCB_CREATESWAPCHAIN create_swapchain_callback
+    );
+    HRESULT Uninit3D(
+        [in] D3DCB_DESTROYSURFACEFN destroy_surface_callback,
+        [in] D3DCB_DESTROYSWAPCHAINFN destroy_swapchain_callback
+    );
+    HRESULT UninitGDI(
+        [in] D3DCB_DESTROYSWAPCHAINFN destroy_swapchain_callback
+    );
+    void SetMultithreaded(
+    );
+    HRESULT EvictManagedResources(
+    );
+    UINT GetAvailableTextureMem(
+    );
+    HRESULT GetBackBuffer(
+        [in] UINT swapchain_idx,
+        [in] UINT backbuffer_idx,
+        [in] WINED3DBACKBUFFER_TYPE backbuffer_type,
+        [out] IWineD3DSurface **backbuffer
+    );
+    HRESULT GetCreationParameters(
+        [out] WINED3DDEVICE_CREATION_PARAMETERS *creation_parameters
+    );
+    HRESULT GetDeviceCaps(
+        [out] WINED3DCAPS *caps
+    );
+    HRESULT GetDirect3D(
+        [out] IWineD3D** d3d
+    );
+    HRESULT GetDisplayMode(
+        [in] UINT swapchain_idx,
+        [out] WINED3DDISPLAYMODE *mode
+    );
+    HRESULT SetDisplayMode(
+        [in] UINT swapchain_idx,
+        [in] WINED3DDISPLAYMODE *mode
+    );
+    UINT GetNumberOfSwapChains(
+    );
+    HRESULT GetRasterStatus(
+        [in] UINT swapchain_idx,
+        [out] WINED3DRASTER_STATUS *raster_status
+    );
+    HRESULT GetSwapChain(
+        [in] UINT swapchain_idx,
+        [out] IWineD3DSwapChain **swapchain
+    );
+    HRESULT Reset(
+        [in] WINED3DPRESENT_PARAMETERS *present_parameters
+    );
+    HRESULT SetDialogBoxMode(
+        [in] BOOL enable_dialogs
+    );
+    HRESULT SetCursorProperties(
+        [in] UINT x_hotspot,
+        [in] UINT y_hotspot,
+        [in] IWineD3DSurface *cursor_surface
+    );
+    void SetCursorPosition(
+        [in] int x_screen_space,
+        [in] int y_screen_space,
+        [in] DWORD flags
+    );
+    BOOL ShowCursor(
+        [in] BOOL show
+    );
+    HRESULT TestCooperativeLevel(
+    );
+    HRESULT SetClipPlane(
+        [in] DWORD plane_idx,
+        [in] const float *plane
+    );
+    HRESULT GetClipPlane(
+        [in] DWORD plane_idx,
+        [out] float *plane
+    );
+    HRESULT SetClipStatus(
+        [in] const WINED3DCLIPSTATUS *clip_status
+    );
+    HRESULT GetClipStatus(
+        [out] WINED3DCLIPSTATUS *clip_status
+    );
+    HRESULT SetCurrentTexturePalette(
+        [in] UINT palette_number
+    );
+    HRESULT GetCurrentTexturePalette(
+        [out] UINT *palette_number
+    );
+    HRESULT SetDepthStencilSurface(
+        [in] IWineD3DSurface *depth_stencil
+    );
+    HRESULT GetDepthStencilSurface(
+        [out] IWineD3DSurface **depth_stencil
+    );
+    HRESULT SetFVF(
+        [in] DWORD fvf
+    );
+    HRESULT GetFVF(
+        [out] DWORD *fvf
+    );
+    void SetGammaRamp(
+        [in] UINT swapchain_idx,
+        [in] DWORD flags,
+        [in] const WINED3DGAMMARAMP *ramp
+    );
+    void GetGammaRamp(
+        [in] UINT swapchain_idx,
+        [out] WINED3DGAMMARAMP *ramp
+    );
+    HRESULT SetIndices(
+        [in] IWineD3DIndexBuffer *index_buffer
+    );
+    HRESULT GetIndices(
+        [out] IWineD3DIndexBuffer **index_buffer
+    );
+    HRESULT SetBaseVertexIndex(
+        [in] INT base_index
+    );
+    HRESULT GetBaseVertexIndex(
+        [out] INT *base_index
+    );
+    HRESULT SetLight(
+        [in] DWORD light_idx,
+        [in] const WINED3DLIGHT *light
+    );
+    HRESULT GetLight(
+        [in] DWORD light_idx,
+        [out] WINED3DLIGHT *light
+    );
+    HRESULT SetLightEnable(
+        [in] DWORD light_idx,
+        [in] BOOL enable
+    );
+    HRESULT GetLightEnable(
+        [in] DWORD light_idx,
+        [out] BOOL *enable
+    );
+    HRESULT SetMaterial(
+        [in] const WINED3DMATERIAL *material
+    );
+    HRESULT GetMaterial(
+        [out] WINED3DMATERIAL *material
+    );
+    HRESULT SetNPatchMode(
+        [in] float segments
+    );
+    float GetNPatchMode(
+    );
+    HRESULT SetPaletteEntries(
+        [in] UINT palette_number,
+        [in] const PALETTEENTRY *entries
+    );
+    HRESULT GetPaletteEntries(
+        [in] UINT palette_number,
+        [out] PALETTEENTRY *entries
+    );
+    HRESULT SetPixelShader(
+        [in] IWineD3DPixelShader *shader
+    );
+    HRESULT GetPixelShader(
+        [out] IWineD3DPixelShader **shader
+    );
+    HRESULT SetPixelShaderConstantB(
+        [in] UINT start_register,
+        [in] const BOOL *constants,
+        [in] UINT bool_count
+    );
+    HRESULT GetPixelShaderConstantB(
+        [in] UINT start_register,
+        [out] BOOL *constants,
+        [in] UINT bool_count
+    );
+    HRESULT SetPixelShaderConstantI(
+        [in] UINT start_register,
+        [in] const int *constants,
+        [in] UINT vector4i_count
+    );
+    HRESULT GetPixelShaderConstantI(
+        [in] UINT start_register,
+        [out] int *constants,
+        [in] UINT vector4i_count
+    );
+    HRESULT SetPixelShaderConstantF(
+        [in] UINT start_register,
+        [in] const float *constants,
+        [in] UINT vector4f_count
+    );
+    HRESULT GetPixelShaderConstantF(
+        [in] UINT start_register,
+        [out] float *constants,
+        [in] UINT vector4f_count
+    );
+    HRESULT SetRenderState(
+        [in] WINED3DRENDERSTATETYPE state,
+        [in] DWORD value
+    );
+    HRESULT GetRenderState(
+        [in] WINED3DRENDERSTATETYPE state,
+        [out] DWORD *value
+    );
+    HRESULT SetRenderTarget(
+        [in] DWORD render_target_idx,
+        [in] IWineD3DSurface *render_target
+    );
+    HRESULT GetRenderTarget(
+        [in] DWORD render_target_idx,
+        [out] IWineD3DSurface **render_target
+    );
+    HRESULT SetFrontBackBuffers(
+        [in] IWineD3DSurface *front,
+        [in] IWineD3DSurface *back
+    );
+    HRESULT SetSamplerState(
+        [in] DWORD sampler_idx,
+        [in] WINED3DSAMPLERSTATETYPE state,
+        [in] DWORD value
+    );
+    HRESULT GetSamplerState(
+        [in] DWORD sampler_idx,
+        [in] WINED3DSAMPLERSTATETYPE state,
+        [out] DWORD *value
+    );
+    HRESULT SetScissorRect(
+        [in] const RECT *rect
+    );
+    HRESULT GetScissorRect(
+        [out] RECT *rect
+    );
+    HRESULT SetSoftwareVertexProcessing(
+        [in] BOOL software
+    );
+    BOOL GetSoftwareVertexProcessing(
+    );
+    HRESULT SetStreamSource(
+        [in] UINT stream_idx,
+        [in] IWineD3DVertexBuffer *vertex_buffer,
+        [in] UINT offset,
+        [in] UINT stride
+    );
+    HRESULT GetStreamSource(
+        [in] UINT stream_idx,
+        [out] IWineD3DVertexBuffer **vertex_buffer,
+        [out] UINT *offset,
+        [out] UINT *stride
+    );
+    HRESULT SetStreamSourceFreq(
+        [in] UINT stream_idx,
+        [in] UINT divider
+    );
+    HRESULT GetStreamSourceFreq(
+        [in] UINT stream_idx,
+        [out] UINT *divider
+    );
+    HRESULT SetTexture(
+        [in] DWORD stage,
+        [in] IWineD3DBaseTexture *texture
+    );
+    HRESULT GetTexture(
+        [in] DWORD stage,
+        [out] IWineD3DBaseTexture **texture
+    );
+    HRESULT SetTextureStageState(
+        [in] DWORD stage,
+        [in] WINED3DTEXTURESTAGESTATETYPE state,
+        [in] DWORD value
+    );
+    HRESULT GetTextureStageState(
+        [in] DWORD stage,
+        [in] WINED3DTEXTURESTAGESTATETYPE state,
+        [out] DWORD *value
+    );
+    HRESULT SetTransform(
+        [in] WINED3DTRANSFORMSTATETYPE state,
+        [in] const WINED3DMATRIX *matrix
+    );
+    HRESULT GetTransform(
+        [in] WINED3DTRANSFORMSTATETYPE state,
+        [out] WINED3DMATRIX *matrix
+    );
+    HRESULT SetVertexDeclaration(
+        [in] IWineD3DVertexDeclaration *declaration
+    );
+    HRESULT GetVertexDeclaration(
+        [out] IWineD3DVertexDeclaration **declaration
+    );
+    HRESULT SetVertexShader(
+        [in] IWineD3DVertexShader *shader
+    );
+    HRESULT GetVertexShader(
+        [out] IWineD3DVertexShader **shader
+    );
+    HRESULT SetVertexShaderConstantB(
+        [in] UINT start_register,
+        [in] const BOOL *constants,
+        [in] UINT bool_count
+    );
+    HRESULT GetVertexShaderConstantB(
+        [in] UINT start_register,
+        [out] BOOL *constants,
+        [in] UINT bool_count
+    );
+    HRESULT SetVertexShaderConstantI(
+        [in] UINT start_register,
+        [in] const int *constants,
+        [in] UINT vector4i_count
+    );
+    HRESULT GetVertexShaderConstantI(
+        [in] UINT start_register,
+        [out] int *constants,
+        [in] UINT vector4i_count
+    );
+    HRESULT SetVertexShaderConstantF(
+        [in] UINT start_register,
+        [in] const float *constants,
+        [in] UINT vector4f_count
+    );
+    HRESULT GetVertexShaderConstantF(
+        [in] UINT start_register,
+        [out] float *constants,
+        [in] UINT vector4f_count
+    );
+    HRESULT SetViewport(
+        [in] const WINED3DVIEWPORT *viewport
+    );
+    HRESULT GetViewport(
+        [out] WINED3DVIEWPORT *viewport
+    );
+    HRESULT MultiplyTransform(
+        [in] WINED3DTRANSFORMSTATETYPE state,
+        [in] const WINED3DMATRIX *matrix
+    );
+    HRESULT ValidateDevice(
+        [out] DWORD *num_passes
+    );
+    HRESULT ProcessVertices(
+        [in] UINT src_start_idx,
+        [in] UINT dst_idx,
+        [in] UINT vertex_count,
+        [in] IWineD3DVertexBuffer *dest_buffer,
+        [in] IWineD3DVertexDeclaration *declaration,
+        [in] DWORD flags
+    );
+    HRESULT BeginStateBlock(
+    );
+    HRESULT EndStateBlock(
+        [out] IWineD3DStateBlock **stateblock
+    );
+    HRESULT BeginScene(
+    );
+    HRESULT EndScene(
+    );
+    HRESULT Present(
+        [in] const RECT *src_rect,
+        [in] const RECT *dst_rect,
+        [in] HWND dst_window_override,
+        [in] const RGNDATA *dirty_region
+    );
+    HRESULT Clear(
+        [in] DWORD rect_count,
+        [in] const WINED3DRECT *rects,
+        [in] DWORD flags,
+        [in] WINED3DCOLOR color,
+        [in] float z,
+        [in] DWORD stencil
+    );
+    HRESULT DrawPrimitive(
+        [in] WINED3DPRIMITIVETYPE primitive_type,
+        [in] UINT start_vertex,
+        [in] UINT primitive_count
+    );
+    HRESULT DrawIndexedPrimitive(
+        [in] WINED3DPRIMITIVETYPE primitive_type,
+        [in] UINT min_vertex_idx,
+        [in] UINT vertex_count,
+        [in] UINT start_idx,
+        [in] UINT primitive_count
+    );
+    HRESULT DrawPrimitiveUP(
+        [in] WINED3DPRIMITIVETYPE primitive_type,
+        [in] UINT primitive_count,
+        [in] const void *stream_data,
+        [in] UINT stream_stride
+    );
+    HRESULT DrawIndexedPrimitiveUP(
+        [in] WINED3DPRIMITIVETYPE primitive_type,
+        [in] UINT min_vertex_idx,
+        [in] UINT vertex_count,
+        [in] UINT primitive_count,
+        [in] const void *index_data,
+        [in] WINED3DFORMAT index_data_format,
+        [in] const void *stream_data,
+        [in] UINT stream_stride
+    );
+    HRESULT DrawPrimitiveStrided(
+        [in] WINED3DPRIMITIVETYPE primitive_type,
+        [in] UINT primitive_count,
+        [in] WineDirect3DVertexStridedData *strided_data
+    );
+    HRESULT DrawIndexedPrimitiveStrided(
+        [in] WINED3DPRIMITIVETYPE primitive_type,
+        [in] UINT primitive_count,
+        [in] WineDirect3DVertexStridedData *strided_data,
+        [in] UINT vertex_count,
+        [in] const void *index_data,
+        [in] WINED3DFORMAT index_data_format
+    );
+    HRESULT DrawRectPatch(
+        [in] UINT handle,
+        [in] const float *num_segs,
+        [in] const WINED3DRECTPATCH_INFO *rect_patch_info
+    );
+    HRESULT DrawTriPatch(
+        [in] UINT handle,
+        [in] const float *num_segs,
+        [in] const WINED3DTRIPATCH_INFO *tri_patch_info
+    );
+    HRESULT DeletePatch(
+        [in] UINT handle
+    );
+    HRESULT ColorFill(
+        [in] IWineD3DSurface *surface,
+        [in] const WINED3DRECT *rect,
+        [in] WINED3DCOLOR color
+    );
+    HRESULT UpdateTexture(
+        [in] IWineD3DBaseTexture *src_texture,
+        [in] IWineD3DBaseTexture *dst_texture
+    );
+    HRESULT UpdateSurface(
+        [in] IWineD3DSurface *src_surface,
+        [in] const RECT *src_rect,
+        [in] IWineD3DSurface *dst_surface,
+        [in] const POINT *dst_point
+    );
+    HRESULT GetFrontBufferData(
+        [in] UINT swapchain_idx,
+        [in] IWineD3DSurface *dst_surface
+    );
+    void ResourceReleased(
+        [in] IWineD3DResource *resource
+    );
+    HRESULT EnumResources(
+        [in] D3DCB_ENUMRESOURCES callback,
+        [in] void *data
+    );
+}
+
+IWineD3D *WineDirect3DCreate(UINT dxVersion, IUnknown *parent);
+IWineD3DClipper *WineDirect3DCreateClipper(IUnknown *parent);
diff --git a/include/wine/wined3d_caps.h b/include/wine/wined3d_caps.h
deleted file mode 100644
index 1f5f71c..0000000
--- a/include/wine/wined3d_caps.h
+++ /dev/null
@@ -1,590 +0,0 @@
-/*
- * Copyright 2007 Henri Verbeet
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
-
-#ifndef __WINE_WINED3D_CAPS_H
-#define __WINE_WINED3D_CAPS_H
-
-#define WINED3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD       0x00000020L
-#define WINED3DCAPS3_LINEAR_TO_SRGB_PRESENTATION            0x00000080L
-#define WINED3DCAPS3_COPY_TO_VIDMEM                         0x00000100L
-#define WINED3DCAPS3_COPY_TO_SYSTEMMEM                      0x00000200L
-#define WINED3DCAPS3_RESERVED                               0x8000001FL
-
-#define WINED3DDEVCAPS2_STREAMOFFSET                        0x00000001
-#define WINED3DDEVCAPS2_DMAPNPATCH                          0x00000002
-#define WINED3DDEVCAPS2_ADAPTIVETESSRTPATCH                 0x00000004
-#define WINED3DDEVCAPS2_ADAPTIVETESSNPATCH                  0x00000008
-#define WINED3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES       0x00000010
-#define WINED3DDEVCAPS2_PRESAMPLEDDMAPNPATCH                0x00000020
-#define WINED3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET  0x00000040
-
-#define WINED3DDTCAPS_UBYTE4                                0x00000001
-#define WINED3DDTCAPS_UBYTE4N                               0x00000002
-#define WINED3DDTCAPS_SHORT2N                               0x00000004
-#define WINED3DDTCAPS_SHORT4N                               0x00000008
-#define WINED3DDTCAPS_USHORT2N                              0x00000010
-#define WINED3DDTCAPS_USHORT4N                              0x00000020
-#define WINED3DDTCAPS_UDEC3                                 0x00000040
-#define WINED3DDTCAPS_DEC3N                                 0x00000080
-#define WINED3DDTCAPS_FLOAT16_2                             0x00000100
-#define WINED3DDTCAPS_FLOAT16_4                             0x00000200
-
-#define WINED3DFVFCAPS_TEXCOORDCOUNTMASK                    0x0000FFFF
-#define WINED3DFVFCAPS_DONOTSTRIPELEMENTS                   0x00080000
-#define WINED3DFVFCAPS_PSIZE                                0x00100000
-
-#define WINED3DLINECAPS_TEXTURE                             0x00000001
-#define WINED3DLINECAPS_ZTEST                               0x00000002
-#define WINED3DLINECAPS_BLEND                               0x00000004
-#define WINED3DLINECAPS_ALPHACMP                            0x00000008
-#define WINED3DLINECAPS_FOG                                 0x00000010
-#define WINED3DLINECAPS_ANTIALIAS                           0x00000020
-
-#define WINED3DMAX30SHADERINSTRUCTIONS                      32768
-#define WINED3DMIN30SHADERINSTRUCTIONS                      512
-
-#define WINED3DPBLENDCAPS_ZERO                              0x00000001
-#define WINED3DPBLENDCAPS_ONE                               0x00000002
-#define WINED3DPBLENDCAPS_SRCCOLOR                          0x00000004
-#define WINED3DPBLENDCAPS_INVSRCCOLOR                       0x00000008
-#define WINED3DPBLENDCAPS_SRCALPHA                          0x00000010
-#define WINED3DPBLENDCAPS_INVSRCALPHA                       0x00000020
-#define WINED3DPBLENDCAPS_DESTALPHA                         0x00000040
-#define WINED3DPBLENDCAPS_INVDESTALPHA                      0x00000080
-#define WINED3DPBLENDCAPS_DESTCOLOR                         0x00000100
-#define WINED3DPBLENDCAPS_INVDESTCOLOR                      0x00000200
-#define WINED3DPBLENDCAPS_SRCALPHASAT                       0x00000400
-#define WINED3DPBLENDCAPS_BOTHSRCALPHA                      0x00000800
-#define WINED3DPBLENDCAPS_BOTHINVSRCALPHA                   0x00001000
-#define WINED3DPBLENDCAPS_BLENDFACTOR                       0x00002000
-
-#define WINED3DPCMPCAPS_NEVER                               0x00000001
-#define WINED3DPCMPCAPS_LESS                                0x00000002
-#define WINED3DPCMPCAPS_EQUAL                               0x00000004
-#define WINED3DPCMPCAPS_LESSEQUAL                           0x00000008
-#define WINED3DPCMPCAPS_GREATER                             0x00000010
-#define WINED3DPCMPCAPS_NOTEQUAL                            0x00000020
-#define WINED3DPCMPCAPS_GREATEREQUAL                        0x00000040
-#define WINED3DPCMPCAPS_ALWAYS                              0x00000080
-
-#define WINED3DPMISCCAPS_MASKZ                              0x00000002
-#define WINED3DPMISCCAPS_LINEPATTERNREP                     0x00000004
-#define WINED3DPMISCCAPS_CULLNONE                           0x00000010
-#define WINED3DPMISCCAPS_CULLCW                             0x00000020
-#define WINED3DPMISCCAPS_CULLCCW                            0x00000040
-#define WINED3DPMISCCAPS_COLORWRITEENABLE                   0x00000080
-#define WINED3DPMISCCAPS_CLIPPLANESCALEDPOINTS              0x00000100
-#define WINED3DPMISCCAPS_CLIPTLVERTS                        0x00000200
-#define WINED3DPMISCCAPS_TSSARGTEMP                         0x00000400
-#define WINED3DPMISCCAPS_BLENDOP                            0x00000800
-#define WINED3DPMISCCAPS_NULLREFERENCE                      0x00001000
-#define WINED3DPMISCCAPS_INDEPENDENTWRITEMASKS              0x00004000
-#define WINED3DPMISCCAPS_PERSTAGECONSTANT                   0x00008000
-#define WINED3DPMISCCAPS_FOGANDSPECULARALPHA                0x00010000
-#define WINED3DPMISCCAPS_SEPARATEALPHABLEND                 0x00020000
-#define WINED3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS            0x00040000
-#define WINED3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING         0x00080000
-#define WINED3DPMISCCAPS_FOGVERTEXCLAMPED                   0x00100000
-
-#define WINED3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH             24
-#define WINED3DPS20_MIN_DYNAMICFLOWCONTROLDEPTH             0
-#define WINED3DPS20_MAX_NUMTEMPS                            32
-#define WINED3DPS20_MIN_NUMTEMPS                            12
-#define WINED3DPS20_MAX_STATICFLOWCONTROLDEPTH              4
-#define WINED3DPS20_MIN_STATICFLOWCONTROLDEPTH              0
-#define WINED3DPS20_MAX_NUMINSTRUCTIONSLOTS                 512
-#define WINED3DPS20_MIN_NUMINSTRUCTIONSLOTS                 96
-
-#define WINED3DPS20CAPS_ARBITRARYSWIZZLE                    0x00000001
-#define WINED3DPS20CAPS_GRADIENTINSTRUCTIONS                0x00000002
-#define WINED3DPS20CAPS_PREDICATION                         0x00000004
-#define WINED3DPS20CAPS_NODEPENDENTREADLIMIT                0x00000008
-#define WINED3DPS20CAPS_NOTEXINSTRUCTIONLIMIT               0x00000010
-
-#define WINED3DPTADDRESSCAPS_WRAP                           0x00000001
-#define WINED3DPTADDRESSCAPS_MIRROR                         0x00000002
-#define WINED3DPTADDRESSCAPS_CLAMP                          0x00000004
-#define WINED3DPTADDRESSCAPS_BORDER                         0x00000008
-#define WINED3DPTADDRESSCAPS_INDEPENDENTUV                  0x00000010
-#define WINED3DPTADDRESSCAPS_MIRRORONCE                     0x00000020
-
-#define WINED3DSTENCILCAPS_KEEP                             0x00000001
-#define WINED3DSTENCILCAPS_ZERO                             0x00000002
-#define WINED3DSTENCILCAPS_REPLACE                          0x00000004
-#define WINED3DSTENCILCAPS_INCRSAT                          0x00000008
-#define WINED3DSTENCILCAPS_DECRSAT                          0x00000010
-#define WINED3DSTENCILCAPS_INVERT                           0x00000020
-#define WINED3DSTENCILCAPS_INCR                             0x00000040
-#define WINED3DSTENCILCAPS_DECR                             0x00000080
-#define WINED3DSTENCILCAPS_TWOSIDED                         0x00000100
-
-#define WINED3DTEXOPCAPS_DISABLE                            0x00000001
-#define WINED3DTEXOPCAPS_SELECTARG1                         0x00000002
-#define WINED3DTEXOPCAPS_SELECTARG2                         0x00000004
-#define WINED3DTEXOPCAPS_MODULATE                           0x00000008
-#define WINED3DTEXOPCAPS_MODULATE2X                         0x00000010
-#define WINED3DTEXOPCAPS_MODULATE4X                         0x00000020
-#define WINED3DTEXOPCAPS_ADD                                0x00000040
-#define WINED3DTEXOPCAPS_ADDSIGNED                          0x00000080
-#define WINED3DTEXOPCAPS_ADDSIGNED2X                        0x00000100
-#define WINED3DTEXOPCAPS_SUBTRACT                           0x00000200
-#define WINED3DTEXOPCAPS_ADDSMOOTH                          0x00000400
-#define WINED3DTEXOPCAPS_BLENDDIFFUSEALPHA                  0x00000800
-#define WINED3DTEXOPCAPS_BLENDTEXTUREALPHA                  0x00001000
-#define WINED3DTEXOPCAPS_BLENDFACTORALPHA                   0x00002000
-#define WINED3DTEXOPCAPS_BLENDTEXTUREALPHAPM                0x00004000
-#define WINED3DTEXOPCAPS_BLENDCURRENTALPHA                  0x00008000
-#define WINED3DTEXOPCAPS_PREMODULATE                        0x00010000
-#define WINED3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR             0x00020000
-#define WINED3DTEXOPCAPS_MODULATECOLOR_ADDALPHA             0x00040000
-#define WINED3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR          0x00080000
-#define WINED3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA          0x00100000
-#define WINED3DTEXOPCAPS_BUMPENVMAP                         0x00200000
-#define WINED3DTEXOPCAPS_BUMPENVMAPLUMINANCE                0x00400000
-#define WINED3DTEXOPCAPS_DOTPRODUCT3                        0x00800000
-#define WINED3DTEXOPCAPS_MULTIPLYADD                        0x01000000
-#define WINED3DTEXOPCAPS_LERP                               0x02000000
-
-#define WINED3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH             24
-#define WINED3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH             0
-#define WINED3DVS20_MAX_NUMTEMPS                            32
-#define WINED3DVS20_MIN_NUMTEMPS                            12
-#define WINED3DVS20_MAX_STATICFLOWCONTROLDEPTH              4
-#define WINED3DVS20_MIN_STATICFLOWCONTROLDEPTH              1
-
-#define WINED3DVS20CAPS_PREDICATION                         0x00000001
-
-#define WINED3DCAPS2_NO2DDURING3DSCENE                      0x00000002
-#define WINED3DCAPS2_FULLSCREENGAMMA                        0x00020000
-#define WINED3DCAPS2_CANRENDERWINDOWED                      0x00080000
-#define WINED3DCAPS2_CANCALIBRATEGAMMA                      0x00100000
-#define WINED3DCAPS2_RESERVED                               0x02000000
-#define WINED3DCAPS2_CANMANAGERESOURCE                      0x10000000
-#define WINED3DCAPS2_DYNAMICTEXTURES                        0x20000000
-#define WINED3DCAPS2_CANAUTOGENMIPMAP                       0x40000000
-
-#define WINED3DPRASTERCAPS_DITHER                           0x00000001
-#define WINED3DPRASTERCAPS_ROP2                             0x00000002
-#define WINED3DPRASTERCAPS_XOR                              0x00000004
-#define WINED3DPRASTERCAPS_PAT                              0x00000008
-#define WINED3DPRASTERCAPS_ZTEST                            0x00000010
-#define WINED3DPRASTERCAPS_SUBPIXEL                         0x00000020
-#define WINED3DPRASTERCAPS_SUBPIXELX                        0x00000040
-#define WINED3DPRASTERCAPS_FOGVERTEX                        0x00000080
-#define WINED3DPRASTERCAPS_FOGTABLE                         0x00000100
-#define WINED3DPRASTERCAPS_STIPPLE                          0x00000200
-#define WINED3DPRASTERCAPS_ANTIALIASSORTDEPENDENT           0x00000400
-#define WINED3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT         0x00000800
-#define WINED3DPRASTERCAPS_ANTIALIASEDGES                   0x00001000
-#define WINED3DPRASTERCAPS_MIPMAPLODBIAS                    0x00002000
-#define WINED3DPRASTERCAPS_ZBIAS                            0x00004000
-#define WINED3DPRASTERCAPS_ZBUFFERLESSHSR                   0x00008000
-#define WINED3DPRASTERCAPS_FOGRANGE                         0x00010000
-#define WINED3DPRASTERCAPS_ANISOTROPY                       0x00020000
-#define WINED3DPRASTERCAPS_WBUFFER                          0x00040000
-#define WINED3DPRASTERCAPS_TRANSLUCENTSORTINDEPENDENT       0x00080000
-#define WINED3DPRASTERCAPS_WFOG                             0x00100000
-#define WINED3DPRASTERCAPS_ZFOG                             0x00200000
-#define WINED3DPRASTERCAPS_COLORPERSPECTIVE                 0x00400000
-#define WINED3DPRASTERCAPS_SCISSORTEST                      0x01000000
-#define WINED3DPRASTERCAPS_SLOPESCALEDEPTHBIAS              0x02000000
-#define WINED3DPRASTERCAPS_DEPTHBIAS                        0x04000000
-#define WINED3DPRASTERCAPS_MULTISAMPLE_TOGGLE               0x08000000
-
-#define WINED3DPSHADECAPS_COLORFLATMONO                     0x00000001
-#define WINED3DPSHADECAPS_COLORFLATRGB                      0x00000002
-#define WINED3DPSHADECAPS_COLORGOURAUDMONO                  0x00000004
-#define WINED3DPSHADECAPS_COLORGOURAUDRGB                   0x00000008
-#define WINED3DPSHADECAPS_COLORPHONGMONO                    0x00000010
-#define WINED3DPSHADECAPS_COLORPHONGRGB                     0x00000020
-#define WINED3DPSHADECAPS_SPECULARFLATMONO                  0x00000040
-#define WINED3DPSHADECAPS_SPECULARFLATRGB                   0x00000080
-#define WINED3DPSHADECAPS_SPECULARGOURAUDMONO               0x00000100
-#define WINED3DPSHADECAPS_SPECULARGOURAUDRGB                0x00000200
-#define WINED3DPSHADECAPS_SPECULARPHONGMONO                 0x00000400
-#define WINED3DPSHADECAPS_SPECULARPHONGRGB                  0x00000800
-#define WINED3DPSHADECAPS_ALPHAFLATBLEND                    0x00001000
-#define WINED3DPSHADECAPS_ALPHAFLATSTIPPLED                 0x00002000
-#define WINED3DPSHADECAPS_ALPHAGOURAUDBLEND                 0x00004000
-#define WINED3DPSHADECAPS_ALPHAGOURAUDSTIPPLED              0x00008000
-#define WINED3DPSHADECAPS_ALPHAPHONGBLEND                   0x00010000
-#define WINED3DPSHADECAPS_ALPHAPHONGSTIPPLED                0x00020000
-#define WINED3DPSHADECAPS_FOGFLAT                           0x00040000
-#define WINED3DPSHADECAPS_FOGGOURAUD                        0x00080000
-#define WINED3DPSHADECAPS_FOGPHONG                          0x00100000
-
-#define WINED3DPTEXTURECAPS_PERSPECTIVE                     0x00000001
-#define WINED3DPTEXTURECAPS_POW2                            0x00000002
-#define WINED3DPTEXTURECAPS_ALPHA                           0x00000004
-#define WINED3DPTEXTURECAPS_TRANSPARENCY                    0x00000008
-#define WINED3DPTEXTURECAPS_BORDER                          0x00000010
-#define WINED3DPTEXTURECAPS_SQUAREONLY                      0x00000020
-#define WINED3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE        0x00000040
-#define WINED3DPTEXTURECAPS_ALPHAPALETTE                    0x00000080
-#define WINED3DPTEXTURECAPS_NONPOW2CONDITIONAL              0x00000100
-#define WINED3DPTEXTURECAPS_PROJECTED                       0x00000400
-#define WINED3DPTEXTURECAPS_CUBEMAP                         0x00000800
-#define WINED3DPTEXTURECAPS_COLORKEYBLEND                   0x00001000
-#define WINED3DPTEXTURECAPS_VOLUMEMAP                       0x00002000
-#define WINED3DPTEXTURECAPS_MIPMAP                          0x00004000
-#define WINED3DPTEXTURECAPS_MIPVOLUMEMAP                    0x00008000
-#define WINED3DPTEXTURECAPS_MIPCUBEMAP                      0x00010000
-#define WINED3DPTEXTURECAPS_CUBEMAP_POW2                    0x00020000
-#define WINED3DPTEXTURECAPS_VOLUMEMAP_POW2                  0x00040000
-#define WINED3DPTEXTURECAPS_NOPROJECTEDBUMPENV              0x00200000
-
-#define WINED3DPTFILTERCAPS_NEAREST                         0x00000001
-#define WINED3DPTFILTERCAPS_LINEAR                          0x00000002
-#define WINED3DPTFILTERCAPS_MIPNEAREST                      0x00000004
-#define WINED3DPTFILTERCAPS_MIPLINEAR                       0x00000008
-#define WINED3DPTFILTERCAPS_LINEARMIPNEAREST                0x00000010
-#define WINED3DPTFILTERCAPS_LINEARMIPLINEAR                 0x00000020
-#define WINED3DPTFILTERCAPS_MINFPOINT                       0x00000100
-#define WINED3DPTFILTERCAPS_MINFLINEAR                      0x00000200
-#define WINED3DPTFILTERCAPS_MINFANISOTROPIC                 0x00000400
-#define WINED3DPTFILTERCAPS_MIPFPOINT                       0x00010000
-#define WINED3DPTFILTERCAPS_MIPFLINEAR                      0x00020000
-#define WINED3DPTFILTERCAPS_MAGFPOINT                       0x01000000
-#define WINED3DPTFILTERCAPS_MAGFLINEAR                      0x02000000
-#define WINED3DPTFILTERCAPS_MAGFANISOTROPIC                 0x04000000
-#define WINED3DPTFILTERCAPS_MAGFPYRAMIDALQUAD               0x08000000
-#define WINED3DPTFILTERCAPS_MAGFGAUSSIANQUAD                0x10000000
-
-#define WINED3DVTXPCAPS_TEXGEN                              0x00000001
-#define WINED3DVTXPCAPS_MATERIALSOURCE7                     0x00000002
-#define WINED3DVTXPCAPS_VERTEXFOG                           0x00000004
-#define WINED3DVTXPCAPS_DIRECTIONALLIGHTS                   0x00000008
-#define WINED3DVTXPCAPS_POSITIONALLIGHTS                    0x00000010
-#define WINED3DVTXPCAPS_LOCALVIEWER                         0x00000020
-#define WINED3DVTXPCAPS_TWEENING                            0x00000040
-#define WINED3DVTXPCAPS_TEXGEN_SPHEREMAP                    0x00000100
-#define WINED3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER            0x00000200
-
-#define WINED3DCURSORCAPS_COLOR                             0x00000001
-#define WINED3DCURSORCAPS_LOWRES                            0x00000002
-
-#define WINED3DDEVCAPS_FLOATTLVERTEX                        0x00000001
-#define WINED3DDEVCAPS_SORTINCREASINGZ                      0x00000002
-#define WINED3DDEVCAPS_SORTDECREASINGZ                      0X00000004
-#define WINED3DDEVCAPS_SORTEXACT                            0x00000008
-#define WINED3DDEVCAPS_EXECUTESYSTEMMEMORY                  0x00000010
-#define WINED3DDEVCAPS_EXECUTEVIDEOMEMORY                   0x00000020
-#define WINED3DDEVCAPS_TLVERTEXSYSTEMMEMORY                 0x00000040
-#define WINED3DDEVCAPS_TLVERTEXVIDEOMEMORY                  0x00000080
-#define WINED3DDEVCAPS_TEXTURESYSTEMMEMORY                  0x00000100
-#define WINED3DDEVCAPS_TEXTUREVIDEOMEMORY                   0x00000200
-#define WINED3DDEVCAPS_DRAWPRIMTLVERTEX                     0x00000400
-#define WINED3DDEVCAPS_CANRENDERAFTERFLIP                   0x00000800
-#define WINED3DDEVCAPS_TEXTURENONLOCALVIDMEM                0x00001000
-#define WINED3DDEVCAPS_DRAWPRIMITIVES2                      0x00002000
-#define WINED3DDEVCAPS_SEPARATETEXTUREMEMORIES              0x00004000
-#define WINED3DDEVCAPS_DRAWPRIMITIVES2EX                    0x00008000
-#define WINED3DDEVCAPS_HWTRANSFORMANDLIGHT                  0x00010000
-#define WINED3DDEVCAPS_CANBLTSYSTONONLOCAL                  0x00020000
-#define WINED3DDEVCAPS_HWRASTERIZATION                      0x00080000
-#define WINED3DDEVCAPS_PUREDEVICE                           0x00100000
-#define WINED3DDEVCAPS_QUINTICRTPATCHES                     0x00200000
-#define WINED3DDEVCAPS_RTPATCHES                            0x00400000
-#define WINED3DDEVCAPS_RTPATCHHANDLEZERO                    0x00800000
-#define WINED3DDEVCAPS_NPATCHES                             0x01000000
-
-/* DirectDraw Caps */
-#define WINEDDSCAPS_RESERVED1               0x00000001
-#define WINEDDSCAPS_ALPHA                   0x00000002
-#define WINEDDSCAPS_BACKBUFFER              0x00000004
-#define WINEDDSCAPS_COMPLEX                 0x00000008
-#define WINEDDSCAPS_FLIP                    0x00000010
-#define WINEDDSCAPS_FRONTBUFFER             0x00000020
-#define WINEDDSCAPS_OFFSCREENPLAIN          0x00000040
-#define WINEDDSCAPS_OVERLAY                 0x00000080
-#define WINEDDSCAPS_PALETTE                 0x00000100
-#define WINEDDSCAPS_PRIMARYSURFACE          0x00000200
-#define WINEDDSCAPS_PRIMARYSURFACELEFT      0x00000400
-#define WINEDDSCAPS_SYSTEMMEMORY            0x00000800
-#define WINEDDSCAPS_TEXTURE                 0x00001000
-#define WINEDDSCAPS_3DDEVICE                0x00002000
-#define WINEDDSCAPS_VIDEOMEMORY             0x00004000
-#define WINEDDSCAPS_VISIBLE                 0x00008000
-#define WINEDDSCAPS_WRITEONLY               0x00010000
-#define WINEDDSCAPS_ZBUFFER                 0x00020000
-#define WINEDDSCAPS_OWNDC                   0x00040000
-#define WINEDDSCAPS_LIVEVIDEO               0x00080000
-#define WINEDDSCAPS_HWCODEC                 0x00100000
-#define WINEDDSCAPS_MODEX                   0x00200000
-#define WINEDDSCAPS_MIPMAP                  0x00400000
-#define WINEDDSCAPS_RESERVED2               0x00800000
-#define WINEDDSCAPS_ALLOCONLOAD             0x04000000
-#define WINEDDSCAPS_VIDEOPORT               0x08000000
-#define WINEDDSCAPS_LOCALVIDMEM             0x10000000
-#define WINEDDSCAPS_NONLOCALVIDMEM          0x20000000
-#define WINEDDSCAPS_STANDARDVGAMODE         0x40000000
-#define WINEDDSCAPS_OPTIMIZED               0x80000000
-
-#define WINEDDCKEYCAPS_DESTBLT                      0x00000001
-#define WINEDDCKEYCAPS_DESTBLTCLRSPACE              0x00000002
-#define WINEDDCKEYCAPS_DESTBLTCLRSPACEYUV           0x00000004
-#define WINEDDCKEYCAPS_DESTBLTYUV                   0x00000008
-#define WINEDDCKEYCAPS_DESTOVERLAY                  0x00000010
-#define WINEDDCKEYCAPS_DESTOVERLAYCLRSPACE          0x00000020
-#define WINEDDCKEYCAPS_DESTOVERLAYCLRSPACEYUV       0x00000040
-#define WINEDDCKEYCAPS_DESTOVERLAYONEACTIVE         0x00000080
-#define WINEDDCKEYCAPS_DESTOVERLAYYUV               0x00000100
-#define WINEDDCKEYCAPS_SRCBLT                       0x00000200
-#define WINEDDCKEYCAPS_SRCBLTCLRSPACE               0x00000400
-#define WINEDDCKEYCAPS_SRCBLTCLRSPACEYUV            0x00000800
-#define WINEDDCKEYCAPS_SRCBLTYUV                    0x00001000
-#define WINEDDCKEYCAPS_SRCOVERLAY                   0x00002000
-#define WINEDDCKEYCAPS_SRCOVERLAYCLRSPACE           0x00004000
-#define WINEDDCKEYCAPS_SRCOVERLAYCLRSPACEYUV        0x00008000
-#define WINEDDCKEYCAPS_SRCOVERLAYONEACTIVE          0x00010000
-#define WINEDDCKEYCAPS_SRCOVERLAYYUV                0x00020000
-#define WINEDDCKEYCAPS_NOCOSTOVERLAY                0x00040000
-
-#define WINEDDFXCAPS_BLTALPHA               0x00000001
-#define WINEDDFXCAPS_OVERLAYALPHA           0x00000004
-#define WINEDDFXCAPS_BLTARITHSTRETCHYN      0x00000010
-#define WINEDDFXCAPS_BLTARITHSTRETCHY       0x00000020
-#define WINEDDFXCAPS_BLTMIRRORLEFTRIGHT     0x00000040
-#define WINEDDFXCAPS_BLTMIRRORUPDOWN        0x00000080
-#define WINEDDFXCAPS_BLTROTATION            0x00000100
-#define WINEDDFXCAPS_BLTROTATION90          0x00000200
-#define WINEDDFXCAPS_BLTSHRINKX             0x00000400
-#define WINEDDFXCAPS_BLTSHRINKXN            0x00000800
-#define WINEDDFXCAPS_BLTSHRINKY             0x00001000
-#define WINEDDFXCAPS_BLTSHRINKYN            0x00002000
-#define WINEDDFXCAPS_BLTSTRETCHX            0x00004000
-#define WINEDDFXCAPS_BLTSTRETCHXN           0x00008000
-#define WINEDDFXCAPS_BLTSTRETCHY            0x00010000
-#define WINEDDFXCAPS_BLTSTRETCHYN           0x00020000
-#define WINEDDFXCAPS_OVERLAYARITHSTRETCHY   0x00040000
-#define WINEDDFXCAPS_OVERLAYARITHSTRETCHYN  0x00000008
-#define WINEDDFXCAPS_OVERLAYSHRINKX         0x00080000
-#define WINEDDFXCAPS_OVERLAYSHRINKXN        0x00100000
-#define WINEDDFXCAPS_OVERLAYSHRINKY         0x00200000
-#define WINEDDFXCAPS_OVERLAYSHRINKYN        0x00400000
-#define WINEDDFXCAPS_OVERLAYSTRETCHX        0x00800000
-#define WINEDDFXCAPS_OVERLAYSTRETCHXN       0x01000000
-#define WINEDDFXCAPS_OVERLAYSTRETCHY        0x02000000
-#define WINEDDFXCAPS_OVERLAYSTRETCHYN       0x04000000
-#define WINEDDFXCAPS_OVERLAYMIRRORLEFTRIGHT 0x08000000
-#define WINEDDFXCAPS_OVERLAYMIRRORUPDOWN    0x10000000
-
-#define WINEDDCAPS_3D                       0x00000001
-#define WINEDDCAPS_ALIGNBOUNDARYDEST        0x00000002
-#define WINEDDCAPS_ALIGNSIZEDEST            0x00000004
-#define WINEDDCAPS_ALIGNBOUNDARYSRC         0x00000008
-#define WINEDDCAPS_ALIGNSIZESRC             0x00000010
-#define WINEDDCAPS_ALIGNSTRIDE              0x00000020
-#define WINEDDCAPS_BLT                      0x00000040
-#define WINEDDCAPS_BLTQUEUE                 0x00000080
-#define WINEDDCAPS_BLTFOURCC                0x00000100
-#define WINEDDCAPS_BLTSTRETCH               0x00000200
-#define WINEDDCAPS_GDI                      0x00000400
-#define WINEDDCAPS_OVERLAY                  0x00000800
-#define WINEDDCAPS_OVERLAYCANTCLIP          0x00001000
-#define WINEDDCAPS_OVERLAYFOURCC            0x00002000
-#define WINEDDCAPS_OVERLAYSTRETCH           0x00004000
-#define WINEDDCAPS_PALETTE                  0x00008000
-#define WINEDDCAPS_PALETTEVSYNC             0x00010000
-#define WINEDDCAPS_READSCANLINE             0x00020000
-#define WINEDDCAPS_STEREOVIEW               0x00040000
-#define WINEDDCAPS_VBI                      0x00080000
-#define WINEDDCAPS_ZBLTS                    0x00100000
-#define WINEDDCAPS_ZOVERLAYS                0x00200000
-#define WINEDDCAPS_COLORKEY                 0x00400000
-#define WINEDDCAPS_ALPHA                    0x00800000
-#define WINEDDCAPS_COLORKEYHWASSIST         0x01000000
-#define WINEDDCAPS_NOHARDWARE               0x02000000
-#define WINEDDCAPS_BLTCOLORFILL             0x04000000
-#define WINEDDCAPS_BANKSWITCHED             0x08000000
-#define WINEDDCAPS_BLTDEPTHFILL             0x10000000
-#define WINEDDCAPS_CANCLIP                  0x20000000
-#define WINEDDCAPS_CANCLIPSTRETCHED         0x40000000
-#define WINEDDCAPS_CANBLTSYSMEM             0x80000000
-
-#define WINEDDCAPS2_CERTIFIED               0x00000001
-#define WINEDDCAPS2_NO2DDURING3DSCENE       0x00000002
-#define WINEDDCAPS2_VIDEOPORT               0x00000004
-#define WINEDDCAPS2_AUTOFLIPOVERLAY         0x00000008
-#define WINEDDCAPS2_CANBOBINTERLEAVED       0x00000010
-#define WINEDDCAPS2_CANBOBNONINTERLEAVED    0x00000020
-#define WINEDDCAPS2_COLORCONTROLOVERLAY     0x00000040
-#define WINEDDCAPS2_COLORCONTROLPRIMARY     0x00000080
-#define WINEDDCAPS2_CANDROPZ16BIT           0x00000100
-#define WINEDDCAPS2_NONLOCALVIDMEM          0x00000200
-#define WINEDDCAPS2_NONLOCALVIDMEMCAPS      0x00000400
-#define WINEDDCAPS2_NOPAGELOCKREQUIRED      0x00000800
-#define WINEDDCAPS2_WIDESURFACES            0x00001000
-#define WINEDDCAPS2_CANFLIPODDEVEN          0x00002000
-#define WINEDDCAPS2_CANBOBHARDWARE          0x00004000
-#define WINEDDCAPS2_COPYFOURCC              0x00008000
-#define WINEDDCAPS2_PRIMARYGAMMA            0x00020000
-#define WINEDDCAPS2_CANRENDERWINDOWED       0x00080000
-#define WINEDDCAPS2_CANCALIBRATEGAMMA       0x00100000
-#define WINEDDCAPS2_FLIPINTERVAL            0x00200000
-#define WINEDDCAPS2_FLIPNOVSYNC             0x00400000
-#define WINEDDCAPS2_CANMANAGETEXTURE        0x00800000
-#define WINEDDCAPS2_TEXMANINNONLOCALVIDMEM  0x01000000
-#define WINEDDCAPS2_STEREO                  0x02000000
-#define WINEDDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL   0x04000000
-
-/* DDCAPS.dwPalCaps */
-#define WINEDDPCAPS_4BIT                        0x00000001
-#define WINEDDPCAPS_8BITENTRIES                 0x00000002
-#define WINEDDPCAPS_8BIT                        0x00000004
-#define WINEDDPCAPS_INITIALIZE                  0x00000008
-#define WINEDDPCAPS_PRIMARYSURFACE              0x00000010
-#define WINEDDPCAPS_PRIMARYSURFACELEFT          0x00000020
-#define WINEDDPCAPS_ALLOW256                    0x00000040
-#define WINEDDPCAPS_VSYNC                       0x00000080
-#define WINEDDPCAPS_1BIT                        0x00000100
-#define WINEDDPCAPS_2BIT                        0x00000200
-#define WINEDDPCAPS_ALPHA                       0x00000400
-
-typedef struct _WINED3DVSHADERCAPS2_0
-{
-    DWORD Caps;
-    INT DynamicFlowControlDepth;
-    INT NumTemps;
-    INT StaticFlowControlDepth;
-} WINED3DVSHADERCAPS2_0;
-
-typedef struct _WINED3DPSHADERCAPS2_0
-{
-    DWORD Caps;
-    INT DynamicFlowControlDepth;
-    INT NumTemps;
-    INT StaticFlowControlDepth;
-    INT NumInstructionSlots;
-} WINED3DPSHADERCAPS2_0;
-
-typedef struct _WINEDDCAPS
-{
-    DWORD Caps;
-    DWORD Caps2;
-    DWORD CKeyCaps;
-    DWORD FXCaps;
-    DWORD FXAlphaCaps;
-    DWORD PalCaps;
-    DWORD SVCaps;
-    DWORD SVBCaps;
-    DWORD SVBCKeyCaps;
-    DWORD SVBFXCaps;
-    DWORD VSBCaps;
-    DWORD VSBCKeyCaps;
-    DWORD VSBFXCaps;
-    DWORD SSBCaps;
-    DWORD SSBCKeyCaps;
-    DWORD SSBFXCaps;
-    DWORD ddsCaps;
-    DWORD StrideAlign;
-} WINEDDCAPS;
-
-typedef struct _WINED3DCAPS
-{
-    WINED3DDEVTYPE DeviceType;
-    UINT AdapterOrdinal;
-
-    DWORD Caps;
-    DWORD Caps2;
-    DWORD Caps3;
-    DWORD PresentationIntervals;
-
-    DWORD CursorCaps;
-    DWORD DevCaps;
-    DWORD PrimitiveMiscCaps;
-    DWORD RasterCaps;
-    DWORD ZCmpCaps;
-    DWORD SrcBlendCaps;
-    DWORD DestBlendCaps;
-    DWORD AlphaCmpCaps;
-    DWORD ShadeCaps;
-    DWORD TextureCaps;
-    DWORD TextureFilterCaps;
-    DWORD CubeTextureFilterCaps;
-    DWORD VolumeTextureFilterCaps;
-    DWORD TextureAddressCaps;
-    DWORD VolumeTextureAddressCaps;
-    DWORD LineCaps;
-
-    DWORD MaxTextureWidth;
-    DWORD MaxTextureHeight;
-    DWORD MaxVolumeExtent;
-    DWORD MaxTextureRepeat;
-    DWORD MaxTextureAspectRatio;
-    DWORD MaxAnisotropy;
-    float MaxVertexW;
-
-    float GuardBandLeft;
-    float GuardBandTop;
-    float GuardBandRight;
-    float GuardBandBottom;
-
-    float ExtentsAdjust;
-    DWORD StencilCaps;
-
-    DWORD FVFCaps;
-    DWORD TextureOpCaps;
-    DWORD MaxTextureBlendStages;
-    DWORD MaxSimultaneousTextures;
-
-    DWORD VertexProcessingCaps;
-    DWORD MaxActiveLights;
-    DWORD MaxUserClipPlanes;
-    DWORD MaxVertexBlendMatrices;
-    DWORD MaxVertexBlendMatrixIndex;
-
-    float MaxPointSize;
-
-    DWORD MaxPrimitiveCount;
-    DWORD MaxVertexIndex;
-    DWORD MaxStreams;
-    DWORD MaxStreamStride;
-
-    DWORD VertexShaderVersion;
-    DWORD MaxVertexShaderConst;
-
-    DWORD PixelShaderVersion;
-    float PixelShader1xMaxValue;
-
-    /* DX 9 */
-    DWORD DevCaps2;
-
-    float MaxNpatchTessellationLevel;
-    DWORD Reserved5; /*undocumented*/
-
-    UINT MasterAdapterOrdinal;
-    UINT AdapterOrdinalInGroup;
-    UINT NumberOfAdaptersInGroup;
-    DWORD DeclTypes;
-    DWORD NumSimultaneousRTs;
-    DWORD StretchRectFilterCaps;
-    WINED3DVSHADERCAPS2_0 VS20Caps;
-    WINED3DPSHADERCAPS2_0 PS20Caps;
-    DWORD VertexTextureFilterCaps;
-    DWORD MaxVShaderInstructionsExecuted;
-    DWORD MaxPShaderInstructionsExecuted;
-    DWORD MaxVertexShader30InstructionSlots;
-    DWORD MaxPixelShader30InstructionSlots;
-    DWORD Reserved2;/* Not in the microsoft headers but documented */
-    DWORD Reserved3;
-
-    WINEDDCAPS DirectDrawCaps;
-} WINED3DCAPS;
-
-#endif /* __WINE_WINED3D_CAPS_H */
diff --git a/include/wine/wined3d_interface.h b/include/wine/wined3d_interface.h
deleted file mode 100644
index 6d5f7e5..0000000
--- a/include/wine/wined3d_interface.h
+++ /dev/null
@@ -1,1634 +0,0 @@
-/*
- * Direct3D wine internal public interface file
- *
- * Copyright 2002-2003 The wine-d3d team
- * Copyright 2002-2003 Raphael Junqueira
- * Copyright 2005 Oliver Stieber
- * Copyright 2006 Stefan Dösinger for CodeWeavers
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
-
-#ifndef __WINE_WINED3D_INTERFACE_H
-#define __WINE_WINED3D_INTERFACE_H
-
-#if !defined( __WINE_CONFIG_H )
-# error You must include config.h to use this header
-#endif
-
-#define COM_NO_WINDOWS_H
-#include <objbase.h>
-
-/* Stupid DDraw Struct references surfaces */
-struct IWineD3DSurface;
-
-#include "wined3d_types.h"
-#include "wined3d_caps.h"
-/*****************************************************************
- * THIS FILE MUST NOT CONTAIN X11 or MESA DEFINES 
- * PLEASE USE wine/wined3d_gl.h INSTEAD
- */
-
-/*****************************************************************************
- * #defines and error codes
- */
-#define _FACWINED3D  0x876
-#define MAKE_WINED3DHRESULT( code )                 MAKE_HRESULT( 1, _FACWINED3D, code )
-#define MAKE_WINED3DSTATUS( code )                  MAKE_HRESULT( 0, _FACWINED3D, code )
-
-/*****************************************************************************
- * Direct3D Errors
- */
-#define WINED3D_OK                                  S_OK
-#define WINED3DERR_WRONGTEXTUREFORMAT               MAKE_WINED3DHRESULT(2072)
-#define WINED3DERR_UNSUPPORTEDCOLOROPERATION        MAKE_WINED3DHRESULT(2073)
-#define WINED3DERR_UNSUPPORTEDCOLORARG              MAKE_WINED3DHRESULT(2074)
-#define WINED3DERR_UNSUPPORTEDALPHAOPERATION        MAKE_WINED3DHRESULT(2075)
-#define WINED3DERR_UNSUPPORTEDALPHAARG              MAKE_WINED3DHRESULT(2076)
-#define WINED3DERR_TOOMANYOPERATIONS                MAKE_WINED3DHRESULT(2077)
-#define WINED3DERR_CONFLICTINGTEXTUREFILTER         MAKE_WINED3DHRESULT(2078)
-#define WINED3DERR_UNSUPPORTEDFACTORVALUE           MAKE_WINED3DHRESULT(2079)
-#define WINED3DERR_CONFLICTINGRENDERSTATE           MAKE_WINED3DHRESULT(2081)
-#define WINED3DERR_UNSUPPORTEDTEXTUREFILTER         MAKE_WINED3DHRESULT(2082)
-#define WINED3DERR_CONFLICTINGTEXTUREPALETTE        MAKE_WINED3DHRESULT(2086)
-#define WINED3DERR_DRIVERINTERNALERROR              MAKE_WINED3DHRESULT(2087)
-#define WINED3DERR_NOTFOUND                         MAKE_WINED3DHRESULT(2150)
-#define WINED3DERR_MOREDATA                         MAKE_WINED3DHRESULT(2151)
-#define WINED3DERR_DEVICELOST                       MAKE_WINED3DHRESULT(2152)
-#define WINED3DERR_DEVICENOTRESET                   MAKE_WINED3DHRESULT(2153)
-#define WINED3DERR_NOTAVAILABLE                     MAKE_WINED3DHRESULT(2154)
-#define WINED3DERR_OUTOFVIDEOMEMORY                 MAKE_WINED3DHRESULT(380)
-#define WINED3DERR_INVALIDDEVICE                    MAKE_WINED3DHRESULT(2155)
-#define WINED3DERR_INVALIDCALL                      MAKE_WINED3DHRESULT(2156)
-#define WINED3DERR_DRIVERINVALIDCALL                MAKE_WINED3DHRESULT(2157)
-#define WINED3DERR_WASSTILLDRAWING                  MAKE_WINED3DHRESULT(540)
-#define WINEDDERR_NOTAOVERLAYSURFACE                MAKE_WINED3DHRESULT(580)
-#define WINEDDERR_NODC                              MAKE_WINED3DHRESULT(586)
-#define WINEDDERR_DCALREADYCREATED                  MAKE_WINED3DHRESULT(620)
-#define WINEDDERR_NOTFLIPPABLE                      MAKE_WINED3DHRESULT(582)
-#define WINEDDERR_SURFACEBUSY                       MAKE_WINED3DHRESULT(430)
-#define WINEDDERR_INVALIDRECT                       MAKE_WINED3DHRESULT(150)
-#define WINEDDERR_NOCLIPLIST                        MAKE_WINED3DHRESULT(205)
-#define WINEDDERR_OVERLAYNOTVISIBLE                 MAKE_WINED3DHRESULT(577)
-#define WINED3DOK_NOAUTOGEN                         MAKE_WINED3DSTATUS(2159)
-
- /*****************************************************************************
- * Predeclare the interfaces
- */
-
-struct IWineD3D;
-struct IWineD3DBase;
-struct IWineD3DDevice;
-struct IWineD3DPalette;
-struct IWineD3DResource;
-struct IWineD3DVertexBuffer;
-struct IWineD3DIndexBuffer;
-struct IWineD3DBaseTexture;
-struct IWineD3DTexture;
-struct IWineD3DCubeTexture;
-struct IWineD3DVolumeTexture;
-struct IWineD3DStateBlock;
-struct IWineD3DVolume;
-struct IWineD3DVertexDeclaration;
-struct IWineD3DBaseShader;
-struct IWineD3DVertexShader;
-struct IWineD3DPixelShader;
-struct IWineD3DQuery;
-struct IWineD3DSwapChain;
-struct IWineD3DClipper;
-
-
-/* {108F9C44-6F30-11d9-C687-00046142C14F} */
-DEFINE_GUID(IID_IWineD3D, 
-0x108f9c44, 0x6f30, 0x11d9, 0xc6, 0x87, 0x0, 0x4, 0x61, 0x42, 0xc1, 0x4f);
-
-DEFINE_GUID(IID_IWineD3DBase,
-0x46799311, 0x8e0e, 0x40ce, 0xb2, 0xec, 0xdd, 0xb9, 0x9f, 0x18, 0xfc, 0xb4);
-
-/* {6d10a2ce-09d0-4a53-a427-11388f9f8ca5} */
-DEFINE_GUID(IID_IWineD3DDevice, 
-0x6d10a2ce, 0x09d0, 0x4a53, 0xa4, 0x27, 0x11, 0x38, 0x8f, 0x9f, 0x8c, 0xa5);
-
-/* {f756720c-32b9-4439-b5a3-1d6c97037d9e} */
-DEFINE_GUID(IID_IWineD3DPalette,
-0xf756720c, 0x32b9, 0x4439, 0xb5, 0xa3, 0x1d, 0x6c, 0x97, 0x03, 0x7d, 0x9e);
-
-/* {1F3BFB34-6F30-11d9-C687-00046142C14F} */
-DEFINE_GUID(IID_IWineD3DResource, 
-0x1f3bfb34, 0x6f30, 0x11d9, 0xc6, 0x87, 0x0, 0x4, 0x61, 0x42, 0xc1, 0x4f);
-
-/* {217F671E-6F30-11d9-C687-00046142C14F} */
-DEFINE_GUID(IID_IWineD3DVertexBuffer, 
-0x217f671e, 0x6f30, 0x11d9, 0xc6, 0x87, 0x0, 0x4, 0x61, 0x42, 0xc1, 0x4f);
-
-/* {24769ED8-6F30-11d9-C687-00046142C14F} */
-DEFINE_GUID(IID_IWineD3DVolume, 
-0x24769ed8, 0x6f30, 0x11d9, 0xc6, 0x87, 0x0, 0x4, 0x61, 0x42, 0xc1, 0x4f);
-
-
-/* {34D01B10-6F30-11d9-C687-00046142C14F} */
-DEFINE_GUID(IID_IWineD3DSwapChain, 
-0x34d01b10, 0x6f30, 0x11d9, 0xc6, 0x87, 0x0, 0x4, 0x61, 0x42, 0xc1, 0x4f);
-
-/* {37CD5526-6F30-11d9-C687-00046142C14F} */
-DEFINE_GUID(IID_IWineD3DSurface, 
-0x37cd5526, 0x6f30, 0x11d9, 0xc6, 0x87, 0x0, 0x4, 0x61, 0x42, 0xc1, 0x4f);
-
-
-/* {3A02A54E-6F30-11d9-C687-00046142C14F} */
-DEFINE_GUID(IID_IWineD3DIndexBuffer, 
-0x3a02a54e, 0x6f30, 0x11d9, 0xc6, 0x87, 0x0, 0x4, 0x61, 0x42, 0xc1, 0x4f);
-
-/* {3C2AEBF6-6F30-11d9-C687-00046142C14F} */
-DEFINE_GUID(IID_IWineD3DBaseTexture, 
-0x3c2aebf6, 0x6f30, 0x11d9, 0xc6, 0x87, 0x0, 0x4, 0x61, 0x42, 0xc1, 0x4f);
-
-/* {3E72CC1C-6F30-11d9-C687-00046142C14F} */
-DEFINE_GUID(IID_IWineD3DTexture, 
-0x3e72cc1c, 0x6f30, 0x11d9, 0xc6, 0x87, 0x0, 0x4, 0x61, 0x42, 0xc1, 0x4f);
-
-/* {41752900-6F30-11d9-C687-00046142C14F} */
-DEFINE_GUID(IID_IWineD3DCubeTexture, 
-0x41752900, 0x6f30, 0x11d9, 0xc6, 0x87, 0x0, 0x4, 0x61, 0x42, 0xc1, 0x4f);
-
-/* {7B39470C-6F30-11d9-C687-00046142C14F} */
-DEFINE_GUID(IID_IWineD3DVolumeTexture, 
-0x7b39470c, 0x6f30, 0x11d9, 0xc6, 0x87, 0x0, 0x4, 0x61, 0x42, 0xc1, 0x4f);
-
-/* {7CD55BE6-6F30-11d9-C687-00046142C14F} */
-DEFINE_GUID(IID_IWineD3DVertexDeclaration, 
-0x7cd55be6, 0x6f30, 0x11d9, 0xc6, 0x87, 0x0, 0x4, 0x61, 0x42, 0xc1, 0x4f);
-
-/* {EAC93065-A4DF-446F-86A1-9EF2BCA40A3C} */
-DEFINE_GUID(IID_IWineD3DBaseShader,
-0xeac93065, 0xa4df, 0x446f, 0x86, 0xa1, 0x9e, 0xf2, 0xbc, 0xa4, 0x0a, 0x3c);
-
-/* {7F7A2B60-6F30-11d9-C687-00046142C14F} */
-DEFINE_GUID(IID_IWineD3DVertexShader, 
-0x7f7a2b60, 0x6f30, 0x11d9, 0xc6, 0x87, 0x0, 0x4, 0x61, 0x42, 0xc1, 0x4f);
-
-/* {818503DA-6F30-11d9-C687-00046142C14F} */
-DEFINE_GUID(IID_IWineD3DPixelShader, 
-0x818503da, 0x6f30, 0x11d9, 0xc6, 0x87, 0x0, 0x4, 0x61, 0x42, 0xc1, 0x4f);
-
-/* {83B073CE-6F30-11d9-C687-00046142C14F} */
-DEFINE_GUID(IID_IWineD3DStateBlock, 
-0x83b073ce, 0x6f30, 0x11d9, 0xc6, 0x87, 0x0, 0x4, 0x61, 0x42, 0xc1, 0x4f);
-
-/* {905DDBAC-6F30-11d9-C687-00046142C14F} */
-DEFINE_GUID(IID_IWineD3DQuery, 
-0x905ddbac, 0x6f30, 0x11d9, 0xc6, 0x87, 0x0, 0x4, 0x61, 0x42, 0xc1, 0x4f);
-
-/* {8f2bceb1-d338-488c-ab7f-0ec980bf5d2d} */
-DEFINE_GUID(IID_IWineD3DClipper,
-0x8f2bceb1, 0xd338, 0x488c, 0xab, 0x7f, 0x0e, 0xc9, 0x80, 0xbf, 0x5d, 0x2d);
-
-/*****************************************************************************
- * Callback functions required for predefining surfaces / stencils
- */
-typedef HRESULT (WINAPI *D3DCB_CREATERENDERTARGETFN) (IUnknown *pDevice,
-                                               IUnknown   *pSuperior,
-                                               UINT       Width,
-                                               UINT       Height,
-                                               WINED3DFORMAT  Format,
-                                               WINED3DMULTISAMPLE_TYPE MultiSample, 
-                                               DWORD      MultisampleQuality, 
-                                               BOOL       Lockable, 
-                                               struct IWineD3DSurface **ppSurface,
-                                               HANDLE    *pSharedHandle);
-
-typedef HRESULT (WINAPI *D3DCB_CREATESURFACEFN) (IUnknown *pDevice,
-                                               IUnknown   *pSuperior,
-                                               UINT       Width,
-                                               UINT       Height,
-                                               WINED3DFORMAT Format,
-                                               DWORD      Usage,
-                                               WINED3DPOOL Pool,            
-                                               UINT       Level,
-                                               WINED3DCUBEMAP_FACES Face,
-                                               struct IWineD3DSurface **ppSurface,
-                                               HANDLE    *pSharedHandle);
-
-typedef HRESULT (WINAPI *D3DCB_CREATEDEPTHSTENCILSURFACEFN) (IUnknown *pDevice,
-                                               IUnknown   *pSuperior,
-                                               UINT       Width,
-                                               UINT       Height,
-                                               WINED3DFORMAT  Format,
-                                               WINED3DMULTISAMPLE_TYPE MultiSample, 
-                                               DWORD      MultisampleQuality, 
-                                               BOOL       Discard, 
-                                               struct IWineD3DSurface **ppSurface,
-                                               HANDLE    *pSharedHandle);
-
-
-typedef HRESULT (WINAPI *D3DCB_CREATEVOLUMEFN) (IUnknown *pDevice,
-                                               IUnknown   *pSuperior,
-                                               UINT       Width,
-                                               UINT       Height,
-                                               UINT       Depth,
-                                               WINED3DFORMAT  Format, 
-                                               WINED3DPOOL Pool,
-                                               DWORD      Usage,
-                                               struct IWineD3DVolume **ppVolume,
-                                               HANDLE    *pSharedHandle);
-
-typedef HRESULT (WINAPI *D3DCB_CREATESWAPCHAIN) (IUnknown *pDevice,
-                                               WINED3DPRESENT_PARAMETERS *pPresentationParameters,
-                                               struct IWineD3DSwapChain **pSwapChain
-                                               );
-
-typedef HRESULT (WINAPI *D3DCB_ENUMRESOURCES) (struct IWineD3DResource *resource,
-                                               void *pData
-                                               );
-
-/*****************************************************************************
- * Callback functions for custom implicit object destruction.
- */
-typedef ULONG (WINAPI *D3DCB_DESTROYSWAPCHAINFN) (struct IWineD3DSwapChain *pSwapChain);
-
-typedef ULONG (WINAPI *D3DCB_DESTROYSURFACEFN) (struct IWineD3DSurface *pSurface);
-
-typedef ULONG (WINAPI *D3DCB_DESTROYVOLUMEFN) (struct IWineD3DVolume *pVolume);
-
-/*****************************************************************************
- * IWineD3DBase interface
- */
-
-#define INTERFACE IWineD3DBase
-DECLARE_INTERFACE_(IWineD3DBase, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IWineD3DBase methods ***/
-    STDMETHOD(GetParent)(THIS_ IUnknown **pParent) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IWineD3DBase_QueryInterface(p,a,b)                    (p)->lpVtbl->QueryInterface(p,a,b)
-#define IWineD3DBase_AddRef(p)                                (p)->lpVtbl->AddRef(p)
-#define IWineD3DBase_Release(p)                               (p)->lpVtbl->Release(p)
-/*** IWineD3DBase methods ***/
-#define IWineD3DBase_GetParent(p,a)                           (p)->lpVtbl->GetParent(p,a)
-#endif
-
-/*****************************************************************************
- * IWineD3D interface 
- */
-
-#define INTERFACE IWineD3D
-DECLARE_INTERFACE_(IWineD3D, IWineD3DBase)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IWineD3DBase methods ***/
-    STDMETHOD(GetParent)(THIS_ IUnknown **pParent) PURE;
-    /*** IWineD3D methods ***/
-    STDMETHOD_(UINT,GetAdapterCount)(THIS) PURE;
-    STDMETHOD(RegisterSoftwareDevice)(THIS_ void * pInitializeFunction) PURE;
-    STDMETHOD_(HMONITOR,GetAdapterMonitor)(THIS_ UINT Adapter) PURE;
-    STDMETHOD_(UINT,GetAdapterModeCount)(THIS_ UINT Adapter, WINED3DFORMAT Format) PURE;
-    STDMETHOD(EnumAdapterModes)(THIS_ UINT  Adapter, UINT  Mode, WINED3DFORMAT Format, WINED3DDISPLAYMODE * pMode) PURE;
-    STDMETHOD(GetAdapterDisplayMode)(THIS_ UINT  Adapter, WINED3DDISPLAYMODE *pMode) PURE;
-    STDMETHOD(GetAdapterIdentifier)(THIS_ UINT Adapter, DWORD Flags, WINED3DADAPTER_IDENTIFIER* pIdentifier) PURE;
-    STDMETHOD(CheckDeviceMultiSampleType)(THIS_ UINT  Adapter, WINED3DDEVTYPE  DeviceType, WINED3DFORMAT  SurfaceFormat, BOOL  Windowed, WINED3DMULTISAMPLE_TYPE  MultiSampleType, DWORD *pQuality) PURE;
-    STDMETHOD(CheckDepthStencilMatch)(THIS_ UINT  Adapter, WINED3DDEVTYPE  DeviceType, WINED3DFORMAT  AdapterFormat, WINED3DFORMAT  RenderTargetFormat, WINED3DFORMAT  DepthStencilFormat) PURE;
-    STDMETHOD(CheckDeviceType)(THIS_ UINT  Adapter, WINED3DDEVTYPE  CheckType, WINED3DFORMAT  DisplayFormat, WINED3DFORMAT  BackBufferFormat, BOOL  Windowed) PURE;
-    STDMETHOD(CheckDeviceFormat)(THIS_ UINT  Adapter, WINED3DDEVTYPE  DeviceType, WINED3DFORMAT  AdapterFormat, DWORD  Usage, WINED3DRESOURCETYPE  RType, WINED3DFORMAT  CheckFormat, WINED3DSURFTYPE SurfaceType) PURE;
-    STDMETHOD(CheckDeviceFormatConversion)(THIS_ UINT Adapter, WINED3DDEVTYPE DeviceType, WINED3DFORMAT SourceFormat, WINED3DFORMAT TargetFormat) PURE;
-    STDMETHOD(GetDeviceCaps)(THIS_ UINT  Adapter, WINED3DDEVTYPE  DeviceType, WINED3DCAPS *pCaps) PURE;
-    STDMETHOD(CreateDevice)(THIS_ UINT  Adapter, WINED3DDEVTYPE  DeviceType,HWND  hFocusWindow, DWORD  BehaviorFlags, struct IWineD3DDevice **ppReturnedDeviceInterface, IUnknown *parent) PURE;
-
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IWineD3D_QueryInterface(p,a,b)                    (p)->lpVtbl->QueryInterface(p,a,b)
-#define IWineD3D_AddRef(p)                                (p)->lpVtbl->AddRef(p)
-#define IWineD3D_Release(p)                               (p)->lpVtbl->Release(p)
-/*** IWineD3DBase methods ***/
-#define IWineD3D_GetParent(p,a)                           (p)->lpVtbl->GetParent(p,a)
-/*** IWineD3D methods ***/
-#define IWineD3D_GetAdapterCount(p)                       (p)->lpVtbl->GetAdapterCount(p)
-#define IWineD3D_RegisterSoftwareDevice(p,a)              (p)->lpVtbl->RegisterSoftwareDevice(p,a)
-#define IWineD3D_GetAdapterMonitor(p,a)                   (p)->lpVtbl->GetAdapterMonitor(p,a)
-#define IWineD3D_GetAdapterModeCount(p,a,b)               (p)->lpVtbl->GetAdapterModeCount(p,a,b)
-#define IWineD3D_EnumAdapterModes(p,a,b,c,d)              (p)->lpVtbl->EnumAdapterModes(p,a,b,c,d)
-#define IWineD3D_GetAdapterDisplayMode(p,a,b)             (p)->lpVtbl->GetAdapterDisplayMode(p,a,b)
-#define IWineD3D_GetAdapterIdentifier(p,a,b,c)            (p)->lpVtbl->GetAdapterIdentifier(p,a,b,c)
-#define IWineD3D_CheckDeviceMultiSampleType(p,a,b,c,d,e,f) (p)->lpVtbl->CheckDeviceMultiSampleType(p,a,b,c,d,e,f)
-#define IWineD3D_CheckDepthStencilMatch(p,a,b,c,d,e)      (p)->lpVtbl->CheckDepthStencilMatch(p,a,b,c,d,e)
-#define IWineD3D_CheckDeviceType(p,a,b,c,d,e)             (p)->lpVtbl->CheckDeviceType(p,a,b,c,d,e)
-#define IWineD3D_CheckDeviceFormat(p,a,b,c,d,e,f,g)       (p)->lpVtbl->CheckDeviceFormat(p,a,b,c,d,e,f,g)
-#define IWineD3D_CheckDeviceFormatConversion(p,a,b,c,d)   (p)->lpVtbl->CheckDeviceFormatConversion(p,a,b,c,d)
-#define IWineD3D_GetDeviceCaps(p,a,b,c)                   (p)->lpVtbl->GetDeviceCaps(p,a,b,c)
-#define IWineD3D_CreateDevice(p,a,b,c,d,e,f)              (p)->lpVtbl->CreateDevice(p,a,b,c,d,e,f)
-#endif
-
-/* Define the main WineD3D entrypoint */
-IWineD3D* WINAPI WineDirect3DCreate(UINT dxVersion, IUnknown *parent);
-
-/*****************************************************************************
- * IWineD3DDevice interface 
- */
-#define INTERFACE IWineD3DDevice
-DECLARE_INTERFACE_(IWineD3DDevice,IWineD3DBase) 
-{ 
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IWineD3DBase methods ***/
-    STDMETHOD(GetParent)(THIS_ IUnknown **pParent) PURE;
-    /*** IWineD3DDevice methods ***/
-    STDMETHOD(CreateVertexBuffer)(THIS_ UINT  Length,DWORD  Usage,DWORD  FVF,WINED3DPOOL  Pool,struct IWineD3DVertexBuffer **ppVertexBuffer, HANDLE *sharedHandle, IUnknown *parent) PURE;
-    STDMETHOD(CreateIndexBuffer)(THIS_ UINT Length, DWORD Usage, WINED3DFORMAT Format, WINED3DPOOL Pool, struct IWineD3DIndexBuffer** ppIndexBuffer, HANDLE* pSharedHandle, IUnknown *parent) PURE;
-    STDMETHOD(CreateStateBlock)(THIS_ WINED3DSTATEBLOCKTYPE Type, struct IWineD3DStateBlock **ppStateBlock, IUnknown *parent) PURE;
-    STDMETHOD(CreateSurface)(THIS_ UINT Width, UINT Height, WINED3DFORMAT Format,  BOOL Lockable, BOOL Discard, UINT Level,  struct IWineD3DSurface** ppSurface, WINED3DRESOURCETYPE Type, DWORD Usage, WINED3DPOOL Pool, WINED3DMULTISAMPLE_TYPE MultiSample ,DWORD MultisampleQuality,  HANDLE* pSharedHandle, WINED3DSURFTYPE Impl, IUnknown *parent) PURE;    
-    STDMETHOD(CreateTexture)(THIS_ UINT Width, UINT Height, UINT Levels, DWORD Usage, WINED3DFORMAT Format, WINED3DPOOL Pool, struct IWineD3DTexture** ppTexture, HANDLE* pSharedHandle, IUnknown *parent, D3DCB_CREATESURFACEFN pFn) PURE;
-    STDMETHOD(CreateVolumeTexture)(THIS_ UINT Width, UINT Height, UINT Depth, UINT Levels, DWORD Usage, WINED3DFORMAT Format, WINED3DPOOL Pool, struct IWineD3DVolumeTexture** ppVolumeTexture, HANDLE* pSharedHandle, IUnknown *parent, D3DCB_CREATEVOLUMEFN pFn) PURE;
-    STDMETHOD(CreateVolume)(THIS_ UINT Width, UINT Height, UINT Depth, DWORD Usage, WINED3DFORMAT Format, WINED3DPOOL Pool, struct IWineD3DVolume** ppVolumeTexture, HANDLE* pSharedHandle, IUnknown *parent) PURE;
-    STDMETHOD(CreateCubeTexture)(THIS_ UINT EdgeLength, UINT Levels, DWORD Usage, WINED3DFORMAT Format, WINED3DPOOL Pool, struct IWineD3DCubeTexture** ppCubeTexture, HANDLE* pSharedHandle, IUnknown *parent, D3DCB_CREATESURFACEFN pFn) PURE;
-    STDMETHOD(CreateQuery)(THIS_ WINED3DQUERYTYPE Type, struct IWineD3DQuery **ppQuery, IUnknown *pParent);
-    STDMETHOD(CreateSwapChain)(THIS_ WINED3DPRESENT_PARAMETERS *pPresentationParameters, struct IWineD3DSwapChain **pSwapChain, IUnknown *pParent, D3DCB_CREATERENDERTARGETFN pFn, D3DCB_CREATEDEPTHSTENCILSURFACEFN pFn2, WINED3DSURFTYPE surface_type);
-    STDMETHOD(CreateVertexDeclaration)(THIS_ struct IWineD3DVertexDeclaration** ppDecl, IUnknown* pParent, const WINED3DVERTEXELEMENT *elements, UINT element_count) PURE;
-    STDMETHOD(CreateVertexDeclarationFromFVF)(THIS_ struct IWineD3DVertexDeclaration** ppDecl, IUnknown* pParent, DWORD Fvf) PURE;
-    STDMETHOD(CreateVertexShader)(THIS_ struct IWineD3DVertexDeclaration *vertex_declaration, CONST DWORD* pFunction, struct IWineD3DVertexShader** ppShader, IUnknown *pParent) PURE;
-    STDMETHOD(CreatePixelShader)(THIS_ CONST DWORD* pFunction, struct IWineD3DPixelShader** ppShader, IUnknown *pParent) PURE;
-    STDMETHOD_(HRESULT,CreatePalette)(THIS_ DWORD Flags, PALETTEENTRY *PalEnt, struct IWineD3DPalette **Palette, IUnknown *Parent);
-    STDMETHOD(Init3D)(THIS_ WINED3DPRESENT_PARAMETERS* pPresentationParameters, D3DCB_CREATESWAPCHAIN D3DCB_CreateSwapChain);
-    STDMETHOD(InitGDI)(THIS_ WINED3DPRESENT_PARAMETERS* pPresentationParameters, D3DCB_CREATESWAPCHAIN D3DCB_CreateSwapChain);
-    STDMETHOD(Uninit3D)(THIS, D3DCB_DESTROYSURFACEFN pFn, D3DCB_DESTROYSWAPCHAINFN pFn2);
-    STDMETHOD(UninitGDI)(THIS, D3DCB_DESTROYSWAPCHAINFN pFn2);
-    STDMETHOD_(void, SetMultithreaded)(THIS);
-    STDMETHOD(EvictManagedResources)(THIS) PURE;
-    STDMETHOD_(UINT, GetAvailableTextureMem)(THIS) PURE;
-    STDMETHOD(GetBackBuffer)(THIS_ UINT iSwapChain, UINT BackBuffer, WINED3DBACKBUFFER_TYPE, struct IWineD3DSurface** ppBackBuffer) PURE;
-    STDMETHOD(GetCreationParameters)(THIS_ WINED3DDEVICE_CREATION_PARAMETERS *pParameters) PURE;
-    STDMETHOD(GetDeviceCaps)(THIS_ WINED3DCAPS* pCaps) PURE;
-    STDMETHOD(GetDirect3D)(THIS_ IWineD3D** ppD3D) PURE;
-    STDMETHOD(GetDisplayMode)(THIS_ UINT iSwapChain, WINED3DDISPLAYMODE* pMode) PURE;
-    STDMETHOD(SetDisplayMode)(THIS_ UINT iSwapChain, WINED3DDISPLAYMODE* pMode) PURE;
-    STDMETHOD_(UINT, GetNumberOfSwapChains)(THIS) PURE;
-    STDMETHOD(GetRasterStatus)(THIS_ UINT iSwapChain, WINED3DRASTER_STATUS* pRasterStatus) PURE;
-    STDMETHOD(GetSwapChain)(THIS_ UINT iSwapChain, struct IWineD3DSwapChain **pSwapChain) PURE;
-    STDMETHOD(Reset)(THIS_ WINED3DPRESENT_PARAMETERS* pPresentationParameters) PURE;
-    STDMETHOD(SetDialogBoxMode)(THIS_ BOOL bEnableDialogs) PURE;
-    STDMETHOD(SetCursorProperties)(THIS_ UINT XHotSpot, UINT YHotSpot, struct IWineD3DSurface* pCursorBitmap) PURE;
-    STDMETHOD_(void, SetCursorPosition)(THIS_ int XScreenSpace, int YScreenSpace, DWORD Flags) PURE;
-    STDMETHOD_(BOOL, ShowCursor)(THIS_ BOOL bShow) PURE;
-    STDMETHOD(TestCooperativeLevel)(THIS) PURE;
-    STDMETHOD(SetClipPlane)(THIS_ DWORD  Index,CONST float * pPlane) PURE;
-    STDMETHOD(GetClipPlane)(THIS_ DWORD  Index,float * pPlane) PURE;
-    STDMETHOD(SetClipStatus)(THIS_ CONST WINED3DCLIPSTATUS * pClipStatus) PURE;
-    STDMETHOD(GetClipStatus)(THIS_ WINED3DCLIPSTATUS * pClipStatus) PURE;
-    STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT PaletteNumber) PURE;
-    STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT *PaletteNumber) PURE;
-    STDMETHOD(SetDepthStencilSurface)(THIS_ struct IWineD3DSurface* pNewZStencil) PURE;
-    STDMETHOD(GetDepthStencilSurface)(THIS_ struct IWineD3DSurface** ppZStencilSurface) PURE;
-    STDMETHOD(SetFVF)(THIS_ DWORD  fvf) PURE;
-    STDMETHOD(GetFVF)(THIS_ DWORD * pfvf) PURE;
-    STDMETHOD_(void, SetGammaRamp)(THIS_ UINT iSwapChain, DWORD Flags, CONST WINED3DGAMMARAMP* pRamp) PURE;
-    STDMETHOD_(void, GetGammaRamp)(THIS_ UINT iSwapChain, WINED3DGAMMARAMP* pRamp) PURE;
-    STDMETHOD(SetIndices)(THIS_ struct IWineD3DIndexBuffer * pIndexData) PURE;
-    STDMETHOD(GetIndices)(THIS_ struct IWineD3DIndexBuffer ** ppIndexData) PURE;
-    STDMETHOD(SetBaseVertexIndex)(THIS_ INT baseIndex);
-    STDMETHOD(GetBaseVertexIndex)(THIS_ INT *baseIndex);
-    STDMETHOD(SetLight)(THIS_ DWORD  Index,CONST WINED3DLIGHT * pLight) PURE;
-    STDMETHOD(GetLight)(THIS_ DWORD  Index,WINED3DLIGHT * pLight) PURE;
-    STDMETHOD(SetLightEnable)(THIS_ DWORD  Index,BOOL  Enable) PURE;
-    STDMETHOD(GetLightEnable)(THIS_ DWORD  Index,BOOL * pEnable) PURE;
-    STDMETHOD(SetMaterial)(THIS_ CONST WINED3DMATERIAL * pMaterial) PURE;
-    STDMETHOD(GetMaterial)(THIS_ WINED3DMATERIAL *pMaterial) PURE;
-    STDMETHOD(SetNPatchMode)(THIS_ float nSegments) PURE;
-    STDMETHOD_(float, GetNPatchMode)(THIS) PURE;
-    STDMETHOD(SetPaletteEntries)(THIS_ UINT PaletteNumber, CONST PALETTEENTRY* pEntries) PURE;
-    STDMETHOD(GetPaletteEntries)(THIS_ UINT PaletteNumber,PALETTEENTRY* pEntries) PURE;
-    STDMETHOD(SetPixelShader)(THIS_ struct IWineD3DPixelShader  *pShader) PURE;
-    STDMETHOD(GetPixelShader)(THIS_ struct IWineD3DPixelShader **ppShader) PURE;
-    STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT StartRegister, CONST BOOL* pConstantData, UINT  BoolCount) PURE;
-    STDMETHOD(GetPixelShaderConstantB)(THIS_ UINT StartRegister, BOOL* pConstantData, UINT BoolCount) PURE;
-    STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) PURE;
-    STDMETHOD(GetPixelShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE;
-    STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) PURE;
-    STDMETHOD(GetPixelShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE;
-    STDMETHOD(SetRenderState)(THIS_ WINED3DRENDERSTATETYPE  State, DWORD  Value) PURE;
-    STDMETHOD(GetRenderState)(THIS_ WINED3DRENDERSTATETYPE  State, DWORD * pValue) PURE;
-    STDMETHOD(SetRenderTarget)(THIS_ DWORD RenderTargetIndex, struct IWineD3DSurface* pRenderTarget) PURE;
-    STDMETHOD(GetRenderTarget)(THIS_ DWORD RenderTargetIndex, struct IWineD3DSurface** ppRenderTarget) PURE;
-    STDMETHOD(SetFrontBackBuffers)(THIS_ struct IWineD3DSurface *Front, struct IWineD3DSurface *Back) PURE;
-    STDMETHOD(SetSamplerState)(THIS_ DWORD Sampler, WINED3DSAMPLERSTATETYPE Type, DWORD Value) PURE;
-    STDMETHOD(GetSamplerState)(THIS_ DWORD Sampler, WINED3DSAMPLERSTATETYPE Type, DWORD* Value) PURE;
-    STDMETHOD(SetScissorRect)(THIS_ CONST RECT* pRect) PURE;
-    STDMETHOD(GetScissorRect)(THIS_ RECT* pRect) PURE;
-    STDMETHOD(SetSoftwareVertexProcessing)(THIS_ BOOL bSoftware) PURE;
-    STDMETHOD_(BOOL, GetSoftwareVertexProcessing)(THIS) PURE;
-    STDMETHOD(SetStreamSource)(THIS_ UINT  StreamNumber,struct IWineD3DVertexBuffer * pStreamData,UINT Offset,UINT  Stride) PURE;
-    STDMETHOD(GetStreamSource)(THIS_ UINT  StreamNumber,struct IWineD3DVertexBuffer ** ppStreamData,UINT *pOffset, UINT * pStride) PURE;
-    STDMETHOD(SetStreamSourceFreq)(THIS_ UINT StreamNumber, UINT Divider) PURE;
-    STDMETHOD(GetStreamSourceFreq)(THIS_ UINT StreamNumber, UINT* Divider) PURE;
-    STDMETHOD(SetTexture)(THIS_ DWORD Stage, struct IWineD3DBaseTexture* pTexture) PURE;
-    STDMETHOD(GetTexture)(THIS_ DWORD Stage, struct IWineD3DBaseTexture** ppTexture) PURE;
-    STDMETHOD(SetTextureStageState)(THIS_ DWORD Stage, WINED3DTEXTURESTAGESTATETYPE Type,DWORD Value) PURE;
-    STDMETHOD(GetTextureStageState)(THIS_ DWORD Stage, WINED3DTEXTURESTAGESTATETYPE Type,DWORD *pValue) PURE;
-    STDMETHOD(SetTransform)(THIS_ WINED3DTRANSFORMSTATETYPE  State, CONST WINED3DMATRIX * pMatrix) PURE;
-    STDMETHOD(GetTransform)(THIS_ WINED3DTRANSFORMSTATETYPE  State, WINED3DMATRIX * pMatrix) PURE;
-    STDMETHOD(SetVertexDeclaration)(THIS_ struct IWineD3DVertexDeclaration* pDecl) PURE;
-    STDMETHOD(GetVertexDeclaration)(THIS_ struct IWineD3DVertexDeclaration** ppDecl) PURE;
-    STDMETHOD(SetVertexShader)(THIS_ struct IWineD3DVertexShader* pShader) PURE;
-    STDMETHOD(GetVertexShader)(THIS_ struct IWineD3DVertexShader** ppShader) PURE;
-    STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT StartRegister, CONST BOOL*  pConstantData, UINT BoolCount) PURE;
-    STDMETHOD(GetVertexShaderConstantB)(THIS_ UINT StartRegister, BOOL*        pConstantData, UINT BoolCount) PURE;
-    STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT StartRegister, CONST int*   pConstantData, UINT Vector4iCount) PURE;
-    STDMETHOD(GetVertexShaderConstantI)(THIS_ UINT StartRegister, int*         pConstantData, UINT Vector4iCount) PURE;
-    STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) PURE;
-    STDMETHOD(GetVertexShaderConstantF)(THIS_ UINT StartRegister, float*       pConstantData, UINT Vector4fCount) PURE;
-    STDMETHOD(SetViewport)(THIS_ CONST WINED3DVIEWPORT * pViewport) PURE;
-    STDMETHOD(GetViewport)(THIS_ WINED3DVIEWPORT * pViewport) PURE;
-    STDMETHOD(MultiplyTransform)(THIS_ WINED3DTRANSFORMSTATETYPE  State, CONST WINED3DMATRIX * pMatrix) PURE;
-    STDMETHOD(ValidateDevice)(THIS_ DWORD* pNumPasses) PURE;
-    STDMETHOD(ProcessVertices)(THIS_ UINT SrcStartIndex, UINT DestIndex, UINT VertexCount, struct IWineD3DVertexBuffer* pDestBuffer, struct IWineD3DVertexDeclaration* pVertexDecl, DWORD Flags) PURE;
-    STDMETHOD(BeginStateBlock)(THIS) PURE;
-    STDMETHOD(EndStateBlock)(THIS_ struct IWineD3DStateBlock** ppStateBlock) PURE;
-    STDMETHOD(BeginScene)(THIS) PURE;
-    STDMETHOD(EndScene)(THIS) PURE;
-    STDMETHOD(Present)(THIS_ CONST RECT * pSourceRect,CONST RECT * pDestRect,HWND  hDestWindowOverride,CONST RGNDATA * pDirtyRegion) PURE;
-    STDMETHOD(Clear)(THIS_ DWORD Count, CONST WINED3DRECT * pRects, DWORD Flags, WINED3DCOLOR Color, float Z, DWORD Stencil) PURE;
-    STDMETHOD(DrawPrimitive)(THIS_ WINED3DPRIMITIVETYPE PrimitiveType, UINT StartVertex, UINT PrimitiveCount) PURE;
-    STDMETHOD(DrawIndexedPrimitive)(THIS_ WINED3DPRIMITIVETYPE PrimitiveType, UINT minIndex, UINT NumVertices, UINT startIndex, UINT primCount) PURE;
-    STDMETHOD(DrawPrimitiveUP)(THIS_ WINED3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount, CONST void * pVertexStreamZeroData, UINT VertexStreamZeroStride) PURE;
-    STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ WINED3DPRIMITIVETYPE PrimitiveType, UINT MinVertexIndex, UINT NumVertexIndices, UINT PrimitiveCount, CONST void * pIndexData, WINED3DFORMAT IndexDataFormat, CONST void * pVertexStreamZeroData, UINT VertexStreamZeroStride) PURE;
-    STDMETHOD(DrawPrimitiveStrided)(THIS_ WINED3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount, WineDirect3DVertexStridedData *DrawPrimStrideData) PURE;
-    STDMETHOD(DrawIndexedPrimitiveStrided)(THIS_ WINED3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount, WineDirect3DVertexStridedData *DrawPrimStrideData, UINT NumVertices, CONST void *pIndexData, WINED3DFORMAT IndexDataFormat) PURE;
-    STDMETHOD(DrawRectPatch)(THIS_ UINT Handle, CONST float* pNumSegs, CONST WINED3DRECTPATCH_INFO* pRectPatchInfo) PURE;
-    STDMETHOD(DrawTriPatch)(THIS_ UINT Handle, CONST float* pNumSegs, CONST WINED3DTRIPATCH_INFO* pTriPatchInfo) PURE;
-    STDMETHOD(DeletePatch)(THIS_ UINT Handle) PURE;
-    STDMETHOD(ColorFill)(THIS_ struct IWineD3DSurface* pSurface, CONST WINED3DRECT* pRect, WINED3DCOLOR color) PURE;
-    STDMETHOD(UpdateTexture)(THIS_ struct IWineD3DBaseTexture *pSourceTexture, struct IWineD3DBaseTexture *pDestinationTexture) PURE;
-    STDMETHOD(UpdateSurface)(THIS_ struct IWineD3DSurface* pSourceSurface, CONST RECT* pSourceRect, struct IWineD3DSurface* pDestinationSurface, CONST POINT* pDestPoint) PURE;
-    STDMETHOD(GetFrontBufferData)(THIS_ UINT iSwapChain,struct IWineD3DSurface* pSurface) PURE;
-    /*** object tracking ***/
-    STDMETHOD_(void, ResourceReleased)(THIS_ struct IWineD3DResource *resource);
-    STDMETHOD(EnumResources)(THIS_ D3DCB_ENUMRESOURCES pCallback, void *pData);
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IWineD3DDevice_QueryInterface(p,a,b)             (p)->lpVtbl->QueryInterface(p,a,b)
-#define IWineD3DDevice_AddRef(p)                         (p)->lpVtbl->AddRef(p)
-#define IWineD3DDevice_Release(p)                        (p)->lpVtbl->Release(p)
-/*** IWineD3DBase methods ***/
-#define IWineD3DDevice_GetParent(p,a)                           (p)->lpVtbl->GetParent(p,a)
-/*** IWineD3DDevice methods ***/
-#define IWineD3DDevice_CreateVertexBuffer(p,a,b,c,d,e,f,g)      (p)->lpVtbl->CreateVertexBuffer(p,a,b,c,d,e,f,g)
-#define IWineD3DDevice_CreateIndexBuffer(p,a,b,c,d,e,f,g)       (p)->lpVtbl->CreateIndexBuffer(p,a,b,c,d,e,f,g)
-#define IWineD3DDevice_CreateStateBlock(p,a,b,c)                (p)->lpVtbl->CreateStateBlock(p,a,b,c)
-#define IWineD3DDevice_CreateSurface(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o)      (p)->lpVtbl->CreateSurface(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o)
-#define IWineD3DDevice_CreateTexture(p,a,b,c,d,e,f,g,h,i,j)     (p)->lpVtbl->CreateTexture(p,a,b,c,d,e,f,g,h,i,j)
-#define IWineD3DDevice_CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i,j,k)    (p)->lpVtbl->CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i,j,k)
-#define IWineD3DDevice_CreateVolume(p,a,b,c,d,e,f,g,h,i)        (p)->lpVtbl->CreateVolume(p,a,b,c,d,e,f,g,h,i)
-#define IWineD3DDevice_CreateCubeTexture(p,a,b,c,d,e,f,g,h,i)   (p)->lpVtbl->CreateCubeTexture(p,a,b,c,d,e,f,g,h,i)
-#define IWineD3DDevice_CreateQuery(p,a,b,c)                     (p)->lpVtbl->CreateQuery(p,a,b,c)
-#define IWineD3DDevice_CreateSwapChain(p,a,b,c,d,e,f)           (p)->lpVtbl->CreateSwapChain(p,a,b,c,d,e,f)
-#define IWineD3DDevice_CreateVertexDeclaration(p,a,b,c,d)       (p)->lpVtbl->CreateVertexDeclaration(p,a,b,c,d)
-#define IWineD3DDevice_CreateVertexDeclarationFromFVF(p,a,b,c)  (p)->lpVtbl->CreateVertexDeclarationFromFVF(p,a,b,c)
-#define IWineD3DDevice_CreateVertexShader(p,a,b,c,d)            (p)->lpVtbl->CreateVertexShader(p,a,b,c,d)
-#define IWineD3DDevice_CreatePixelShader(p,a,b,c)               (p)->lpVtbl->CreatePixelShader(p,a,b,c)
-#define IWineD3DDevice_CreatePalette(p, a, b, c, d)             (p)->lpVtbl->CreatePalette(p, a, b, c, d)
-#define IWineD3DDevice_Init3D(p, a, b)                          (p)->lpVtbl->Init3D(p, a, b)
-#define IWineD3DDevice_InitGDI(p, a, b)                         (p)->lpVtbl->InitGDI(p, a, b)
-#define IWineD3DDevice_Uninit3D(p, a, b)                        (p)->lpVtbl->Uninit3D(p, a, b)
-#define IWineD3DDevice_UninitGDI(p, a)                          (p)->lpVtbl->UninitGDI(p, a)
-#define IWineD3DDevice_SetMultithreaded(p)                      (p)->lpVtbl->SetMultithreaded(p)
-#define IWineD3DDevice_EvictManagedResources(p)                 (p)->lpVtbl->EvictManagedResources(p)
-#define IWineD3DDevice_GetAvailableTextureMem(p)                (p)->lpVtbl->GetAvailableTextureMem(p)
-#define IWineD3DDevice_GetBackBuffer(p,a,b,c,d)                 (p)->lpVtbl->GetBackBuffer(p,a,b,c,d)
-#define IWineD3DDevice_GetCreationParameters(p,a)               (p)->lpVtbl->GetCreationParameters(p,a)
-#define IWineD3DDevice_GetDeviceCaps(p,a)                       (p)->lpVtbl->GetDeviceCaps(p,a)
-#define IWineD3DDevice_GetDirect3D(p,a)                         (p)->lpVtbl->GetDirect3D(p,a)
-#define IWineD3DDevice_GetDisplayMode(p,a,b)                    (p)->lpVtbl->GetDisplayMode(p,a,b)
-#define IWineD3DDevice_SetDisplayMode(p,a,b)                    (p)->lpVtbl->SetDisplayMode(p,a,b)
-#define IWineD3DDevice_GetNumberOfSwapChains(p)                 (p)->lpVtbl->GetNumberOfSwapChains(p)
-#define IWineD3DDevice_Reset(p,a)                               (p)->lpVtbl->Reset(p,a)
-#define IWineD3DDevice_SetDialogBoxMode(p,a)                    (p)->lpVtbl->SetDialogBoxMode(p,a)
-#define IWineD3DDevice_SetCursorProperties(p,a,b,c)             (p)->lpVtbl->SetCursorProperties(p,a,b,c)
-#define IWineD3DDevice_SetCursorPosition(p,a,b,c)               (p)->lpVtbl->SetCursorPosition(p,a,b,c)
-#define IWineD3DDevice_ShowCursor(p,a)                          (p)->lpVtbl->ShowCursor(p,a)
-#define IWineD3DDevice_TestCooperativeLevel(p)                  (p)->lpVtbl->TestCooperativeLevel(p)
-#define IWineD3DDevice_SetFVF(p,a)                              (p)->lpVtbl->SetFVF(p,a)
-#define IWineD3DDevice_GetFVF(p,a)                              (p)->lpVtbl->GetFVF(p,a)
-#define IWineD3DDevice_SetClipPlane(p,a,b)                      (p)->lpVtbl->SetClipPlane(p,a,b)
-#define IWineD3DDevice_GetClipPlane(p,a,b)                      (p)->lpVtbl->GetClipPlane(p,a,b)
-#define IWineD3DDevice_SetClipStatus(p,a)                       (p)->lpVtbl->SetClipStatus(p,a)
-#define IWineD3DDevice_GetClipStatus(p,a)                       (p)->lpVtbl->GetClipStatus(p,a)
-#define IWineD3DDevice_SetCurrentTexturePalette(p,a)            (p)->lpVtbl->SetCurrentTexturePalette(p,a)
-#define IWineD3DDevice_GetCurrentTexturePalette(p,a)            (p)->lpVtbl->GetCurrentTexturePalette(p,a)
-#define IWineD3DDevice_SetDepthStencilSurface(p,a)              (p)->lpVtbl->SetDepthStencilSurface(p,a)
-#define IWineD3DDevice_GetDepthStencilSurface(p,a)              (p)->lpVtbl->GetDepthStencilSurface(p,a)
-#define IWineD3DDevice_SetGammaRamp(p,a,b,c)                    (p)->lpVtbl->SetGammaRamp(p,a,b,c)
-#define IWineD3DDevice_GetGammaRamp(p,a,b)                      (p)->lpVtbl->GetGammaRamp(p,a,b)
-#define IWineD3DDevice_SetIndices(p,a)                          (p)->lpVtbl->SetIndices(p,a)
-#define IWineD3DDevice_GetIndices(p,a)                          (p)->lpVtbl->GetIndices(p,a)
-#define IWineD3DDevice_SetBaseVertexIndex(p, a)                 (p)->lpVtbl->SetBaseVertexIndex(p, a)
-#define IWineD3DDevice_GetBaseVertexIndex(p,a)                  (p)->lpVtbl->GetBaseVertexIndex(p,a)
-#define IWineD3DDevice_SetLight(p,a,b)                          (p)->lpVtbl->SetLight(p,a,b)
-#define IWineD3DDevice_GetLight(p,a,b)                          (p)->lpVtbl->GetLight(p,a,b)
-#define IWineD3DDevice_SetLightEnable(p,a,b)                    (p)->lpVtbl->SetLightEnable(p,a,b)
-#define IWineD3DDevice_GetLightEnable(p,a,b)                    (p)->lpVtbl->GetLightEnable(p,a,b)
-#define IWineD3DDevice_SetMaterial(p,a)                         (p)->lpVtbl->SetMaterial(p,a)
-#define IWineD3DDevice_GetMaterial(p,a)                         (p)->lpVtbl->GetMaterial(p,a)
-#define IWineD3DDevice_SetNPatchMode(p,a)                       (p)->lpVtbl->SetNPatchMode(p,a)
-#define IWineD3DDevice_GetNPatchMode(p)                         (p)->lpVtbl->GetNPatchMode(p)
-#define IWineD3DDevice_SetPaletteEntries(p,a,b)                 (p)->lpVtbl->SetPaletteEntries(p,a,b)
-#define IWineD3DDevice_GetPaletteEntries(p,a,b)                 (p)->lpVtbl->GetPaletteEntries(p,a,b)
-#define IWineD3DDevice_SetPixelShader(p,a)                      (p)->lpVtbl->SetPixelShader(p,a)
-#define IWineD3DDevice_GetPixelShader(p,a)                      (p)->lpVtbl->GetPixelShader(p,a)
-#define IWineD3DDevice_SetPixelShaderConstantB(p,a,b,c)         (p)->lpVtbl->SetPixelShaderConstantB(p,a,b,c)
-#define IWineD3DDevice_GetPixelShaderConstantB(p,a,b,c)         (p)->lpVtbl->GetPixelShaderConstantB(p,a,b,c)
-#define IWineD3DDevice_SetPixelShaderConstantI(p,a,b,c)         (p)->lpVtbl->SetPixelShaderConstantI(p,a,b,c)
-#define IWineD3DDevice_GetPixelShaderConstantI(p,a,b,c)         (p)->lpVtbl->GetPixelShaderConstantI(p,a,b,c)
-#define IWineD3DDevice_SetPixelShaderConstantF(p,a,b,c)         (p)->lpVtbl->SetPixelShaderConstantF(p,a,b,c)
-#define IWineD3DDevice_GetPixelShaderConstantF(p,a,b,c)         (p)->lpVtbl->GetPixelShaderConstantF(p,a,b,c)
-#define IWineD3DDevice_GetRasterStatus(p,a,b)                   (p)->lpVtbl->GetRasterStatus(p,a,b)
-#define IWineD3DDevice_SetRenderState(p,a,b)                    (p)->lpVtbl->SetRenderState(p,a,b)
-#define IWineD3DDevice_GetRenderState(p,a,b)                    (p)->lpVtbl->GetRenderState(p,a,b)
-#define IWineD3DDevice_SetRenderTarget(p,a,b)                   (p)->lpVtbl->SetRenderTarget(p,a,b)
-#define IWineD3DDevice_GetRenderTarget(p,a,b)                   (p)->lpVtbl->GetRenderTarget(p,a,b)
-#define IWineD3DDevice_SetFrontBackBuffers(p, a, b)             (p)->lpVtbl->SetFrontBackBuffers(p,a,b);
-#define IWineD3DDevice_SetSamplerState(p,a,b,c)                 (p)->lpVtbl->SetSamplerState(p,a,b,c)
-#define IWineD3DDevice_GetSamplerState(p,a,b,c)                 (p)->lpVtbl->GetSamplerState(p,a,b,c)
-#define IWineD3DDevice_SetScissorRect(p,a)                      (p)->lpVtbl->SetScissorRect(p,a)
-#define IWineD3DDevice_GetScissorRect(p,a)                      (p)->lpVtbl->GetScissorRect(p,a)
-#define IWineD3DDevice_SetSoftwareVertexProcessing(p,a)         (p)->lpVtbl->SetSoftwareVertexProcessing(p,a)
-#define IWineD3DDevice_GetSoftwareVertexProcessing(p)           (p)->lpVtbl->GetSoftwareVertexProcessing(p)
-#define IWineD3DDevice_SetStreamSource(p,a,b,c,d)               (p)->lpVtbl->SetStreamSource(p,a,b,c,d)
-#define IWineD3DDevice_GetStreamSource(p,a,b,c,d)               (p)->lpVtbl->GetStreamSource(p,a,b,c,d)
-#define IWineD3DDevice_SetStreamSourceFreq(p,a,b)               (p)->lpVtbl->SetStreamSourceFreq(p,a,b)
-#define IWineD3DDevice_GetStreamSourceFreq(p,a,b)               (p)->lpVtbl->GetStreamSourceFreq(p,a,b)
-#define IWineD3DDevice_GetSwapChain(p,a,b)                      (p)->lpVtbl->GetSwapChain(p,a,b)
-#define IWineD3DDevice_SetTextureStageState(p,a,b,c)            (p)->lpVtbl->SetTextureStageState(p,a,b,c)
-#define IWineD3DDevice_GetTextureStageState(p,a,b,c)            (p)->lpVtbl->GetTextureStageState(p,a,b,c)
-#define IWineD3DDevice_SetTexture(p,a,b)                        (p)->lpVtbl->SetTexture(p,a,b)
-#define IWineD3DDevice_GetTexture(p,a,b)                        (p)->lpVtbl->GetTexture(p,a,b)
-#define IWineD3DDevice_SetTransform(p,a,b)                      (p)->lpVtbl->SetTransform(p,a,b)
-#define IWineD3DDevice_GetTransform(p,a,b)                      (p)->lpVtbl->GetTransform(p,a,b)
-#define IWineD3DDevice_SetVertexDeclaration(p,a)                (p)->lpVtbl->SetVertexDeclaration(p,a)
-#define IWineD3DDevice_GetVertexDeclaration(p,a)                (p)->lpVtbl->GetVertexDeclaration(p,a)
-#define IWineD3DDevice_SetVertexShader(p,a)                     (p)->lpVtbl->SetVertexShader(p,a)
-#define IWineD3DDevice_GetVertexShader(p,a)                     (p)->lpVtbl->GetVertexShader(p,a)
-#define IWineD3DDevice_SetVertexShaderConstantB(p,a,b,c)        (p)->lpVtbl->SetVertexShaderConstantB(p,a,b,c)
-#define IWineD3DDevice_GetVertexShaderConstantB(p,a,b,c)        (p)->lpVtbl->GetVertexShaderConstantB(p,a,b,c)
-#define IWineD3DDevice_SetVertexShaderConstantI(p,a,b,c)        (p)->lpVtbl->SetVertexShaderConstantI(p,a,b,c)
-#define IWineD3DDevice_GetVertexShaderConstantI(p,a,b,c)        (p)->lpVtbl->GetVertexShaderConstantI(p,a,b,c)
-#define IWineD3DDevice_SetVertexShaderConstantF(p,a,b,c)        (p)->lpVtbl->SetVertexShaderConstantF(p,a,b,c)
-#define IWineD3DDevice_GetVertexShaderConstantF(p,a,b,c)        (p)->lpVtbl->GetVertexShaderConstantF(p,a,b,c)
-#define IWineD3DDevice_SetViewport(p,a)                         (p)->lpVtbl->SetViewport(p,a)
-#define IWineD3DDevice_GetViewport(p,a)                         (p)->lpVtbl->GetViewport(p,a)
-#define IWineD3DDevice_MultiplyTransform(p,a,b)                 (p)->lpVtbl->MultiplyTransform(p,a,b)
-#define IWineD3DDevice_ValidateDevice(p,a)                      (p)->lpVtbl->ValidateDevice(p,a)
-#define IWineD3DDevice_ProcessVertices(p,a,b,c,d,e,f)           (p)->lpVtbl->ProcessVertices(p,a,b,c,d,e,f)
-#define IWineD3DDevice_BeginStateBlock(p)                       (p)->lpVtbl->BeginStateBlock(p)
-#define IWineD3DDevice_EndStateBlock(p,a)                       (p)->lpVtbl->EndStateBlock(p,a)
-#define IWineD3DDevice_BeginScene(p)                            (p)->lpVtbl->BeginScene(p)
-#define IWineD3DDevice_EndScene(p)                              (p)->lpVtbl->EndScene(p)
-#define IWineD3DDevice_Present(p,a,b,c,d)                       (p)->lpVtbl->Present(p,a,b,c,d)
-#define IWineD3DDevice_Clear(p,a,b,c,d,e,f)                     (p)->lpVtbl->Clear(p,a,b,c,d,e,f)
-#define IWineD3DDevice_DrawPrimitive(p,a,b,c)                   (p)->lpVtbl->DrawPrimitive(p,a,b,c)
-#define IWineD3DDevice_DrawIndexedPrimitive(p,a,b,c,d,e)        (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e)
-#define IWineD3DDevice_DrawPrimitiveUP(p,a,b,c,d)               (p)->lpVtbl->DrawPrimitiveUP(p,a,b,c,d)
-#define IWineD3DDevice_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h)
-#define IWineD3DDevice_DrawPrimitiveStrided(p,a,b,c)            (p)->lpVtbl->DrawPrimitiveStrided(p,a,b,c)
-#define IWineD3DDevice_DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f) (p)->lpVtbl->DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f)
-#define IWineD3DDevice_DrawRectPatch(p,a,b,c)                   (p)->lpVtbl->DrawRectPatch(p,a,b,c)
-#define IWineD3DDevice_DrawTriPatch(p,a,b,c)                    (p)->lpVtbl->DrawTriPatch(p,a,b,c)
-#define IWineD3DDevice_DeletePatch(p,a)                         (p)->lpVtbl->DeletePatch(p,a)
-#define IWineD3DDevice_ColorFill(p,a,b,c)                       (p)->lpVtbl->ColorFill(p,a,b,c)
-#define IWineD3DDevice_UpdateTexture(p,a,b)                     (p)->lpVtbl->UpdateTexture(p,a,b)
-#define IWineD3DDevice_UpdateSurface(p,a,b,c,d)                 (p)->lpVtbl->UpdateSurface(p,a,b,c,d)
-#define IWineD3DDevice_GetFrontBufferData(p,a,b)                (p)->lpVtbl->GetFrontBufferData(p,a,b)
-#define IWineD3DDevice_ResourceReleased(p,a)                    (p)->lpVtbl->ResourceReleased(p,a)
-#define IWineD3DDevice_EnumResources(p,a,b)                     (p)->lpVtbl->EnumResources(p,a,b)
-#endif
-
-/*****************************************************************************
- * WineD3DResource interface 
- */
-#define INTERFACE IWineD3DResource
-DECLARE_INTERFACE_(IWineD3DResource,IWineD3DBase)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IWineD3DBase methods ***/
-    STDMETHOD(GetParent)(THIS_ IUnknown **pParent) PURE;
-    /*** IWineD3DResource methods ***/
-    STDMETHOD(GetDevice)(THIS_ IWineD3DDevice ** ppDevice) PURE;
-    STDMETHOD(SetPrivateData)(THIS_ REFGUID  refguid, CONST void * pData, DWORD  SizeOfData, DWORD  Flags) PURE;
-    STDMETHOD(GetPrivateData)(THIS_ REFGUID  refguid, void * pData, DWORD * pSizeOfData) PURE;
-    STDMETHOD(FreePrivateData)(THIS_ REFGUID  refguid) PURE;
-    STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD  PriorityNew) PURE;
-    STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
-    STDMETHOD_(void,PreLoad)(THIS) PURE;
-    STDMETHOD_(void,UnLoad)(THIS) PURE;
-    STDMETHOD_(WINED3DRESOURCETYPE,GetType)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IWineD3DResource_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IWineD3DResource_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IWineD3DResource_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IWineD3DBase methods ***/
-#define IWineD3DResource_GetParent(p,a)               (p)->lpVtbl->GetParent(p,a)
-/*** IWineD3DResource methods ***/
-#define IWineD3DResource_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IWineD3DResource_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IWineD3DResource_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IWineD3DResource_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IWineD3DResource_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
-#define IWineD3DResource_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
-#define IWineD3DResource_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
-#define IWineD3DResource_UnLoad(p)                    (p)->lpVtbl->UnLoad(p)
-#define IWineD3DResource_GetType(p)                   (p)->lpVtbl->GetType(p)
-#endif
-
-/*****************************************************************************
- * WineD3DVertexBuffer interface 
- */
-#define INTERFACE IWineD3DVertexBuffer
-DECLARE_INTERFACE_(IWineD3DVertexBuffer,IWineD3DResource)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IWineD3DBase methods ***/
-    STDMETHOD(GetParent)(THIS_ IUnknown **pParent) PURE;
-    /*** IWineD3DResource methods ***/
-    STDMETHOD(GetDevice)(THIS_ IWineD3DDevice ** ppDevice) PURE;
-    STDMETHOD(SetPrivateData)(THIS_ REFGUID  refguid, CONST void * pData, DWORD  SizeOfData, DWORD  Flags) PURE;
-    STDMETHOD(GetPrivateData)(THIS_ REFGUID  refguid, void * pData, DWORD * pSizeOfData) PURE;
-    STDMETHOD(FreePrivateData)(THIS_ REFGUID  refguid) PURE;
-    STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD  PriorityNew) PURE;
-    STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
-    STDMETHOD_(void,PreLoad)(THIS) PURE;
-    STDMETHOD_(void,UnLoad)(THIS) PURE;
-    STDMETHOD_(WINED3DRESOURCETYPE,GetType)(THIS) PURE;
-    /*** IWineD3DVertexBuffer methods ***/
-    STDMETHOD(Lock)(THIS_ UINT  OffsetToLock, UINT  SizeToLock, BYTE ** ppbData, DWORD  Flags) PURE;
-    STDMETHOD(Unlock)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ WINED3DVERTEXBUFFER_DESC  * pDesc) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IWineD3DVertexBuffer_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IWineD3DVertexBuffer_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IWineD3DVertexBuffer_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IWineD3DBase methods ***/
-#define IWineD3DVertexBuffer_GetParent(p,a)               (p)->lpVtbl->GetParent(p,a)
-/*** IWineD3DResource methods ***/
-#define IWineD3DVertexBuffer_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IWineD3DVertexBuffer_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IWineD3DVertexBuffer_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IWineD3DVertexBuffer_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IWineD3DVertexBuffer_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
-#define IWineD3DVertexBuffer_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
-#define IWineD3DVertexBuffer_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
-#define IWineD3DVertexBuffer_UnLoad(p)                    (p)->lpVtbl->UnLoad(p)
-#define IWineD3DVertexBuffer_GetType(p)                   (p)->lpVtbl->GetType(p)
-/*** IWineD3DVertexBuffer methods ***/
-#define IWineD3DVertexBuffer_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
-#define IWineD3DVertexBuffer_Unlock(p)                    (p)->lpVtbl->Unlock(p)
-#define IWineD3DVertexBuffer_GetDesc(p,a)                 (p)->lpVtbl->GetDesc(p,a)
-#endif
-
-/*****************************************************************************
- * WineD3DIndexBuffer interface 
- */
-#define INTERFACE IWineD3DIndexBuffer
-DECLARE_INTERFACE_(IWineD3DIndexBuffer,IWineD3DResource)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IWineD3DBase methods ***/
-    STDMETHOD(GetParent)(THIS_ IUnknown **pParent) PURE;
-    /*** IWineD3DResource methods ***/
-    STDMETHOD(GetDevice)(THIS_ IWineD3DDevice ** ppDevice) PURE;
-    STDMETHOD(SetPrivateData)(THIS_ REFGUID  refguid, CONST void * pData, DWORD  SizeOfData, DWORD  Flags) PURE;
-    STDMETHOD(GetPrivateData)(THIS_ REFGUID  refguid, void * pData, DWORD * pSizeOfData) PURE;
-    STDMETHOD(FreePrivateData)(THIS_ REFGUID  refguid) PURE;
-    STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD  PriorityNew) PURE;
-    STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
-    STDMETHOD_(void,PreLoad)(THIS) PURE;
-    STDMETHOD_(void,UnLoad)(THIS) PURE;
-    STDMETHOD_(WINED3DRESOURCETYPE,GetType)(THIS) PURE;
-    /*** IWineD3DIndexBuffer methods ***/
-    STDMETHOD(Lock)(THIS_ UINT  OffsetToLock, UINT  SizeToLock, BYTE ** ppbData, DWORD  Flags) PURE;
-    STDMETHOD(Unlock)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ WINED3DINDEXBUFFER_DESC  * pDesc) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IWineD3DIndexBuffer_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IWineD3DIndexBuffer_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IWineD3DIndexBuffer_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IWineD3DBase methods ***/
-#define IWineD3DIndexBuffer_GetParent(p,a)               (p)->lpVtbl->GetParent(p,a)
-/*** IWineD3DResource methods ***/
-#define IWineD3DIndexBuffer_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IWineD3DIndexBuffer_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IWineD3DIndexBuffer_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IWineD3DIndexBuffer_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IWineD3DIndexBuffer_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
-#define IWineD3DIndexBuffer_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
-#define IWineD3DIndexBuffer_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
-#define IWineD3DIndexBuffer_UnLoad(p)                    (p)->lpVtbl->UnLoad(p)
-#define IWineD3DIndexBuffer_GetType(p)                   (p)->lpVtbl->GetType(p)
-/*** IWineD3DIndexBuffer methods ***/
-#define IWineD3DIndexBuffer_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
-#define IWineD3DIndexBuffer_Unlock(p)                    (p)->lpVtbl->Unlock(p)
-#define IWineD3DIndexBuffer_GetDesc(p,a)                 (p)->lpVtbl->GetDesc(p,a)
-#endif
-
-/*****************************************************************************
- * IWineD3DBaseTexture interface
- *   Note at d3d8 this does NOT extend Resource, but at d3d9 it does
- *     since most functions are common anyway, it makes sense to extend it
- */
-#define INTERFACE IWineD3DBaseTexture
-DECLARE_INTERFACE_(IWineD3DBaseTexture,IWineD3DResource)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IWineD3DBase methods ***/
-    STDMETHOD(GetParent)(THIS_ IUnknown **pParent) PURE;
-    /*** IWineD3DResource methods ***/
-    STDMETHOD(GetDevice)(THIS_ IWineD3DDevice ** ppDevice) PURE;
-    STDMETHOD(SetPrivateData)(THIS_ REFGUID  refguid, CONST void * pData, DWORD  SizeOfData, DWORD  Flags) PURE;
-    STDMETHOD(GetPrivateData)(THIS_ REFGUID  refguid, void * pData, DWORD * pSizeOfData) PURE;
-    STDMETHOD(FreePrivateData)(THIS_ REFGUID  refguid) PURE;
-    STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD  PriorityNew) PURE;
-    STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
-    STDMETHOD_(void,PreLoad)(THIS) PURE;
-    STDMETHOD_(void,UnLoad)(THIS) PURE;
-    STDMETHOD_(WINED3DRESOURCETYPE,GetType)(THIS) PURE;
-    /*** IWineD3DBaseTexture methods ***/
-    STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
-    STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
-    STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
-    STDMETHOD(SetAutoGenFilterType)(THIS_ WINED3DTEXTUREFILTERTYPE FilterType) PURE;
-    STDMETHOD_(WINED3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE;
-    STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE;
-    STDMETHOD_(BOOL, SetDirty)(THIS_ BOOL) PURE;
-    STDMETHOD_(BOOL, GetDirty)(THIS) PURE;
-    STDMETHOD(BindTexture)(THIS) PURE;
-    STDMETHOD_(UINT, GetTextureDimensions)(THIS) PURE;
-    STDMETHOD_(BOOL, IsCondNP2)(THIS) PURE;
-    STDMETHOD_(void, ApplyStateChanges)(THIS_ const DWORD textureStates[WINED3D_HIGHEST_TEXTURE_STATE + 1], const DWORD samplerStates[WINED3D_HIGHEST_SAMPLER_STATE + 1]) PURE;
-
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IWineD3DBaseTexture_QueryInterface(p,a,b)      (p)->lpVtbl->QueryInterface(p,a,b)
-#define IWineD3DBaseTexture_AddRef(p)                  (p)->lpVtbl->AddRef(p)
-#define IWineD3DBaseTexture_Release(p)                 (p)->lpVtbl->Release(p)
-/*** IWineD3DBase methods ***/
-#define IWineD3DBaseTexture_GetParent(p,a)             (p)->lpVtbl->GetParent(p,a)
-/*** IWineD3DBaseTexture methods: IWineD3DResource ***/
-#define IWineD3DBaseTexture_GetDevice(p,a)             (p)->lpVtbl->GetDevice(p,a)
-#define IWineD3DBaseTexture_SetPrivateData(p,a,b,c,d)  (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IWineD3DBaseTexture_GetPrivateData(p,a,b,c)    (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IWineD3DBaseTexture_FreePrivateData(p,a)       (p)->lpVtbl->FreePrivateData(p,a)
-#define IWineD3DBaseTexture_SetPriority(p,a)           (p)->lpVtbl->SetPriority(p,a)
-#define IWineD3DBaseTexture_GetPriority(p)             (p)->lpVtbl->GetPriority(p)
-#define IWineD3DBaseTexture_PreLoad(p)                 (p)->lpVtbl->PreLoad(p)
-#define IWineD3DBaseTexture_UnLoad(p)                  (p)->lpVtbl->UnLoad(p)
-#define IWineD3DBaseTexture_GetType(p)                 (p)->lpVtbl->GetType(p)
-/*** IWineD3DBaseTexture methods ***/
-#define IWineD3DBaseTexture_SetLOD(p,a)                (p)->lpVtbl->SetLOD(p,a)
-#define IWineD3DBaseTexture_GetLOD(p)                  (p)->lpVtbl->GetLOD(p)
-#define IWineD3DBaseTexture_GetLevelCount(p)           (p)->lpVtbl->GetLevelCount(p)
-#define IWineD3DBaseTexture_SetAutoGenFilterType(p,a)  (p)->lpVtbl->SetAutoGenFilterType(p,a)
-#define IWineD3DBaseTexture_GetAutoGenFilterType(p)    (p)->lpVtbl->GetAutoGenFilterType(p)
-#define IWineD3DBaseTexture_GenerateMipSubLevels(p)    (p)->lpVtbl->GenerateMipSubLevels(p)
-#define IWineD3DBaseTexture_SetDirty(p,a)              (p)->lpVtbl->SetDirty(p,a)
-#define IWineD3DBaseTexture_GetDirty(p)                (p)->lpVtbl->GetDirty(p)
-/*** internal methods ***/
-#define IWineD3DBaseTexture_BindTexture(p)             (p)->lpVtbl->BindTexture(p)
-#define IWineD3DBaseTexture_GetTextureDimensions(p)    (p)->lpVtbl->GetTextureDimensions(p)
-#define IWineD3DBaseTexture_IsCondNP2(p)               (p)->lpVtbl->IsCondNP2(p)
-#define IWineD3DBaseTexture_ApplyStateChanges(p,a,b)   (p)->lpVtbl->ApplyStateChanges(p,a,b)
-#endif
-
-/*****************************************************************************
- * IWineD3DTexture interface
- */
-#define INTERFACE IWineD3DTexture
-DECLARE_INTERFACE_(IWineD3DTexture,IWineD3DBaseTexture)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IWineD3DBase methods ***/
-    STDMETHOD(GetParent)(THIS_ IUnknown **pParent) PURE;
-    /*** IWineD3DResource methods ***/
-    STDMETHOD(GetDevice)(THIS_ IWineD3DDevice ** ppDevice) PURE;
-    STDMETHOD(SetPrivateData)(THIS_ REFGUID  refguid, CONST void * pData, DWORD  SizeOfData, DWORD  Flags) PURE;
-    STDMETHOD(GetPrivateData)(THIS_ REFGUID  refguid, void * pData, DWORD * pSizeOfData) PURE;
-    STDMETHOD(FreePrivateData)(THIS_ REFGUID  refguid) PURE;
-    STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD  PriorityNew) PURE;
-    STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
-    STDMETHOD_(void,PreLoad)(THIS) PURE;
-    STDMETHOD_(void,UnLoad)(THIS) PURE;
-    STDMETHOD_(WINED3DRESOURCETYPE,GetType)(THIS) PURE;
-    /*** IWineD3DBaseTexture methods ***/
-    STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
-    STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
-    STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
-    STDMETHOD(SetAutoGenFilterType)(THIS_ WINED3DTEXTUREFILTERTYPE FilterType) PURE;
-    STDMETHOD_(WINED3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE;
-    STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE;
-    STDMETHOD_(BOOL, SetDirty)(THIS_ BOOL) PURE;
-    STDMETHOD_(BOOL, GetDirty)(THIS) PURE;
-    STDMETHOD(BindTexture)(THIS) PURE;
-    STDMETHOD_(UINT, GetTextureDimensions)(THIS) PURE;
-    STDMETHOD_(BOOL, IsCondNP2)(THIS) PURE;
-    STDMETHOD_(void, ApplyStateChanges)(THIS_ const DWORD textureStates[WINED3D_HIGHEST_TEXTURE_STATE + 1], const DWORD samplerStates[WINED3D_HIGHEST_SAMPLER_STATE + 1]) PURE;
-    /*** IWineD3DTexture methods ***/
-    STDMETHOD_(void, Destroy)(THIS_ D3DCB_DESTROYSURFACEFN pFn) PURE;
-    STDMETHOD(GetLevelDesc)(THIS_ UINT Level, WINED3DSURFACE_DESC* pDesc) PURE;
-    STDMETHOD(GetSurfaceLevel)(THIS_ UINT Level, struct IWineD3DSurface** ppSurfaceLevel) PURE;
-    STDMETHOD(LockRect)(THIS_ UINT Level, WINED3DLOCKED_RECT* pLockedRect, CONST RECT* pRect, DWORD Flags) PURE;
-    STDMETHOD(UnlockRect)(THIS_ UINT Level) PURE;
-    STDMETHOD(AddDirtyRect)(THIS_ CONST RECT* pDirtyRect) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IWineD3DTexture_QueryInterface(p,a,b)      (p)->lpVtbl->QueryInterface(p,a,b)
-#define IWineD3DTexture_AddRef(p)                  (p)->lpVtbl->AddRef(p)
-#define IWineD3DTexture_Release(p)                 (p)->lpVtbl->Release(p)
-/*** IWineD3DBase methods ***/
-#define IWineD3DTexture_GetParent(p,a)             (p)->lpVtbl->GetParent(p,a)
-/*** IWineD3DTexture methods: IWineD3DResource ***/
-#define IWineD3DTexture_GetDevice(p,a)             (p)->lpVtbl->GetDevice(p,a)
-#define IWineD3DTexture_SetPrivateData(p,a,b,c,d)  (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IWineD3DTexture_GetPrivateData(p,a,b,c)    (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IWineD3DTexture_FreePrivateData(p,a)       (p)->lpVtbl->FreePrivateData(p,a)
-#define IWineD3DTexture_SetPriority(p,a)           (p)->lpVtbl->SetPriority(p,a)
-#define IWineD3DTexture_GetPriority(p)             (p)->lpVtbl->GetPriority(p)
-#define IWineD3DTexture_PreLoad(p)                 (p)->lpVtbl->PreLoad(p)
-#define IWineD3DTexture_UnLoad(p)                  (p)->lpVtbl->UnLoad(p)
-#define IWineD3DTexture_GetType(p)                 (p)->lpVtbl->GetType(p)
-/*** IWineD3DTexture methods: IWineD3DBaseTexture ***/
-#define IWineD3DTexture_SetLOD(p,a)                (p)->lpVtbl->SetLOD(p,a)
-#define IWineD3DTexture_GetLOD(p)                  (p)->lpVtbl->GetLOD(p)
-#define IWineD3DTexture_GetLevelCount(p)           (p)->lpVtbl->GetLevelCount(p)
-#define IWineD3DTexture_SetAutoGenFilterType(p,a)  (p)->lpVtbl->SetAutoGenFilterType(p,a)
-#define IWineD3DTexture_GetAutoGenFilterType(p)    (p)->lpVtbl->GetAutoGenFilterType(p)
-#define IWineD3DTexture_GenerateMipSubLevels(p)    (p)->lpVtbl->GenerateMipSubLevels(p)
-#define IWineD3DTexture_SetDirty(p,a)              (p)->lpVtbl->SetDirty(p,a)
-#define IWineD3DTexture_GetDirty(p)                (p)->lpVtbl->GetDirty(p)
-#define IWineD3DTexture_BindTexture(p)             (p)->lpVtbl->BindTexture(p)
-#define IWineD3DTexture_GetTextureDimensions(p)    (p)->lpVtbl->GetTextureDimensions(p)
-#define IWineD3DTexture_IsCondNP2(p)               (p)->lpVtbl->IsCondNP2(p)
-#define IWineD3DTexture_ApplyStateChanges(p,a,b)   (p)->lpVtbl->ApplyStateChanges(p,a,b)
-/*** IWineD3DTexture methods ***/
-#define IWineD3DTexture_Destroy(p,a)               (p)->lpVtbl->Destroy(p,a)
-#define IWineD3DTexture_GetLevelDesc(p,a,b)        (p)->lpVtbl->GetLevelDesc(p,a,b)
-#define IWineD3DTexture_GetSurfaceLevel(p,a,b)     (p)->lpVtbl->GetSurfaceLevel(p,a,b)
-#define IWineD3DTexture_LockRect(p,a,b,c,d)        (p)->lpVtbl->LockRect(p,a,b,c,d)
-#define IWineD3DTexture_UnlockRect(p,a)            (p)->lpVtbl->UnlockRect(p,a)
-#define IWineD3DTexture_AddDirtyRect(p,a)          (p)->lpVtbl->AddDirtyRect(p,a)
-#endif
-
-/*****************************************************************************
- * IWineD3DCubeTexture interface
- */
-#define INTERFACE IWineD3DCubeTexture
-DECLARE_INTERFACE_(IWineD3DCubeTexture,IWineD3DBaseTexture)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IWineD3DBase methods ***/
-    STDMETHOD(GetParent)(THIS_ IUnknown **pParent) PURE;
-    /*** IWineD3DResource methods ***/
-    STDMETHOD(GetDevice)(THIS_ IWineD3DDevice ** ppDevice) PURE;
-    STDMETHOD(SetPrivateData)(THIS_ REFGUID  refguid, CONST void * pData, DWORD  SizeOfData, DWORD  Flags) PURE;
-    STDMETHOD(GetPrivateData)(THIS_ REFGUID  refguid, void * pData, DWORD * pSizeOfData) PURE;
-    STDMETHOD(FreePrivateData)(THIS_ REFGUID  refguid) PURE;
-    STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD  PriorityNew) PURE;
-    STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
-    STDMETHOD_(void,PreLoad)(THIS) PURE;
-    STDMETHOD_(void,UnLoad)(THIS) PURE;
-    STDMETHOD_(WINED3DRESOURCETYPE,GetType)(THIS) PURE;
-    /*** IWineD3DBaseTexture methods ***/
-    STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
-    STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
-    STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
-    STDMETHOD(SetAutoGenFilterType)(THIS_ WINED3DTEXTUREFILTERTYPE FilterType) PURE;
-    STDMETHOD_(WINED3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE;
-    STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE;
-    STDMETHOD_(BOOL, SetDirty)(THIS_ BOOL) PURE;
-    STDMETHOD_(BOOL, GetDirty)(THIS) PURE;
-    STDMETHOD(BindTexture)(THIS) PURE;
-    STDMETHOD_(UINT, GetTextureDimensions)(THIS) PURE;
-    STDMETHOD_(BOOL, IsCondNP2)(THIS) PURE;
-    STDMETHOD_(void, ApplyStateChanges)(THIS_ DWORD const textureStates[WINED3D_HIGHEST_TEXTURE_STATE + 1], const DWORD samplerStates[WINED3D_HIGHEST_SAMPLER_STATE + 1]) PURE;
-    /*** IWineD3DCubeTexture methods ***/
-    STDMETHOD_(void, Destroy)(THIS_ D3DCB_DESTROYSURFACEFN pFn) PURE;
-    STDMETHOD(GetLevelDesc)(THIS_ UINT Level,WINED3DSURFACE_DESC* pDesc) PURE;
-    STDMETHOD(GetCubeMapSurface)(THIS_ WINED3DCUBEMAP_FACES FaceType, UINT Level, struct IWineD3DSurface** ppCubeMapSurface) PURE;
-    STDMETHOD(LockRect)(THIS_ WINED3DCUBEMAP_FACES FaceType, UINT Level, WINED3DLOCKED_RECT* pLockedRect, CONST RECT* pRect, DWORD Flags) PURE;
-    STDMETHOD(UnlockRect)(THIS_ WINED3DCUBEMAP_FACES FaceType, UINT Level) PURE;
-    STDMETHOD(AddDirtyRect)(THIS_ WINED3DCUBEMAP_FACES FaceType, CONST RECT* pDirtyRect) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IWineD3DCubeTexture_QueryInterface(p,a,b)      (p)->lpVtbl->QueryInterface(p,a,b)
-#define IWineD3DCubeTexture_AddRef(p)                  (p)->lpVtbl->AddRef(p)
-#define IWineD3DCubeTexture_Release(p)                 (p)->lpVtbl->Release(p)
-/*** IWineD3DBase methods ***/
-#define IWineD3DCubeTexture_GetParent(p,a)             (p)->lpVtbl->GetParent(p,a)
-/*** IWineD3DCubeTexture methods: IWineD3DResource ***/
-#define IWineD3DCubeTexture_GetDevice(p,a)             (p)->lpVtbl->GetDevice(p,a)
-#define IWineD3DCubeTexture_SetPrivateData(p,a,b,c,d)  (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IWineD3DCubeTexture_GetPrivateData(p,a,b,c)    (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IWineD3DCubeTexture_FreePrivateData(p,a)       (p)->lpVtbl->FreePrivateData(p,a)
-#define IWineD3DCubeTexture_SetPriority(p,a)           (p)->lpVtbl->SetPriority(p,a)
-#define IWineD3DCubeTexture_GetPriority(p)             (p)->lpVtbl->GetPriority(p)
-#define IWineD3DCubeTexture_PreLoad(p)                 (p)->lpVtbl->PreLoad(p)
-#define IWineD3DCubeTexture_UnLoad(p)                  (p)->lpVtbl->UnLoad(p)
-#define IWineD3DCubeTexture_GetType(p)                 (p)->lpVtbl->GetType(p)
-/*** IWineD3DCubeTexture methods: IWineD3DBaseTexture ***/
-#define IWineD3DCubeTexture_SetLOD(p,a)                (p)->lpVtbl->SetLOD(p,a)
-#define IWineD3DCubeTexture_GetLOD(p)                  (p)->lpVtbl->GetLOD(p)
-#define IWineD3DCubeTexture_GetLevelCount(p)           (p)->lpVtbl->GetLevelCount(p)
-#define IWineD3DCubeTexture_SetAutoGenFilterType(p,a)  (p)->lpVtbl->SetAutoGenFilterType(p,a)
-#define IWineD3DCubeTexture_GetAutoGenFilterType(p)    (p)->lpVtbl->GetAutoGenFilterType(p)
-#define IWineD3DCubeTexture_GenerateMipSubLevels(p)    (p)->lpVtbl->GenerateMipSubLevels(p)
-#define IWineD3DCubeTexture_SetDirty(p,a)              (p)->lpVtbl->SetDirty(p,a)
-#define IWineD3DCubeTexture_GetDirty(p)                (p)->lpVtbl->GetDirty(p)
-#define IWineD3DCubeTexture_BindTexture(p)              (p)->lpVtbl->BindTexture(p)
-#define IWineD3DCubeTexture_GetTextureDimensions(p)     (p)->lpVtbl->GetTextureDimensions(p)
-#define IWineD3DCubeTexture_IsCondNP2(p)               (p)->lpVtbl->IsCondNP2(p)
-#define IWineD3DCubeTexture_ApplyStateChanges(p,a,b)   (p)->lpVtbl->ApplyStateChanges(p,a,b)
-/*** IWineD3DCubeTexture methods ***/
-#define IWineD3DCubeTexture_Destroy(p,a)               (p)->lpVtbl->Destroy(p,a)
-#define IWineD3DCubeTexture_GetLevelDesc(p,a,b)        (p)->lpVtbl->GetLevelDesc(p,a,b)
-#define IWineD3DCubeTexture_GetCubeMapSurface(p,a,b,c) (p)->lpVtbl->GetCubeMapSurface(p,a,b,c)
-#define IWineD3DCubeTexture_LockRect(p,a,b,c,d,e)      (p)->lpVtbl->LockRect(p,a,b,c,d,e)
-#define IWineD3DCubeTexture_UnlockRect(p,a,b)          (p)->lpVtbl->UnlockRect(p,a,b)
-#define IWineD3DCubeTexture_AddDirtyRect(p,a,b)        (p)->lpVtbl->AddDirtyRect(p,a,b)
-#endif
-
-
-/*****************************************************************************
- * IWineD3DVolumeTexture interface
- */
-#define INTERFACE IWineD3DVolumeTexture
-DECLARE_INTERFACE_(IWineD3DVolumeTexture,IWineD3DBaseTexture)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IWineD3DBase methods ***/
-    STDMETHOD(GetParent)(THIS_ IUnknown **pParent) PURE;
-    /*** IWineD3DResource methods ***/
-    STDMETHOD(GetDevice)(THIS_ IWineD3DDevice ** ppDevice) PURE;
-    STDMETHOD(SetPrivateData)(THIS_ REFGUID  refguid, CONST void * pData, DWORD  SizeOfData, DWORD  Flags) PURE;
-    STDMETHOD(GetPrivateData)(THIS_ REFGUID  refguid, void * pData, DWORD * pSizeOfData) PURE;
-    STDMETHOD(FreePrivateData)(THIS_ REFGUID  refguid) PURE;
-    STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD  PriorityNew) PURE;
-    STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
-    STDMETHOD_(void,PreLoad)(THIS) PURE;
-    STDMETHOD_(void,UnLoad)(THIS) PURE;
-    STDMETHOD_(WINED3DRESOURCETYPE,GetType)(THIS) PURE;
-    /*** IWineD3DBaseTexture methods ***/
-    STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
-    STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
-    STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
-    STDMETHOD(SetAutoGenFilterType)(THIS_ WINED3DTEXTUREFILTERTYPE FilterType) PURE;
-    STDMETHOD_(WINED3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE;
-    STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE;
-    STDMETHOD_(BOOL, SetDirty)(THIS_ BOOL) PURE;
-    STDMETHOD_(BOOL, GetDirty)(THIS) PURE;
-    STDMETHOD(BindTexture)(THIS) PURE;
-    STDMETHOD_(UINT, GetTextureDimensions)(THIS) PURE;
-    STDMETHOD_(BOOL, IsCondNP2)(THIS) PURE;
-    STDMETHOD_(void, ApplyStateChanges)(THIS_ const DWORD textureStates[WINED3D_HIGHEST_TEXTURE_STATE + 1], const DWORD samplerStates[WINED3D_HIGHEST_SAMPLER_STATE + 1]) PURE;
-    /*** IWineD3DVolumeTexture methods ***/
-    STDMETHOD_(void, Destroy)(THIS_ D3DCB_DESTROYVOLUMEFN pFn) PURE;
-    STDMETHOD(GetLevelDesc)(THIS_ UINT Level, WINED3DVOLUME_DESC *pDesc) PURE;
-    STDMETHOD(GetVolumeLevel)(THIS_ UINT Level, struct IWineD3DVolume** ppVolumeLevel) PURE;
-    STDMETHOD(LockBox)(THIS_ UINT Level, WINED3DLOCKED_BOX* pLockedVolume, CONST WINED3DBOX* pBox, DWORD Flags) PURE;
-    STDMETHOD(UnlockBox)(THIS_ UINT Level) PURE;
-    STDMETHOD(AddDirtyBox)(THIS_ CONST WINED3DBOX* pDirtyBox) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IWineD3DVolumeTexture_QueryInterface(p,a,b)      (p)->lpVtbl->QueryInterface(p,a,b)
-#define IWineD3DVolumeTexture_AddRef(p)                  (p)->lpVtbl->AddRef(p)
-#define IWineD3DVolumeTexture_Release(p)                 (p)->lpVtbl->Release(p)
-/*** IWineD3DBase methods ***/
-#define IWineD3DVolumeTexture_GetParent(p,a)             (p)->lpVtbl->GetParent(p,a)
-/*** IWineD3DVolumeTexture methods: IWineD3DResource ***/
-#define IWineD3DVolumeTexture_GetDevice(p,a)             (p)->lpVtbl->GetDevice(p,a)
-#define IWineD3DVolumeTexture_SetPrivateData(p,a,b,c,d)  (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IWineD3DVolumeTexture_GetPrivateData(p,a,b,c)    (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IWineD3DVolumeTexture_FreePrivateData(p,a)       (p)->lpVtbl->FreePrivateData(p,a)
-#define IWineD3DVolumeTexture_SetPriority(p,a)           (p)->lpVtbl->SetPriority(p,a)
-#define IWineD3DVolumeTexture_GetPriority(p)             (p)->lpVtbl->GetPriority(p)
-#define IWineD3DVolumeTexture_PreLoad(p)                 (p)->lpVtbl->PreLoad(p)
-#define IWineD3DVolumeTexture_UnLoad(p)                  (p)->lpVtbl->UnLoad(p)
-#define IWineD3DVolumeTexture_GetType(p)                 (p)->lpVtbl->GetType(p)
-/*** IWineD3DVolumeTexture methods: IWineD3DBaseTexture ***/
-#define IWineD3DVolumeTexture_SetLOD(p,a)                (p)->lpVtbl->SetLOD(p,a)
-#define IWineD3DVolumeTexture_GetLOD(p)                  (p)->lpVtbl->GetLOD(p)
-#define IWineD3DVolumeTexture_GetLevelCount(p)           (p)->lpVtbl->GetLevelCount(p)
-#define IWineD3DVolumeTexture_SetAutoGenFilterType(p,a)  (p)->lpVtbl->SetAutoGenFilterType(p,a)
-#define IWineD3DVolumeTexture_GetAutoGenFilterType(p)    (p)->lpVtbl->GetAutoGenFilterType(p)
-#define IWineD3DVolumeTexture_GenerateMipSubLevels(p)    (p)->lpVtbl->GenerateMipSubLevels(p)
-#define IWineD3DVolumeTexture_SetDirty(p,a)              (p)->lpVtbl->SetDirty(p,a)
-#define IWineD3DVolumeTexture_GetDirty(p)                (p)->lpVtbl->GetDirty(p)
-#define IWineD3DVolumeTexture_BindTexture(p)              (p)->lpVtbl->BindTexture(p)
-#define IWineD3DVolumeTexture_GetTextureDimensions(p)     (p)->lpVtbl->GetTextureDimensions(p)
-#define IWineD3DVolumeTexture_IsCondNP2(p)               (p)->lpVtbl->IsCondNP2(p)
-#define IWineD3DVolumeTexture_ApplyStateChanges(p,a,b)   (p)->lpVtbl->ApplyStateChanges(p,a,b)
-/*** IWineD3DVolumeTexture methods ***/
-#define IWineD3DVolumeTexture_Destroy(p,a)               (p)->lpVtbl->Destroy(p,a)
-#define IWineD3DVolumeTexture_GetLevelDesc(p,a,b)        (p)->lpVtbl->GetLevelDesc(p,a,b)
-#define IWineD3DVolumeTexture_GetVolumeLevel(p,a,b)      (p)->lpVtbl->GetVolumeLevel(p,a,b)
-#define IWineD3DVolumeTexture_LockBox(p,a,b,c,d)         (p)->lpVtbl->LockBox(p,a,b,c,d)
-#define IWineD3DVolumeTexture_UnlockBox(p,a)             (p)->lpVtbl->UnlockBox(p,a)
-#define IWineD3DVolumeTexture_AddDirtyBox(p,a)           (p)->lpVtbl->AddDirtyBox(p,a)
-#endif
-
-/*****************************************************************************
- * IWineD3DSurface interface
- */
-#define INTERFACE IWineD3DSurface
-DECLARE_INTERFACE_(IWineD3DSurface,IWineD3DResource)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IWineD3DBase methods ***/
-    STDMETHOD(GetParent)(THIS_ IUnknown **pParent) PURE;
-    /*** IWineD3DResource methods ***/
-    STDMETHOD(GetDevice)(THIS_ IWineD3DDevice ** ppDevice) PURE;
-    STDMETHOD(SetPrivateData)(THIS_ REFGUID  refguid, CONST void * pData, DWORD  SizeOfData, DWORD  Flags) PURE;
-    STDMETHOD(GetPrivateData)(THIS_ REFGUID  refguid, void * pData, DWORD * pSizeOfData) PURE;
-    STDMETHOD(FreePrivateData)(THIS_ REFGUID  refguid) PURE;
-    STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD  PriorityNew) PURE;
-    STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
-    STDMETHOD_(void,PreLoad)(THIS) PURE;
-    STDMETHOD_(void,UnLoad)(THIS) PURE;
-    STDMETHOD_(WINED3DRESOURCETYPE,GetType)(THIS) PURE;
-    /*** IWineD3DSurface methods ***/
-    STDMETHOD(GetContainer)(THIS_ REFIID  riid, void ** ppContainer) PURE;
-    STDMETHOD(GetDesc)(THIS_ WINED3DSURFACE_DESC * pDesc) PURE;
-    STDMETHOD(LockRect)(THIS_ WINED3DLOCKED_RECT * pLockedRect, CONST RECT * pRect,DWORD  Flags) PURE;
-    STDMETHOD(UnlockRect)(THIS) PURE;
-    STDMETHOD(GetDC)(THIS_ HDC *pHdc) PURE;
-    STDMETHOD(ReleaseDC)(THIS_ HDC hdc) PURE;
-    STDMETHOD(Flip)(THIS_ IWineD3DSurface *Override, DWORD FLAGS) PURE;
-    STDMETHOD(Blt)(THIS_ RECT *DestRect, IWineD3DSurface *SrcSurface, RECT *SrcRect, DWORD Flags, WINEDDBLTFX *DDBltFx, WINED3DTEXTUREFILTERTYPE Filter) PURE;
-    STDMETHOD(GetBltStatus)(THIS_ DWORD Flags) PURE;
-    STDMETHOD(GetFlipStatus)(THIS_ DWORD Flags) PURE;
-    STDMETHOD(IsLost)(THIS) PURE;
-    STDMETHOD(Restore)(THIS) PURE;
-    STDMETHOD(BltFast)(THIS_ DWORD dstx, DWORD dsty, IWineD3DSurface *src, RECT *rsrc, DWORD trans) PURE;
-    STDMETHOD(GetPalette)(THIS_ struct IWineD3DPalette **Palette) PURE;
-    STDMETHOD(SetPalette)(THIS_ struct IWineD3DPalette *Palette) PURE;
-    STDMETHOD(RealizePalette)(THIS) PURE;
-    STDMETHOD(SetColorKey)(THIS_ DWORD Flags, WINEDDCOLORKEY *CKey) PURE;
-    STDMETHOD_(DWORD,GetPitch)(THIS) PURE;
-    STDMETHOD(SetMem)(THIS_ void *mem) PURE;
-    STDMETHOD(SetOverlayPosition)(THIS_ LONG X, LONG Y) PURE;
-    STDMETHOD(GetOverlayPosition)(THIS_ LONG *X, LONG *Y) PURE;
-    STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD Flags, IWineD3DSurface *Ref) PURE;
-    STDMETHOD(UpdateOverlay)(THIS_ RECT *SrcRect, IWineD3DSurface *DstSurface, RECT *DstRect, DWORD Flags, WINEDDOVERLAYFX *FX);
-    STDMETHOD(SetClipper)(THIS_ struct IWineD3DClipper *clipper);
-    STDMETHOD(GetClipper)(THIS_ struct IWineD3DClipper **clipper);
-    /* Internally used methods */
-    STDMETHOD(AddDirtyRect)(THIS_ CONST RECT* pRect) PURE;
-    STDMETHOD(LoadTexture)(THIS, BOOL srgb_mode) PURE;
-    STDMETHOD_(void, BindTexture)(THIS) PURE;
-    STDMETHOD(SaveSnapshot)(THIS_ const char *filename) PURE;
-    STDMETHOD(SetContainer)(THIS_ IWineD3DBase *container) PURE;
-    STDMETHOD_(void,GetGlDesc)(THIS_ glDescriptor **glDescription) PURE;
-    STDMETHOD_(CONST void *, GetData)(THIS) PURE;
-    STDMETHOD(SetFormat)(THIS_ WINED3DFORMAT format) PURE;
-    STDMETHOD(PrivateSetup)(THIS) PURE;
-    STDMETHOD_(void,ModifyLocation)(THIS_ DWORD flag, BOOL persistent);
-    STDMETHOD(LoadLocation)(THIS_ DWORD flag, const RECT *rect);
-    STDMETHOD_(WINED3DSURFTYPE,GetImplType)(THIS);
-    STDMETHOD(DrawOverlay)(THIS);
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IWineD3DSurface_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IWineD3DSurface_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IWineD3DSurface_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IWineD3DBase methods ***/
-#define IWineD3DSurface_GetParent(p,a)               (p)->lpVtbl->GetParent(p,a)
-/*** IWineD3DResource methods ***/
-#define IWineD3DSurface_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IWineD3DSurface_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IWineD3DSurface_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IWineD3DSurface_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IWineD3DSurface_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
-#define IWineD3DSurface_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
-#define IWineD3DSurface_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
-#define IWineD3DSurface_UnLoad(p)                    (p)->lpVtbl->UnLoad(p)
-#define IWineD3DSurface_GetType(p)                   (p)->lpVtbl->GetType(p)
-/*** IWineD3DSurface methods ***/
-#define IWineD3DSurface_GetContainer(p,a,b)          (p)->lpVtbl->GetContainer(p,a,b)
-#define IWineD3DSurface_GetDesc(p,a)                 (p)->lpVtbl->GetDesc(p,a)
-#define IWineD3DSurface_LockRect(p,a,b,c)            (p)->lpVtbl->LockRect(p,a,b,c)
-#define IWineD3DSurface_UnlockRect(p)                (p)->lpVtbl->UnlockRect(p)
-#define IWineD3DSurface_GetDC(p,a)                   (p)->lpVtbl->GetDC(p,a)
-#define IWineD3DSurface_ReleaseDC(p,a)               (p)->lpVtbl->ReleaseDC(p,a)
-#define IWineD3DSurface_Flip(p,a,b)                  (p)->lpVtbl->Flip(p,a,b)
-#define IWineD3DSurface_Blt(p,a,b,c,d,e,f)           (p)->lpVtbl->Blt(p,a,b,c,d,e,f)
-#define IWineD3DSurface_GetBltStatus(p,a)            (p)->lpVtbl->GetBltStatus(p,a)
-#define IWineD3DSurface_GetFlipStatus(p,a)           (p)->lpVtbl->GetFlipStatus(p,a)
-#define IWineD3DSurface_IsLost(p)                    (p)->lpVtbl->IsLost(p)
-#define IWineD3DSurface_Restore(p)                   (p)->lpVtbl->Restore(p)
-#define IWineD3DSurface_BltFast(p,a,b,c,d,e)         (p)->lpVtbl->BltFast(p,a,b,c,d,e)
-#define IWineD3DSurface_GetPalette(p, a)             (p)->lpVtbl->GetPalette(p, a)
-#define IWineD3DSurface_SetPalette(p, a)             (p)->lpVtbl->SetPalette(p, a)
-#define IWineD3DSurface_RealizePalette(p)            (p)->lpVtbl->RealizePalette(p)
-#define IWineD3DSurface_SetColorKey(p, a, b)         (p)->lpVtbl->SetColorKey(p, a, b)
-#define IWineD3DSurface_GetPitch(p)                  (p)->lpVtbl->GetPitch(p)
-#define IWineD3DSurface_SetMem(p, a)                 (p)->lpVtbl->SetMem(p, a)
-#define IWineD3DSurface_SetOverlayPosition(p, a, b)  (p)->lpVtbl->SetOverlayPosition(p, a, b)
-#define IWineD3DSurface_GetOverlayPosition(p, a, b)  (p)->lpVtbl->GetOverlayPosition(p, a, b)
-#define IWineD3DSurface_UpdateOverlayZOrder(p, a, b) (p)->lpVtbl->UpdateOverlayZOrder(p, a, b)
-#define IWineD3DSurface_UpdateOverlay(p, a, b, c, d, e) (p)->lpVtbl->UpdateOverlay(p, a, b, c, d, e)
-#define IWineD3DSurface_SetClipper(p, a)             (p)->lpVtbl->SetClipper(p, a)
-#define IWineD3DSurface_GetClipper(p, a)             (p)->lpVtbl->GetClipper(p, a)
-/*** IWineD3DSurface (Internal, no d3d mapping) methods ***/
-#define IWineD3DSurface_AddDirtyRect(p,a)            (p)->lpVtbl->AddDirtyRect(p,a)
-#define IWineD3DSurface_LoadTexture(p,a)             (p)->lpVtbl->LoadTexture(p,a)
-#define IWineD3DSurface_BindTexture(p)               (p)->lpVtbl->BindTexture(p)
-#define IWineD3DSurface_SaveSnapshot(p,a)            (p)->lpVtbl->SaveSnapshot(p,a)
-#define IWineD3DSurface_SetContainer(p,a)            (p)->lpVtbl->SetContainer(p,a)
-#define IWineD3DSurface_GetGlDesc(p,a)               (p)->lpVtbl->GetGlDesc(p,a)
-#define IWineD3DSurface_GetData(p)                   (p)->lpVtbl->GetData(p)
-#define IWineD3DSurface_SetFormat(p,a)               (p)->lpVtbl->SetFormat(p,a)
-#define IWineD3DSurface_PrivateSetup(p)              (p)->lpVtbl->PrivateSetup(p)
-#define IWineD3DSurface_ModifyLocation(p,a,b)        (p)->lpVtbl->ModifyLocation(p,a,b)
-#define IWineD3DSurface_LoadLocation(p,a,b)          (p)->lpVtbl->LoadLocation(p,a,b)
-#define IWineD3DSurface_GetImplType(p)               (p)->lpVtbl->GetImplType(p)
-#define IWineD3DSurface_DrawOverlay(p)               (p)->lpVtbl->DrawOverlay(p)
-#endif
-
-/*****************************************************************************
- * IWineD3DVolume interface
- */
-#define INTERFACE IWineD3DVolume
-DECLARE_INTERFACE_(IWineD3DVolume,IWineD3DResource)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IWineD3DBase methods ***/
-    STDMETHOD(GetParent)(THIS_ IUnknown **pParent) PURE;
-    /*** IWineD3DResource methods ***/    
-    STDMETHOD(GetDevice)(THIS_ IWineD3DDevice ** ppDevice) PURE;
-    STDMETHOD(SetPrivateData)(THIS_ REFGUID  refguid, CONST void * pData, DWORD  SizeOfData, DWORD  Flags) PURE;
-    STDMETHOD(GetPrivateData)(THIS_ REFGUID  refguid, void * pData, DWORD * pSizeOfData) PURE;
-    STDMETHOD(FreePrivateData)(THIS_ REFGUID  refguid) PURE;
-    STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD  PriorityNew) PURE;
-    STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
-    STDMETHOD_(void,PreLoad)(THIS) PURE;
-    STDMETHOD_(void,UnLoad)(THIS) PURE;
-    STDMETHOD_(WINED3DRESOURCETYPE, GetType)(THIS) PURE;
-    /*** IWineD3DVolume methods ***/    
-    STDMETHOD(GetContainer)(THIS_ REFIID  riid, void ** ppContainer) PURE;
-    STDMETHOD(GetDesc)(THIS_ WINED3DVOLUME_DESC * pDesc) PURE;
-    STDMETHOD(LockBox)(THIS_ WINED3DLOCKED_BOX* pLockedVolume, CONST WINED3DBOX* pBox, DWORD Flags) PURE;
-    STDMETHOD(UnlockBox)(THIS) PURE;
-    STDMETHOD(AddDirtyBox)(THIS_ CONST WINED3DBOX* pDirtyBox) PURE;
-    STDMETHOD(CleanDirtyBox)(THIS) PURE;
-    STDMETHOD(LoadTexture)(THIS_ int gl_level, BOOL srgb_mode) PURE;
-    STDMETHOD(SetContainer)(THIS_ IWineD3DBase *container) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IWineD3DVolume_QueryInterface(p,a,b)      (p)->lpVtbl->QueryInterface(p,a,b)
-#define IWineD3DVolume_AddRef(p)                  (p)->lpVtbl->AddRef(p)
-#define IWineD3DVolume_Release(p)                 (p)->lpVtbl->Release(p)
-/*** IWineD3DBase methods ***/
-#define IWineD3DVolume_GetParent(p,a)             (p)->lpVtbl->GetParent(p,a)
-/*** IWineD3DResource methods ***/
-#define IWineD3DVolume_GetDevice(p,a)             (p)->lpVtbl->GetDevice(p,a)
-#define IWineD3DVolume_SetPrivateData(p,a,b,c,d)  (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IWineD3DVolume_GetPrivateData(p,a,b,c)    (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IWineD3DVolume_FreePrivateData(p,a)       (p)->lpVtbl->FreePrivateData(p,a)
-#define IWineD3DVolume_SetPriority(p,a)           (p)->lpVtbl->SetPriority(p,a)
-#define IWineD3DVolume_GetPriority(p)             (p)->lpVtbl->GetPriority(p)
-#define IWineD3DVolume_PreLoad(p)                 (p)->lpVtbl->PreLoad(p)
-#define IWineD3DVolume_UnLoad(p)                  (p)->lpVtbl->UnLoad(p)
-#define IWineD3DVolume_GetType(p)                 (p)->lpVtbl->GetType(p)
-/*** IWineD3DVolume methods ***/
-#define IWineD3DVolume_GetContainer(p,a,b)        (p)->lpVtbl->GetContainer(p,a,b)
-#define IWineD3DVolume_GetDesc(p,a)               (p)->lpVtbl->GetDesc(p,a)
-#define IWineD3DVolume_LockBox(p,a,b,c)           (p)->lpVtbl->LockBox(p,a,b,c)
-#define IWineD3DVolume_UnlockBox(p)               (p)->lpVtbl->UnlockBox(p)
-#define IWineD3DVolume_AddDirtyBox(p,a)           (p)->lpVtbl->AddDirtyBox(p,a)
-#define IWineD3DVolume_CleanDirtyBox(p)           (p)->lpVtbl->CleanDirtyBox(p)
-#define IWineD3DVolume_LoadTexture(p,a,b)         (p)->lpVtbl->LoadTexture(p,a,b)
-#define IWineD3DVolume_SetContainer(p,a)          (p)->lpVtbl->SetContainer(p,a)
-#endif
-
-/*****************************************************************************
- * IWineD3DVertexDeclaration interface
- */
-#define INTERFACE IWineD3DVertexDeclaration
-DECLARE_INTERFACE_(IWineD3DVertexDeclaration,IWineD3DBase)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IWineD3DBase methods ***/
-    STDMETHOD(GetParent)(THIS_ IUnknown **pParent) PURE;
-    /*** IWineD3DVertexDeclaration methods ***/
-    STDMETHOD(GetDevice)(THIS_ IWineD3DDevice **ppDevice) PURE;
-    STDMETHOD(GetDeclaration)(THIS_ WINED3DVERTEXELEMENT *elements, UINT *elements_count) PURE;
-    STDMETHOD(SetDeclaration)(THIS_ const WINED3DVERTEXELEMENT *elements, UINT element_count) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IWineD3DVertexDeclaration_QueryInterface(p,a,b)      (p)->lpVtbl->QueryInterface(p,a,b)
-#define IWineD3DVertexDeclaration_AddRef(p)                  (p)->lpVtbl->AddRef(p)
-#define IWineD3DVertexDeclaration_Release(p)                 (p)->lpVtbl->Release(p)
-/*** IWineD3DBase methods ***/
-#define IWineD3DVertexDeclaration_GetParent(p,a)             (p)->lpVtbl->GetParent(p,a)
-/*** IWineD3DVertexDeclaration methods ***/
-#define IWineD3DVertexDeclaration_GetDevice(p,a)             (p)->lpVtbl->GetDevice(p,a)
-#define IWineD3DVertexDeclaration_GetDeclaration(p,a,b)      (p)->lpVtbl->GetDeclaration(p,a,b)
-#define IWineD3DVertexDeclaration_SetDeclaration(p,a,b)      (p)->lpVtbl->SetDeclaration(p,a,b)
-#endif
-
-/*****************************************************************************
- * IWineD3DStateBlock interface 
- */
-#define INTERFACE IWineD3DStateBlock
-DECLARE_INTERFACE_(IWineD3DStateBlock,IWineD3DBase)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IWineD3DBase methods ***/
-    STDMETHOD(GetParent)(THIS_ IUnknown **pParent) PURE;
-    /*** IWineD3DStateBlock methods ***/
-    STDMETHOD(GetDevice)(THIS_ IWineD3DDevice **pDevice) PURE;
-    STDMETHOD(Capture)(THIS) PURE;
-    STDMETHOD(Apply)(THIS) PURE;
-    STDMETHOD(InitStartupStateBlock)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IWineD3DStateBlock_QueryInterface(p,a,b)                (p)->lpVtbl->QueryInterface(p,a,b)
-#define IWineD3DStateBlock_AddRef(p)                            (p)->lpVtbl->AddRef(p)
-#define IWineD3DStateBlock_Release(p)                           (p)->lpVtbl->Release(p)
-/*** IWineD3DBase methods ***/
-#define IWineD3DStateBlock_GetParent(p,a)                       (p)->lpVtbl->GetParent(p,a)
-/*** IWineD3DStateBlock methods ***/
-#define IWineD3DStateBlock_GetDevice(p,a)                       (p)->lpVtbl->GetDevice(p,a)
-#define IWineD3DStateBlock_Capture(p)                           (p)->lpVtbl->Capture(p)
-#define IWineD3DStateBlock_Apply(p)                             (p)->lpVtbl->Apply(p)
-#define IWineD3DStateBlock_InitStartupStateBlock(p)             (p)->lpVtbl->InitStartupStateBlock(p)
-#endif
-
-/*****************************************************************************
- * WineD3DQuery interface 
- */
-#define INTERFACE IWineD3DQuery
-DECLARE_INTERFACE_(IWineD3DQuery,IWineD3DBase)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IWineD3DBase methods ***/
-    STDMETHOD(GetParent)(THIS_ IUnknown **pParent) PURE;
-    /*** IWineD3DQuery methods ***/
-    STDMETHOD(GetDevice)(THIS_ IWineD3DDevice **ppDevice) PURE;
-    STDMETHOD(GetData)(THIS_  void *pData, DWORD dwSize, DWORD dwGetDataFlags) PURE;
-    STDMETHOD_(DWORD,GetDataSize)(THIS) PURE;
-    STDMETHOD_(WINED3DQUERYTYPE, GetType)(THIS) PURE;
-    STDMETHOD(Issue)(THIS_ DWORD dwIssueFlags) PURE;
-    
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IWineD3DQuery_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IWineD3DQuery_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IWineD3DQuery_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IWineD3DBase methods ***/
-#define IWineD3DQuery_GetParent(p,a)               (p)->lpVtbl->GetParent(p,a)
-/*** IWineD3DQuery methods ***/
-#define IWineD3DQuery_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IWineD3DQuery_GetData(p,a,b,c)             (p)->lpVtbl->GetData(p,a,b,c)
-#define IWineD3DQuery_GetDataSize(p)               (p)->lpVtbl->GetDataSize(p)
-#define IWineD3DQuery_GetType(p)                   (p)->lpVtbl->GetType(p)
-#define IWineD3DQuery_Issue(p,a)                   (p)->lpVtbl->Issue(p,a)
-
-#endif
-
-/*****************************************************************************
- * IWineD3DSwapChain interface
- * TODO: add gamma-ramp setting functions to make life easier
- * (There kinda missing from Microsofts DirectX!)
- */
-#define INTERFACE IWineD3DSwapChain
-DECLARE_INTERFACE_(IWineD3DSwapChain,IWineD3DBase)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IWineD3DBase methods ***/
-    STDMETHOD(GetParent)(THIS_ IUnknown **pParent) PURE;
-    /*** IDirect3DSwapChain9 methods ***/
-    STDMETHOD_(void, Destroy)(THIS_ D3DCB_DESTROYSURFACEFN pFn) PURE;
-    STDMETHOD(GetDevice)(THIS_ IWineD3DDevice **ppDevice) PURE;
-    STDMETHOD(Present)(THIS_ CONST RECT *pSourceRect, CONST RECT *pDestRect, HWND hDestWindowOverride, CONST RGNDATA *pDirtyRegion, DWORD dwFlags) PURE;
-    STDMETHOD(SetDestWindowOverride)(THIS_ HWND window);
-    STDMETHOD(GetFrontBufferData)(THIS_ IWineD3DSurface *pDestSurface) PURE;
-    STDMETHOD(GetBackBuffer)(THIS_ UINT iBackBuffer, WINED3DBACKBUFFER_TYPE Type, IWineD3DSurface **ppBackBuffer) PURE;
-    STDMETHOD(GetRasterStatus)(THIS_ WINED3DRASTER_STATUS *pRasterStatus) PURE;
-    STDMETHOD(GetDisplayMode)(THIS_ WINED3DDISPLAYMODE *pMode) PURE;
-    STDMETHOD(GetPresentParameters)(THIS_ WINED3DPRESENT_PARAMETERS *pPresentationParameters) PURE;
-    STDMETHOD(SetGammaRamp)(THIS_ DWORD Flags, const WINED3DGAMMARAMP *pRamp) PURE;
-    STDMETHOD(GetGammaRamp)(THIS_ WINED3DGAMMARAMP *pRamp) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IWineD3DSwapChain_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IWineD3DSwapChain_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IWineD3DSwapChain_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IWineD3DBase methods ***/
-#define IWineD3DSwapChain_GetParent(p,a)               (p)->lpVtbl->GetParent(p,a)
-/*** IWineD3DSwapChain methods ***/
-#define IWineD3DSwapChain_Destroy(p,a)                 (p)->lpVtbl->Destroy(p,a)
-#define IWineD3DSwapChain_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IWineD3DSwapChain_Present(p,a,b,c,d,e)         (p)->lpVtbl->Present(p,a,b,c,d,e)
-#define IWineD3DSwapChain_SetDestWindowOverride(p,a)   (p)->lpVtbl->SetDestWindowOverride(p,a)
-#define IWineD3DSwapChain_GetFrontBufferData(p,a)      (p)->lpVtbl->GetFrontBufferData(p,a)
-#define IWineD3DSwapChain_GetBackBuffer(p,a,b,c)       (p)->lpVtbl->GetBackBuffer(p,a,b,c)
-#define IWineD3DSwapChain_GetRasterStatus(p,a)         (p)->lpVtbl->GetRasterStatus(p,a)
-#define IWineD3DSwapChain_GetDisplayMode(p,a)          (p)->lpVtbl->GetDisplayMode(p,a)
-#define IWineD3DSwapChain_GetPresentParameters(p,a)    (p)->lpVtbl->GetPresentParameters(p,a)
-#define IWineD3DSwapChain_SetGammaRamp(p,a,b)          (p)->lpVtbl->SetGammaRamp(p,a,b)
-#define IWineD3DSwapChain_GetGammaRamp(p,a)            (p)->lpVtbl->GetGammaRamp(p,a)
-#endif
-
-/*****************************************************************************
- * IWineD3DBaseShader interface
- */
-#define INTERFACE IWineD3DBaseShader
-DECLARE_INTERFACE_(IWineD3DBaseShader,IWineD3DBase)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IWineD3DBase methods ***/
-    STDMETHOD(GetParent)(THIS_ IUnknown **pParent) PURE;
-    /*** IWineD3DBaseShader methods ***/
-    STDMETHOD(SetFunction)(THIS_ CONST DWORD *pFunction) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IWineD3DBaseShader_QueryInterface(p,a,b)     (p)->lpVtbl->QueryInterface(p,a,b)
-#define IWineD3DBaseShader_AddRef(p)                 (p)->lpVtbl->AddRef(p)
-#define IWineD3DBaseShader_Release(p)                (p)->lpVtbl->Release(p)
-/*** IWineD3DBase methods ***/
-#define IWineD3DBaseShader_GetParent(p,a)            (p)->lpVtbl->GetParent(p,a)
-/*** IWineD3DBaseShader methods ***/
-#define IWineD3DBaseShader_SetFunction(p,a)          (p)->lpVtbl->SetFunction(p,a)
-#endif
-
-/*****************************************************************************
- * IWineD3DVertexShader interface 
- */
-#define INTERFACE IWineD3DVertexShader
-DECLARE_INTERFACE_(IWineD3DVertexShader,IWineD3DBaseShader)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IWineD3DBase methods ***/
-    STDMETHOD(GetParent)(THIS_ IUnknown **pParent) PURE;
-    /*** IWineD3DBaseShader methods ***/
-    STDMETHOD(SetFunction)(THIS_ CONST DWORD *pFunction) PURE;
-    /*** IWineD3DVertexShader methods ***/
-    STDMETHOD(GetDevice)(THIS_ IWineD3DDevice** ppDevice) PURE;
-    STDMETHOD(GetFunction)(THIS_ VOID *pData, UINT *pSizeOfData) PURE;
-    STDMETHOD_(void, FakeSemantics)(THIS_ struct IWineD3DVertexDeclaration *vertex_declaration) PURE;
-    STDMETHOD(SetLocalConstantsF)(THIS_ UINT start_idx, const float *src_data, UINT count) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IWineD3DVertexShader_QueryInterface(p,a,b)          (p)->lpVtbl->QueryInterface(p,a,b)
-#define IWineD3DVertexShader_AddRef(p)                      (p)->lpVtbl->AddRef(p)
-#define IWineD3DVertexShader_Release(p)                     (p)->lpVtbl->Release(p)
-/*** IWineD3DBase methods ***/
-#define IWineD3DVertexShader_GetParent(p,a)                 (p)->lpVtbl->GetParent(p,a)
-/*** IWineD3DBaseShader methods ***/
-#define IWineD3DVertexShader_SetFunction(p,a)               (p)->lpVtbl->SetFunction(p,a)
-/*** IWineD3DVertexShader methods ***/
-#define IWineD3DVertexShader_GetDevice(p,a)                 (p)->lpVtbl->GetDevice(p,a)
-#define IWineD3DVertexShader_GetFunction(p,a,b)             (p)->lpVtbl->GetFunction(p,a,b)
-#define IWineD3DVertexShader_FakeSemantics(p,a)             (p)->lpVtbl->FakeSemantics(p,a)
-#define IWineD3DVertexShader_SetLocalConstantsF(p,a,b,c)    (p)->lpVtbl->SetLocalConstantsF(p,a,b,c)
-#endif
-
-/*****************************************************************************
- * IWineD3DPixelShader interface
- */
-#define INTERFACE IWineD3DPixelShader
-DECLARE_INTERFACE_(IWineD3DPixelShader,IWineD3DBaseShader)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IWineD3DBase methods ***/
-    STDMETHOD(GetParent)(THIS_ IUnknown **pParent) PURE;
-    /*** IWineD3DBaseShader methods ***/
-    STDMETHOD(SetFunction)(THIS_ CONST DWORD *pFunction) PURE;
-    /*** IWineD3DPixelShader methods ***/
-    STDMETHOD(UpdateSamplers)(THIS) PURE;
-    STDMETHOD(GetDevice)(THIS_ IWineD3DDevice** ppDevice) PURE;
-    STDMETHOD(GetFunction)(THIS_ VOID* pData, UINT* pSizeOfData) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IWineD3DPixelShader_QueryInterface(p,a,b)      (p)->lpVtbl->QueryInterface(p,a,b)
-#define IWineD3DPixelShader_AddRef(p)                  (p)->lpVtbl->AddRef(p)
-#define IWineD3DPixelShader_Release(p)                 (p)->lpVtbl->Release(p)
-/*** IWineD3DBase methods ***/
-#define IWineD3DPixelShader_GetParent(p,a)             (p)->lpVtbl->GetParent(p,a)
-/*** IWineD3DBaseShader methods ***/
-#define IWineD3DPixelShader_SetFunction(p,a)           (p)->lpVtbl->SetFunction(p,a)
-/*** IWineD3DPixelShader methods ***/
-#define IWineD3DPixelShader_UpdateSamplers(p)          (p)->lpVtbl->UpdateSamplers(p)
-#define IWineD3DPixelShader_GetDevice(p,a)             (p)->lpVtbl->GetDevice(p,a)
-#define IWineD3DPixelShader_GetFunction(p,a,b)         (p)->lpVtbl->GetFunction(p,a,b)
-#endif
-
-/*****************************************************************************
- * IWineD3DPalette interface
- */
-#define INTERFACE IWineD3DPalette
-DECLARE_INTERFACE_(IWineD3DPalette,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IWineD3DPalette methods ***/
-    STDMETHOD_(HRESULT,GetParent)(THIS_ IUnknown **Parent);
-    STDMETHOD_(HRESULT,GetEntries)(THIS_ DWORD Flags, DWORD Start, DWORD Count, PALETTEENTRY *PalEnt);
-    STDMETHOD_(HRESULT,GetCaps)(THIS_ DWORD *Caps);
-    STDMETHOD_(HRESULT,SetEntries)(THIS_ DWORD Flags, DWORD Start, DWORD Count, PALETTEENTRY *PalEnt);
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IWineD3DPalette_QueryInterface(p,a,b)      (p)->lpVtbl->QueryInterface(p,a,b)
-#define IWineD3DPalette_AddRef(p)                  (p)->lpVtbl->AddRef(p)
-#define IWineD3DPalette_Release(p)                 (p)->lpVtbl->Release(p)
-/*** IWineD3DPalette methods ***/
-#define IWineD3DPalette_GetParent(p, a)            (p)->lpVtbl->GetParent(p, a)
-#define IWineD3DPalette_GetEntries(p, a, b, c, d)  (p)->lpVtbl->GetEntries(p, a, b, c, d)
-#define IWineD3DPalette_GetCaps(p, a)              (p)->lpVtbl->GetCaps(p, a)
-#define IWineD3DPalette_SetEntries(p, a, b, c, d)  (p)->lpVtbl->SetEntries(p, a, b, c, d)
-#endif
-
-/*****************************************************************************
- * IDirectDrawClipper interface
- */
-#define INTERFACE IWineD3DClipper
-DECLARE_INTERFACE_(IWineD3DClipper,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** WineD3DBase methods ***/
-    STDMETHOD_(HRESULT,GetParent)(THIS_ IUnknown **parent) PURE;
-    /*** IWineD3DClipper methods ***/
-    STDMETHOD(GetClipList)(THIS_ LPRECT lpRect, LPRGNDATA lpClipList, LPDWORD lpdwSize) PURE;
-    STDMETHOD(GetHWnd)(THIS_ HWND *lphWnd) PURE;
-    STDMETHOD(IsClipListChanged)(THIS_ BOOL *lpbChanged) PURE;
-    STDMETHOD(SetClipList)(THIS_ LPRGNDATA lpClipList, DWORD dwFlags) PURE;
-    STDMETHOD(SetHWnd)(THIS_ DWORD dwFlags, HWND hWnd) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IWineD3DClipper_QueryInterface(p,a,b)      (p)->lpVtbl->QueryInterface(p,a,b)
-#define IWineD3DClipper_AddRef(p)                  (p)->lpVtbl->AddRef(p)
-#define IWineD3DClipper_Release(p)                 (p)->lpVtbl->Release(p)
-/*** IWineD3DClipper methods ***/
-#define IWineD3DClipper_GetClipList(p,a,b,c)       (p)->lpVtbl->GetClipList(p,a,b,c)
-#define IWineD3DClipper_GetHWnd(p,a)               (p)->lpVtbl->GetHWnd(p,a)
-#define IWineD3DClipper_IsClipListChanged(p,a)     (p)->lpVtbl->IsClipListChanged(p,a)
-#define IWineD3DClipper_SetClipList(p,a,b)         (p)->lpVtbl->SetClipList(p,a,b)
-#define IWineD3DClipper_SetHWnd(p,a,b)             (p)->lpVtbl->SetHWnd(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IWineD3DClipper_QueryInterface(p,a,b)      (p)->QueryInterface(a,b)
-#define IWineD3DClipper_AddRef(p)                  (p)->AddRef()
-#define IWineD3DClipper_Release(p)                 (p)->Release()
-/*** IWineD3DClipper methods ***/
-#define IWineD3DClipper_GetClipList(p,a,b,c)       (p)->GetClipList(a,b,c)
-#define IWineD3DClipper_GetHWnd(p,a)               (p)->GetHWnd(a)
-#define IWineD3DClipper_IsClipListChanged(p,a)     (p)->IsClipListChanged(a)
-#define IWineD3DClipper_SetClipList(p,a,b)         (p)->SetClipList(a,b)
-#define IWineD3DClipper_SetHWnd(p,a,b)             (p)->SetHWnd(a,b)
-#endif
-
-/* DDraw Clippers are not created from DDraw objects, they have a separate creation function */
-IWineD3DClipper* WINAPI WineDirect3DCreateClipper(IUnknown *parent);
-
-#if 0 /* FIXME: During porting in from d3d8 - the following will be used */
-extern HRESULT WINAPI IDirect3DVertexShaderImpl_ParseProgram(IDirect3DVertexShaderImpl* This, CONST DWORD* pFunction);
-/* internal Interfaces */
-extern HRESULT WINAPI IDirect3DVertexShaderImpl_ExecuteSW(IDirect3DVertexShaderImpl* This, VSHADERINPUTDATA* input, VSHADEROUTPUTDATA* output);
-#endif /* Temporary #if 0 */
-
-
-#endif
diff --git a/include/wine/wined3d_types.h b/include/wine/wined3d_types.h
deleted file mode 100644
index a4060dc..0000000
--- a/include/wine/wined3d_types.h
+++ /dev/null
@@ -1,1480 +0,0 @@
-/*
- * Direct3D wine types include file
- *
- * Copyright 2002-2003 The wine-d3d team
- * Copyright 2002-2003 Jason Edmeades
- *                     Raphael Junqueira
- * Copyright 2005 Oliver Stieber
- * Copyright 2006 Stefan Dösinger
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
-
-#ifndef __WINE_WINED3D_TYPES_H
-#define __WINE_WINED3D_TYPES_H
-
-typedef DWORD WINED3DCOLOR;
-
-typedef enum _WINED3DLIGHTTYPE {
-  WINED3DLIGHT_POINT          = 1,
-  WINED3DLIGHT_SPOT           = 2,
-  WINED3DLIGHT_DIRECTIONAL    = 3,
-  WINED3DLIGHT_PARALLELPOINT  = 4, /* D3D7 */
-  WINED3DLIGHT_GLSPOT         = 5, /* D3D7 */
-  WINED3DLIGHT_FORCE_DWORD    = 0x7fffffff
-} WINED3DLIGHTTYPE;
-
-typedef enum _WINED3DPRIMITIVETYPE {
-    WINED3DPT_POINTLIST       = 1,
-    WINED3DPT_LINELIST        = 2,
-    WINED3DPT_LINESTRIP       = 3,
-    WINED3DPT_TRIANGLELIST    = 4,
-    WINED3DPT_TRIANGLESTRIP   = 5,
-    WINED3DPT_TRIANGLEFAN     = 6,
-
-    WINED3DPT_FORCE_DWORD     = 0x7fffffff
-} WINED3DPRIMITIVETYPE;
-
-typedef struct _WINED3DCOLORVALUE {
-    float r;
-    float g;
-    float b;
-    float a;
-} WINED3DCOLORVALUE;
-
-typedef struct _WINED3DVECTOR {
-    float x;
-    float y;
-    float z;
-} WINED3DVECTOR;
-
-typedef struct _WINED3DMATRIX {
-    union {
-        struct {
-            float        _11, _12, _13, _14;
-            float        _21, _22, _23, _24;
-            float        _31, _32, _33, _34;
-            float        _41, _42, _43, _44;
-        } DUMMYSTRUCTNAME;
-        float m[4][4];
-    } DUMMYUNIONNAME;
-} WINED3DMATRIX;
-
-typedef struct _WINED3DRECT {
-    LONG x1;
-    LONG y1;
-    LONG x2;
-    LONG y2;
-} WINED3DRECT;
-
-typedef struct _WINED3DLIGHT {
-    WINED3DLIGHTTYPE    Type;
-    WINED3DCOLORVALUE   Diffuse;
-    WINED3DCOLORVALUE   Specular;
-    WINED3DCOLORVALUE   Ambient;
-    WINED3DVECTOR       Position;
-    WINED3DVECTOR       Direction;
-    float               Range;
-    float               Falloff;
-    float               Attenuation0;
-    float               Attenuation1;
-    float               Attenuation2;
-    float               Theta;
-    float               Phi;
-} WINED3DLIGHT;
-
-typedef struct _WINED3DMATERIAL {
-    WINED3DCOLORVALUE   Diffuse;
-    WINED3DCOLORVALUE   Ambient;
-    WINED3DCOLORVALUE   Specular;
-    WINED3DCOLORVALUE   Emissive;
-    float           Power;
-} WINED3DMATERIAL;
-
-typedef struct _WINED3DVIEWPORT {
-    DWORD       X;
-    DWORD       Y;
-    DWORD       Width;
-    DWORD       Height;
-    float       MinZ;
-    float       MaxZ;
-} WINED3DVIEWPORT;
-
-typedef struct _WINED3DGAMMARAMP {
-    WORD                red  [256];
-    WORD                green[256];
-    WORD                blue [256];
-} WINED3DGAMMARAMP;
-
-typedef struct _WINED3DLINEPATTERN {
-    WORD    wRepeatFactor;
-    WORD    wLinePattern;
-} WINED3DLINEPATTERN;
-
-/*****************************************************************************
- * WineD3D Structures to be used when d3d8 and d3d9 are incompatible
- */
-
-
-typedef enum _WINED3DDEVTYPE {
-    WINED3DDEVTYPE_HAL         = 1,
-    WINED3DDEVTYPE_REF         = 2,
-    WINED3DDEVTYPE_SW          = 3,
-    WINED3DDEVTYPE_NULLREF     = 4,
-
-    WINED3DDEVTYPE_FORCE_DWORD = 0xffffffff
-} WINED3DDEVTYPE;
-
-typedef enum _WINED3DDEGREETYPE {
-    WINED3DDEGREE_LINEAR      = 1,
-    WINED3DDEGREE_QUADRATIC   = 2,
-    WINED3DDEGREE_CUBIC       = 3,
-    WINED3DDEGREE_QUINTIC     = 5,
-    
-    WINED3DDEGREE_FORCE_DWORD   = 0x7fffffff
-} WINED3DDEGREETYPE;
-
-#define WINEMAKEFOURCC(ch0, ch1, ch2, ch3)  \
-    ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) |  \
-    ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 ))
-
-typedef enum _WINED3DFORMAT {
-    WINED3DFMT_UNKNOWN              =   0,
-
-    WINED3DFMT_R8G8B8               =  20,
-    WINED3DFMT_A8R8G8B8             =  21,
-    WINED3DFMT_X8R8G8B8             =  22,
-    WINED3DFMT_R5G6B5               =  23,
-    WINED3DFMT_X1R5G5B5             =  24,
-    WINED3DFMT_A1R5G5B5             =  25,
-    WINED3DFMT_A4R4G4B4             =  26,
-    WINED3DFMT_R3G3B2               =  27,
-    WINED3DFMT_A8                   =  28,
-    WINED3DFMT_A8R3G3B2             =  29,
-    WINED3DFMT_X4R4G4B4             =  30,
-    WINED3DFMT_A2B10G10R10          =  31,
-    WINED3DFMT_A8B8G8R8             =  32,
-    WINED3DFMT_X8B8G8R8             =  33,
-    WINED3DFMT_G16R16               =  34,
-    WINED3DFMT_A2R10G10B10          =  35,
-    WINED3DFMT_A16B16G16R16         =  36,
-  
-
-    WINED3DFMT_A8P8                 =  40,
-    WINED3DFMT_P8                   =  41,
-
-    WINED3DFMT_L8                   =  50,
-    WINED3DFMT_A8L8                 =  51,
-    WINED3DFMT_A4L4                 =  52,
-
-    WINED3DFMT_V8U8                 =  60,
-    WINED3DFMT_L6V5U5               =  61,
-    WINED3DFMT_X8L8V8U8             =  62,
-    WINED3DFMT_Q8W8V8U8             =  63,
-    WINED3DFMT_V16U16               =  64,
-    WINED3DFMT_W11V11U10            =  65,
-    WINED3DFMT_A2W10V10U10          =  67,
-
-    WINED3DFMT_UYVY                 =  WINEMAKEFOURCC('U', 'Y', 'V', 'Y'),
-    WINED3DFMT_YUY2                 =  WINEMAKEFOURCC('Y', 'U', 'Y', '2'),
-    WINED3DFMT_YV12                 =  WINEMAKEFOURCC('Y', 'V', '1', '2'),
-    WINED3DFMT_DXT1                 =  WINEMAKEFOURCC('D', 'X', 'T', '1'),
-    WINED3DFMT_DXT2                 =  WINEMAKEFOURCC('D', 'X', 'T', '2'),
-    WINED3DFMT_DXT3                 =  WINEMAKEFOURCC('D', 'X', 'T', '3'),
-    WINED3DFMT_DXT4                 =  WINEMAKEFOURCC('D', 'X', 'T', '4'),
-    WINED3DFMT_DXT5                 =  WINEMAKEFOURCC('D', 'X', 'T', '5'),
-    WINED3DFMT_MULTI2_ARGB8         =  WINEMAKEFOURCC('M', 'E', 'T', '1'),
-    WINED3DFMT_G8R8_G8B8            =  WINEMAKEFOURCC('G', 'R', 'G', 'B'),
-    WINED3DFMT_R8G8_B8G8            =  WINEMAKEFOURCC('R', 'G', 'B', 'G'),
-
-    WINED3DFMT_D16_LOCKABLE         =  70,
-    WINED3DFMT_D32                  =  71,
-    WINED3DFMT_D15S1                =  73,
-    WINED3DFMT_D24S8                =  75,
-    WINED3DFMT_D24X8                =  77,
-    WINED3DFMT_D24X4S4              =  79,
-    WINED3DFMT_D16                  =  80,
-    WINED3DFMT_L16                  =  81,
-    WINED3DFMT_D32F_LOCKABLE        =  82,
-    WINED3DFMT_D24FS8               =  83,
-
-    WINED3DFMT_VERTEXDATA           = 100,
-    WINED3DFMT_INDEX16              = 101,
-    WINED3DFMT_INDEX32              = 102,
-    WINED3DFMT_Q16W16V16U16         = 110,
-    /* Floating point formats */
-    WINED3DFMT_R16F                 = 111,
-    WINED3DFMT_G16R16F              = 112,
-    WINED3DFMT_A16B16G16R16F        = 113,
-    
-    /* IEEE formats */
-    WINED3DFMT_R32F                 = 114,
-    WINED3DFMT_G32R32F              = 115,
-    WINED3DFMT_A32B32G32R32F        = 116,
-    
-    WINED3DFMT_CxV8U8               = 117,
-
-    /* Vendor specific formats */
-    WINED3DFMT_ATI2N                =  WINEMAKEFOURCC('A', 'T', 'I', '2'),
-    WINED3DFMT_NVHU                 =  WINEMAKEFOURCC('N', 'V', 'H', 'U'),
-    WINED3DFMT_NVHS                 =  WINEMAKEFOURCC('N', 'V', 'H', 'S'),
-
-    WINED3DFMT_FORCE_DWORD          = 0xFFFFFFFF
-} WINED3DFORMAT;
-
-typedef enum _WINED3DRENDERSTATETYPE {
-    WINED3DRS_TEXTUREHANDLE             =   1, /* d3d7 */
-    WINED3DRS_ANTIALIAS                 =   2, /* d3d7 */
-    WINED3DRS_TEXTUREADDRESS            =   3, /* d3d7 */
-    WINED3DRS_TEXTUREPERSPECTIVE        =   4, /* d3d7 */
-    WINED3DRS_WRAPU                     =   5, /* d3d7 */
-    WINED3DRS_WRAPV                     =   6, /* d3d7 */
-    WINED3DRS_ZENABLE                   =   7,
-    WINED3DRS_FILLMODE                  =   8,
-    WINED3DRS_SHADEMODE                 =   9,
-    WINED3DRS_LINEPATTERN               =  10, /* d3d7, d3d8 */
-    WINED3DRS_MONOENABLE                =  11, /* d3d7 */
-    WINED3DRS_ROP2                      =  12, /* d3d7 */
-    WINED3DRS_PLANEMASK                 =  13, /* d3d7 */
-    WINED3DRS_ZWRITEENABLE              =  14,
-    WINED3DRS_ALPHATESTENABLE           =  15,
-    WINED3DRS_LASTPIXEL                 =  16,
-    WINED3DRS_TEXTUREMAG                =  17, /* d3d7 */
-    WINED3DRS_TEXTUREMIN                =  18, /* d3d7 */
-    WINED3DRS_SRCBLEND                  =  19,
-    WINED3DRS_DESTBLEND                 =  20,
-    WINED3DRS_TEXTUREMAPBLEND           =  21, /* d3d7 */
-    WINED3DRS_CULLMODE                  =  22,
-    WINED3DRS_ZFUNC                     =  23,
-    WINED3DRS_ALPHAREF                  =  24,
-    WINED3DRS_ALPHAFUNC                 =  25,
-    WINED3DRS_DITHERENABLE              =  26,
-    WINED3DRS_ALPHABLENDENABLE          =  27,
-    WINED3DRS_FOGENABLE                 =  28,
-    WINED3DRS_SPECULARENABLE            =  29,
-    WINED3DRS_ZVISIBLE                  =  30, /* d3d7, d3d8 */
-    WINED3DRS_SUBPIXEL                  =  31, /* d3d7 */
-    WINED3DRS_SUBPIXELX                 =  32, /* d3d7 */
-    WINED3DRS_STIPPLEDALPHA             =  33, /* d3d7 */
-    WINED3DRS_FOGCOLOR                  =  34,
-    WINED3DRS_FOGTABLEMODE              =  35,
-    WINED3DRS_FOGSTART                  =  36,
-    WINED3DRS_FOGEND                    =  37,
-    WINED3DRS_FOGDENSITY                =  38,
-    WINED3DRS_STIPPLEENABLE             =  39, /* d3d7 */
-    WINED3DRS_EDGEANTIALIAS             =  40, /* d3d7, d3d8 */
-    WINED3DRS_COLORKEYENABLE            =  41, /* d3d7 */
-    WINED3DRS_BORDERCOLOR               =  43, /* d3d7 */
-    WINED3DRS_TEXTUREADDRESSU           =  44, /* d3d7 */
-    WINED3DRS_TEXTUREADDRESSV           =  45, /* d3d7 */
-    WINED3DRS_MIPMAPLODBIAS             =  46, /* d3d7 */
-    WINED3DRS_ZBIAS                     =  47, /* d3d7, d3d8 */
-    WINED3DRS_RANGEFOGENABLE            =  48,
-    WINED3DRS_ANISOTROPY                =  49, /* d3d7 */
-    WINED3DRS_FLUSHBATCH                =  50, /* d3d7 */
-    WINED3DRS_TRANSLUCENTSORTINDEPENDENT = 51, /* d3d7 */
-    WINED3DRS_STENCILENABLE             =  52,
-    WINED3DRS_STENCILFAIL               =  53,
-    WINED3DRS_STENCILZFAIL              =  54,
-    WINED3DRS_STENCILPASS               =  55,
-    WINED3DRS_STENCILFUNC               =  56,
-    WINED3DRS_STENCILREF                =  57,
-    WINED3DRS_STENCILMASK               =  58,
-    WINED3DRS_STENCILWRITEMASK          =  59,
-    WINED3DRS_TEXTUREFACTOR             =  60,
-
-    WINED3DRS_STIPPLEPATTERN00          = 64,
-    WINED3DRS_STIPPLEPATTERN01          = 65,
-    WINED3DRS_STIPPLEPATTERN02          = 66,
-    WINED3DRS_STIPPLEPATTERN03          = 67,
-    WINED3DRS_STIPPLEPATTERN04          = 68,
-    WINED3DRS_STIPPLEPATTERN05          = 69,
-    WINED3DRS_STIPPLEPATTERN06          = 70,
-    WINED3DRS_STIPPLEPATTERN07          = 71,
-    WINED3DRS_STIPPLEPATTERN08          = 72,
-    WINED3DRS_STIPPLEPATTERN09          = 73,
-    WINED3DRS_STIPPLEPATTERN10          = 74,
-    WINED3DRS_STIPPLEPATTERN11          = 75,
-    WINED3DRS_STIPPLEPATTERN12          = 76,
-    WINED3DRS_STIPPLEPATTERN13          = 77,
-    WINED3DRS_STIPPLEPATTERN14          = 78,
-    WINED3DRS_STIPPLEPATTERN15          = 79,
-    WINED3DRS_STIPPLEPATTERN16          = 80,
-    WINED3DRS_STIPPLEPATTERN17          = 81,
-    WINED3DRS_STIPPLEPATTERN18          = 82,
-    WINED3DRS_STIPPLEPATTERN19          = 83,
-    WINED3DRS_STIPPLEPATTERN20          = 84,
-    WINED3DRS_STIPPLEPATTERN21          = 85,
-    WINED3DRS_STIPPLEPATTERN22          = 86,
-    WINED3DRS_STIPPLEPATTERN23          = 87,
-    WINED3DRS_STIPPLEPATTERN24          = 88,
-    WINED3DRS_STIPPLEPATTERN25          = 89,
-    WINED3DRS_STIPPLEPATTERN26          = 90,
-    WINED3DRS_STIPPLEPATTERN27          = 91,
-    WINED3DRS_STIPPLEPATTERN28          = 92,
-    WINED3DRS_STIPPLEPATTERN29          = 93,
-    WINED3DRS_STIPPLEPATTERN30          = 94,
-    WINED3DRS_STIPPLEPATTERN31          = 95,
-
-    WINED3DRS_WRAP0                     = 128,
-    WINED3DRS_WRAP1                     = 129,
-    WINED3DRS_WRAP2                     = 130,
-    WINED3DRS_WRAP3                     = 131,
-    WINED3DRS_WRAP4                     = 132,
-    WINED3DRS_WRAP5                     = 133,
-    WINED3DRS_WRAP6                     = 134,
-    WINED3DRS_WRAP7                     = 135,
-    WINED3DRS_CLIPPING                  = 136,
-    WINED3DRS_LIGHTING                  = 137,
-    WINED3DRS_EXTENTS                   = 138, /* d3d7 */
-    WINED3DRS_AMBIENT                   = 139,
-    WINED3DRS_FOGVERTEXMODE             = 140,
-    WINED3DRS_COLORVERTEX               = 141,
-    WINED3DRS_LOCALVIEWER               = 142,
-    WINED3DRS_NORMALIZENORMALS          = 143,
-    WINED3DRS_COLORKEYBLENDENABLE       = 144, /* d3d7 */
-    WINED3DRS_DIFFUSEMATERIALSOURCE     = 145,
-    WINED3DRS_SPECULARMATERIALSOURCE    = 146,
-    WINED3DRS_AMBIENTMATERIALSOURCE     = 147,
-    WINED3DRS_EMISSIVEMATERIALSOURCE    = 148,
-    WINED3DRS_VERTEXBLEND               = 151,
-    WINED3DRS_CLIPPLANEENABLE           = 152,  
-    WINED3DRS_SOFTWAREVERTEXPROCESSING  = 153, /* d3d8 */
-    WINED3DRS_POINTSIZE                 = 154,
-    WINED3DRS_POINTSIZE_MIN             = 155,
-    WINED3DRS_POINTSPRITEENABLE         = 156,
-    WINED3DRS_POINTSCALEENABLE          = 157,
-    WINED3DRS_POINTSCALE_A              = 158,
-    WINED3DRS_POINTSCALE_B              = 159,
-    WINED3DRS_POINTSCALE_C              = 160,
-    WINED3DRS_MULTISAMPLEANTIALIAS      = 161,
-    WINED3DRS_MULTISAMPLEMASK           = 162,
-    WINED3DRS_PATCHEDGESTYLE            = 163,
-    WINED3DRS_PATCHSEGMENTS             = 164, /* d3d8 */
-    WINED3DRS_DEBUGMONITORTOKEN         = 165,
-    WINED3DRS_POINTSIZE_MAX             = 166,
-    WINED3DRS_INDEXEDVERTEXBLENDENABLE  = 167,
-    WINED3DRS_COLORWRITEENABLE          = 168,
-    WINED3DRS_TWEENFACTOR               = 170,
-    WINED3DRS_BLENDOP                   = 171,
-    WINED3DRS_POSITIONORDER             = 172,
-    WINED3DRS_NORMALORDER               = 173,
-    WINED3DRS_POSITIONDEGREE            = 172,
-    WINED3DRS_NORMALDEGREE              = 173,
-    WINED3DRS_SCISSORTESTENABLE         = 174,
-    WINED3DRS_SLOPESCALEDEPTHBIAS       = 175,
-    WINED3DRS_ANTIALIASEDLINEENABLE     = 176,
-    WINED3DRS_MINTESSELLATIONLEVEL      = 178,
-    WINED3DRS_MAXTESSELLATIONLEVEL      = 179,
-    WINED3DRS_ADAPTIVETESS_X            = 180,
-    WINED3DRS_ADAPTIVETESS_Y            = 181,
-    WINED3DRS_ADAPTIVETESS_Z            = 182,
-    WINED3DRS_ADAPTIVETESS_W            = 183,
-    WINED3DRS_ENABLEADAPTIVETESSELLATION= 184,
-    WINED3DRS_TWOSIDEDSTENCILMODE       = 185,
-    WINED3DRS_CCW_STENCILFAIL           = 186,
-    WINED3DRS_CCW_STENCILZFAIL          = 187,
-    WINED3DRS_CCW_STENCILPASS           = 188,
-    WINED3DRS_CCW_STENCILFUNC           = 189,
-    WINED3DRS_COLORWRITEENABLE1         = 190,
-    WINED3DRS_COLORWRITEENABLE2         = 191,
-    WINED3DRS_COLORWRITEENABLE3         = 192,
-    WINED3DRS_BLENDFACTOR               = 193,
-    WINED3DRS_SRGBWRITEENABLE           = 194,
-    WINED3DRS_DEPTHBIAS                 = 195,
-    WINED3DRS_WRAP8                     = 198,
-    WINED3DRS_WRAP9                     = 199,
-    WINED3DRS_WRAP10                    = 200,
-    WINED3DRS_WRAP11                    = 201,
-    WINED3DRS_WRAP12                    = 202,
-    WINED3DRS_WRAP13                    = 203,
-    WINED3DRS_WRAP14                    = 204,
-    WINED3DRS_WRAP15                    = 205,
-    WINED3DRS_SEPARATEALPHABLENDENABLE  = 206,
-    WINED3DRS_SRCBLENDALPHA             = 207,
-    WINED3DRS_DESTBLENDALPHA            = 208,
-    WINED3DRS_BLENDOPALPHA              = 209,
-
-    WINED3DRS_FORCE_DWORD               = 0x7fffffff
-} WINED3DRENDERSTATETYPE;
-
-#define WINEHIGHEST_RENDER_STATE   WINED3DRS_BLENDOPALPHA
-        /* Highest WINED3DRS_ value   */
-
-#define WINED3DCOLORWRITEENABLE_RED   (1<<0)
-#define WINED3DCOLORWRITEENABLE_GREEN (1<<1)
-#define WINED3DCOLORWRITEENABLE_BLUE  (1<<2)
-#define WINED3DCOLORWRITEENABLE_ALPHA (1<<3)
-
-typedef enum _WINED3DBLEND {
-    WINED3DBLEND_ZERO               =  1,
-    WINED3DBLEND_ONE                =  2,
-    WINED3DBLEND_SRCCOLOR           =  3,
-    WINED3DBLEND_INVSRCCOLOR        =  4,
-    WINED3DBLEND_SRCALPHA           =  5,
-    WINED3DBLEND_INVSRCALPHA        =  6,
-    WINED3DBLEND_DESTALPHA          =  7,
-    WINED3DBLEND_INVDESTALPHA       =  8,
-    WINED3DBLEND_DESTCOLOR          =  9,
-    WINED3DBLEND_INVDESTCOLOR       = 10,
-    WINED3DBLEND_SRCALPHASAT        = 11,
-    WINED3DBLEND_BOTHSRCALPHA       = 12,
-    WINED3DBLEND_BOTHINVSRCALPHA    = 13,
-    WINED3DBLEND_BLENDFACTOR        = 14,
-    WINED3DBLEND_INVBLENDFACTOR     = 15,
-    WINED3DBLEND_FORCE_DWORD        = 0x7fffffff
-} WINED3DBLEND;
-
-typedef enum _WINED3DBLENDOP {
-    WINED3DBLENDOP_ADD              = 1,
-    WINED3DBLENDOP_SUBTRACT         = 2,
-    WINED3DBLENDOP_REVSUBTRACT      = 3,
-    WINED3DBLENDOP_MIN              = 4,
-    WINED3DBLENDOP_MAX              = 5,
-
-    WINED3DBLENDOP_FORCE_DWORD      = 0x7fffffff
-} WINED3DBLENDOP;
-
-typedef enum _WINED3DVERTEXBLENDFLAGS {
-    WINED3DVBF_DISABLE  =   0,
-    WINED3DVBF_1WEIGHTS =   1,
-    WINED3DVBF_2WEIGHTS =   2,
-    WINED3DVBF_3WEIGHTS =   3,
-    WINED3DVBF_TWEENING = 255,
-    WINED3DVBF_0WEIGHTS = 256
-} WINED3DVERTEXBLENDFLAGS;
-
-typedef enum _WINED3DCMPFUNC {
-    WINED3DCMP_NEVER                = 1,
-    WINED3DCMP_LESS                 = 2,
-    WINED3DCMP_EQUAL                = 3,
-    WINED3DCMP_LESSEQUAL            = 4,
-    WINED3DCMP_GREATER              = 5,
-    WINED3DCMP_NOTEQUAL             = 6,
-    WINED3DCMP_GREATEREQUAL         = 7,
-    WINED3DCMP_ALWAYS               = 8,
-
-    WINED3DCMP_FORCE_DWORD          = 0x7fffffff
-} WINED3DCMPFUNC;
-
-typedef enum _WINED3DZBUFFERTYPE {
-    WINED3DZB_FALSE                 = 0,
-    WINED3DZB_TRUE                  = 1,
-    WINED3DZB_USEW                  = 2,
-
-    WINED3DZB_FORCE_DWORD           = 0x7fffffff
-} WINED3DZBUFFERTYPE;
-
-typedef enum _WINED3DFOGMODE {
-    WINED3DFOG_NONE                 = 0,
-    WINED3DFOG_EXP                  = 1,
-    WINED3DFOG_EXP2                 = 2,
-    WINED3DFOG_LINEAR               = 3,
-
-    WINED3DFOG_FORCE_DWORD          = 0x7fffffff
-} WINED3DFOGMODE;
-
-typedef enum _WINED3DSHADEMODE {
-    WINED3DSHADE_FLAT               = 1,
-    WINED3DSHADE_GOURAUD            = 2,
-    WINED3DSHADE_PHONG              = 3,
-
-    WINED3DSHADE_FORCE_DWORD        = 0x7fffffff
-} WINED3DSHADEMODE;
-
-typedef enum _WINED3DFILLMODE {
-    WINED3DFILL_POINT               = 1,
-    WINED3DFILL_WIREFRAME           = 2,
-    WINED3DFILL_SOLID               = 3,
-
-    WINED3DFILL_FORCE_DWORD         = 0x7fffffff
-} WINED3DFILLMODE;
-
-typedef enum _WINED3DCULL {
-    WINED3DCULL_NONE                = 1,
-    WINED3DCULL_CW                  = 2,
-    WINED3DCULL_CCW                 = 3,
-
-    WINED3DCULL_FORCE_DWORD         = 0x7fffffff
-} WINED3DCULL;
-
-typedef enum _WINED3DSTENCILOP {
-    WINED3DSTENCILOP_KEEP           = 1,
-    WINED3DSTENCILOP_ZERO           = 2,
-    WINED3DSTENCILOP_REPLACE        = 3,
-    WINED3DSTENCILOP_INCRSAT        = 4,
-    WINED3DSTENCILOP_DECRSAT        = 5,
-    WINED3DSTENCILOP_INVERT         = 6,
-    WINED3DSTENCILOP_INCR           = 7,
-    WINED3DSTENCILOP_DECR           = 8,
-
-    WINED3DSTENCILOP_FORCE_DWORD    = 0x7fffffff
-} WINED3DSTENCILOP;
-
-typedef enum _WINED3DMATERIALCOLORSOURCE {
-    WINED3DMCS_MATERIAL         = 0,
-    WINED3DMCS_COLOR1           = 1,
-    WINED3DMCS_COLOR2           = 2,
-
-    WINED3DMCS_FORCE_DWORD      = 0x7fffffff
-} WINED3DMATERIALCOLORSOURCE;
-
-typedef enum _WINED3DPATCHEDGESTYLE {
-   WINED3DPATCHEDGE_DISCRETE    = 0,
-   WINED3DPATCHEDGE_CONTINUOUS  = 1,
-
-   WINED3DPATCHEDGE_FORCE_DWORD = 0x7fffffff,
-} WINED3DPATCHEDGESTYLE;
-
-typedef struct _WINED3DDISPLAYMODE {
-    UINT            Width;
-    UINT            Height;
-    UINT            RefreshRate;
-    WINED3DFORMAT   Format;
-} WINED3DDISPLAYMODE;
-
-typedef enum _WINED3DBACKBUFFER_TYPE {
-    WINED3DBACKBUFFER_TYPE_MONO         = 0,
-    WINED3DBACKBUFFER_TYPE_LEFT         = 1,
-    WINED3DBACKBUFFER_TYPE_RIGHT        = 2,
-
-    WINED3DBACKBUFFER_TYPE_FORCE_DWORD  = 0x7fffffff
-} WINED3DBACKBUFFER_TYPE;
-
-#define WINED3DADAPTER_DEFAULT          0
-#define WINED3DENUM_NO_WHQL_LEVEL       2
-#define WINED3DPRESENT_BACK_BUFFER_MAX  3
-
-typedef enum _WINED3DSWAPEFFECT {
-    WINED3DSWAPEFFECT_DISCARD         = 1,
-    WINED3DSWAPEFFECT_FLIP            = 2,
-    WINED3DSWAPEFFECT_COPY            = 3,
-    WINED3DSWAPEFFECT_COPY_VSYNC      = 4,
-    WINED3DSWAPEFFECT_FORCE_DWORD     = 0xFFFFFFFF
-} WINED3DSWAPEFFECT;
-
-typedef enum _WINED3DSAMPLERSTATETYPE {
-    WINED3DSAMP_ADDRESSU       = 1,
-    WINED3DSAMP_ADDRESSV       = 2,
-    WINED3DSAMP_ADDRESSW       = 3,
-    WINED3DSAMP_BORDERCOLOR    = 4,
-    WINED3DSAMP_MAGFILTER      = 5,
-    WINED3DSAMP_MINFILTER      = 6,
-    WINED3DSAMP_MIPFILTER      = 7,
-    WINED3DSAMP_MIPMAPLODBIAS  = 8,
-    WINED3DSAMP_MAXMIPLEVEL    = 9,
-    WINED3DSAMP_MAXANISOTROPY  = 10,
-    WINED3DSAMP_SRGBTEXTURE    = 11,
-    WINED3DSAMP_ELEMENTINDEX   = 12,
-    WINED3DSAMP_DMAPOFFSET     = 13,
-
-    WINED3DSAMP_FORCE_DWORD   = 0x7fffffff,
-} WINED3DSAMPLERSTATETYPE;
-#define WINED3D_HIGHEST_SAMPLER_STATE WINED3DSAMP_DMAPOFFSET
-
-typedef enum _WINED3DMULTISAMPLE_TYPE {
-    WINED3DMULTISAMPLE_NONE          =  0,
-    WINED3DMULTISAMPLE_NONMASKABLE   =  1,
-    WINED3DMULTISAMPLE_2_SAMPLES     =  2,
-    WINED3DMULTISAMPLE_3_SAMPLES     =  3,
-    WINED3DMULTISAMPLE_4_SAMPLES     =  4,
-    WINED3DMULTISAMPLE_5_SAMPLES     =  5,
-    WINED3DMULTISAMPLE_6_SAMPLES     =  6,
-    WINED3DMULTISAMPLE_7_SAMPLES     =  7,
-    WINED3DMULTISAMPLE_8_SAMPLES     =  8,
-    WINED3DMULTISAMPLE_9_SAMPLES     =  9,
-    WINED3DMULTISAMPLE_10_SAMPLES    = 10,
-    WINED3DMULTISAMPLE_11_SAMPLES    = 11,
-    WINED3DMULTISAMPLE_12_SAMPLES    = 12,
-    WINED3DMULTISAMPLE_13_SAMPLES    = 13,
-    WINED3DMULTISAMPLE_14_SAMPLES    = 14,
-    WINED3DMULTISAMPLE_15_SAMPLES    = 15,
-    WINED3DMULTISAMPLE_16_SAMPLES    = 16,
-
-    WINED3DMULTISAMPLE_FORCE_DWORD   = 0xffffffff
-} WINED3DMULTISAMPLE_TYPE;
-
-typedef enum _WINED3DTEXTURESTAGESTATETYPE {
-    WINED3DTSS_COLOROP               =  1,
-    WINED3DTSS_COLORARG1             =  2,
-    WINED3DTSS_COLORARG2             =  3,
-    WINED3DTSS_ALPHAOP               =  4,
-    WINED3DTSS_ALPHAARG1             =  5,
-    WINED3DTSS_ALPHAARG2             =  6,
-    WINED3DTSS_BUMPENVMAT00          =  7,
-    WINED3DTSS_BUMPENVMAT01          =  8,
-    WINED3DTSS_BUMPENVMAT10          =  9,
-    WINED3DTSS_BUMPENVMAT11          = 10,
-    WINED3DTSS_TEXCOORDINDEX         = 11,
-    WINED3DTSS_ADDRESS               = 12,
-    WINED3DTSS_ADDRESSU              = 13,
-    WINED3DTSS_ADDRESSV              = 14,
-    WINED3DTSS_BORDERCOLOR           = 15,
-    WINED3DTSS_MAGFILTER             = 16,
-    WINED3DTSS_MINFILTER             = 17,
-    WINED3DTSS_MIPFILTER             = 18,
-    WINED3DTSS_MIPMAPLODBIAS         = 19,
-    WINED3DTSS_MAXMIPLEVEL           = 20,
-    WINED3DTSS_MAXANISOTROPY         = 21,
-    WINED3DTSS_BUMPENVLSCALE         = 22,
-    WINED3DTSS_BUMPENVLOFFSET        = 23,
-    WINED3DTSS_TEXTURETRANSFORMFLAGS = 24,
-    WINED3DTSS_ADDRESSW              = 25,
-    WINED3DTSS_COLORARG0             = 26,
-    WINED3DTSS_ALPHAARG0             = 27,
-    WINED3DTSS_RESULTARG             = 28,
-    WINED3DTSS_CONSTANT              = 32,
-
-    WINED3DTSS_FORCE_DWORD           = 0x7fffffff
-} WINED3DTEXTURESTAGESTATETYPE;
-
-#define WINED3DTSS_TCI_PASSTHRU                       0x00000
-#define WINED3DTSS_TCI_CAMERASPACENORMAL              0x10000
-#define WINED3DTSS_TCI_CAMERASPACEPOSITION            0x20000
-#define WINED3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR    0x30000
-#define WINED3DTSS_TCI_SPHEREMAP                      0x40000
-
-#define WINED3D_HIGHEST_TEXTURE_STATE WINED3DTSS_CONSTANT
-
-typedef enum _WINED3DTEXTURETRANSFORMFLAGS {
-    WINED3DTTFF_DISABLE         =   0,
-    WINED3DTTFF_COUNT1          =   1,
-    WINED3DTTFF_COUNT2          =   2,
-    WINED3DTTFF_COUNT3          =   3,
-    WINED3DTTFF_COUNT4          =   4,
-    WINED3DTTFF_PROJECTED       = 256,
-
-    WINED3DTTFF_FORCE_DWORD     = 0x7fffffff
-} WINED3DTEXTURETRANSFORMFLAGS;
-
-typedef enum _WINED3DTEXTUREOP {
-    WINED3DTOP_DISABLE                   =  1,
-    WINED3DTOP_SELECTARG1                =  2,
-    WINED3DTOP_SELECTARG2                =  3,
-    WINED3DTOP_MODULATE                  =  4,
-    WINED3DTOP_MODULATE2X                =  5,
-    WINED3DTOP_MODULATE4X                =  6,
-    WINED3DTOP_ADD                       =  7,
-    WINED3DTOP_ADDSIGNED                 =  8,
-    WINED3DTOP_ADDSIGNED2X               =  9,
-    WINED3DTOP_SUBTRACT                  = 10,
-    WINED3DTOP_ADDSMOOTH                 = 11,
-    WINED3DTOP_BLENDDIFFUSEALPHA         = 12,
-    WINED3DTOP_BLENDTEXTUREALPHA         = 13,
-    WINED3DTOP_BLENDFACTORALPHA          = 14,
-    WINED3DTOP_BLENDTEXTUREALPHAPM       = 15,
-    WINED3DTOP_BLENDCURRENTALPHA         = 16,
-    WINED3DTOP_PREMODULATE               = 17,
-    WINED3DTOP_MODULATEALPHA_ADDCOLOR    = 18,
-    WINED3DTOP_MODULATECOLOR_ADDALPHA    = 19,
-    WINED3DTOP_MODULATEINVALPHA_ADDCOLOR = 20,
-    WINED3DTOP_MODULATEINVCOLOR_ADDALPHA = 21,
-    WINED3DTOP_BUMPENVMAP                = 22,
-    WINED3DTOP_BUMPENVMAPLUMINANCE       = 23,
-    WINED3DTOP_DOTPRODUCT3               = 24,
-    WINED3DTOP_MULTIPLYADD               = 25,
-    WINED3DTOP_LERP                      = 26,
-
-    WINED3DTOP_FORCE_DWORD               = 0x7fffffff,
-} WINED3DTEXTUREOP;
-
-#define WINED3DTA_SELECTMASK        0x0000000f
-#define WINED3DTA_DIFFUSE           0x00000000
-#define WINED3DTA_CURRENT           0x00000001
-#define WINED3DTA_TEXTURE           0x00000002
-#define WINED3DTA_TFACTOR           0x00000003
-#define WINED3DTA_SPECULAR          0x00000004
-#define WINED3DTA_TEMP              0x00000005
-#define WINED3DTA_CONSTANT          0x00000006
-#define WINED3DTA_COMPLEMENT        0x00000010
-#define WINED3DTA_ALPHAREPLICATE    0x00000020
-
-typedef enum _WINED3DTEXTUREADDRESS {
-    WINED3DTADDRESS_WRAP            = 1,
-    WINED3DTADDRESS_MIRROR          = 2,
-    WINED3DTADDRESS_CLAMP           = 3,
-    WINED3DTADDRESS_BORDER          = 4,
-    WINED3DTADDRESS_MIRRORONCE      = 5,
-
-    WINED3DTADDRESS_FORCE_DWORD     = 0x7fffffff
-} WINED3DTEXTUREADDRESS;
-
-typedef enum _WINED3DTRANSFORMSTATETYPE {
-    WINED3DTS_VIEW            =  2,
-    WINED3DTS_PROJECTION      =  3,
-    WINED3DTS_TEXTURE0        = 16,
-    WINED3DTS_TEXTURE1        = 17,
-    WINED3DTS_TEXTURE2        = 18,
-    WINED3DTS_TEXTURE3        = 19,
-    WINED3DTS_TEXTURE4        = 20,
-    WINED3DTS_TEXTURE5        = 21,
-    WINED3DTS_TEXTURE6        = 22,
-    WINED3DTS_TEXTURE7        = 23,
-
-    WINED3DTS_FORCE_DWORD     = 0x7fffffff
-} WINED3DTRANSFORMSTATETYPE;
-
-#define WINED3DTS_WORLD  WINED3DTS_WORLDMATRIX(0)
-#define WINED3DTS_WORLD1 WINED3DTS_WORLDMATRIX(1)
-#define WINED3DTS_WORLD2 WINED3DTS_WORLDMATRIX(2)
-#define WINED3DTS_WORLD3 WINED3DTS_WORLDMATRIX(3)
-#define WINED3DTS_WORLDMATRIX(index) (WINED3DTRANSFORMSTATETYPE)(index + 256)
-
-typedef enum _WINED3DBASISTYPE {
-   WINED3DBASIS_BEZIER        = 0,
-   WINED3DBASIS_BSPLINE       = 1,
-   WINED3DBASIS_INTERPOLATE   = 2,
-
-   WINED3DBASIS_FORCE_DWORD   = 0x7fffffff
-} WINED3DBASISTYPE;
-
-typedef enum _WINED3DCUBEMAP_FACES {
-    WINED3DCUBEMAP_FACE_POSITIVE_X     = 0,
-    WINED3DCUBEMAP_FACE_NEGATIVE_X     = 1,
-    WINED3DCUBEMAP_FACE_POSITIVE_Y     = 2,
-    WINED3DCUBEMAP_FACE_NEGATIVE_Y     = 3,
-    WINED3DCUBEMAP_FACE_POSITIVE_Z     = 4,
-    WINED3DCUBEMAP_FACE_NEGATIVE_Z     = 5,
-
-    WINED3DCUBEMAP_FACE_FORCE_DWORD    = 0xffffffff
-} WINED3DCUBEMAP_FACES;
-
-typedef enum _WINED3DTEXTUREFILTERTYPE {
-    WINED3DTEXF_NONE            = 0,
-    WINED3DTEXF_POINT           = 1,
-    WINED3DTEXF_LINEAR          = 2,
-    WINED3DTEXF_ANISOTROPIC     = 3,
-    WINED3DTEXF_FLATCUBIC       = 4,
-    WINED3DTEXF_GAUSSIANCUBIC   = 5,
-    WINED3DTEXF_PYRAMIDALQUAD   = 6,
-    WINED3DTEXF_GAUSSIANQUAD    = 7,
-    WINED3DTEXF_FORCE_DWORD     = 0x7fffffff
-} WINED3DTEXTUREFILTERTYPE;
-
-typedef struct _WINEDD3DRECTPATCH_INFO {
-    UINT                StartVertexOffsetWidth;
-    UINT                StartVertexOffsetHeight;
-    UINT                Width;
-    UINT                Height;
-    UINT                Stride;
-    WINED3DBASISTYPE    Basis;
-    WINED3DDEGREETYPE   Degree;
-} WINED3DRECTPATCH_INFO;
-
-typedef struct _WINED3DTRIPATCH_INFO {
-    UINT                StartVertexOffset;
-    UINT                NumVertices;
-    WINED3DBASISTYPE    Basis;
-    WINED3DDEGREETYPE   Degree;
-} WINED3DTRIPATCH_INFO;
-
-
-typedef struct _WINED3DADAPTER_IDENTIFIER {
-    char           *Driver;
-    char           *Description;
-    char           *DeviceName;
-    LARGE_INTEGER  *DriverVersion; 
-    DWORD          *VendorId;
-    DWORD          *DeviceId;
-    DWORD          *SubSysId;
-    DWORD          *Revision;
-    GUID           *DeviceIdentifier;
-    DWORD          *WHQLLevel;
-} WINED3DADAPTER_IDENTIFIER;
-
-typedef struct _WINED3DPRESENT_PARAMETERS {
-    UINT                    BackBufferWidth;
-    UINT                    BackBufferHeight;
-    WINED3DFORMAT           BackBufferFormat;
-    UINT                    BackBufferCount;
-    WINED3DMULTISAMPLE_TYPE MultiSampleType;
-    DWORD                   MultiSampleQuality;
-    WINED3DSWAPEFFECT       SwapEffect;
-    HWND                    hDeviceWindow;
-    BOOL                    Windowed;
-    BOOL                    EnableAutoDepthStencil;
-    WINED3DFORMAT           AutoDepthStencilFormat;
-    DWORD                   Flags;
-    UINT                    FullScreen_RefreshRateInHz;
-    UINT                    PresentationInterval;
-    BOOL                    AutoRestoreDisplayMode;
-} WINED3DPRESENT_PARAMETERS;
-
-#define WINED3DPRESENTFLAG_LOCKABLE_BACKBUFFER  0x00000001
-#define WINED3DPRESENTFLAG_DISCARD_DEPTHSTENCIL 0x00000002
-#define WINED3DPRESENTFLAG_DEVICECLIP           0x00000004
-#define WINED3DPRESENTFLAG_VIDEO                0x00000010
-#define WINED3DPRESENTFLAG_NOAUTOROTATE         0x00000020
-#define WINED3DPRESENTFLAG_UNPRUNEDMODE         0x00000040
-
-typedef enum _WINED3DRESOURCETYPE {
-    WINED3DRTYPE_SURFACE                =  1,
-    WINED3DRTYPE_VOLUME                 =  2,
-    WINED3DRTYPE_TEXTURE                =  3,
-    WINED3DRTYPE_VOLUMETEXTURE          =  4,
-    WINED3DRTYPE_CUBETEXTURE            =  5,
-    WINED3DRTYPE_VERTEXBUFFER           =  6,
-    WINED3DRTYPE_INDEXBUFFER            =  7,
-
-    WINED3DRTYPE_FORCE_DWORD            = 0x7fffffff
-} WINED3DRESOURCETYPE;
-
-#define WINED3DRTYPECOUNT (WINED3DRTYPE_INDEXBUFFER+1)
-
-typedef enum _WINED3DPOOL {
-    WINED3DPOOL_DEFAULT                 = 0,
-    WINED3DPOOL_MANAGED                 = 1,
-    WINED3DPOOL_SYSTEMMEM               = 2,
-    WINED3DPOOL_SCRATCH                 = 3,
-
-    WINED3DPOOL_FORCE_DWORD             = 0x7fffffff
-} WINED3DPOOL;
-
-typedef struct _WINED3DSURFACE_DESC
-{
-    WINED3DFORMAT           *Format;
-    WINED3DRESOURCETYPE     *Type;
-    DWORD                   *Usage;
-    WINED3DPOOL             *Pool;
-    UINT                    *Size;
-
-    WINED3DMULTISAMPLE_TYPE *MultiSampleType;
-    DWORD                   *MultiSampleQuality;
-    UINT                    *Width;
-    UINT                    *Height;
-} WINED3DSURFACE_DESC;
-
-typedef struct _WINED3DVOLUME_DESC
-{
-    WINED3DFORMAT       *Format;
-    WINED3DRESOURCETYPE *Type;
-    DWORD               *Usage;
-    WINED3DPOOL         *Pool;
-    UINT                *Size;
-
-    UINT                *Width;
-    UINT                *Height;
-    UINT                *Depth;
-} WINED3DVOLUME_DESC;
-
-typedef struct _WINED3DCLIPSTATUS {
-   DWORD ClipUnion;
-   DWORD ClipIntersection;
-} WINED3DCLIPSTATUS;
-
-
-typedef struct _WINED3DVERTEXELEMENT {
-  WORD    Stream;
-  WORD    Offset;
-  BYTE    Type;
-  BYTE    Method;
-  BYTE    Usage;
-  BYTE    UsageIndex;
-  int     Reg; /* DirectX 8 */
-} WINED3DVERTEXELEMENT, *LPWINED3DVERTEXELEMENT;
-
-
-typedef enum _WINED3DQUERYTYPE {
-    WINED3DQUERYTYPE_VCACHE             = 4,
-    WINED3DQUERYTYPE_RESOURCEMANAGER    = 5,
-    WINED3DQUERYTYPE_VERTEXSTATS        = 6,
-    WINED3DQUERYTYPE_EVENT              = 8,
-    WINED3DQUERYTYPE_OCCLUSION          = 9,
-    WINED3DQUERYTYPE_TIMESTAMP          = 10,
-    WINED3DQUERYTYPE_TIMESTAMPDISJOINT  = 11,
-    WINED3DQUERYTYPE_TIMESTAMPFREQ      = 12,
-    WINED3DQUERYTYPE_PIPELINETIMINGS    = 13,
-    WINED3DQUERYTYPE_INTERFACETIMINGS   = 14,
-    WINED3DQUERYTYPE_VERTEXTIMINGS      = 15,
-    WINED3DQUERYTYPE_PIXELTIMINGS       = 16,
-    WINED3DQUERYTYPE_BANDWIDTHTIMINGS   = 17,
-    WINED3DQUERYTYPE_CACHEUTILIZATION   = 18
-} WINED3DQUERYTYPE;
-
-#define WINED3DISSUE_BEGIN   (1 << 1)
-#define WINED3DISSUE_END     (1 << 0)
-#define WINED3DGETDATA_FLUSH (1 << 0)
-
-typedef struct _WINED3DDEVICE_CREATION_PARAMETERS {
-    UINT           AdapterOrdinal;
-    WINED3DDEVTYPE DeviceType;
-    HWND           hFocusWindow;
-    DWORD          BehaviorFlags;
-} WINED3DDEVICE_CREATION_PARAMETERS;
-
-typedef struct _WINED3DDEVINFO_BANDWIDTHTIMINGS {
-    float         MaxBandwidthUtilized;
-    float         FrontEndUploadMemoryUtilizedPercent;
-    float         VertexRateUtilizedPercent;
-    float         TriangleSetupRateUtilizedPercent;
-    float         FillRateUtilizedPercent;
-} WINED3DDEVINFO_BANDWIDTHTIMINGS;
-
-typedef struct _WINED3DDEVINFO_CACHEUTILIZATION {
-    float         TextureCacheHitRate;
-    float         PostTransformVertexCacheHitRate;
-} WINED3DDEVINFO_CACHEUTILIZATION;
-
-typedef struct _WINED3DDEVINFO_INTERFACETIMINGS {
-    float         WaitingForGPUToUseApplicationResourceTimePercent;
-    float         WaitingForGPUToAcceptMoreCommandsTimePercent;
-    float         WaitingForGPUToStayWithinLatencyTimePercent;
-    float         WaitingForGPUExclusiveResourceTimePercent;
-    float         WaitingForGPUOtherTimePercent;
-} WINED3DDEVINFO_INTERFACETIMINGS;
-
-typedef struct _WINED3DDEVINFO_PIPELINETIMINGS {
-    float         VertexProcessingTimePercent;
-    float         PixelProcessingTimePercent;
-    float         OtherGPUProcessingTimePercent;
-    float         GPUIdleTimePercent;
-} WINED3DDEVINFO_PIPELINETIMINGS;
-
-typedef struct _WINED3DDEVINFO_STAGETIMINGS {
-    float         MemoryProcessingPercent;
-    float         ComputationProcessingPercent;
-} WINED3DDEVINFO_STAGETIMINGS;
-
-typedef struct _WINED3DRASTER_STATUS {
-    BOOL            InVBlank;
-    UINT            ScanLine;
-} WINED3DRASTER_STATUS;
-
-
-typedef struct WINED3DRESOURCESTATS {
-    BOOL                bThrashing;
-    DWORD               ApproxBytesDownloaded;
-    DWORD               NumEvicts;
-    DWORD               NumVidCreates;
-    DWORD               LastPri;
-    DWORD               NumUsed;
-    DWORD               NumUsedInVidMem;
-    DWORD               WorkingSet;
-    DWORD               WorkingSetBytes;
-    DWORD               TotalManaged;
-    DWORD               TotalBytes;
-} WINED3DRESOURCESTATS;
-
-typedef struct _WINED3DDEVINFO_RESOURCEMANAGER {
-    WINED3DRESOURCESTATS stats[WINED3DRTYPECOUNT];
-} WINED3DDEVINFO_RESOURCEMANAGER;
-
-typedef struct _WINED3DDEVINFO_VERTEXSTATS {
-    DWORD NumRenderedTriangles;
-    DWORD NumExtraClippingTriangles;
-} WINED3DDEVINFO_VERTEXSTATS;
-
-typedef struct _WINED3DLOCKED_RECT {
-    INT                 Pitch;
-    void*               pBits;
-} WINED3DLOCKED_RECT;
-
-typedef struct _WINED3DLOCKED_BOX {
-    INT                 RowPitch;
-    INT                 SlicePitch;
-    void*               pBits;
-} WINED3DLOCKED_BOX;
-
-
-typedef struct _WINED3DBOX {
-    UINT                Left;
-    UINT                Top;
-    UINT                Right;
-    UINT                Bottom;
-    UINT                Front;
-    UINT                Back;
-} WINED3DBOX;
-
-/*Vertex cache optimization hints.*/
-typedef struct WINED3DDEVINFO_VCACHE {
-    /*Must be a 4 char code FOURCC (e.g. CACH)*/
-    DWORD         Pattern; 
-    /*0 to get the longest  strips, 1 vertex cache*/
-    DWORD         OptMethod; 
-     /*Cache size to use (only valid if OptMethod==1) */
-    DWORD         CacheSize;
-    /*internal for deciding when to restart strips, non user modifyable (only valid if OptMethod==1)*/
-    DWORD         MagicNumber; 
-} WINED3DDEVINFO_VCACHE;
-
-typedef struct _WINED3DVERTEXBUFFER_DESC {
-    WINED3DFORMAT           Format;
-    WINED3DRESOURCETYPE     Type;
-    DWORD                   Usage;
-    WINED3DPOOL             Pool;
-    UINT                    Size;
-    DWORD                   FVF;
-} WINED3DVERTEXBUFFER_DESC;
-
-typedef struct _WINED3DINDEXBUFFER_DESC {
-    WINED3DFORMAT           Format;
-    WINED3DRESOURCETYPE     Type;
-    DWORD                   Usage;
-    WINED3DPOOL             Pool;
-    UINT                    Size;
-} WINED3DINDEXBUFFER_DESC;
-
-typedef enum _WINED3DSTATEBLOCKTYPE {
-    WINED3DSBT_INIT          = 0,
-    WINED3DSBT_ALL           = 1,
-    WINED3DSBT_PIXELSTATE    = 2,
-    WINED3DSBT_VERTEXSTATE   = 3,
-    WINED3DSBT_RECORDED      = 4,       /* WineD3D private */
-
-    WINED3DSBT_FORCE_DWORD   = 0xffffffff
-} WINED3DSTATEBLOCKTYPE;
-
-typedef struct glDescriptor {
-    UINT          textureName;
-    int           level;
-    int           target;
-    int/*GLenum*/ glFormat;
-    int/*GLenum*/ glFormatInternal;
-    int/*GLenum*/ glType;
-} glDescriptor;
-
-#define WINED3DDP_MAXTEXCOORD 8
-
-typedef enum _WINED3DDECLMETHOD {
-    WINED3DDECLMETHOD_DEFAULT          = 0,
-    WINED3DDECLMETHOD_PARTIALU         = 1,
-    WINED3DDECLMETHOD_PARTIALV         = 2,
-    WINED3DDECLMETHOD_CROSSUV          = 3,
-    WINED3DDECLMETHOD_UV               = 4,
-    WINED3DDECLMETHOD_LOOKUP           = 5,
-    WINED3DDECLMETHOD_LOOKUPPRESAMPLED = 6
-} WINED3DDECLMETHOD;
-
-typedef enum _WINED3DDECLTYPE {
-  WINED3DDECLTYPE_FLOAT1    =  0,
-  WINED3DDECLTYPE_FLOAT2    =  1,
-  WINED3DDECLTYPE_FLOAT3    =  2,
-  WINED3DDECLTYPE_FLOAT4    =  3,
-  WINED3DDECLTYPE_D3DCOLOR  =  4,
-  WINED3DDECLTYPE_UBYTE4    =  5,
-  WINED3DDECLTYPE_SHORT2    =  6,
-  WINED3DDECLTYPE_SHORT4    =  7,
-  /* VS 2.0 */
-  WINED3DDECLTYPE_UBYTE4N   =  8,
-  WINED3DDECLTYPE_SHORT2N   =  9,
-  WINED3DDECLTYPE_SHORT4N   = 10,
-  WINED3DDECLTYPE_USHORT2N  = 11,
-  WINED3DDECLTYPE_USHORT4N  = 12,
-  WINED3DDECLTYPE_UDEC3     = 13,
-  WINED3DDECLTYPE_DEC3N     = 14,
-  WINED3DDECLTYPE_FLOAT16_2 = 15,
-  WINED3DDECLTYPE_FLOAT16_4 = 16,
-  WINED3DDECLTYPE_UNUSED    = 17,
-} WINED3DDECLTYPE;
-
-#define WINED3DDECL_END() {0xFF,0,WINED3DDECLTYPE_UNUSED,0,0,0,-1}
-
-typedef struct WineDirect3DStridedData {
-    BYTE     *lpData;        /* Pointer to start of data                */
-    DWORD     dwStride;      /* Stride between occurrences of this data */
-    DWORD     dwType;        /* Type (as in D3DVSDT_TYPE)               */
-    int       VBO;           /* Vertex buffer object this data is in    */
-    UINT      streamNo;      /* D3D stream number                       */
-} WineDirect3DStridedData;
-
-typedef struct WineDirect3DVertexStridedData {
-    /* IMPORTANT:
-     *
-     * This structure can be accessed in two ways: Named access, and array
-     * access. Please note that named access is only valid with the fixed
-     * function vertex pipeline, and the arrays are only valid with the
-     * programmable vertex pipeline(vertex shaders)
-     */
-    union {
-        struct {
-
-             /* Do not add or reorder fields here,
-              * so this can be indexed as an array */
-             WineDirect3DStridedData  position;
-             WineDirect3DStridedData  blendWeights;
-             WineDirect3DStridedData  blendMatrixIndices;
-             WineDirect3DStridedData  normal;
-             WineDirect3DStridedData  pSize;
-             WineDirect3DStridedData  diffuse;
-             WineDirect3DStridedData  specular;
-             WineDirect3DStridedData  texCoords[WINED3DDP_MAXTEXCOORD];
-             WineDirect3DStridedData  position2; /* tween data */
-             WineDirect3DStridedData  normal2;   /* tween data */
-             WineDirect3DStridedData  tangent;
-             WineDirect3DStridedData  binormal;
-             WineDirect3DStridedData  tessFactor;
-             WineDirect3DStridedData  fog;
-             WineDirect3DStridedData  depth;
-             WineDirect3DStridedData  sample;
-
-             /* Add fields here */
-             BOOL position_transformed;
-
-        } s;
-        WineDirect3DStridedData input[16];  /* Indexed by constants in D3DVSDE_REGISTER */
-    } u;
-} WineDirect3DVertexStridedData;
-
-typedef enum {
-    WINED3DDECLUSAGE_POSITION     = 0,
-    WINED3DDECLUSAGE_BLENDWEIGHT  = 1,
-    WINED3DDECLUSAGE_BLENDINDICES = 2,
-    WINED3DDECLUSAGE_NORMAL       = 3,
-    WINED3DDECLUSAGE_PSIZE        = 4,
-    WINED3DDECLUSAGE_TEXCOORD     = 5,
-    WINED3DDECLUSAGE_TANGENT      = 6,
-    WINED3DDECLUSAGE_BINORMAL     = 7,
-    WINED3DDECLUSAGE_TESSFACTOR   = 8,
-    WINED3DDECLUSAGE_POSITIONT    = 9,
-    WINED3DDECLUSAGE_COLOR        = 10,
-    WINED3DDECLUSAGE_FOG          = 11,
-    WINED3DDECLUSAGE_DEPTH        = 12,
-    WINED3DDECLUSAGE_SAMPLE       = 13
-} WINED3DDECLUSAGE;
-
-#define WINED3DUSAGE_RENDERTARGET                     0x00000001L
-#define WINED3DUSAGE_DEPTHSTENCIL                     0x00000002L
-#define WINED3DUSAGE_WRITEONLY                        0x00000008L
-#define WINED3DUSAGE_SOFTWAREPROCESSING               0x00000010L
-#define WINED3DUSAGE_DONOTCLIP                        0x00000020L
-#define WINED3DUSAGE_POINTS                           0x00000040L
-#define WINED3DUSAGE_RTPATCHES                        0x00000080L
-#define WINED3DUSAGE_NPATCHES                         0x00000100L
-#define WINED3DUSAGE_DYNAMIC                          0x00000200L
-#define WINED3DUSAGE_AUTOGENMIPMAP                    0x00000400L 
-#define WINED3DUSAGE_DMAP                             0x00004000L
-#define WINED3DUSAGE_MASK                             0x00004FFFL
-#define WINED3DUSAGE_OVERLAY                          0x80000000L
-
-#define WINED3DUSAGE_QUERY_LEGACYBUMPMAP            0x00008000L
-#define WINED3DUSAGE_QUERY_FILTER                   0x00020000L
-#define WINED3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING 0x00080000L
-#define WINED3DUSAGE_QUERY_SRGBREAD                 0x00010000L
-#define WINED3DUSAGE_QUERY_SRGBWRITE                0x00040000L
-#define WINED3DUSAGE_QUERY_VERTEXTEXTURE            0x00100000L
-#define WINED3DUSAGE_QUERY_WRAPANDMIP               0x00200000L
-#define WINED3DUSAGE_QUERY_MASK                     0x003F8000L
-
-typedef enum _WINED3DSURFTYPE {
-    SURFACE_UNKNOWN    = 0,   /* Default / Unknown surface type */
-    SURFACE_OPENGL,           /* OpenGL surface: Renders using libGL, needed for 3D */
-    SURFACE_GDI,              /* User surface. No 3D, DirectDraw rendering with GDI */
-} WINED3DSURFTYPE;
-
-#define WINED3DLOCK_READONLY           0x0010
-#define WINED3DLOCK_NOSYSLOCK          0x0800
-#define WINED3DLOCK_NOOVERWRITE        0x1000
-#define WINED3DLOCK_DISCARD            0x2000
-#define WINED3DLOCK_DONOTWAIT          0x4000
-#define WINED3DLOCK_NO_DIRTY_UPDATE    0x8000
-
-#define WINED3DPRESENT_RATE_DEFAULT                  0x000000000
-
-#define WINED3DPRESENT_INTERVAL_DEFAULT              0x00000000
-#define WINED3DPRESENT_INTERVAL_ONE                  0x00000001
-#define WINED3DPRESENT_INTERVAL_TWO                  0x00000002
-#define WINED3DPRESENT_INTERVAL_THREE                0x00000004
-#define WINED3DPRESENT_INTERVAL_FOUR                 0x00000008
-#define WINED3DPRESENT_INTERVAL_IMMEDIATE            0x80000000
-
-#define WINED3DMAXUSERCLIPPLANES       32
-#define WINED3DCLIPPLANE0              (1 << 0)
-#define WINED3DCLIPPLANE1              (1 << 1)
-#define WINED3DCLIPPLANE2              (1 << 2)
-#define WINED3DCLIPPLANE3              (1 << 3)
-#define WINED3DCLIPPLANE4              (1 << 4)
-#define WINED3DCLIPPLANE5              (1 << 5)
-
-/* FVF (Flexible Vertex Format) codes */
-#define WINED3DFVF_RESERVED0           0x0001
-#define WINED3DFVF_POSITION_MASK       0x000E
-#define WINED3DFVF_XYZ                 0x0002
-#define WINED3DFVF_XYZRHW              0x0004
-#define WINED3DFVF_XYZB1               0x0006
-#define WINED3DFVF_XYZB2               0x0008
-#define WINED3DFVF_XYZB3               0x000a
-#define WINED3DFVF_XYZB4               0x000c
-#define WINED3DFVF_XYZB5               0x000e
-#define WINED3DFVF_XYZW                0x4002
-#define WINED3DFVF_NORMAL              0x0010
-#define WINED3DFVF_PSIZE               0x0020
-#define WINED3DFVF_DIFFUSE             0x0040
-#define WINED3DFVF_SPECULAR            0x0080
-#define WINED3DFVF_TEXCOUNT_MASK       0x0f00
-#define WINED3DFVF_TEXCOUNT_SHIFT           8
-#define WINED3DFVF_TEX0                0x0000
-#define WINED3DFVF_TEX1                0x0100
-#define WINED3DFVF_TEX2                0x0200
-#define WINED3DFVF_TEX3                0x0300
-#define WINED3DFVF_TEX4                0x0400
-#define WINED3DFVF_TEX5                0x0500
-#define WINED3DFVF_TEX6                0x0600
-#define WINED3DFVF_TEX7                0x0700
-#define WINED3DFVF_TEX8                0x0800
-#define WINED3DFVF_LASTBETA_UBYTE4     0x1000
-#define WINED3DFVF_LASTBETA_D3DCOLOR   0x8000
-#define WINED3DFVF_RESERVED2           0x6000
-
-#define WINED3DFVF_TEXTUREFORMAT1 3
-#define WINED3DFVF_TEXTUREFORMAT2 0
-#define WINED3DFVF_TEXTUREFORMAT3 1
-#define WINED3DFVF_TEXTUREFORMAT4 2
-#define WINED3DFVF_TEXCOORDSIZE1(CoordIndex) (WINED3DFVF_TEXTUREFORMAT1 << (CoordIndex*2 + 16))
-#define WINED3DFVF_TEXCOORDSIZE2(CoordIndex) (WINED3DFVF_TEXTUREFORMAT2)
-#define WINED3DFVF_TEXCOORDSIZE3(CoordIndex) (WINED3DFVF_TEXTUREFORMAT3 << (CoordIndex*2 + 16))
-#define WINED3DFVF_TEXCOORDSIZE4(CoordIndex) (WINED3DFVF_TEXTUREFORMAT4 << (CoordIndex*2 + 16))
-
-/* Clear flags */
-#define WINED3DCLEAR_TARGET   0x00000001
-#define WINED3DCLEAR_ZBUFFER  0x00000002
-#define WINED3DCLEAR_STENCIL  0x00000004
-
-/* Stream source flags */
-#define WINED3DSTREAMSOURCE_INDEXEDDATA  (1 << 30)
-#define WINED3DSTREAMSOURCE_INSTANCEDATA (2 << 30)
-
-/* SetPrivateData flags */
-#define WINED3DSPD_IUNKNOWN 0x00000001
-
-/* IWineD3D::CreateDevice behaviour flags */
-#define WINED3DCREATE_FPU_PRESERVE                  0x00000002
-#define WINED3DCREATE_PUREDEVICE                    0x00000010
-#define WINED3DCREATE_SOFTWARE_VERTEXPROCESSING     0x00000020
-#define WINED3DCREATE_HARDWARE_VERTEXPROCESSING     0x00000040
-#define WINED3DCREATE_MIXED_VERTEXPROCESSING        0x00000080
-#define WINED3DCREATE_DISABLE_DRIVER_MANAGEMENT     0x00000100
-#define WINED3DCREATE_ADAPTERGROUP_DEVICE           0x00000200
-
-/* VTF defines */
-#define WINED3DDMAPSAMPLER              0x100
-#define WINED3DVERTEXTEXTURESAMPLER0    (WINED3DDMAPSAMPLER + 1)
-#define WINED3DVERTEXTEXTURESAMPLER1    (WINED3DDMAPSAMPLER + 2)
-#define WINED3DVERTEXTEXTURESAMPLER2    (WINED3DDMAPSAMPLER + 3)
-#define WINED3DVERTEXTEXTURESAMPLER3    (WINED3DDMAPSAMPLER + 4)
-
-/* DirectDraw types */
-
-typedef struct _WINEDDCOLORKEY
-{
-    DWORD       dwColorSpaceLowValue;           /* low boundary of color space that is to
-                                                 * be treated as Color Key, inclusive
-                                                 */
-    DWORD       dwColorSpaceHighValue;          /* high boundary of color space that is
-                                                 * to be treated as Color Key, inclusive
-                                                 */
-} WINEDDCOLORKEY,*LPWINEDDCOLORKEY;
-
-typedef struct _WINEDDBLTFX
-{
-    DWORD       dwSize;                         /* size of structure */
-    DWORD       dwDDFX;                         /* FX operations */
-    DWORD       dwROP;                          /* Win32 raster operations */
-    DWORD       dwDDROP;                        /* Raster operations new for DirectDraw */
-    DWORD       dwRotationAngle;                /* Rotation angle for blt */
-    DWORD       dwZBufferOpCode;                /* ZBuffer compares */
-    DWORD       dwZBufferLow;                   /* Low limit of Z buffer */
-    DWORD       dwZBufferHigh;                  /* High limit of Z buffer */
-    DWORD       dwZBufferBaseDest;              /* Destination base value */
-    DWORD       dwZDestConstBitDepth;           /* Bit depth used to specify Z constant for destination */
-    union
-    {
-        DWORD   dwZDestConst;                   /* Constant to use as Z buffer for dest */
-        struct IWineD3DSurface *lpDDSZBufferDest;      /* Surface to use as Z buffer for dest */
-    } DUMMYUNIONNAME1;
-    DWORD       dwZSrcConstBitDepth;            /* Bit depth used to specify Z constant for source */
-    union
-    {
-        DWORD   dwZSrcConst;                    /* Constant to use as Z buffer for src */
-        struct IWineD3DSurface *lpDDSZBufferSrc;/* Surface to use as Z buffer for src */
-    } DUMMYUNIONNAME2;
-    DWORD       dwAlphaEdgeBlendBitDepth;       /* Bit depth used to specify constant for alpha edge blend */
-    DWORD       dwAlphaEdgeBlend;               /* Alpha for edge blending */
-    DWORD       dwReserved;
-    DWORD       dwAlphaDestConstBitDepth;       /* Bit depth used to specify alpha constant for destination */
-    union
-    {
-        DWORD   dwAlphaDestConst;               /* Constant to use as Alpha Channel */
-        struct IWineD3DSurface *lpDDSAlphaDest; /* Surface to use as Alpha Channel */
-    } DUMMYUNIONNAME3;
-    DWORD       dwAlphaSrcConstBitDepth;        /* Bit depth used to specify alpha constant for source */
-    union
-    {
-        DWORD   dwAlphaSrcConst;                /* Constant to use as Alpha Channel */
-        struct IWineD3DSurface *lpDDSAlphaSrc;  /* Surface to use as Alpha Channel */
-    } DUMMYUNIONNAME4;
-    union
-    {
-        DWORD   dwFillColor;                    /* color in RGB or Palettized */
-        DWORD   dwFillDepth;                    /* depth value for z-buffer */
-	DWORD   dwFillPixel;			/* pixel val for RGBA or RGBZ */
-        struct IWineD3DSurface *lpDDSPattern;   /* Surface to use as pattern */
-    } DUMMYUNIONNAME5;
-    WINEDDCOLORKEY  ddckDestColorkey;          /* DestColorkey override */
-    WINEDDCOLORKEY  ddckSrcColorkey;           /* SrcColorkey override */
-} WINEDDBLTFX,*LPWINEDDBLTFX;
-
-typedef struct _WINEDDOVERLAYFX
-{
-    DWORD       dwSize;                         /* size of structure */
-    DWORD       dwAlphaEdgeBlendBitDepth;       /* Bit depth used to specify constant for alpha edge blend */
-    DWORD       dwAlphaEdgeBlend;               /* Constant to use as alpha for edge blend */
-    DWORD       dwReserved;
-    DWORD       dwAlphaDestConstBitDepth;       /* Bit depth used to specify alpha constant for destination */
-    union
-    {
-        DWORD   dwAlphaDestConst;               /* Constant to use as alpha channel for dest */
-        struct IWineD3DSurface *lpDDSAlphaDest; /* Surface to use as alpha channel for dest */
-    } DUMMYUNIONNAME1;
-    DWORD       dwAlphaSrcConstBitDepth;        /* Bit depth used to specify alpha constant for source */
-    union
-    {
-        DWORD   dwAlphaSrcConst;                /* Constant to use as alpha channel for src */
-        struct IWineD3DSurface *lpDDSAlphaSrc;  /* Surface to use as alpha channel for src */
-    } DUMMYUNIONNAME2;
-    WINEDDCOLORKEY  dckDestColorkey;            /* DestColorkey override */
-    WINEDDCOLORKEY  dckSrcColorkey;             /* DestColorkey override */
-    DWORD       dwDDFX;                         /* Overlay FX */
-    DWORD       dwFlags;                        /* flags */
-} WINEDDOVERLAYFX;
-
-/* dwDDFX */
-/* arithmetic stretching along y axis */
-#define WINEDDBLTFX_ARITHSTRETCHY               0x00000001
-/* mirror on y axis */
-#define WINEDDBLTFX_MIRRORLEFTRIGHT             0x00000002
-/* mirror on x axis */
-#define WINEDDBLTFX_MIRRORUPDOWN                0x00000004
-/* do not tear */
-#define WINEDDBLTFX_NOTEARING                   0x00000008
-/* 180 degrees clockwise rotation */
-#define WINEDDBLTFX_ROTATE180                   0x00000010
-/* 270 degrees clockwise rotation */
-#define WINEDDBLTFX_ROTATE270                   0x00000020
-/* 90 degrees clockwise rotation */
-#define WINEDDBLTFX_ROTATE90                    0x00000040
-/* dwZBufferLow and dwZBufferHigh specify limits to the copied Z values */
-#define WINEDDBLTFX_ZBUFFERRANGE                0x00000080
-/* add dwZBufferBaseDest to every source z value before compare */
-#define WINEDDBLTFX_ZBUFFERBASEDEST             0x00000100
-
-/* dwFlags for Blt* */
-#define WINEDDBLT_ALPHADEST                     0x00000001
-#define WINEDDBLT_ALPHADESTCONSTOVERRIDE        0x00000002
-#define WINEDDBLT_ALPHADESTNEG                  0x00000004
-#define WINEDDBLT_ALPHADESTSURFACEOVERRIDE      0x00000008
-#define WINEDDBLT_ALPHAEDGEBLEND                0x00000010
-#define WINEDDBLT_ALPHASRC                      0x00000020
-#define WINEDDBLT_ALPHASRCCONSTOVERRIDE         0x00000040
-#define WINEDDBLT_ALPHASRCNEG                   0x00000080
-#define WINEDDBLT_ALPHASRCSURFACEOVERRIDE       0x00000100
-#define WINEDDBLT_ASYNC                         0x00000200
-#define WINEDDBLT_COLORFILL                     0x00000400
-#define WINEDDBLT_DDFX                          0x00000800
-#define WINEDDBLT_DDROPS                        0x00001000
-#define WINEDDBLT_KEYDEST                       0x00002000
-#define WINEDDBLT_KEYDESTOVERRIDE               0x00004000
-#define WINEDDBLT_KEYSRC                        0x00008000
-#define WINEDDBLT_KEYSRCOVERRIDE                0x00010000
-#define WINEDDBLT_ROP                           0x00020000
-#define WINEDDBLT_ROTATIONANGLE                 0x00040000
-#define WINEDDBLT_ZBUFFER                       0x00080000
-#define WINEDDBLT_ZBUFFERDESTCONSTOVERRIDE      0x00100000
-#define WINEDDBLT_ZBUFFERDESTOVERRIDE           0x00200000
-#define WINEDDBLT_ZBUFFERSRCCONSTOVERRIDE       0x00400000
-#define WINEDDBLT_ZBUFFERSRCOVERRIDE            0x00800000
-#define WINEDDBLT_WAIT                          0x01000000
-#define WINEDDBLT_DEPTHFILL                     0x02000000
-#define WINEDDBLT_DONOTWAIT                     0x08000000
-
-/* dwTrans for BltFast */
-#define WINEDDBLTFAST_NOCOLORKEY                0x00000000
-#define WINEDDBLTFAST_SRCCOLORKEY               0x00000001
-#define WINEDDBLTFAST_DESTCOLORKEY              0x00000002
-#define WINEDDBLTFAST_WAIT                      0x00000010
-#define WINEDDBLTFAST_DONOTWAIT                 0x00000020
-
-/* DDSURFACEDESC.dwFlags */
-#define WINEDDSD_CAPS                           0x00000001
-#define WINEDDSD_HEIGHT                         0x00000002
-#define WINEDDSD_WIDTH                          0x00000004
-#define WINEDDSD_PITCH                          0x00000008
-#define WINEDDSD_BACKBUFFERCOUNT                0x00000020
-#define WINEDDSD_ZBUFFERBITDEPTH                0x00000040
-#define WINEDDSD_ALPHABITDEPTH                  0x00000080
-#define WINEDDSD_LPSURFACE                      0x00000800
-#define WINEDDSD_PIXELFORMAT                    0x00001000
-#define WINEDDSD_CKDESTOVERLAY                  0x00002000
-#define WINEDDSD_CKDESTBLT                      0x00004000
-#define WINEDDSD_CKSRCOVERLAY                   0x00008000
-#define WINEDDSD_CKSRCBLT                       0x00010000
-#define WINEDDSD_MIPMAPCOUNT                    0x00020000
-#define WINEDDSD_REFRESHRATE                    0x00040000
-#define WINEDDSD_LINEARSIZE                     0x00080000
-#define WINEDDSD_TEXTURESTAGE                   0x00100000
-#define WINEDDSD_FVF                            0x00200000
-#define WINEDDSD_SRCVBHANDLE                    0x00400000
-#define WINEDDSD_ALL                            0x007ff9ee
-
-/* Set/Get Colour Key Flags */
-#define WINEDDCKEY_COLORSPACE                   0x00000001  /* Struct is single colour space */
-#define WINEDDCKEY_DESTBLT                      0x00000002  /* To be used as dest for blt */
-#define WINEDDCKEY_DESTOVERLAY                  0x00000004  /* To be used as dest for CK overlays */
-#define WINEDDCKEY_SRCBLT                       0x00000008  /* To be used as src for blt */
-#define WINEDDCKEY_SRCOVERLAY                   0x00000010  /* To be used as src for CK overlays */
-
-/* dwFlags for GetBltStatus */
-#define WINEDDGBS_CANBLT                        0x00000001
-#define WINEDDGBS_ISBLTDONE                     0x00000002
-
-/* dwFlags for GetFlipStatus */
-#define WINEDDGFS_CANFLIP                       1L
-#define WINEDDGFS_ISFLIPDONE                    2L
-
-/* dwFlags for Flip */
-#define WINEDDFLIP_WAIT                         0x00000001
-#define WINEDDFLIP_EVEN                         0x00000002 /* only valid for overlay */
-#define WINEDDFLIP_ODD                          0x00000004 /* only valid for overlay */
-#define WINEDDFLIP_NOVSYNC                      0x00000008
-#define WINEDDFLIP_STEREO                       0x00000010
-#define WINEDDFLIP_DONOTWAIT                    0x00000020
-#define WINEDDFLIP_INTERVAL2                    0x02000000
-#define WINEDDFLIP_INTERVAL3                    0x03000000
-#define WINEDDFLIP_INTERVAL4                    0x04000000
-
-#define WINEDDOVER_ALPHADEST                    0x00000001
-#define WINEDDOVER_ALPHADESTCONSTOVERRIDE       0x00000002
-#define WINEDDOVER_ALPHADESTNEG                 0x00000004
-#define WINEDDOVER_ALPHADESTSURFACEOVERRIDE     0x00000008
-#define WINEDDOVER_ALPHAEDGEBLEND               0x00000010
-#define WINEDDOVER_ALPHASRC                     0x00000020
-#define WINEDDOVER_ALPHASRCCONSTOVERRIDE        0x00000040
-#define WINEDDOVER_ALPHASRCNEG                  0x00000080
-#define WINEDDOVER_ALPHASRCSURFACEOVERRIDE      0x00000100
-#define WINEDDOVER_HIDE                         0x00000200
-#define WINEDDOVER_KEYDEST                      0x00000400
-#define WINEDDOVER_KEYDESTOVERRIDE              0x00000800
-#define WINEDDOVER_KEYSRC                       0x00001000
-#define WINEDDOVER_KEYSRCOVERRIDE               0x00002000
-#define WINEDDOVER_SHOW                         0x00004000
-#define WINEDDOVER_ADDDIRTYRECT                 0x00008000
-#define WINEDDOVER_REFRESHDIRTYRECTS            0x00010000
-#define WINEDDOVER_REFRESHALL                   0x00020000
-#define WINEDDOVER_DDFX                         0x00080000
-#define WINEDDOVER_AUTOFLIP                     0x00100000
-#define WINEDDOVER_BOB                          0x00200000
-#define WINEDDOVER_OVERRIDEBOBWEAVE             0x00400000
-#define WINEDDOVER_INTERLEAVED                  0x00800000
-
-#endif
diff --git a/tools/make_makefiles b/tools/make_makefiles
index 2011cff..86dcd4c 100755
--- a/tools/make_makefiles
+++ b/tools/make_makefiles
@@ -115,6 +115,7 @@
     "devenum.idl" => 1,
     "dyngraph.idl" => 1,
     "vmrender.idl" => 1,
+    "wine/wined3d.idl" => 1,
 );
 
 my (@makefiles, %makefiles);
@@ -486,31 +487,38 @@
 sub update_includes()
 {
     return unless -d ".git";
-    my (@h_srcs, @idl_srcs, @tlb_srcs, %subdirs);
+    my (@h_srcs, @private_idl_srcs, @public_idl_srcs, @tlb_srcs, %subdirs);
     my @includes = map { s/^include\///; $_; } split /\0/, `git ls-files -c -z include`;
     foreach my $incl (@includes)
     {
         if ($incl =~ /(.*)\//) { $subdirs{$1} = 1; }
-        next if ($incl =~ /^wine\// && !$exported_wine_headers{$incl});
         next if ($incl =~ /\.in$/);
+        if ($incl =~ /^wine\// && !$exported_wine_headers{$incl})
+        {
+            if ($private_idl_headers{$incl}) { push @private_idl_srcs, $incl; }
+            next;
+        }
         if ($incl =~ /stdole2\.idl$/) { push @tlb_srcs, $incl; }
         elsif ($private_idl_headers{$incl}) { push @h_srcs, $incl; }
         elsif ($incl =~ /\.h$/) { push @h_srcs, $incl; }
         elsif ($incl =~ /\.rh$/) { push @h_srcs, $incl; }
         elsif ($incl =~ /\.inl$/) { push @h_srcs, $incl; }
-        elsif ($incl =~ /\.idl$/) { push @idl_srcs, $incl; }
+        elsif ($incl =~ /\.idl$/) { push @public_idl_srcs, $incl; }
         else { die "unknown file $incl in include dir"; }
     }
-    replace_in_file( "include/Makefile.in", '^IDL_H_SRCS\s*=', '^INSTALLDIRS',
-                     "IDL_H_SRCS = \\\n\t",
-                     join( " \\\n\t", sort @idl_srcs ),
+    replace_in_file( "include/Makefile.in", '^PRIVATE_IDL_H_SRCS\s*=', '^INSTALLDIRS',
+                     "PRIVATE_IDL_H_SRCS = \\\n\t",
+                     join( " \\\n\t", sort @private_idl_srcs ),
+                     "\n\nPUBLIC_IDL_H_SRCS = \\\n\t",
+                     join( " \\\n\t", sort @public_idl_srcs ),
                      "\n\nIDL_TLB_SRCS = \\\n\t",
                      join( " \\\n\t", sort @tlb_srcs ),
-                     "\n\nSRCDIR_INCLUDES = \\\n\t\$(IDL_TLB_SRCS) \\\n\t\$(IDL_H_SRCS) \\\n\t",
+                     "\n\nSRCDIR_INCLUDES = \\\n\t\$(IDL_TLB_SRCS) \\\n\t\$(PUBLIC_IDL_H_SRCS) \\\n\t",
                      join( " \\\n\t", sort @h_srcs ),
                      "\n\nEXTRASUBDIRS = ",
                      join( " ", sort keys %subdirs ),
                      "\n\nINSTALLDIRS = \\\n" );
+    return map { s/(.*)\.idl$/include\/$1.h/; $_; } @public_idl_srcs, @private_idl_srcs;
 }
 
 
@@ -561,8 +569,6 @@
     @makefiles = map { s/^\.\/(.*)\.in/$1/; $_; } split(/\s/,`find . -name Makefile.in -print`);
 }
 
-update_includes();
-
 foreach my $file (sort values %makerules, @makefiles)
 {
     my %make = parse_makefile( $file );
@@ -570,6 +576,7 @@
 }
 
 update_makefiles( @makefiles );
+push @ignores, update_includes();
 push @ignores, update_ignores( @makefiles );
 push @ignores, update_dlls( sort grep /^dlls\//, @makefiles );
 update_gitignore( @ignores );