]> git.rm.cloudns.org Git - xonotic/xonotic.git/commitdiff
Remove builddeps: win32/dx win64/dx win32/zlib win64/zlib
authorbones_was_here <bones_was_here@xonotic.au>
Mon, 25 Dec 2023 09:31:16 +0000 (19:31 +1000)
committerbones_was_here <bones_was_here@xonotic.au>
Mon, 25 Dec 2023 15:48:24 +0000 (01:48 +1000)
We're autobuilding zlib and developers can install it from MSYS2 pacman,
dx is obsolete.

79 files changed:
misc/builddeps/win32/dx/include/_mingw_dxhelper.h [deleted file]
misc/builddeps/win32/dx/include/d3d.h [deleted file]
misc/builddeps/win32/dx/include/d3d10.h [deleted file]
misc/builddeps/win32/dx/include/d3d10.idl [deleted file]
misc/builddeps/win32/dx/include/d3d10effect.h [deleted file]
misc/builddeps/win32/dx/include/d3d10misc.h [deleted file]
misc/builddeps/win32/dx/include/d3d10shader.h [deleted file]
misc/builddeps/win32/dx/include/d3d8.h [deleted file]
misc/builddeps/win32/dx/include/d3d8caps.h [deleted file]
misc/builddeps/win32/dx/include/d3d8types.h [deleted file]
misc/builddeps/win32/dx/include/d3d9.h [deleted file]
misc/builddeps/win32/dx/include/d3d9caps.h [deleted file]
misc/builddeps/win32/dx/include/d3d9types.h [deleted file]
misc/builddeps/win32/dx/include/d3dcaps.h [deleted file]
misc/builddeps/win32/dx/include/d3dhal.h [deleted file]
misc/builddeps/win32/dx/include/d3drm.h [deleted file]
misc/builddeps/win32/dx/include/d3drmdef.h [deleted file]
misc/builddeps/win32/dx/include/d3drmobj.h [deleted file]
misc/builddeps/win32/dx/include/d3dtypes.h [deleted file]
misc/builddeps/win32/dx/include/d3dvec.inl [deleted file]
misc/builddeps/win32/dx/include/d3dx9.h [deleted file]
misc/builddeps/win32/dx/include/d3dx9core.h [deleted file]
misc/builddeps/win32/dx/include/d3dx9effect.h [deleted file]
misc/builddeps/win32/dx/include/d3dx9math.h [deleted file]
misc/builddeps/win32/dx/include/d3dx9math.inl [deleted file]
misc/builddeps/win32/dx/include/d3dx9mesh.h [deleted file]
misc/builddeps/win32/dx/include/d3dx9shader.h [deleted file]
misc/builddeps/win32/dx/include/d3dx9shape.h [deleted file]
misc/builddeps/win32/dx/include/d3dx9tex.h [deleted file]
misc/builddeps/win32/dx/include/ddraw.h [deleted file]
misc/builddeps/win32/dx/include/dinput.h [deleted file]
misc/builddeps/win32/dx/include/dsound.h [deleted file]
misc/builddeps/win32/dx/include/wspiapi.h [deleted file]
misc/builddeps/win32/dx/include/zconf.h [deleted file]
misc/builddeps/win32/zlib/bin/zlib1.dll [deleted file]
misc/builddeps/win32/zlib/include/zlib.h [deleted file]
misc/builddeps/win32/zlib/lib/libz.a [deleted file]
misc/builddeps/win32/zlib/lib/libz.dll.a [deleted symlink]
misc/builddeps/win32/zlib/lib/libzdll.a [deleted file]
misc/builddeps/win32/zlib/lib/pkgconfig/zlib.pc [deleted file]
misc/builddeps/win64/dx/include/_mingw_dxhelper.h [deleted file]
misc/builddeps/win64/dx/include/d3d.h [deleted file]
misc/builddeps/win64/dx/include/d3d10.h [deleted file]
misc/builddeps/win64/dx/include/d3d10.idl [deleted file]
misc/builddeps/win64/dx/include/d3d10effect.h [deleted file]
misc/builddeps/win64/dx/include/d3d10misc.h [deleted file]
misc/builddeps/win64/dx/include/d3d10shader.h [deleted file]
misc/builddeps/win64/dx/include/d3d8.h [deleted file]
misc/builddeps/win64/dx/include/d3d8caps.h [deleted file]
misc/builddeps/win64/dx/include/d3d8types.h [deleted file]
misc/builddeps/win64/dx/include/d3d9.h [deleted file]
misc/builddeps/win64/dx/include/d3d9caps.h [deleted file]
misc/builddeps/win64/dx/include/d3d9types.h [deleted file]
misc/builddeps/win64/dx/include/d3dcaps.h [deleted file]
misc/builddeps/win64/dx/include/d3dhal.h [deleted file]
misc/builddeps/win64/dx/include/d3drm.h [deleted file]
misc/builddeps/win64/dx/include/d3drmdef.h [deleted file]
misc/builddeps/win64/dx/include/d3drmobj.h [deleted file]
misc/builddeps/win64/dx/include/d3dtypes.h [deleted file]
misc/builddeps/win64/dx/include/d3dvec.inl [deleted file]
misc/builddeps/win64/dx/include/d3dx9.h [deleted file]
misc/builddeps/win64/dx/include/d3dx9core.h [deleted file]
misc/builddeps/win64/dx/include/d3dx9effect.h [deleted file]
misc/builddeps/win64/dx/include/d3dx9math.h [deleted file]
misc/builddeps/win64/dx/include/d3dx9math.inl [deleted file]
misc/builddeps/win64/dx/include/d3dx9mesh.h [deleted file]
misc/builddeps/win64/dx/include/d3dx9shader.h [deleted file]
misc/builddeps/win64/dx/include/d3dx9shape.h [deleted file]
misc/builddeps/win64/dx/include/d3dx9tex.h [deleted file]
misc/builddeps/win64/dx/include/ddraw.h [deleted file]
misc/builddeps/win64/dx/include/dinput.h [deleted file]
misc/builddeps/win64/dx/include/dsound.h [deleted file]
misc/builddeps/win64/dx/include/zconf.h [deleted file]
misc/builddeps/win64/zlib/bin/zlib1.dll [deleted file]
misc/builddeps/win64/zlib/include/zlib.h [deleted file]
misc/builddeps/win64/zlib/lib/libz.a [deleted file]
misc/builddeps/win64/zlib/lib/libz.dll.a [deleted symlink]
misc/builddeps/win64/zlib/lib/libzdll.a [deleted file]
misc/builddeps/win64/zlib/lib/pkgconfig/zlib.pc [deleted file]

diff --git a/misc/builddeps/win32/dx/include/_mingw_dxhelper.h b/misc/builddeps/win32/dx/include/_mingw_dxhelper.h
deleted file mode 100644 (file)
index e13408c..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the w64 mingw-runtime package.
- * No warranty is given; refer to the file DISCLAIMER within this package.
- */
-
-#if defined(_MSC_VER) && !defined(_MSC_EXTENSIONS)
-#define NONAMELESSUNION                1
-#endif
-#if defined(NONAMELESSSTRUCT) && \
-   !defined(NONAMELESSUNION)
-#define NONAMELESSUNION                1
-#endif
-#if defined(NONAMELESSUNION)  && \
-   !defined(NONAMELESSSTRUCT)
-#define NONAMELESSSTRUCT       1
-#endif
-
-#ifndef __ANONYMOUS_DEFINED
-#define __ANONYMOUS_DEFINED
-#if defined(__GNUC__) || defined(__GNUG__)
-#define _ANONYMOUS_UNION       __extension__
-#define _ANONYMOUS_STRUCT      __extension__
-#else
-#define _ANONYMOUS_UNION
-#define _ANONYMOUS_STRUCT
-#endif
-#ifndef NONAMELESSUNION
-#define _UNION_NAME(x)
-#define _STRUCT_NAME(x)
-#else /* NONAMELESSUNION */
-#define _UNION_NAME(x)  x
-#define _STRUCT_NAME(x) x
-#endif
-#endif /* __ANONYMOUS_DEFINED */
-
-#ifndef DUMMYUNIONNAME
-# ifdef NONAMELESSUNION
-#  define DUMMYUNIONNAME  u
-#  define DUMMYUNIONNAME1 u1   /* Wine uses this variant */
-#  define DUMMYUNIONNAME2 u2
-#  define DUMMYUNIONNAME3 u3
-#  define DUMMYUNIONNAME4 u4
-#  define DUMMYUNIONNAME5 u5
-#  define DUMMYUNIONNAME6 u6
-#  define DUMMYUNIONNAME7 u7
-#  define DUMMYUNIONNAME8 u8
-#  define DUMMYUNIONNAME9 u9
-# else /* NONAMELESSUNION */
-#  define DUMMYUNIONNAME
-#  define DUMMYUNIONNAME1      /* Wine uses this variant */
-#  define DUMMYUNIONNAME2
-#  define DUMMYUNIONNAME3
-#  define DUMMYUNIONNAME4
-#  define DUMMYUNIONNAME5
-#  define DUMMYUNIONNAME6
-#  define DUMMYUNIONNAME7
-#  define DUMMYUNIONNAME8
-#  define DUMMYUNIONNAME9
-# endif
-#endif /* DUMMYUNIONNAME */
-
-#ifndef DUMMYSTRUCTNAME
-# ifdef NONAMELESSUNION
-#  define DUMMYSTRUCTNAME  s
-#  define DUMMYSTRUCTNAME1 s1  /* Wine uses this variant */
-#  define DUMMYSTRUCTNAME2 s2
-#  define DUMMYSTRUCTNAME3 s3
-#  define DUMMYSTRUCTNAME4 s4
-#  define DUMMYSTRUCTNAME5 s5
-# else
-#  define DUMMYSTRUCTNAME
-#  define DUMMYSTRUCTNAME1     /* Wine uses this variant */
-#  define DUMMYSTRUCTNAME2
-#  define DUMMYSTRUCTNAME3
-#  define DUMMYSTRUCTNAME4
-#  define DUMMYSTRUCTNAME5
-# endif
-#endif /* DUMMYSTRUCTNAME */
-
-/* These are for compatibility with the Wine source tree */
-
-#ifndef WINELIB_NAME_AW
-# ifdef __MINGW_NAME_AW
-#   define WINELIB_NAME_AW  __MINGW_NAME_AW
-# else
-#  ifdef UNICODE
-#   define WINELIB_NAME_AW(func) func##W
-#  else
-#   define WINELIB_NAME_AW(func) func##A
-#  endif
-# endif
-#endif /* WINELIB_NAME_AW */
-
-#ifndef DECL_WINELIB_TYPE_AW
-# ifdef __MINGW_TYPEDEF_AW
-#  define DECL_WINELIB_TYPE_AW  __MINGW_TYPEDEF_AW
-# else
-#  define DECL_WINELIB_TYPE_AW(type)  typedef WINELIB_NAME_AW(type) type;
-# endif
-#endif /* DECL_WINELIB_TYPE_AW */
-
diff --git a/misc/builddeps/win32/dx/include/d3d.h b/misc/builddeps/win32/dx/include/d3d.h
deleted file mode 100644 (file)
index 409be1b..0000000
+++ /dev/null
@@ -1,1531 +0,0 @@
-/*
- * Copyright (C) the Wine project
- *
- * 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_D3D_H
-#define __WINE_D3D_H
-
-#include <stdlib.h>
-
-#define COM_NO_WINDOWS_H
-#include <objbase.h>
-#include <d3dtypes.h> /* must precede d3dcaps.h */
-#include <d3dcaps.h>
-
-/*****************************************************************************
- * Predeclare the interfaces
- */
-DEFINE_GUID(IID_IDirect3D,              0x3BBA0080,0x2421,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56);
-DEFINE_GUID(IID_IDirect3D2,             0x6aae1ec1,0x662a,0x11d0,0x88,0x9d,0x00,0xaa,0x00,0xbb,0xb7,0x6a);
-DEFINE_GUID(IID_IDirect3D3,             0xbb223240,0xe72b,0x11d0,0xa9,0xb4,0x00,0xaa,0x00,0xc0,0x99,0x3e);
-DEFINE_GUID(IID_IDirect3D7,             0xf5049e77,0x4861,0x11d2,0xa4,0x07,0x00,0xa0,0xc9,0x06,0x29,0xa8);
-
-DEFINE_GUID(IID_IDirect3DRampDevice,   0xF2086B20,0x259F,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56);
-DEFINE_GUID(IID_IDirect3DRGBDevice,    0xA4665C60,0x2673,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56);
-DEFINE_GUID(IID_IDirect3DHALDevice,    0x84E63dE0,0x46AA,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E);
-DEFINE_GUID(IID_IDirect3DMMXDevice,    0x881949a1,0xd6f3,0x11d0,0x89,0xab,0x00,0xa0,0xc9,0x05,0x41,0x29);
-DEFINE_GUID(IID_IDirect3DRefDevice,     0x50936643,0x13e9,0x11d1,0x89,0xaa,0x00,0xa0,0xc9,0x05,0x41,0x29);
-DEFINE_GUID(IID_IDirect3DTnLHalDevice,  0xf5049e78,0x4861,0x11d2,0xa4,0x07,0x00,0xa0,0xc9,0x06,0x29,0xa8);
-DEFINE_GUID(IID_IDirect3DNullDevice,    0x8767df22,0xbacc,0x11d1,0x89,0x69,0x00,0xa0,0xc9,0x06,0x29,0xa8);
-
-DEFINE_GUID(IID_IDirect3DDevice,       0x64108800,0x957d,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29);
-DEFINE_GUID(IID_IDirect3DDevice2,      0x93281501,0x8CF8,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29);
-DEFINE_GUID(IID_IDirect3DDevice3,       0xb0ab3b60,0x33d7,0x11d1,0xa9,0x81,0x00,0xc0,0x4f,0xd7,0xb1,0x74);
-DEFINE_GUID(IID_IDirect3DDevice7,       0xf5049e79,0x4861,0x11d2,0xa4,0x07,0x00,0xa0,0xc9,0x06,0x29,0xa8);
-
-DEFINE_GUID(IID_IDirect3DTexture,      0x2CDCD9E0,0x25A0,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56);
-DEFINE_GUID(IID_IDirect3DTexture2,     0x93281502,0x8CF8,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29);
-
-DEFINE_GUID(IID_IDirect3DLight,                0x4417C142,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E);
-
-DEFINE_GUID(IID_IDirect3DMaterial,     0x4417C144,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E);
-DEFINE_GUID(IID_IDirect3DMaterial2,    0x93281503,0x8CF8,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29);
-DEFINE_GUID(IID_IDirect3DMaterial3,     0xca9c46f4,0xd3c5,0x11d1,0xb7,0x5a,0x00,0x60,0x08,0x52,0xb3,0x12);
-
-DEFINE_GUID(IID_IDirect3DExecuteBuffer,        0x4417C145,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E);
-
-DEFINE_GUID(IID_IDirect3DViewport,     0x4417C146,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E);
-DEFINE_GUID(IID_IDirect3DViewport2,    0x93281500,0x8CF8,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29);
-DEFINE_GUID(IID_IDirect3DViewport3,     0xb0ab3b61,0x33d7,0x11d1,0xa9,0x81,0x00,0xc0,0x4f,0xd7,0xb1,0x74);
-
-DEFINE_GUID(IID_IDirect3DVertexBuffer,  0x7a503555,0x4a83,0x11d1,0xa5,0xdb,0x00,0xa0,0xc9,0x03,0x67,0xf8);
-DEFINE_GUID(IID_IDirect3DVertexBuffer7, 0xf5049e7d,0x4861,0x11d2,0xa4,0x07,0x00,0xa0,0xc9,0x06,0x29,0xa8);
-
-
-typedef struct IDirect3D *LPDIRECT3D;
-typedef struct IDirect3D2 *LPDIRECT3D2;
-typedef struct IDirect3D3 *LPDIRECT3D3;
-typedef struct IDirect3D7 *LPDIRECT3D7;
-
-typedef struct IDirect3DLight *LPDIRECT3DLIGHT;
-
-typedef struct IDirect3DDevice *LPDIRECT3DDEVICE;
-typedef struct IDirect3DDevice2 *LPDIRECT3DDEVICE2;
-typedef struct IDirect3DDevice3 *LPDIRECT3DDEVICE3;
-typedef struct IDirect3DDevice7 *LPDIRECT3DDEVICE7;
-
-typedef struct IDirect3DViewport *LPDIRECT3DVIEWPORT;
-typedef struct IDirect3DViewport2 *LPDIRECT3DVIEWPORT2;
-typedef struct IDirect3DViewport3 *LPDIRECT3DVIEWPORT3;
-
-typedef struct IDirect3DMaterial *LPDIRECT3DMATERIAL;
-typedef struct IDirect3DMaterial2 *LPDIRECT3DMATERIAL2;
-typedef struct IDirect3DMaterial3 *LPDIRECT3DMATERIAL3;
-
-typedef struct IDirect3DTexture *LPDIRECT3DTEXTURE;
-typedef struct IDirect3DTexture2 *LPDIRECT3DTEXTURE2;
-
-typedef struct IDirect3DExecuteBuffer *LPDIRECT3DEXECUTEBUFFER;
-
-typedef struct IDirect3DVertexBuffer *LPDIRECT3DVERTEXBUFFER;
-typedef struct IDirect3DVertexBuffer7 *LPDIRECT3DVERTEXBUFFER7;
-
-/* ********************************************************************
-   Error Codes
-   ******************************************************************** */
-#define D3D_OK                          DD_OK
-#define D3DERR_BADMAJORVERSION          MAKE_DDHRESULT(700)
-#define D3DERR_BADMINORVERSION          MAKE_DDHRESULT(701)
-#define D3DERR_INVALID_DEVICE           MAKE_DDHRESULT(705)
-#define D3DERR_INITFAILED               MAKE_DDHRESULT(706)
-#define D3DERR_DEVICEAGGREGATED         MAKE_DDHRESULT(707)
-#define D3DERR_EXECUTE_CREATE_FAILED    MAKE_DDHRESULT(710)
-#define D3DERR_EXECUTE_DESTROY_FAILED   MAKE_DDHRESULT(711)
-#define D3DERR_EXECUTE_LOCK_FAILED      MAKE_DDHRESULT(712)
-#define D3DERR_EXECUTE_UNLOCK_FAILED    MAKE_DDHRESULT(713)
-#define D3DERR_EXECUTE_LOCKED           MAKE_DDHRESULT(714)
-#define D3DERR_EXECUTE_NOT_LOCKED       MAKE_DDHRESULT(715)
-#define D3DERR_EXECUTE_FAILED           MAKE_DDHRESULT(716)
-#define D3DERR_EXECUTE_CLIPPED_FAILED   MAKE_DDHRESULT(717)
-#define D3DERR_TEXTURE_NO_SUPPORT       MAKE_DDHRESULT(720)
-#define D3DERR_TEXTURE_CREATE_FAILED    MAKE_DDHRESULT(721)
-#define D3DERR_TEXTURE_DESTROY_FAILED   MAKE_DDHRESULT(722)
-#define D3DERR_TEXTURE_LOCK_FAILED      MAKE_DDHRESULT(723)
-#define D3DERR_TEXTURE_UNLOCK_FAILED    MAKE_DDHRESULT(724)
-#define D3DERR_TEXTURE_LOAD_FAILED      MAKE_DDHRESULT(725)
-#define D3DERR_TEXTURE_SWAP_FAILED      MAKE_DDHRESULT(726)
-#define D3DERR_TEXTURE_LOCKED           MAKE_DDHRESULT(727)
-#define D3DERR_TEXTURE_NOT_LOCKED       MAKE_DDHRESULT(728)
-#define D3DERR_TEXTURE_GETSURF_FAILED   MAKE_DDHRESULT(729)
-#define D3DERR_MATRIX_CREATE_FAILED     MAKE_DDHRESULT(730)
-#define D3DERR_MATRIX_DESTROY_FAILED    MAKE_DDHRESULT(731)
-#define D3DERR_MATRIX_SETDATA_FAILED    MAKE_DDHRESULT(732)
-#define D3DERR_MATRIX_GETDATA_FAILED    MAKE_DDHRESULT(733)
-#define D3DERR_SETVIEWPORTDATA_FAILED   MAKE_DDHRESULT(734)
-#define D3DERR_INVALIDCURRENTVIEWPORT   MAKE_DDHRESULT(735)
-#define D3DERR_INVALIDPRIMITIVETYPE     MAKE_DDHRESULT(736)
-#define D3DERR_INVALIDVERTEXTYPE        MAKE_DDHRESULT(737)
-#define D3DERR_TEXTURE_BADSIZE          MAKE_DDHRESULT(738)
-#define D3DERR_INVALIDRAMPTEXTURE       MAKE_DDHRESULT(739)
-#define D3DERR_MATERIAL_CREATE_FAILED   MAKE_DDHRESULT(740)
-#define D3DERR_MATERIAL_DESTROY_FAILED  MAKE_DDHRESULT(741)
-#define D3DERR_MATERIAL_SETDATA_FAILED  MAKE_DDHRESULT(742)
-#define D3DERR_MATERIAL_GETDATA_FAILED  MAKE_DDHRESULT(743)
-#define D3DERR_INVALIDPALETTE           MAKE_DDHRESULT(744)
-#define D3DERR_ZBUFF_NEEDS_SYSTEMMEMORY MAKE_DDHRESULT(745)
-#define D3DERR_ZBUFF_NEEDS_VIDEOMEMORY  MAKE_DDHRESULT(746)
-#define D3DERR_SURFACENOTINVIDMEM       MAKE_DDHRESULT(747)
-#define D3DERR_LIGHT_SET_FAILED         MAKE_DDHRESULT(750)
-#define D3DERR_LIGHTHASVIEWPORT         MAKE_DDHRESULT(751)
-#define D3DERR_LIGHTNOTINTHISVIEWPORT   MAKE_DDHRESULT(752)
-#define D3DERR_SCENE_IN_SCENE           MAKE_DDHRESULT(760)
-#define D3DERR_SCENE_NOT_IN_SCENE       MAKE_DDHRESULT(761)
-#define D3DERR_SCENE_BEGIN_FAILED       MAKE_DDHRESULT(762)
-#define D3DERR_SCENE_END_FAILED         MAKE_DDHRESULT(763)
-#define D3DERR_INBEGIN                  MAKE_DDHRESULT(770)
-#define D3DERR_NOTINBEGIN               MAKE_DDHRESULT(771)
-#define D3DERR_NOVIEWPORTS              MAKE_DDHRESULT(772)
-#define D3DERR_VIEWPORTDATANOTSET       MAKE_DDHRESULT(773)
-#define D3DERR_VIEWPORTHASNODEVICE      MAKE_DDHRESULT(774)
-#define D3DERR_NOCURRENTVIEWPORT        MAKE_DDHRESULT(775)
-#define D3DERR_INVALIDVERTEXFORMAT     MAKE_DDHRESULT(2048)
-#define D3DERR_COLORKEYATTACHED         MAKE_DDHRESULT(2050)
-#define D3DERR_VERTEXBUFFEROPTIMIZED   MAKE_DDHRESULT(2060)
-#define D3DERR_VBUF_CREATE_FAILED      MAKE_DDHRESULT(2061)
-#define D3DERR_VERTEXBUFFERLOCKED      MAKE_DDHRESULT(2062)
-#define D3DERR_VERTEXBUFFERUNLOCKFAILED        MAKE_DDHRESULT(2063)
-#define D3DERR_ZBUFFER_NOTPRESENT      MAKE_DDHRESULT(2070)
-#define D3DERR_STENCILBUFFER_NOTPRESENT        MAKE_DDHRESULT(2071)
-
-#define D3DERR_WRONGTEXTUREFORMAT              MAKE_DDHRESULT(2072)
-#define D3DERR_UNSUPPORTEDCOLOROPERATION       MAKE_DDHRESULT(2073)
-#define D3DERR_UNSUPPORTEDCOLORARG             MAKE_DDHRESULT(2074)
-#define D3DERR_UNSUPPORTEDALPHAOPERATION       MAKE_DDHRESULT(2075)
-#define D3DERR_UNSUPPORTEDALPHAARG             MAKE_DDHRESULT(2076)
-#define D3DERR_TOOMANYOPERATIONS               MAKE_DDHRESULT(2077)
-#define D3DERR_CONFLICTINGTEXTUREFILTER                MAKE_DDHRESULT(2078)
-#define D3DERR_UNSUPPORTEDFACTORVALUE          MAKE_DDHRESULT(2079)
-#define D3DERR_CONFLICTINGRENDERSTATE          MAKE_DDHRESULT(2081)
-#define D3DERR_UNSUPPORTEDTEXTUREFILTER                MAKE_DDHRESULT(2082)
-#define D3DERR_TOOMANYPRIMITIVES               MAKE_DDHRESULT(2083)
-#define D3DERR_INVALIDMATRIX                   MAKE_DDHRESULT(2084)
-#define D3DERR_TOOMANYVERTICES                 MAKE_DDHRESULT(2085)
-#define D3DERR_CONFLICTINGTEXTUREPALETTE       MAKE_DDHRESULT(2086)
-
-#define D3DERR_INVALIDSTATEBLOCK       MAKE_DDHRESULT(2100)
-#define D3DERR_INBEGINSTATEBLOCK       MAKE_DDHRESULT(2101)
-#define D3DERR_NOTINBEGINSTATEBLOCK    MAKE_DDHRESULT(2102)
-
-/* ********************************************************************
-   Enums
-   ******************************************************************** */
-#define D3DNEXT_NEXT 0x01l
-#define D3DNEXT_HEAD 0x02l
-#define D3DNEXT_TAIL 0x04l
-
-#define D3DDP_WAIT               0x00000001l
-#define D3DDP_OUTOFORDER         0x00000002l
-#define D3DDP_DONOTCLIP          0x00000004l
-#define D3DDP_DONOTUPDATEEXTENTS 0x00000008l
-#define D3DDP_DONOTLIGHT         0x00000010l
-
-/* ********************************************************************
-   Types and structures
-   ******************************************************************** */
-typedef DWORD D3DVIEWPORTHANDLE, *LPD3DVIEWPORTHANDLE;
-
-
-/*****************************************************************************
- * IDirect3D interface
- */
-#undef INTERFACE
-#define INTERFACE IDirect3D
-DECLARE_INTERFACE_(IDirect3D,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3D methods ***/
-    STDMETHOD(Initialize)(THIS_ REFIID riid) PURE;
-    STDMETHOD(EnumDevices)(THIS_ LPD3DENUMDEVICESCALLBACK lpEnumDevicesCallback, LPVOID lpUserArg) PURE;
-    STDMETHOD(CreateLight)(THIS_ LPDIRECT3DLIGHT *lplpDirect3DLight, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(CreateMaterial)(THIS_ LPDIRECT3DMATERIAL *lplpDirect3DMaterial, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(CreateViewport)(THIS_ LPDIRECT3DVIEWPORT *lplpD3DViewport, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(FindDevice)(THIS_ LPD3DFINDDEVICESEARCH lpD3DDFS, LPD3DFINDDEVICERESULT lplpD3DDevice) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3D_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3D_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3D_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3D methods ***/
-#define IDirect3D_Initialize(p,a)       (p)->lpVtbl->Initialize(p,a)
-#define IDirect3D_EnumDevices(p,a,b)    (p)->lpVtbl->EnumDevices(p,a,b)
-#define IDirect3D_CreateLight(p,a,b)    (p)->lpVtbl->CreateLight(p,a,b)
-#define IDirect3D_CreateMaterial(p,a,b) (p)->lpVtbl->CreateMaterial(p,a,b)
-#define IDirect3D_CreateViewport(p,a,b) (p)->lpVtbl->CreateViewport(p,a,b)
-#define IDirect3D_FindDevice(p,a,b)     (p)->lpVtbl->FindDevice(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3D_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3D_AddRef(p)             (p)->AddRef()
-#define IDirect3D_Release(p)            (p)->Release()
-/*** IDirect3D methods ***/
-#define IDirect3D_Initialize(p,a)       (p)->Initialize(a)
-#define IDirect3D_EnumDevices(p,a,b)    (p)->EnumDevices(a,b)
-#define IDirect3D_CreateLight(p,a,b)    (p)->CreateLight(a,b)
-#define IDirect3D_CreateMaterial(p,a,b) (p)->CreateMaterial(a,b)
-#define IDirect3D_CreateViewport(p,a,b) (p)->CreateViewport(a,b)
-#define IDirect3D_FindDevice(p,a,b)     (p)->FindDevice(a,b)
-#endif
-
-
-/*****************************************************************************
- * IDirect3D2 interface
- */
-#define INTERFACE IDirect3D2
-DECLARE_INTERFACE_(IDirect3D2,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3D2 methods ***/
-    STDMETHOD(EnumDevices)(THIS_ LPD3DENUMDEVICESCALLBACK lpEnumDevicesCallback, LPVOID lpUserArg) PURE;
-    STDMETHOD(CreateLight)(THIS_ LPDIRECT3DLIGHT *lplpDirect3DLight, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(CreateMaterial)(THIS_ LPDIRECT3DMATERIAL2 *lplpDirect3DMaterial2, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(CreateViewport)(THIS_ LPDIRECT3DVIEWPORT2 *lplpD3DViewport2, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(FindDevice)(THIS_ LPD3DFINDDEVICESEARCH lpD3DDFS, LPD3DFINDDEVICERESULT lpD3DFDR) PURE;
-    STDMETHOD(CreateDevice)(THIS_ REFCLSID rclsid, LPDIRECTDRAWSURFACE lpDDS, LPDIRECT3DDEVICE2 *lplpD3DDevice2) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3D2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3D2_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3D2_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3D2 methods ***/
-#define IDirect3D2_EnumDevices(p,a,b)    (p)->lpVtbl->EnumDevices(p,a,b)
-#define IDirect3D2_CreateLight(p,a,b)    (p)->lpVtbl->CreateLight(p,a,b)
-#define IDirect3D2_CreateMaterial(p,a,b) (p)->lpVtbl->CreateMaterial(p,a,b)
-#define IDirect3D2_CreateViewport(p,a,b) (p)->lpVtbl->CreateViewport(p,a,b)
-#define IDirect3D2_FindDevice(p,a,b)     (p)->lpVtbl->FindDevice(p,a,b)
-#define IDirect3D2_CreateDevice(p,a,b,c) (p)->lpVtbl->CreateDevice(p,a,b,c)
-#else
-/*** IUnknown methods ***/
-#define IDirect3D2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3D2_AddRef(p)             (p)->AddRef()
-#define IDirect3D2_Release(p)            (p)->Release()
-/*** IDirect3D2 methods ***/
-#define IDirect3D2_EnumDevices(p,a,b)    (p)->EnumDevices(a,b)
-#define IDirect3D2_CreateLight(p,a,b)    (p)->CreateLight(a,b)
-#define IDirect3D2_CreateMaterial(p,a,b) (p)->CreateMaterial(a,b)
-#define IDirect3D2_CreateViewport(p,a,b) (p)->CreateViewport(a,b)
-#define IDirect3D2_FindDevice(p,a,b)     (p)->FindDevice(a,b)
-#define IDirect3D2_CreateDevice(p,a,b,c) (p)->CreateDevice(a,b,c)
-#endif
-
-
-/*****************************************************************************
- * IDirect3D3 interface
- */
-#define INTERFACE IDirect3D3
-DECLARE_INTERFACE_(IDirect3D3,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3D3 methods ***/
-    STDMETHOD(EnumDevices)(THIS_ LPD3DENUMDEVICESCALLBACK lpEnumDevicesCallback, LPVOID lpUserArg) PURE;
-    STDMETHOD(CreateLight)(THIS_ LPDIRECT3DLIGHT *lplpDirect3DLight, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(CreateMaterial)(THIS_ LPDIRECT3DMATERIAL3 *lplpDirect3DMaterial3, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(CreateViewport)(THIS_ LPDIRECT3DVIEWPORT3 *lplpD3DViewport3, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(FindDevice)(THIS_ LPD3DFINDDEVICESEARCH lpD3DDFS, LPD3DFINDDEVICERESULT lpD3DFDR) PURE;
-    STDMETHOD(CreateDevice)(THIS_ REFCLSID rclsid,LPDIRECTDRAWSURFACE4 lpDDS, LPDIRECT3DDEVICE3 *lplpD3DDevice3,LPUNKNOWN lpUnk) PURE;
-    STDMETHOD(CreateVertexBuffer)(THIS_ LPD3DVERTEXBUFFERDESC lpD3DVertBufDesc,LPDIRECT3DVERTEXBUFFER *lplpD3DVertBuf,DWORD dwFlags,LPUNKNOWN lpUnk) PURE;
-    STDMETHOD(EnumZBufferFormats)(THIS_ REFCLSID riidDevice,LPD3DENUMPIXELFORMATSCALLBACK lpEnumCallback,LPVOID lpContext) PURE;
-    STDMETHOD(EvictManagedTextures)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3D3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3D3_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3D3_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3D3 methods ***/
-#define IDirect3D3_EnumDevices(p,a,b)            (p)->lpVtbl->EnumDevices(p,a,b)
-#define IDirect3D3_CreateLight(p,a,b)            (p)->lpVtbl->CreateLight(p,a,b)
-#define IDirect3D3_CreateMaterial(p,a,b)         (p)->lpVtbl->CreateMaterial(p,a,b)
-#define IDirect3D3_CreateViewport(p,a,b)         (p)->lpVtbl->CreateViewport(p,a,b)
-#define IDirect3D3_FindDevice(p,a,b)             (p)->lpVtbl->FindDevice(p,a,b)
-#define IDirect3D3_CreateDevice(p,a,b,c,d)       (p)->lpVtbl->CreateDevice(p,a,b,c,d)
-#define IDirect3D3_CreateVertexBuffer(p,a,b,c,d) (p)->lpVtbl->CreateVertexBuffer(p,a,b,c,d)
-#define IDirect3D3_EnumZBufferFormats(p,a,b,c)   (p)->lpVtbl->EnumZBufferFormats(p,a,b,c)
-#define IDirect3D3_EvictManagedTextures(p)       (p)->lpVtbl->EvictManagedTextures(p)
-#else
-/*** IUnknown methods ***/
-#define IDirect3D3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3D3_AddRef(p)             (p)->AddRef()
-#define IDirect3D3_Release(p)            (p)->Release()
-/*** IDirect3D3 methods ***/
-#define IDirect3D3_EnumDevices(p,a,b)            (p)->EnumDevices(a,b)
-#define IDirect3D3_CreateLight(p,a,b)            (p)->CreateLight(a,b)
-#define IDirect3D3_CreateMaterial(p,a,b)         (p)->CreateMaterial(a,b)
-#define IDirect3D3_CreateViewport(p,a,b)         (p)->CreateViewport(a,b)
-#define IDirect3D3_FindDevice(p,a,b)             (p)->FindDevice(a,b)
-#define IDirect3D3_CreateDevice(p,a,b,c,d)       (p)->CreateDevice(a,b,c,d)
-#define IDirect3D3_CreateVertexBuffer(p,a,b,c,d) (p)->CreateVertexBuffer(a,b,c,d)
-#define IDirect3D3_EnumZBufferFormats(p,a,b,c)   (p)->EnumZBufferFormats(a,b,c)
-#define IDirect3D3_EvictManagedTextures(p)       (p)->EvictManagedTextures()
-#endif
-
-/*****************************************************************************
- * IDirect3D7 interface
- */
-#define INTERFACE IDirect3D7
-DECLARE_INTERFACE_(IDirect3D7,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3D7 methods ***/
-    STDMETHOD(EnumDevices)(THIS_ LPD3DENUMDEVICESCALLBACK7 lpEnumDevicesCallback, LPVOID lpUserArg) PURE;
-    STDMETHOD(CreateDevice)(THIS_ REFCLSID rclsid,LPDIRECTDRAWSURFACE7 lpDDS, LPDIRECT3DDEVICE7 *lplpD3DDevice) PURE;
-    STDMETHOD(CreateVertexBuffer)(THIS_ LPD3DVERTEXBUFFERDESC lpD3DVertBufDesc,LPDIRECT3DVERTEXBUFFER7 *lplpD3DVertBuf,DWORD dwFlags) PURE;
-    STDMETHOD(EnumZBufferFormats)(THIS_ REFCLSID riidDevice,LPD3DENUMPIXELFORMATSCALLBACK lpEnumCallback,LPVOID lpContext) PURE;
-    STDMETHOD(EvictManagedTextures)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3D7_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3D7_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3D7_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3D3 methods ***/
-#define IDirect3D7_EnumDevices(p,a,b)            (p)->lpVtbl->EnumDevices(p,a,b)
-#define IDirect3D7_CreateDevice(p,a,b,c)         (p)->lpVtbl->CreateDevice(p,a,b,c)
-#define IDirect3D7_CreateVertexBuffer(p,a,b,c)   (p)->lpVtbl->CreateVertexBuffer(p,a,b,c)
-#define IDirect3D7_EnumZBufferFormats(p,a,b,c)   (p)->lpVtbl->EnumZBufferFormats(p,a,b,c)
-#define IDirect3D7_EvictManagedTextures(p)       (p)->lpVtbl->EvictManagedTextures(p)
-#else
-/*** IUnknown methods ***/
-#define IDirect3D7_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3D7_AddRef(p)             (p)->AddRef()
-#define IDirect3D7_Release(p)            (p)->Release()
-/*** IDirect3D3 methods ***/
-#define IDirect3D7_EnumDevices(p,a,b)            (p)->EnumDevices(a,b)
-#define IDirect3D7_CreateDevice(p,a,b,c)         (p)->CreateDevice(a,b,c)
-#define IDirect3D7_CreateVertexBuffer(p,a,b,c)   (p)->CreateVertexBuffer(a,b,c)
-#define IDirect3D7_EnumZBufferFormats(p,a,b,c)   (p)->EnumZBufferFormats(a,b,c)
-#define IDirect3D7_EvictManagedTextures(p)       (p)->EvictManagedTextures()
-#endif
-
-
-/*****************************************************************************
- * IDirect3DLight interface
- */
-#define INTERFACE IDirect3DLight
-DECLARE_INTERFACE_(IDirect3DLight,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DLight methods ***/
-    STDMETHOD(Initialize)(THIS_ LPDIRECT3D lpDirect3D) PURE;
-    STDMETHOD(SetLight)(THIS_ LPD3DLIGHT lpLight) PURE;
-    STDMETHOD(GetLight)(THIS_ LPD3DLIGHT lpLight) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DLight_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DLight_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DLight_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3DLight methods ***/
-#define IDirect3DLight_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
-#define IDirect3DLight_SetLight(p,a)   (p)->lpVtbl->SetLight(p,a)
-#define IDirect3DLight_GetLight(p,a)   (p)->lpVtbl->GetLight(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DLight_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DLight_AddRef(p)             (p)->AddRef()
-#define IDirect3DLight_Release(p)            (p)->Release()
-/*** IDirect3DLight methods ***/
-#define IDirect3DLight_Initialize(p,a) (p)->Initialize(a)
-#define IDirect3DLight_SetLight(p,a)   (p)->SetLight(a)
-#define IDirect3DLight_GetLight(p,a)   (p)->GetLight(a)
-#endif
-
-
-/*****************************************************************************
- * IDirect3DMaterial interface
- */
-#define INTERFACE IDirect3DMaterial
-DECLARE_INTERFACE_(IDirect3DMaterial,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DMaterial methods ***/
-    STDMETHOD(Initialize)(THIS_ LPDIRECT3D lpDirect3D) PURE;
-    STDMETHOD(SetMaterial)(THIS_ LPD3DMATERIAL lpMat) PURE;
-    STDMETHOD(GetMaterial)(THIS_ LPD3DMATERIAL lpMat) PURE;
-    STDMETHOD(GetHandle)(THIS_ LPDIRECT3DDEVICE lpDirect3DDevice, LPD3DMATERIALHANDLE lpHandle) PURE;
-    STDMETHOD(Reserve)(THIS) PURE;
-    STDMETHOD(Unreserve)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DMaterial_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DMaterial_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DMaterial_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3DMaterial methods ***/
-#define IDirect3DMaterial_Initialize(p,a)  (p)->lpVtbl->Initialize(p,a)
-#define IDirect3DMaterial_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
-#define IDirect3DMaterial_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
-#define IDirect3DMaterial_GetHandle(p,a,b) (p)->lpVtbl->GetHandle(p,a,b)
-#define IDirect3DMaterial_Reserve(p)       (p)->lpVtbl->Reserve(p)
-#define IDirect3DMaterial_Unreserve(p)     (p)->lpVtbl->Unreserve(p)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DMaterial_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DMaterial_AddRef(p)             (p)->AddRef()
-#define IDirect3DMaterial_Release(p)            (p)->Release()
-/*** IDirect3DMaterial methods ***/
-#define IDirect3DMaterial_Initialize(p,a)  (p)->Initialize(a)
-#define IDirect3DMaterial_SetMaterial(p,a) (p)->SetMaterial(a)
-#define IDirect3DMaterial_GetMaterial(p,a) (p)->GetMaterial(a)
-#define IDirect3DMaterial_GetHandle(p,a,b) (p)->GetHandle(a,b)
-#define IDirect3DMaterial_Reserve(p)       (p)->Reserve()
-#define IDirect3DMaterial_Unreserve(p)     (p)->Unreserve()
-#endif
-
-
-/*****************************************************************************
- * IDirect3DMaterial2 interface
- */
-#define INTERFACE IDirect3DMaterial2
-DECLARE_INTERFACE_(IDirect3DMaterial2,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DMaterial2 methods ***/
-    STDMETHOD(SetMaterial)(THIS_ LPD3DMATERIAL lpMat) PURE;
-    STDMETHOD(GetMaterial)(THIS_ LPD3DMATERIAL lpMat) PURE;
-    STDMETHOD(GetHandle)(THIS_ LPDIRECT3DDEVICE2 lpDirect3DDevice2, LPD3DMATERIALHANDLE lpHandle) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DMaterial2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DMaterial2_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DMaterial2_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3DMaterial2 methods ***/
-#define IDirect3DMaterial2_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
-#define IDirect3DMaterial2_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
-#define IDirect3DMaterial2_GetHandle(p,a,b) (p)->lpVtbl->GetHandle(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DMaterial2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DMaterial2_AddRef(p)             (p)->AddRef()
-#define IDirect3DMaterial2_Release(p)            (p)->Release()
-/*** IDirect3DMaterial2 methods ***/
-#define IDirect3DMaterial2_SetMaterial(p,a) (p)->SetMaterial(a)
-#define IDirect3DMaterial2_GetMaterial(p,a) (p)->GetMaterial(a)
-#define IDirect3DMaterial2_GetHandle(p,a,b) (p)->GetHandle(a,b)
-#endif
-
-
-/*****************************************************************************
- * IDirect3DMaterial3 interface
- */
-#define INTERFACE IDirect3DMaterial3
-DECLARE_INTERFACE_(IDirect3DMaterial3,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DMaterial3 methods ***/
-    STDMETHOD(SetMaterial)(THIS_ LPD3DMATERIAL lpMat) PURE;
-    STDMETHOD(GetMaterial)(THIS_ LPD3DMATERIAL lpMat) PURE;
-    STDMETHOD(GetHandle)(THIS_ LPDIRECT3DDEVICE3 lpDirect3DDevice3, LPD3DMATERIALHANDLE lpHandle) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DMaterial3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DMaterial3_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DMaterial3_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3DMaterial3 methods ***/
-#define IDirect3DMaterial3_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
-#define IDirect3DMaterial3_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
-#define IDirect3DMaterial3_GetHandle(p,a,b) (p)->lpVtbl->GetHandle(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DMaterial3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DMaterial3_AddRef(p)             (p)->AddRef()
-#define IDirect3DMaterial3_Release(p)            (p)->Release()
-/*** IDirect3DMaterial3 methods ***/
-#define IDirect3DMaterial3_SetMaterial(p,a) (p)->SetMaterial(a)
-#define IDirect3DMaterial3_GetMaterial(p,a) (p)->GetMaterial(a)
-#define IDirect3DMaterial3_GetHandle(p,a,b) (p)->GetHandle(a,b)
-#endif
-
-
-/*****************************************************************************
- * IDirect3DTexture interface
- */
-#define INTERFACE IDirect3DTexture
-DECLARE_INTERFACE_(IDirect3DTexture,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DTexture methods ***/
-    STDMETHOD(Initialize)(THIS_ LPDIRECT3DDEVICE lpDirect3DDevice, LPDIRECTDRAWSURFACE lpDDSurface) PURE;
-    STDMETHOD(GetHandle)(THIS_ LPDIRECT3DDEVICE lpDirect3DDevice, LPD3DTEXTUREHANDLE  lpHandle) PURE;
-    STDMETHOD(PaletteChanged)(THIS_ DWORD dwStart, DWORD dwCount) PURE;
-    STDMETHOD(Load)(THIS_ LPDIRECT3DTEXTURE lpD3DTexture) PURE;
-    STDMETHOD(Unload)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DTexture_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DTexture_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DTexture_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3DTexture methods ***/
-#define IDirect3DTexture_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
-#define IDirect3DTexture_GetHandle(p,a,b) (p)->lpVtbl->GetHandle(p,a,b)
-#define IDirect3DTexture_PaletteChanged(p,a,b) (p)->lpVtbl->PaletteChanged(p,a,b)
-#define IDirect3DTexture_Load(p,a) (p)->lpVtbl->Load(p,a)
-#define IDirect3DTexture_Unload(p) (p)->lpVtbl->Unload(p)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DTexture_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DTexture_AddRef(p)             (p)->AddRef()
-#define IDirect3DTexture_Release(p)            (p)->Release()
-/*** IDirect3DTexture methods ***/
-#define IDirect3DTexture_Initialize(p,a,b) (p)->Initialize(a,b)
-#define IDirect3DTexture_GetHandle(p,a,b) (p)->GetHandle(a,b)
-#define IDirect3DTexture_PaletteChanged(p,a,b) (p)->PaletteChanged(a,b)
-#define IDirect3DTexture_Load(p,a) (p)->Load(a)
-#define IDirect3DTexture_Unload(p) (p)->Unload()
-#endif
-
-
-/*****************************************************************************
- * IDirect3DTexture2 interface
- */
-#define INTERFACE IDirect3DTexture2
-DECLARE_INTERFACE_(IDirect3DTexture2,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DTexture2 methods ***/
-    STDMETHOD(GetHandle)(THIS_ LPDIRECT3DDEVICE2 lpDirect3DDevice2, LPD3DTEXTUREHANDLE lpHandle) PURE;
-    STDMETHOD(PaletteChanged)(THIS_ DWORD dwStart, DWORD dwCount) PURE;
-    STDMETHOD(Load)(THIS_ LPDIRECT3DTEXTURE2 lpD3DTexture2) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DTexture2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DTexture2_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DTexture2_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3DTexture2 methods ***/
-#define IDirect3DTexture2_GetHandle(p,a,b)      (p)->lpVtbl->GetHandle(p,a,b)
-#define IDirect3DTexture2_PaletteChanged(p,a,b) (p)->lpVtbl->PaletteChanged(p,a,b)
-#define IDirect3DTexture2_Load(p,a)             (p)->lpVtbl->Load(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DTexture2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DTexture2_AddRef(p)             (p)->AddRef()
-#define IDirect3DTexture2_Release(p)            (p)->Release()
-/*** IDirect3DTexture2 methods ***/
-#define IDirect3DTexture2_GetHandle(p,a,b)      (p)->GetHandle(a,b)
-#define IDirect3DTexture2_PaletteChanged(p,a,b) (p)->PaletteChanged(a,b)
-#define IDirect3DTexture2_Load(p,a)             (p)->Load(a)
-#endif
-
-
-/*****************************************************************************
- * IDirect3DViewport interface
- */
-#define INTERFACE IDirect3DViewport
-DECLARE_INTERFACE_(IDirect3DViewport,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DViewport methods ***/
-    STDMETHOD(Initialize)(THIS_ LPDIRECT3D lpDirect3D) PURE;
-    STDMETHOD(GetViewport)(THIS_ LPD3DVIEWPORT lpData) PURE;
-    STDMETHOD(SetViewport)(THIS_ LPD3DVIEWPORT lpData) PURE;
-    STDMETHOD(TransformVertices)(THIS_ DWORD dwVertexCount, LPD3DTRANSFORMDATA lpData, DWORD dwFlags, LPDWORD lpOffScreen) PURE;
-    STDMETHOD(LightElements)(THIS_ DWORD dwElementCount, LPD3DLIGHTDATA lpData) PURE;
-    STDMETHOD(SetBackground)(THIS_ D3DMATERIALHANDLE hMat) PURE;
-    STDMETHOD(GetBackground)(THIS_ LPD3DMATERIALHANDLE lphMat, LPBOOL lpValid) PURE;
-    STDMETHOD(SetBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE lpDDSurface) PURE;
-    STDMETHOD(GetBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE *lplpDDSurface, LPBOOL lpValid) PURE;
-    STDMETHOD(Clear)(THIS_ DWORD dwCount, LPD3DRECT lpRects, DWORD dwFlags) PURE;
-    STDMETHOD(AddLight)(THIS_ LPDIRECT3DLIGHT lpDirect3DLight) PURE;
-    STDMETHOD(DeleteLight)(THIS_ LPDIRECT3DLIGHT lpDirect3DLight) PURE;
-    STDMETHOD(NextLight)(THIS_ LPDIRECT3DLIGHT lpDirect3DLight, LPDIRECT3DLIGHT *lplpDirect3DLight, DWORD dwFlags) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DViewport_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DViewport_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DViewport_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3DViewport methods ***/
-#define IDirect3DViewport_Initialize(p,a)              (p)->lpVtbl->Initialize(p,a)
-#define IDirect3DViewport_GetViewport(p,a)             (p)->lpVtbl->GetViewport(p,a)
-#define IDirect3DViewport_SetViewport(p,a)             (p)->lpVtbl->SetViewport(p,a)
-#define IDirect3DViewport_TransformVertices(p,a,b,c,d) (p)->lpVtbl->TransformVertices(p,a,b,c,d)
-#define IDirect3DViewport_LightElements(p,a,b)         (p)->lpVtbl->LightElements(p,a,b)
-#define IDirect3DViewport_SetBackground(p,a)           (p)->lpVtbl->SetBackground(p,a)
-#define IDirect3DViewport_GetBackground(p,a,b)         (p)->lpVtbl->GetBackground(p,a,b)
-#define IDirect3DViewport_SetBackgroundDepth(p,a)      (p)->lpVtbl->SetBackgroundDepth(p,a)
-#define IDirect3DViewport_GetBackgroundDepth(p,a,b)    (p)->lpVtbl->GetBackgroundDepth(p,a,b)
-#define IDirect3DViewport_Clear(p,a,b,c)               (p)->lpVtbl->Clear(p,a,b,c)
-#define IDirect3DViewport_AddLight(p,a)                (p)->lpVtbl->AddLight(p,a)
-#define IDirect3DViewport_DeleteLight(p,a)             (p)->lpVtbl->DeleteLight(p,a)
-#define IDirect3DViewport_NextLight(p,a,b,c)           (p)->lpVtbl->NextLight(p,a,b,c)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DViewport_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DViewport_AddRef(p)             (p)->AddRef()
-#define IDirect3DViewport_Release(p)            (p)->Release()
-/*** IDirect3DViewport methods ***/
-#define IDirect3DViewport_Initialize(p,a)              (p)->Initialize(a)
-#define IDirect3DViewport_GetViewport(p,a)             (p)->GetViewport(a)
-#define IDirect3DViewport_SetViewport(p,a)             (p)->SetViewport(a)
-#define IDirect3DViewport_TransformVertices(p,a,b,c,d) (p)->TransformVertices(a,b,c,d)
-#define IDirect3DViewport_LightElements(p,a,b)         (p)->LightElements(a,b)
-#define IDirect3DViewport_SetBackground(p,a)           (p)->SetBackground(a)
-#define IDirect3DViewport_GetBackground(p,a,b)         (p)->GetBackground(a,b)
-#define IDirect3DViewport_SetBackgroundDepth(p,a)      (p)->SetBackgroundDepth(a)
-#define IDirect3DViewport_GetBackgroundDepth(p,a,b)    (p)->GetBackgroundDepth(a,b)
-#define IDirect3DViewport_Clear(p,a,b,c)               (p)->Clear(a,b,c)
-#define IDirect3DViewport_AddLight(p,a)                (p)->AddLight(a)
-#define IDirect3DViewport_DeleteLight(p,a)             (p)->DeleteLight(a)
-#define IDirect3DViewport_NextLight(p,a,b,c)           (p)->NextLight(a,b,c)
-#endif
-
-
-/*****************************************************************************
- * IDirect3DViewport2 interface
- */
-#define INTERFACE IDirect3DViewport2
-DECLARE_INTERFACE_(IDirect3DViewport2,IDirect3DViewport)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DViewport methods ***/
-    STDMETHOD(Initialize)(THIS_ LPDIRECT3D lpDirect3D) PURE;
-    STDMETHOD(GetViewport)(THIS_ LPD3DVIEWPORT lpData) PURE;
-    STDMETHOD(SetViewport)(THIS_ LPD3DVIEWPORT lpData) PURE;
-    STDMETHOD(TransformVertices)(THIS_ DWORD dwVertexCount, LPD3DTRANSFORMDATA lpData, DWORD dwFlags, LPDWORD lpOffScreen) PURE;
-    STDMETHOD(LightElements)(THIS_ DWORD dwElementCount, LPD3DLIGHTDATA lpData) PURE;
-    STDMETHOD(SetBackground)(THIS_ D3DMATERIALHANDLE hMat) PURE;
-    STDMETHOD(GetBackground)(THIS_ LPD3DMATERIALHANDLE lphMat, LPBOOL lpValid) PURE;
-    STDMETHOD(SetBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE lpDDSurface) PURE;
-    STDMETHOD(GetBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE *lplpDDSurface, LPBOOL lpValid) PURE;
-    STDMETHOD(Clear)(THIS_ DWORD dwCount, LPD3DRECT lpRects, DWORD dwFlags) PURE;
-    STDMETHOD(AddLight)(THIS_ LPDIRECT3DLIGHT lpDirect3DLight) PURE;
-    STDMETHOD(DeleteLight)(THIS_ LPDIRECT3DLIGHT lpDirect3DLight) PURE;
-    STDMETHOD(NextLight)(THIS_ LPDIRECT3DLIGHT lpDirect3DLight, LPDIRECT3DLIGHT *lplpDirect3DLight, DWORD dwFlags) PURE;
-    /*** IDirect3DViewport2 methods ***/
-    STDMETHOD(GetViewport2)(THIS_ LPD3DVIEWPORT2 lpData) PURE;
-    STDMETHOD(SetViewport2)(THIS_ LPD3DVIEWPORT2 lpData) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DViewport2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DViewport2_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DViewport2_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3Viewport methods ***/
-#define IDirect3DViewport2_Initialize(p,a)              (p)->lpVtbl->Initialize(p,a)
-#define IDirect3DViewport2_GetViewport(p,a)             (p)->lpVtbl->GetViewport(p,a)
-#define IDirect3DViewport2_SetViewport(p,a)             (p)->lpVtbl->SetViewport(p,a)
-#define IDirect3DViewport2_TransformVertices(p,a,b,c,d) (p)->lpVtbl->TransformVertices(p,a,b,c,d)
-#define IDirect3DViewport2_LightElements(p,a,b)         (p)->lpVtbl->LightElements(p,a,b)
-#define IDirect3DViewport2_SetBackground(p,a)           (p)->lpVtbl->SetBackground(p,a)
-#define IDirect3DViewport2_GetBackground(p,a,b)         (p)->lpVtbl->GetBackground(p,a,b)
-#define IDirect3DViewport2_SetBackgroundDepth(p,a)      (p)->lpVtbl->SetBackgroundDepth(p,a)
-#define IDirect3DViewport2_GetBackgroundDepth(p,a,b)    (p)->lpVtbl->GetBackgroundDepth(p,a,b)
-#define IDirect3DViewport2_Clear(p,a,b,c)               (p)->lpVtbl->Clear(p,a,b,c)
-#define IDirect3DViewport2_AddLight(p,a)                (p)->lpVtbl->AddLight(p,a)
-#define IDirect3DViewport2_DeleteLight(p,a)             (p)->lpVtbl->DeleteLight(p,a)
-#define IDirect3DViewport2_NextLight(p,a,b,c)           (p)->lpVtbl->NextLight(p,a,b,c)
-/*** IDirect3DViewport2 methods ***/
-#define IDirect3DViewport2_GetViewport2(p,a) (p)->lpVtbl->GetViewport2(p,a)
-#define IDirect3DViewport2_SetViewport2(p,a) (p)->lpVtbl->SetViewport2(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DViewport2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DViewport2_AddRef(p)             (p)->AddRef()
-#define IDirect3DViewport2_Release(p)            (p)->Release()
-/*** IDirect3Viewport methods ***/
-#define IDirect3DViewport2_Initialize(p,a)              (p)->Initialize(a)
-#define IDirect3DViewport2_GetViewport(p,a)             (p)->GetViewport(a)
-#define IDirect3DViewport2_SetViewport(p,a)             (p)->SetViewport(a)
-#define IDirect3DViewport2_TransformVertices(p,a,b,c,d) (p)->TransformVertices(a,b,c,d)
-#define IDirect3DViewport2_LightElements(p,a,b)         (p)->LightElements(a,b)
-#define IDirect3DViewport2_SetBackground(p,a)           (p)->SetBackground(a)
-#define IDirect3DViewport2_GetBackground(p,a,b)         (p)->GetBackground(a,b)
-#define IDirect3DViewport2_SetBackgroundDepth(p,a)      (p)->SetBackgroundDepth(a)
-#define IDirect3DViewport2_GetBackgroundDepth(p,a,b)    (p)->GetBackgroundDepth(a,b)
-#define IDirect3DViewport2_Clear(p,a,b,c)               (p)->Clear(a,b,c)
-#define IDirect3DViewport2_AddLight(p,a)                (p)->AddLight(a)
-#define IDirect3DViewport2_DeleteLight(p,a)             (p)->DeleteLight(a)
-#define IDirect3DViewport2_NextLight(p,a,b,c)           (p)->NextLight(a,b,c)
-/*** IDirect3DViewport2 methods ***/
-#define IDirect3DViewport2_GetViewport2(p,a) (p)->GetViewport2(a)
-#define IDirect3DViewport2_SetViewport2(p,a) (p)->SetViewport2(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DViewport3 interface
- */
-#define INTERFACE IDirect3DViewport3
-DECLARE_INTERFACE_(IDirect3DViewport3,IDirect3DViewport2)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DViewport methods ***/
-    STDMETHOD(Initialize)(THIS_ LPDIRECT3D lpDirect3D) PURE;
-    STDMETHOD(GetViewport)(THIS_ LPD3DVIEWPORT lpData) PURE;
-    STDMETHOD(SetViewport)(THIS_ LPD3DVIEWPORT lpData) PURE;
-    STDMETHOD(TransformVertices)(THIS_ DWORD dwVertexCount, LPD3DTRANSFORMDATA lpData, DWORD dwFlags, LPDWORD lpOffScreen) PURE;
-    STDMETHOD(LightElements)(THIS_ DWORD dwElementCount, LPD3DLIGHTDATA lpData) PURE;
-    STDMETHOD(SetBackground)(THIS_ D3DMATERIALHANDLE hMat) PURE;
-    STDMETHOD(GetBackground)(THIS_ LPD3DMATERIALHANDLE lphMat, LPBOOL lpValid) PURE;
-    STDMETHOD(SetBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE lpDDSurface) PURE;
-    STDMETHOD(GetBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE *lplpDDSurface, LPBOOL lpValid) PURE;
-    STDMETHOD(Clear)(THIS_ DWORD dwCount, LPD3DRECT lpRects, DWORD dwFlags) PURE;
-    STDMETHOD(AddLight)(THIS_ LPDIRECT3DLIGHT lpDirect3DLight) PURE;
-    STDMETHOD(DeleteLight)(THIS_ LPDIRECT3DLIGHT lpDirect3DLight) PURE;
-    STDMETHOD(NextLight)(THIS_ LPDIRECT3DLIGHT lpDirect3DLight, LPDIRECT3DLIGHT *lplpDirect3DLight, DWORD dwFlags) PURE;
-    /*** IDirect3DViewport2 methods ***/
-    STDMETHOD(GetViewport2)(THIS_ LPD3DVIEWPORT2 lpData) PURE;
-    STDMETHOD(SetViewport2)(THIS_ LPD3DVIEWPORT2 lpData) PURE;
-    /*** IDirect3DViewport3 methods ***/
-    STDMETHOD(SetBackgroundDepth2)(THIS_ LPDIRECTDRAWSURFACE4 lpDDS) PURE;
-    STDMETHOD(GetBackgroundDepth2)(THIS_ LPDIRECTDRAWSURFACE4 *lplpDDS,LPBOOL lpValid) PURE;
-    STDMETHOD(Clear2)(THIS_ DWORD dwCount,LPD3DRECT lpRects,DWORD dwFlags,DWORD dwColor,D3DVALUE dvZ,DWORD dwStencil) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DViewport3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DViewport3_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DViewport3_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3Viewport methods ***/
-#define IDirect3DViewport3_Initialize(p,a)              (p)->lpVtbl->Initialize(p,a)
-#define IDirect3DViewport3_GetViewport(p,a)             (p)->lpVtbl->GetViewport(p,a)
-#define IDirect3DViewport3_SetViewport(p,a)             (p)->lpVtbl->SetViewport(p,a)
-#define IDirect3DViewport3_TransformVertices(p,a,b,c,d) (p)->lpVtbl->TransformVertices(p,a,b,c,d)
-#define IDirect3DViewport3_LightElements(p,a,b)         (p)->lpVtbl->LightElements(p,a,b)
-#define IDirect3DViewport3_SetBackground(p,a)           (p)->lpVtbl->SetBackground(p,a)
-#define IDirect3DViewport3_GetBackground(p,a,b)         (p)->lpVtbl->GetBackground(p,a,b)
-#define IDirect3DViewport3_SetBackgroundDepth(p,a)      (p)->lpVtbl->SetBackgroundDepth(p,a)
-#define IDirect3DViewport3_GetBackgroundDepth(p,a,b)    (p)->lpVtbl->GetBackgroundDepth(p,a,b)
-#define IDirect3DViewport3_Clear(p,a,b,c)               (p)->lpVtbl->Clear(p,a,b,c)
-#define IDirect3DViewport3_AddLight(p,a)                (p)->lpVtbl->AddLight(p,a)
-#define IDirect3DViewport3_DeleteLight(p,a)             (p)->lpVtbl->DeleteLight(p,a)
-#define IDirect3DViewport3_NextLight(p,a,b,c)           (p)->lpVtbl->NextLight(p,a,b,c)
-/*** IDirect3DViewport2 methods ***/
-#define IDirect3DViewport3_GetViewport2(p,a) (p)->lpVtbl->GetViewport2(p,a)
-#define IDirect3DViewport3_SetViewport2(p,a) (p)->lpVtbl->SetViewport2(p,a)
-/*** IDirect3DViewport3 methods ***/
-#define IDirect3DViewport3_SetBackgroundDepth2(p,a)   (p)->lpVtbl->SetBackgroundDepth2(p,a)
-#define IDirect3DViewport3_GetBackgroundDepth2(p,a,b) (p)->lpVtbl->GetBackgroundDepth2(p,a,b)
-#define IDirect3DViewport3_Clear2(p,a,b,c,d,e,f)      (p)->lpVtbl->Clear2(p,a,b,c,d,e,f)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DViewport3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DViewport3_AddRef(p)             (p)->AddRef()
-#define IDirect3DViewport3_Release(p)            (p)->Release()
-/*** IDirect3Viewport methods ***/
-#define IDirect3DViewport3_Initialize(p,a)              (p)->Initialize(a)
-#define IDirect3DViewport3_GetViewport(p,a)             (p)->GetViewport(a)
-#define IDirect3DViewport3_SetViewport(p,a)             (p)->SetViewport(a)
-#define IDirect3DViewport3_TransformVertices(p,a,b,c,d) (p)->TransformVertices(a,b,c,d)
-#define IDirect3DViewport3_LightElements(p,a,b)         (p)->LightElements(a,b)
-#define IDirect3DViewport3_SetBackground(p,a)           (p)->SetBackground(a)
-#define IDirect3DViewport3_GetBackground(p,a,b)         (p)->GetBackground(a,b)
-#define IDirect3DViewport3_SetBackgroundDepth(p,a)      (p)->SetBackgroundDepth(a)
-#define IDirect3DViewport3_GetBackgroundDepth(p,a,b)    (p)->GetBackgroundDepth(a,b)
-#define IDirect3DViewport3_Clear(p,a,b,c)               (p)->Clear(a,b,c)
-#define IDirect3DViewport3_AddLight(p,a)                (p)->AddLight(a)
-#define IDirect3DViewport3_DeleteLight(p,a)             (p)->DeleteLight(a)
-#define IDirect3DViewport3_NextLight(p,a,b,c)           (p)->NextLight(a,b,c)
-/*** IDirect3DViewport2 methods ***/
-#define IDirect3DViewport3_GetViewport2(p,a) (p)->GetViewport2(a)
-#define IDirect3DViewport3_SetViewport2(p,a) (p)->SetViewport2(a)
-/*** IDirect3DViewport3 methods ***/
-#define IDirect3DViewport3_SetBackgroundDepth2(p,a)   (p)->SetBackgroundDepth2(a)
-#define IDirect3DViewport3_GetBackgroundDepth2(p,a,b) (p)->GetBackgroundDepth2(a,b)
-#define IDirect3DViewport3_Clear2(p,a,b,c,d,e,f)      (p)->Clear2(a,b,c,d,e,f)
-#endif
-
-
-
-/*****************************************************************************
- * IDirect3DExecuteBuffer interface
- */
-#define INTERFACE IDirect3DExecuteBuffer
-DECLARE_INTERFACE_(IDirect3DExecuteBuffer,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DExecuteBuffer methods ***/
-    STDMETHOD(Initialize)(THIS_ LPDIRECT3DDEVICE lpDirect3DDevice, LPD3DEXECUTEBUFFERDESC lpDesc) PURE;
-    STDMETHOD(Lock)(THIS_ LPD3DEXECUTEBUFFERDESC lpDesc) PURE;
-    STDMETHOD(Unlock)(THIS) PURE;
-    STDMETHOD(SetExecuteData)(THIS_ LPD3DEXECUTEDATA lpData) PURE;
-    STDMETHOD(GetExecuteData)(THIS_ LPD3DEXECUTEDATA lpData) PURE;
-    STDMETHOD(Validate)(THIS_ LPDWORD lpdwOffset, LPD3DVALIDATECALLBACK lpFunc, LPVOID lpUserArg, DWORD dwReserved) PURE;
-    STDMETHOD(Optimize)(THIS_ DWORD dwDummy) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DExecuteBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DExecuteBuffer_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DExecuteBuffer_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3DExecuteBuffer methods ***/
-#define IDirect3DExecuteBuffer_Initialize(p,a,b)   (p)->lpVtbl->Initialize(p,a,b)
-#define IDirect3DExecuteBuffer_Lock(p,a)           (p)->lpVtbl->Lock(p,a)
-#define IDirect3DExecuteBuffer_Unlock(p)           (p)->lpVtbl->Unlock(p)
-#define IDirect3DExecuteBuffer_SetExecuteData(p,a) (p)->lpVtbl->SetExecuteData(p,a)
-#define IDirect3DExecuteBuffer_GetExecuteData(p,a) (p)->lpVtbl->GetExecuteData(p,a)
-#define IDirect3DExecuteBuffer_Validate(p,a,b,c,d) (p)->lpVtbl->Validate(p,a,b,c,d)
-#define IDirect3DExecuteBuffer_Optimize(p,a)       (p)->lpVtbl->Optimize(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DExecuteBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DExecuteBuffer_AddRef(p)             (p)->AddRef()
-#define IDirect3DExecuteBuffer_Release(p)            (p)->Release()
-/*** IDirect3DExecuteBuffer methods ***/
-#define IDirect3DExecuteBuffer_Initialize(p,a,b)   (p)->Initialize(a,b)
-#define IDirect3DExecuteBuffer_Lock(p,a)           (p)->Lock(a)
-#define IDirect3DExecuteBuffer_Unlock(p)           (p)->Unlock()
-#define IDirect3DExecuteBuffer_SetExecuteData(p,a) (p)->SetExecuteData(a)
-#define IDirect3DExecuteBuffer_GetExecuteData(p,a) (p)->GetExecuteData(a)
-#define IDirect3DExecuteBuffer_Validate(p,a,b,c,d) (p)->Validate(a,b,c,d)
-#define IDirect3DExecuteBuffer_Optimize(p,a)       (p)->Optimize(a)
-#endif
-
-
-/*****************************************************************************
- * IDirect3DDevice interface
- */
-#define INTERFACE IDirect3DDevice
-DECLARE_INTERFACE_(IDirect3DDevice,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DDevice methods ***/
-    STDMETHOD(Initialize)(THIS_ LPDIRECT3D lpDirect3D, LPGUID lpGUID, LPD3DDEVICEDESC lpD3DDVDesc) PURE;
-    STDMETHOD(GetCaps)(THIS_ LPD3DDEVICEDESC lpD3DHWDevDesc, LPD3DDEVICEDESC lpD3DHELDevDesc) PURE;
-    STDMETHOD(SwapTextureHandles)(THIS_ LPDIRECT3DTEXTURE lpD3Dtex1, LPDIRECT3DTEXTURE lpD3DTex2) PURE;
-    STDMETHOD(CreateExecuteBuffer)(THIS_ LPD3DEXECUTEBUFFERDESC lpDesc, LPDIRECT3DEXECUTEBUFFER *lplpDirect3DExecuteBuffer, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(GetStats)(THIS_ LPD3DSTATS lpD3DStats) PURE;
-    STDMETHOD(Execute)(THIS_ LPDIRECT3DEXECUTEBUFFER lpDirect3DExecuteBuffer, LPDIRECT3DVIEWPORT lpDirect3DViewport, DWORD dwFlags) PURE;
-    STDMETHOD(AddViewport)(THIS_ LPDIRECT3DVIEWPORT lpDirect3DViewport) PURE;
-    STDMETHOD(DeleteViewport)(THIS_ LPDIRECT3DVIEWPORT lpDirect3DViewport) PURE;
-    STDMETHOD(NextViewport)(THIS_ LPDIRECT3DVIEWPORT lpDirect3DViewport, LPDIRECT3DVIEWPORT *lplpDirect3DViewport, DWORD dwFlags) PURE;
-    STDMETHOD(Pick)(THIS_ LPDIRECT3DEXECUTEBUFFER lpDirect3DExecuteBuffer, LPDIRECT3DVIEWPORT lpDirect3DViewport, DWORD dwFlags, LPD3DRECT lpRect) PURE;
-    STDMETHOD(GetPickRecords)(THIS_ LPDWORD lpCount, LPD3DPICKRECORD lpD3DPickRec) PURE;
-    STDMETHOD(EnumTextureFormats)(THIS_ LPD3DENUMTEXTUREFORMATSCALLBACK lpD3DEnumTextureProc, LPVOID lpArg) PURE;
-    STDMETHOD(CreateMatrix)(THIS_ LPD3DMATRIXHANDLE lpD3DMatHandle) PURE;
-    STDMETHOD(SetMatrix)(THIS_ D3DMATRIXHANDLE D3DMatHandle, LPD3DMATRIX lpD3DMatrix) PURE;
-    STDMETHOD(GetMatrix)(THIS_ D3DMATRIXHANDLE D3DMatHandle, LPD3DMATRIX lpD3DMatrix) PURE;
-    STDMETHOD(DeleteMatrix)(THIS_ D3DMATRIXHANDLE D3DMatHandle) PURE;
-    STDMETHOD(BeginScene)(THIS) PURE;
-    STDMETHOD(EndScene)(THIS) PURE;
-    STDMETHOD(GetDirect3D)(THIS_ LPDIRECT3D *lplpDirect3D) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DDevice_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DDevice_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DDevice_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3DDevice methods ***/
-#define IDirect3DDevice_Initialize(p,a,b,c)          (p)->lpVtbl->Initialize(p,a,b,c)
-#define IDirect3DDevice_GetCaps(p,a,b)               (p)->lpVtbl->GetCaps(p,a,b)
-#define IDirect3DDevice_SwapTextureHandles(p,a,b)    (p)->lpVtbl->SwapTextureHandles(p,a,b)
-#define IDirect3DDevice_CreateExecuteBuffer(p,a,b,c) (p)->lpVtbl->CreateExecuteBuffer(p,a,b,c)
-#define IDirect3DDevice_GetStats(p,a)                (p)->lpVtbl->GetStats(p,a)
-#define IDirect3DDevice_Execute(p,a,b,c)             (p)->lpVtbl->Execute(p,a,b,c)
-#define IDirect3DDevice_AddViewport(p,a)             (p)->lpVtbl->AddViewport(p,a)
-#define IDirect3DDevice_DeleteViewport(p,a)          (p)->lpVtbl->DeleteViewport(p,a)
-#define IDirect3DDevice_NextViewport(p,a,b,c)        (p)->lpVtbl->NextViewport(p,a,b,c)
-#define IDirect3DDevice_Pick(p,a,b,c,d)              (p)->lpVtbl->Pick(p,a,b,c,d)
-#define IDirect3DDevice_GetPickRecords(p,a,b)        (p)->lpVtbl->GetPickRecords(p,a,b)
-#define IDirect3DDevice_EnumTextureFormats(p,a,b)    (p)->lpVtbl->EnumTextureFormats(p,a,b)
-#define IDirect3DDevice_CreateMatrix(p,a)            (p)->lpVtbl->CreateMatrix(p,a)
-#define IDirect3DDevice_SetMatrix(p,a,b)             (p)->lpVtbl->SetMatrix(p,a,b)
-#define IDirect3DDevice_GetMatrix(p,a,b)             (p)->lpVtbl->GetMatrix(p,a,b)
-#define IDirect3DDevice_DeleteMatrix(p,a)            (p)->lpVtbl->DeleteMatrix(p,a)
-#define IDirect3DDevice_BeginScene(p)                (p)->lpVtbl->BeginScene(p)
-#define IDirect3DDevice_EndScene(p)                  (p)->lpVtbl->EndScene(p)
-#define IDirect3DDevice_GetDirect3D(p,a)             (p)->lpVtbl->GetDirect3D(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DDevice_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DDevice_AddRef(p)             (p)->AddRef()
-#define IDirect3DDevice_Release(p)            (p)->Release()
-/*** IDirect3DDevice methods ***/
-#define IDirect3DDevice_Initialize(p,a,b,c)          (p)->Initialize(a,b,c)
-#define IDirect3DDevice_GetCaps(p,a,b)               (p)->GetCaps(a,b)
-#define IDirect3DDevice_SwapTextureHandles(p,a,b)    (p)->SwapTextureHandles(a,b)
-#define IDirect3DDevice_CreateExecuteBuffer(p,a,b,c) (p)->CreateExecuteBuffer(a,b,c)
-#define IDirect3DDevice_GetStats(p,a)                (p)->GetStats(a)
-#define IDirect3DDevice_Execute(p,a,b,c)             (p)->Execute(a,b,c)
-#define IDirect3DDevice_AddViewport(p,a)             (p)->AddViewport(a)
-#define IDirect3DDevice_DeleteViewport(p,a)          (p)->DeleteViewport(a)
-#define IDirect3DDevice_NextViewport(p,a,b,c)        (p)->NextViewport(a,b,c)
-#define IDirect3DDevice_Pick(p,a,b,c,d)              (p)->Pick(a,b,c,d)
-#define IDirect3DDevice_GetPickRecords(p,a,b)        (p)->GetPickRecords(a,b)
-#define IDirect3DDevice_EnumTextureFormats(p,a,b)    (p)->EnumTextureFormats(a,b)
-#define IDirect3DDevice_CreateMatrix(p,a)            (p)->CreateMatrix(a)
-#define IDirect3DDevice_SetMatrix(p,a,b)             (p)->SetMatrix(a,b)
-#define IDirect3DDevice_GetMatrix(p,a,b)             (p)->GetMatrix(a,b)
-#define IDirect3DDevice_DeleteMatrix(p,a)            (p)->DeleteMatrix(a)
-#define IDirect3DDevice_BeginScene(p)                (p)->BeginScene()
-#define IDirect3DDevice_EndScene(p)                  (p)->EndScene()
-#define IDirect3DDevice_GetDirect3D(p,a)             (p)->GetDirect3D(a)
-#endif
-
-
-/*****************************************************************************
- * IDirect3DDevice2 interface
- */
-#define INTERFACE IDirect3DDevice2
-DECLARE_INTERFACE_(IDirect3DDevice2,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DDevice2 methods ***/
-    STDMETHOD(GetCaps)(THIS_ LPD3DDEVICEDESC lpD3DHWDevDesc, LPD3DDEVICEDESC lpD3DHELDevDesc) PURE;
-    STDMETHOD(SwapTextureHandles)(THIS_ LPDIRECT3DTEXTURE2 lpD3DTex1, LPDIRECT3DTEXTURE2 lpD3DTex2) PURE;
-    STDMETHOD(GetStats)(THIS_ LPD3DSTATS lpD3DStats) PURE;
-    STDMETHOD(AddViewport)(THIS_ LPDIRECT3DVIEWPORT2 lpDirect3DViewport2) PURE;
-    STDMETHOD(DeleteViewport)(THIS_ LPDIRECT3DVIEWPORT2 lpDirect3DViewport2) PURE;
-    STDMETHOD(NextViewport)(THIS_ LPDIRECT3DVIEWPORT2 lpDirect3DViewport2, LPDIRECT3DVIEWPORT2 *lplpDirect3DViewport2, DWORD dwFlags) PURE;
-    STDMETHOD(EnumTextureFormats)(THIS_ LPD3DENUMTEXTUREFORMATSCALLBACK lpD3DEnumTextureProc, LPVOID lpArg) PURE;
-    STDMETHOD(BeginScene)(THIS) PURE;
-    STDMETHOD(EndScene)(THIS) PURE;
-    STDMETHOD(GetDirect3D)(THIS_ LPDIRECT3D2 *lplpDirect3D2) PURE;
-    /*** DrawPrimitive API ***/
-    STDMETHOD(SetCurrentViewport)(THIS_ LPDIRECT3DVIEWPORT2 lpDirect3DViewport2) PURE;
-    STDMETHOD(GetCurrentViewport)(THIS_ LPDIRECT3DVIEWPORT2 *lplpDirect3DViewport2) PURE;
-    STDMETHOD(SetRenderTarget)(THIS_ LPDIRECTDRAWSURFACE lpNewRenderTarget, DWORD dwFlags) PURE;
-    STDMETHOD(GetRenderTarget)(THIS_ LPDIRECTDRAWSURFACE *lplpRenderTarget) PURE;
-    STDMETHOD(Begin)(THIS_ D3DPRIMITIVETYPE d3dpt,D3DVERTEXTYPE dwVertexTypeDesc,DWORD dwFlags) PURE;
-    STDMETHOD(BeginIndexed)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType, D3DVERTEXTYPE d3dvtVertexType, LPVOID lpvVertices, DWORD dwNumVertices, DWORD dwFlags) PURE;
-    STDMETHOD(Vertex)(THIS_ LPVOID lpVertexType) PURE;
-    STDMETHOD(Index)(THIS_ WORD wVertexIndex) PURE;
-    STDMETHOD(End)(THIS_ DWORD dwFlags) PURE;
-    STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, LPDWORD lpdwRenderState) PURE;
-    STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, DWORD dwRenderState) PURE;
-    STDMETHOD(GetLightState)(THIS_ D3DLIGHTSTATETYPE dwLightStateType, LPDWORD lpdwLightState) PURE;
-    STDMETHOD(SetLightState)(THIS_ D3DLIGHTSTATETYPE dwLightStateType, DWORD dwLightState) PURE;
-    STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix) PURE;
-    STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix) PURE;
-    STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix) PURE;
-    STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType, D3DVERTEXTYPE d3dvtVertexType, LPVOID lpvVertices, DWORD dwVertexCount, DWORD dwFlags) PURE;
-    STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType, D3DVERTEXTYPE d3dvtVertexType, LPVOID lpvVertices, DWORD dwVertexCount, LPWORD dwIndices, DWORD dwIndexCount, DWORD dwFlags) PURE;
-    STDMETHOD(SetClipStatus)(THIS_ LPD3DCLIPSTATUS lpD3DClipStatus) PURE;
-    STDMETHOD(GetClipStatus)(THIS_ LPD3DCLIPSTATUS lpD3DClipStatus) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DDevice2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DDevice2_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DDevice2_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3DDevice2 methods ***/
-#define IDirect3DDevice2_GetCaps(p,a,b)                        (p)->lpVtbl->GetCaps(p,a,b)
-#define IDirect3DDevice2_SwapTextureHandles(p,a,b)             (p)->lpVtbl->SwapTextureHandles(p,a,b)
-#define IDirect3DDevice2_GetStats(p,a)                         (p)->lpVtbl->GetStats(p,a)
-#define IDirect3DDevice2_AddViewport(p,a)                      (p)->lpVtbl->AddViewport(p,a)
-#define IDirect3DDevice2_DeleteViewport(p,a)                   (p)->lpVtbl->DeleteViewport(p,a)
-#define IDirect3DDevice2_NextViewport(p,a,b,c)                 (p)->lpVtbl->NextViewport(p,a,b,c)
-#define IDirect3DDevice2_EnumTextureFormats(p,a,b)             (p)->lpVtbl->EnumTextureFormats(p,a,b)
-#define IDirect3DDevice2_BeginScene(p)                         (p)->lpVtbl->BeginScene(p)
-#define IDirect3DDevice2_EndScene(p)                           (p)->lpVtbl->EndScene(p)
-#define IDirect3DDevice2_GetDirect3D(p,a)                      (p)->lpVtbl->GetDirect3D(p,a)
-#define IDirect3DDevice2_SetCurrentViewport(p,a)               (p)->lpVtbl->SetCurrentViewport(p,a)
-#define IDirect3DDevice2_GetCurrentViewport(p,a)               (p)->lpVtbl->GetCurrentViewport(p,a)
-#define IDirect3DDevice2_SetRenderTarget(p,a,b)                (p)->lpVtbl->SetRenderTarget(p,a,b)
-#define IDirect3DDevice2_GetRenderTarget(p,a)                  (p)->lpVtbl->GetRenderTarget(p,a)
-#define IDirect3DDevice2_Begin(p,a,b,c)                        (p)->lpVtbl->Begin(p,a,b,c)
-#define IDirect3DDevice2_BeginIndexed(p,a,b,c,d,e)             (p)->lpVtbl->BeginIndexed(p,a,b,c,d,e)
-#define IDirect3DDevice2_Vertex(p,a)                           (p)->lpVtbl->Vertex(p,a)
-#define IDirect3DDevice2_Index(p,a)                            (p)->lpVtbl->Index(p,a)
-#define IDirect3DDevice2_End(p,a)                              (p)->lpVtbl->End(p,a)
-#define IDirect3DDevice2_GetRenderState(p,a,b)                 (p)->lpVtbl->GetRenderState(p,a,b)
-#define IDirect3DDevice2_SetRenderState(p,a,b)                 (p)->lpVtbl->SetRenderState(p,a,b)
-#define IDirect3DDevice2_GetLightState(p,a,b)                  (p)->lpVtbl->GetLightState(p,a,b)
-#define IDirect3DDevice2_SetLightState(p,a,b)                  (p)->lpVtbl->SetLightState(p,a,b)
-#define IDirect3DDevice2_SetTransform(p,a,b)                   (p)->lpVtbl->SetTransform(p,a,b)
-#define IDirect3DDevice2_GetTransform(p,a,b)                   (p)->lpVtbl->GetTransform(p,a,b)
-#define IDirect3DDevice2_MultiplyTransform(p,a,b)              (p)->lpVtbl->MultiplyTransform(p,a,b)
-#define IDirect3DDevice2_DrawPrimitive(p,a,b,c,d,e)            (p)->lpVtbl->DrawPrimitive(p,a,b,c,d,e)
-#define IDirect3DDevice2_DrawIndexedPrimitive(p,a,b,c,d,e,f,g) (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f,g)
-#define IDirect3DDevice2_SetClipStatus(p,a)                    (p)->lpVtbl->SetClipStatus(p,a)
-#define IDirect3DDevice2_GetClipStatus(p,a)                    (p)->lpVtbl->GetClipStatus(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DDevice2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DDevice2_AddRef(p)             (p)->AddRef()
-#define IDirect3DDevice2_Release(p)            (p)->Release()
-/*** IDirect3DDevice2 methods ***/
-#define IDirect3DDevice2_GetCaps(p,a,b)                        (p)->GetCaps(a,b)
-#define IDirect3DDevice2_SwapTextureHandles(p,a,b)             (p)->SwapTextureHandles(a,b)
-#define IDirect3DDevice2_GetStats(p,a)                         (p)->GetStats(a)
-#define IDirect3DDevice2_AddViewport(p,a)                      (p)->AddViewport(a)
-#define IDirect3DDevice2_DeleteViewport(p,a)                   (p)->DeleteViewport(a)
-#define IDirect3DDevice2_NextViewport(p,a,b,c)                 (p)->NextViewport(a,b,c)
-#define IDirect3DDevice2_EnumTextureFormats(p,a,b)             (p)->EnumTextureFormats(a,b)
-#define IDirect3DDevice2_BeginScene(p)                         (p)->BeginScene()
-#define IDirect3DDevice2_EndScene(p)                           (p)->EndScene()
-#define IDirect3DDevice2_GetDirect3D(p,a)                      (p)->GetDirect3D(a)
-#define IDirect3DDevice2_SetCurrentViewport(p,a)               (p)->SetCurrentViewport(a)
-#define IDirect3DDevice2_GetCurrentViewport(p,a)               (p)->GetCurrentViewport(a)
-#define IDirect3DDevice2_SetRenderTarget(p,a,b)                (p)->SetRenderTarget(a,b)
-#define IDirect3DDevice2_GetRenderTarget(p,a)                  (p)->GetRenderTarget(a)
-#define IDirect3DDevice2_Begin(p,a,b,c)                        (p)->Begin(a,b,c)
-#define IDirect3DDevice2_BeginIndexed(p,a,b,c,d,e)             (p)->BeginIndexed(a,b,c,d,e)
-#define IDirect3DDevice2_Vertex(p,a)                           (p)->Vertex(a)
-#define IDirect3DDevice2_Index(p,a)                            (p)->Index(a)
-#define IDirect3DDevice2_End(p,a)                              (p)->End(a)
-#define IDirect3DDevice2_GetRenderState(p,a,b)                 (p)->GetRenderState(a,b)
-#define IDirect3DDevice2_SetRenderState(p,a,b)                 (p)->SetRenderState(a,b)
-#define IDirect3DDevice2_GetLightState(p,a,b)                  (p)->GetLightState(a,b)
-#define IDirect3DDevice2_SetLightState(p,a,b)                  (p)->SetLightState(a,b)
-#define IDirect3DDevice2_SetTransform(p,a,b)                   (p)->SetTransform(a,b)
-#define IDirect3DDevice2_GetTransform(p,a,b)                   (p)->GetTransform(a,b)
-#define IDirect3DDevice2_MultiplyTransform(p,a,b)              (p)->MultiplyTransform(a,b)
-#define IDirect3DDevice2_DrawPrimitive(p,a,b,c,d,e)            (p)->DrawPrimitive(a,b,c,d,e)
-#define IDirect3DDevice2_DrawIndexedPrimitive(p,a,b,c,d,e,f,g) (p)->DrawIndexedPrimitive(a,b,c,d,e,f,g)
-#define IDirect3DDevice2_SetClipStatus(p,a)                    (p)->SetClipStatus(a)
-#define IDirect3DDevice2_GetClipStatus(p,a)                    (p)->GetClipStatus(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DDevice3 interface
- */
-#define INTERFACE IDirect3DDevice3
-DECLARE_INTERFACE_(IDirect3DDevice3,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DDevice3 methods ***/
-    STDMETHOD(GetCaps)(THIS_ LPD3DDEVICEDESC lpD3DHWDevDesc, LPD3DDEVICEDESC lpD3DHELDevDesc) PURE;
-    STDMETHOD(GetStats)(THIS_ LPD3DSTATS lpD3DStats) PURE;
-    STDMETHOD(AddViewport)(THIS_ LPDIRECT3DVIEWPORT3 lpDirect3DViewport3) PURE;
-    STDMETHOD(DeleteViewport)(THIS_ LPDIRECT3DVIEWPORT3 lpDirect3DViewport3) PURE;
-    STDMETHOD(NextViewport)(THIS_ LPDIRECT3DVIEWPORT3 lpDirect3DViewport3, LPDIRECT3DVIEWPORT3 *lplpDirect3DViewport3, DWORD dwFlags) PURE;
-    STDMETHOD(EnumTextureFormats)(THIS_ LPD3DENUMPIXELFORMATSCALLBACK lpD3DEnumPixelProc, LPVOID lpArg) PURE;
-    STDMETHOD(BeginScene)(THIS) PURE;
-    STDMETHOD(EndScene)(THIS) PURE;
-    STDMETHOD(GetDirect3D)(THIS_ LPDIRECT3D3 *lplpDirect3D3) PURE;
-    /*** DrawPrimitive API ***/
-    STDMETHOD(SetCurrentViewport)(THIS_ LPDIRECT3DVIEWPORT3 lpDirect3DViewport3) PURE;
-    STDMETHOD(GetCurrentViewport)(THIS_ LPDIRECT3DVIEWPORT3 *lplpDirect3DViewport3) PURE;
-    STDMETHOD(SetRenderTarget)(THIS_ LPDIRECTDRAWSURFACE4 lpNewRenderTarget, DWORD dwFlags) PURE;
-    STDMETHOD(GetRenderTarget)(THIS_ LPDIRECTDRAWSURFACE4 *lplpRenderTarget) PURE;
-    STDMETHOD(Begin)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,DWORD dwVertexTypeDesc, DWORD dwFlags) PURE;
-    STDMETHOD(BeginIndexed)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,DWORD d3dvtVertexType, LPVOID lpvVertices, DWORD dwNumVertices, DWORD dwFlags) PURE;
-    STDMETHOD(Vertex)(THIS_ LPVOID lpVertexType) PURE;
-    STDMETHOD(Index)(THIS_ WORD wVertexIndex) PURE;
-    STDMETHOD(End)(THIS_ DWORD dwFlags) PURE;
-    STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, LPDWORD lpdwRenderState) PURE;
-    STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, DWORD dwRenderState) PURE;
-    STDMETHOD(GetLightState)(THIS_ D3DLIGHTSTATETYPE dwLightStateType, LPDWORD lpdwLightState) PURE;
-    STDMETHOD(SetLightState)(THIS_ D3DLIGHTSTATETYPE dwLightStateType, DWORD dwLightState) PURE;
-    STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix) PURE;
-    STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix) PURE;
-    STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix) PURE;
-    STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType, DWORD d3dvtVertexType, LPVOID lpvVertices, DWORD dwVertexCount, DWORD dwFlags) PURE;
-    STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType, DWORD d3dvtVertexType, LPVOID lpvVertices, DWORD dwVertexCount, LPWORD dwIndices, DWORD dwIndexCount, DWORD dwFlags) PURE;
-    STDMETHOD(SetClipStatus)(THIS_ LPD3DCLIPSTATUS lpD3DClipStatus) PURE;
-    STDMETHOD(GetClipStatus)(THIS_ LPD3DCLIPSTATUS lpD3DClipStatus) PURE;
-    STDMETHOD(DrawPrimitiveStrided)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,DWORD dwVertexType,LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData,DWORD dwVertexCount,DWORD dwFlags) PURE;
-    STDMETHOD(DrawIndexedPrimitiveStrided)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,DWORD dwVertexType,LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData,DWORD dwVertexCount,LPWORD lpIndex,DWORD dwIndexCount,DWORD dwFlags) PURE;
-    STDMETHOD(DrawPrimitiveVB)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,LPDIRECT3DVERTEXBUFFER lpD3DVertexBuf,DWORD dwStartVertex,DWORD dwNumVertices,DWORD dwFlags) PURE;
-    STDMETHOD(DrawIndexedPrimitiveVB)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,LPDIRECT3DVERTEXBUFFER lpD3DVertexBuf,LPWORD lpwIndices,DWORD dwIndexCount,DWORD dwFlags) PURE;
-    STDMETHOD(ComputeSphereVisibility)(THIS_ LPD3DVECTOR lpCenters,LPD3DVALUE lpRadii,DWORD dwNumSpheres,DWORD dwFlags,LPDWORD lpdwReturnValues) PURE;
-    STDMETHOD(GetTexture)(THIS_ DWORD dwStage,LPDIRECT3DTEXTURE2 *lplpTexture2) PURE;
-    STDMETHOD(SetTexture)(THIS_ DWORD dwStage,LPDIRECT3DTEXTURE2 lpTexture2) PURE;
-    STDMETHOD(GetTextureStageState)(THIS_ DWORD dwStage,D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,LPDWORD lpdwState) PURE;
-    STDMETHOD(SetTextureStageState)(THIS_ DWORD dwStage,D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,DWORD dwState) PURE;
-    STDMETHOD(ValidateDevice)(THIS_ LPDWORD lpdwPasses) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DDevice3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DDevice3_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DDevice3_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3DDevice3 methods ***/
-#define IDirect3DDevice3_GetCaps(p,a,b)                        (p)->lpVtbl->GetCaps(p,a,b)
-#define IDirect3DDevice3_GetStats(p,a)                         (p)->lpVtbl->GetStats(p,a)
-#define IDirect3DDevice3_AddViewport(p,a)                      (p)->lpVtbl->AddViewport(p,a)
-#define IDirect3DDevice3_DeleteViewport(p,a)                   (p)->lpVtbl->DeleteViewport(p,a)
-#define IDirect3DDevice3_NextViewport(p,a,b,c)                 (p)->lpVtbl->NextViewport(p,a,b,c)
-#define IDirect3DDevice3_EnumTextureFormats(p,a,b)             (p)->lpVtbl->EnumTextureFormats(p,a,b)
-#define IDirect3DDevice3_BeginScene(p)                         (p)->lpVtbl->BeginScene(p)
-#define IDirect3DDevice3_EndScene(p)                           (p)->lpVtbl->EndScene(p)
-#define IDirect3DDevice3_GetDirect3D(p,a)                      (p)->lpVtbl->GetDirect3D(p,a)
-#define IDirect3DDevice3_SetCurrentViewport(p,a)               (p)->lpVtbl->SetCurrentViewport(p,a)
-#define IDirect3DDevice3_GetCurrentViewport(p,a)               (p)->lpVtbl->GetCurrentViewport(p,a)
-#define IDirect3DDevice3_SetRenderTarget(p,a,b)                (p)->lpVtbl->SetRenderTarget(p,a,b)
-#define IDirect3DDevice3_GetRenderTarget(p,a)                  (p)->lpVtbl->GetRenderTarget(p,a)
-#define IDirect3DDevice3_Begin(p,a,b,c)                        (p)->lpVtbl->Begin(p,a,b,c)
-#define IDirect3DDevice3_BeginIndexed(p,a,b,c,d,e)             (p)->lpVtbl->BeginIndexed(p,a,b,c,d,e)
-#define IDirect3DDevice3_Vertex(p,a)                           (p)->lpVtbl->Vertex(p,a)
-#define IDirect3DDevice3_Index(p,a)                            (p)->lpVtbl->Index(p,a)
-#define IDirect3DDevice3_End(p,a)                              (p)->lpVtbl->End(p,a)
-#define IDirect3DDevice3_GetRenderState(p,a,b)                 (p)->lpVtbl->GetRenderState(p,a,b)
-#define IDirect3DDevice3_SetRenderState(p,a,b)                 (p)->lpVtbl->SetRenderState(p,a,b)
-#define IDirect3DDevice3_GetLightState(p,a,b)                  (p)->lpVtbl->GetLightState(p,a,b)
-#define IDirect3DDevice3_SetLightState(p,a,b)                  (p)->lpVtbl->SetLightState(p,a,b)
-#define IDirect3DDevice3_SetTransform(p,a,b)                   (p)->lpVtbl->SetTransform(p,a,b)
-#define IDirect3DDevice3_GetTransform(p,a,b)                   (p)->lpVtbl->GetTransform(p,a,b)
-#define IDirect3DDevice3_MultiplyTransform(p,a,b)              (p)->lpVtbl->MultiplyTransform(p,a,b)
-#define IDirect3DDevice3_DrawPrimitive(p,a,b,c,d,e)            (p)->lpVtbl->DrawPrimitive(p,a,b,c,d,e)
-#define IDirect3DDevice3_DrawIndexedPrimitive(p,a,b,c,d,e,f,g) (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f,g)
-#define IDirect3DDevice3_SetClipStatus(p,a)                    (p)->lpVtbl->SetClipStatus(p,a)
-#define IDirect3DDevice3_GetClipStatus(p,a)                    (p)->lpVtbl->GetClipStatus(p,a)
-#define IDirect3DDevice3_DrawPrimitiveStrided(p,a,b,c,d,e)     (p)->lpVtbl->DrawPrimitiveStrided(p,a,b,c,d,e)
-#define IDirect3DDevice3_DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g) (p)->lpVtbl->DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g)
-#define IDirect3DDevice3_DrawPrimitiveVB(p,a,b,c,d,e)          (p)->lpVtbl->DrawPrimitiveVB(p,a,b,c,d,e)
-#define IDirect3DDevice3_DrawIndexedPrimitiveVB(p,a,b,c,d,e)   (p)->lpVtbl->DrawIndexedPrimitiveVB(p,a,b,c,d,e)
-#define IDirect3DDevice3_ComputeSphereVisibility(p,a,b,c,d,e)  (p)->lpVtbl->ComputeSphereVisibility(p,a,b,c,d,e)
-#define IDirect3DDevice3_GetTexture(p,a,b)                     (p)->lpVtbl->GetTexture(p,a,b)
-#define IDirect3DDevice3_SetTexture(p,a,b)                     (p)->lpVtbl->SetTexture(p,a,b)
-#define IDirect3DDevice3_GetTextureStageState(p,a,b,c)         (p)->lpVtbl->GetTextureStageState(p,a,b,c)
-#define IDirect3DDevice3_SetTextureStageState(p,a,b,c)         (p)->lpVtbl->SetTextureStageState(p,a,b,c)
-#define IDirect3DDevice3_ValidateDevice(p,a)                   (p)->lpVtbl->ValidateDevice(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DDevice3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DDevice3_AddRef(p)             (p)->AddRef()
-#define IDirect3DDevice3_Release(p)            (p)->Release()
-/*** IDirect3DDevice3 methods ***/
-#define IDirect3DDevice3_GetCaps(p,a,b)                        (p)->GetCaps(a,b)
-#define IDirect3DDevice3_GetStats(p,a)                         (p)->GetStats(a)
-#define IDirect3DDevice3_AddViewport(p,a)                      (p)->AddViewport(a)
-#define IDirect3DDevice3_DeleteViewport(p,a)                   (p)->DeleteViewport(a)
-#define IDirect3DDevice3_NextViewport(p,a,b,c)                 (p)->NextViewport(a,b,c)
-#define IDirect3DDevice3_EnumTextureFormats(p,a,b)             (p)->EnumTextureFormats(a,b)
-#define IDirect3DDevice3_BeginScene(p)                         (p)->BeginScene()
-#define IDirect3DDevice3_EndScene(p)                           (p)->EndScene()
-#define IDirect3DDevice3_GetDirect3D(p,a)                      (p)->GetDirect3D(a)
-#define IDirect3DDevice3_SetCurrentViewport(p,a)               (p)->SetCurrentViewport(a)
-#define IDirect3DDevice3_GetCurrentViewport(p,a)               (p)->GetCurrentViewport(a)
-#define IDirect3DDevice3_SetRenderTarget(p,a,b)                (p)->SetRenderTarget(a,b)
-#define IDirect3DDevice3_GetRenderTarget(p,a)                  (p)->GetRenderTarget(a)
-#define IDirect3DDevice3_Begin(p,a,b,c)                        (p)->Begin(a,b,c)
-#define IDirect3DDevice3_BeginIndexed(p,a,b,c,d,e)             (p)->BeginIndexed(a,b,c,d,e)
-#define IDirect3DDevice3_Vertex(p,a)                           (p)->Vertex(a)
-#define IDirect3DDevice3_Index(p,a)                            (p)->Index(a)
-#define IDirect3DDevice3_End(p,a)                              (p)->End(a)
-#define IDirect3DDevice3_GetRenderState(p,a,b)                 (p)->GetRenderState(a,b)
-#define IDirect3DDevice3_SetRenderState(p,a,b)                 (p)->SetRenderState(a,b)
-#define IDirect3DDevice3_GetLightState(p,a,b)                  (p)->GetLightState(a,b)
-#define IDirect3DDevice3_SetLightState(p,a,b)                  (p)->SetLightState(a,b)
-#define IDirect3DDevice3_SetTransform(p,a,b)                   (p)->SetTransform(a,b)
-#define IDirect3DDevice3_GetTransform(p,a,b)                   (p)->GetTransform(a,b)
-#define IDirect3DDevice3_MultiplyTransform(p,a,b)              (p)->MultiplyTransform(a,b)
-#define IDirect3DDevice3_DrawPrimitive(p,a,b,c,d,e)            (p)->DrawPrimitive(a,b,c,d,e)
-#define IDirect3DDevice3_DrawIndexedPrimitive(p,a,b,c,d,e,f,g) (p)->DrawIndexedPrimitive(a,b,c,d,e,f,g)
-#define IDirect3DDevice3_SetClipStatus(p,a)                    (p)->SetClipStatus(a)
-#define IDirect3DDevice3_GetClipStatus(p,a)                    (p)->GetClipStatus(a)
-#define IDirect3DDevice3_DrawPrimitiveStrided(p,a,b,c,d,e)     (p)->DrawPrimitiveStrided(a,b,c,d,e)
-#define IDirect3DDevice3_DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g) (p)->DrawIndexedPrimitiveStrided(a,b,c,d,e,f,g)
-#define IDirect3DDevice3_DrawPrimitiveVB(p,a,b,c,d,e)          (p)->DrawPrimitiveVB(a,b,c,d,e)
-#define IDirect3DDevice3_DrawIndexedPrimitiveVB(p,a,b,c,d,e)   (p)->DrawIndexedPrimitiveVB(a,b,c,d,e)
-#define IDirect3DDevice3_ComputeSphereVisibility(p,a,b,c,d,e)  (p)->ComputeSphereVisibility(a,b,c,d,e)
-#define IDirect3DDevice3_GetTexture(p,a,b)                     (p)->GetTexture(a,b)
-#define IDirect3DDevice3_SetTexture(p,a,b)                     (p)->SetTexture(a,b)
-#define IDirect3DDevice3_GetTextureStageState(p,a,b,c)         (p)->GetTextureStageState(a,b,c)
-#define IDirect3DDevice3_SetTextureStageState(p,a,b,c)         (p)->SetTextureStageState(a,b,c)
-#define IDirect3DDevice3_ValidateDevice(p,a)                   (p)->ValidateDevice(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DDevice7 interface
- */
-#define INTERFACE IDirect3DDevice7
-DECLARE_INTERFACE_(IDirect3DDevice7,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DDevice7 methods ***/
-    STDMETHOD(GetCaps)(THIS_ LPD3DDEVICEDESC7 lpD3DHELDevDesc) PURE;
-    STDMETHOD(EnumTextureFormats)(THIS_ LPD3DENUMPIXELFORMATSCALLBACK lpD3DEnumPixelProc, LPVOID lpArg) PURE;
-    STDMETHOD(BeginScene)(THIS) PURE;
-    STDMETHOD(EndScene)(THIS) PURE;
-    STDMETHOD(GetDirect3D)(THIS_ LPDIRECT3D7 *lplpDirect3D3) PURE;
-    STDMETHOD(SetRenderTarget)(THIS_ LPDIRECTDRAWSURFACE7 lpNewRenderTarget,DWORD dwFlags) PURE;
-    STDMETHOD(GetRenderTarget)(THIS_ LPDIRECTDRAWSURFACE7 *lplpRenderTarget) PURE;
-    STDMETHOD(Clear)(THIS_ DWORD dwCount,LPD3DRECT lpRects,DWORD dwFlags,D3DCOLOR dwColor,D3DVALUE dvZ,DWORD dwStencil) PURE;
-    STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix) PURE;
-    STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix) PURE;
-    STDMETHOD(SetViewport)(THIS_ LPD3DVIEWPORT7 lpData) PURE;
-    STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE dtstTransformStateType,LPD3DMATRIX lpD3DMatrix) PURE;
-    STDMETHOD(GetViewport)(THIS_ LPD3DVIEWPORT7 lpData) PURE;
-    STDMETHOD(SetMaterial)(THIS_ LPD3DMATERIAL7 lpMat) PURE;
-    STDMETHOD(GetMaterial)(THIS_ LPD3DMATERIAL7 lpMat) PURE;
-    STDMETHOD(SetLight)(THIS_ DWORD dwLightIndex,LPD3DLIGHT7 lpLight) PURE;
-    STDMETHOD(GetLight)(THIS_ DWORD dwLightIndex,LPD3DLIGHT7 lpLight) PURE;
-    STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, DWORD dwRenderState) PURE;
-    STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, LPDWORD lpdwRenderState) PURE;
-    STDMETHOD(BeginStateBlock)(THIS) PURE;
-    STDMETHOD(EndStateBlock)(THIS_ LPDWORD lpdwBlockHandle) PURE;
-    STDMETHOD(PreLoad)(THIS_ LPDIRECTDRAWSURFACE7 lpddsTexture) PURE;
-    STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType, DWORD d3dvtVertexType, LPVOID lpvVertices, DWORD dwVertexCount, DWORD dwFlags) PURE;
-    STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType, DWORD d3dvtVertexType, LPVOID lpvVertices, DWORD dwVertexCount, LPWORD dwIndices, DWORD dwIndexCount, DWORD dwFlags) PURE;
-    STDMETHOD(SetClipStatus)(THIS_ LPD3DCLIPSTATUS lpD3DClipStatus) PURE;
-    STDMETHOD(GetClipStatus)(THIS_ LPD3DCLIPSTATUS lpD3DClipStatus) PURE;
-    STDMETHOD(DrawPrimitiveStrided)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,DWORD dwVertexType,LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData,DWORD dwVertexCount,DWORD dwFlags) PURE;
-    STDMETHOD(DrawIndexedPrimitiveStrided)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,DWORD dwVertexType,LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData,DWORD dwVertexCount,LPWORD lpIndex,DWORD dwIndexCount,DWORD dwFlags) PURE;
-    STDMETHOD(DrawPrimitiveVB)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,LPDIRECT3DVERTEXBUFFER7 lpD3DVertexBuf,DWORD dwStartVertex,DWORD dwNumVertices,DWORD dwFlags) PURE;
-    STDMETHOD(DrawIndexedPrimitiveVB)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,LPDIRECT3DVERTEXBUFFER7 lpD3DVertexBuf,DWORD dwStartVertex,DWORD dwNumVertices,LPWORD lpwIndices,DWORD dwIndexCount,DWORD dwFlags) PURE;
-    STDMETHOD(ComputeSphereVisibility)(THIS_ LPD3DVECTOR lpCenters,LPD3DVALUE lpRadii,DWORD dwNumSpheres,DWORD dwFlags,LPDWORD lpdwReturnValues) PURE;
-    STDMETHOD(GetTexture)(THIS_ DWORD dwStage,LPDIRECTDRAWSURFACE7 *lpTexture) PURE;
-    STDMETHOD(SetTexture)(THIS_ DWORD dwStage,LPDIRECTDRAWSURFACE7 lpTexture) PURE;
-    STDMETHOD(GetTextureStageState)(THIS_ DWORD dwStage,D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,LPDWORD lpdwState) PURE;
-    STDMETHOD(SetTextureStageState)(THIS_ DWORD dwStage,D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,DWORD dwState) PURE;
-    STDMETHOD(ValidateDevice)(THIS_ LPDWORD lpdwPasses) PURE;
-    STDMETHOD(ApplyStateBlock)(THIS_ DWORD dwBlockHandle) PURE;
-    STDMETHOD(CaptureStateBlock)(THIS_ DWORD dwBlockHandle) PURE;
-    STDMETHOD(DeleteStateBlock)(THIS_ DWORD dwBlockHandle) PURE;
-    STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE d3dsbType,LPDWORD lpdwBlockHandle) PURE;
-    STDMETHOD(Load)(THIS_ LPDIRECTDRAWSURFACE7 lpDestTex,LPPOINT lpDestPoint,LPDIRECTDRAWSURFACE7 lpSrcTex,LPRECT lprcSrcRect,DWORD dwFlags) PURE;
-    STDMETHOD(LightEnable)(THIS_ DWORD dwLightIndex,BOOL bEnable) PURE;
-    STDMETHOD(GetLightEnable)(THIS_ DWORD dwLightIndex,BOOL *pbEnable) PURE;
-    STDMETHOD(SetClipPlane)(THIS_ DWORD dwIndex,D3DVALUE *pPlaneEquation) PURE;
-    STDMETHOD(GetClipPlane)(THIS_ DWORD dwIndex,D3DVALUE *pPlaneEquation) PURE;
-    STDMETHOD(GetInfo)(THIS_ DWORD dwDevInfoID,LPVOID pDevInfoStruct,DWORD dwSize) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DDevice7_QueryInterface(p,a,b)                        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DDevice7_AddRef(p)                                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DDevice7_Release(p)                                   (p)->lpVtbl->Release(p)
-/*** IDirect3DDevice7 methods ***/
-#define IDirect3DDevice7_GetCaps(p,a)                                 (p)->lpVtbl->GetCaps(p,a)
-#define IDirect3DDevice7_EnumTextureFormats(p,a,b)                    (p)->lpVtbl->EnumTextureFormats(p,a,b)
-#define IDirect3DDevice7_BeginScene(p)                                (p)->lpVtbl->BeginScene(p)
-#define IDirect3DDevice7_EndScene(p)                                  (p)->lpVtbl->EndScene(p)
-#define IDirect3DDevice7_GetDirect3D(p,a)                             (p)->lpVtbl->GetDirect3D(p,a)
-#define IDirect3DDevice7_SetRenderTarget(p,a,b)                       (p)->lpVtbl->SetRenderTarget(p,a,b)
-#define IDirect3DDevice7_GetRenderTarget(p,a)                         (p)->lpVtbl->GetRenderTarget(p,a)
-#define IDirect3DDevice7_Clear(p,a,b,c,d,e,f)                         (p)->lpVtbl->Clear(p,a,b,c,d,e,f)
-#define IDirect3DDevice7_SetTransform(p,a,b)                          (p)->lpVtbl->SetTransform(p,a,b)
-#define IDirect3DDevice7_GetTransform(p,a,b)                          (p)->lpVtbl->GetTransform(p,a,b)
-#define IDirect3DDevice7_SetViewport(p,a)                             (p)->lpVtbl->SetViewport(p,a)
-#define IDirect3DDevice7_MultiplyTransform(p,a,b)                     (p)->lpVtbl->MultiplyTransform(p,a,b)
-#define IDirect3DDevice7_GetViewport(p,a)                             (p)->lpVtbl->GetViewport(p,a)
-#define IDirect3DDevice7_SetMaterial(p,a)                             (p)->lpVtbl->SetMaterial(p,a)
-#define IDirect3DDevice7_GetMaterial(p,a)                             (p)->lpVtbl->GetMaterial(p,a)
-#define IDirect3DDevice7_SetLight(p,a,b)                              (p)->lpVtbl->SetLight(p,a,b)
-#define IDirect3DDevice7_GetLight(p,a,b)                              (p)->lpVtbl->GetLight(p,a,b)
-#define IDirect3DDevice7_SetRenderState(p,a,b)                        (p)->lpVtbl->SetRenderState(p,a,b)
-#define IDirect3DDevice7_GetRenderState(p,a,b)                        (p)->lpVtbl->GetRenderState(p,a,b)
-#define IDirect3DDevice7_BeginStateBlock(p)                           (p)->lpVtbl->BeginStateBlock(p)
-#define IDirect3DDevice7_EndStateBlock(p,a)                           (p)->lpVtbl->EndStateBlock(p,a)
-#define IDirect3DDevice7_PreLoad(p,a)                                 (p)->lpVtbl->PreLoad(p,a)
-#define IDirect3DDevice7_DrawPrimitive(p,a,b,c,d,e)                   (p)->lpVtbl->DrawPrimitive(p,a,b,c,d,e)
-#define IDirect3DDevice7_DrawIndexedPrimitive(p,a,b,c,d,e,f,g)        (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f,g)
-#define IDirect3DDevice7_SetClipStatus(p,a)                           (p)->lpVtbl->SetClipStatus(p,a)
-#define IDirect3DDevice7_GetClipStatus(p,a)                           (p)->lpVtbl->GetClipStatus(p,a)
-#define IDirect3DDevice7_DrawPrimitiveStrided(p,a,b,c,d,e)            (p)->lpVtbl->DrawPrimitiveStrided(p,a,b,c,d,e)
-#define IDirect3DDevice7_DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g) (p)->lpVtbl->DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g)
-#define IDirect3DDevice7_DrawPrimitiveVB(p,a,b,c,d,e)                 (p)->lpVtbl->DrawPrimitiveVB(p,a,b,c,d,e)
-#define IDirect3DDevice7_DrawIndexedPrimitiveVB(p,a,b,c,d,e,f,g)      (p)->lpVtbl->DrawIndexedPrimitiveVB(p,a,b,c,d,e,f,g)
-#define IDirect3DDevice7_ComputeSphereVisibility(p,a,b,c,d,e)         (p)->lpVtbl->ComputeSphereVisibility(p,a,b,c,d,e)
-#define IDirect3DDevice7_GetTexture(p,a,b)                            (p)->lpVtbl->GetTexture(p,a,b)
-#define IDirect3DDevice7_SetTexture(p,a,b)                            (p)->lpVtbl->SetTexture(p,a,b)
-#define IDirect3DDevice7_GetTextureStageState(p,a,b,c)                (p)->lpVtbl->GetTextureStageState(p,a,b,c)
-#define IDirect3DDevice7_SetTextureStageState(p,a,b,c)                (p)->lpVtbl->SetTextureStageState(p,a,b,c)
-#define IDirect3DDevice7_ValidateDevice(p,a)                          (p)->lpVtbl->ValidateDevice(p,a)
-#define IDirect3DDevice7_ApplyStateBlock(p,a)                         (p)->lpVtbl->ApplyStateBlock(p,a)
-#define IDirect3DDevice7_CaptureStateBlock(p,a)                       (p)->lpVtbl->CaptureStateBlock(p,a)
-#define IDirect3DDevice7_DeleteStateBlock(p,a)                        (p)->lpVtbl->DeleteStateBlock(p,a)
-#define IDirect3DDevice7_CreateStateBlock(p,a,b)                      (p)->lpVtbl->CreateStateBlock(p,a,b)
-#define IDirect3DDevice7_Load(p,a,b,c,d,e)                            (p)->lpVtbl->Load(p,a,b,c,d,e)
-#define IDirect3DDevice7_LightEnable(p,a,b)                           (p)->lpVtbl->LightEnable(p,a,b)
-#define IDirect3DDevice7_GetLightEnable(p,a,b)                        (p)->lpVtbl->GetLightEnable(p,a,b)
-#define IDirect3DDevice7_SetClipPlane(p,a,b)                          (p)->lpVtbl->SetClipPlane(p,a,b)
-#define IDirect3DDevice7_GetClipPlane(p,a,b)                          (p)->lpVtbl->GetClipPlane(p,a,b)
-#define IDirect3DDevice7_GetInfo(p,a,b,c)                             (p)->lpVtbl->GetInfo(p,a,b,c)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DDevice7_QueryInterface(p,a,b)                        (p)->QueryInterface(a,b)
-#define IDirect3DDevice7_AddRef(p)                                    (p)->AddRef()
-#define IDirect3DDevice7_Release(p)                                   (p)->Release()
-/*** IDirect3DDevice7 methods ***/
-#define IDirect3DDevice7_GetCaps(p,a)                                 (p)->GetCaps(a)
-#define IDirect3DDevice7_EnumTextureFormats(p,a,b)                    (p)->EnumTextureFormats(a,b)
-#define IDirect3DDevice7_BeginScene(p)                                (p)->BeginScene()
-#define IDirect3DDevice7_EndScene(p)                                  (p)->EndScene()
-#define IDirect3DDevice7_GetDirect3D(p,a)                             (p)->GetDirect3D(a)
-#define IDirect3DDevice7_SetRenderTarget(p,a,b)                       (p)->SetRenderTarget(a,b)
-#define IDirect3DDevice7_GetRenderTarget(p,a)                         (p)->GetRenderTarget(a)
-#define IDirect3DDevice7_Clear(p,a,b,c,d,e,f)                         (p)->Clear(a,b,c,d,e,f)
-#define IDirect3DDevice7_SetTransform(p,a,b)                          (p)->SetTransform(a,b)
-#define IDirect3DDevice7_GetTransform(p,a,b)                          (p)->GetTransform(a,b)
-#define IDirect3DDevice7_SetViewport(p,a)                             (p)->SetViewport(a)
-#define IDirect3DDevice7_MultiplyTransform(p,a,b)                     (p)->MultiplyTransform(a,b)
-#define IDirect3DDevice7_GetViewport(p,a)                             (p)->GetViewport(a)
-#define IDirect3DDevice7_SetMaterial(p,a)                             (p)->SetMaterial(a)
-#define IDirect3DDevice7_GetMaterial(p,a)                             (p)->GetMaterial(a)
-#define IDirect3DDevice7_SetLight(p,a,b)                              (p)->SetLight(a,b)
-#define IDirect3DDevice7_GetLight(p,a,b)                              (p)->GetLight(a,b)
-#define IDirect3DDevice7_SetRenderState(p,a,b)                        (p)->SetRenderState(a,b)
-#define IDirect3DDevice7_GetRenderState(p,a,b)                        (p)->GetRenderState(a,b)
-#define IDirect3DDevice7_BeginStateBlock(p)                           (p)->BeginStateBlock()
-#define IDirect3DDevice7_EndStateBlock(p,a)                           (p)->EndStateBlock(a)
-#define IDirect3DDevice7_PreLoad(p,a)                                 (p)->PreLoad(a)
-#define IDirect3DDevice7_DrawPrimitive(p,a,b,c,d,e)                   (p)->DrawPrimitive(a,b,c,d,e)
-#define IDirect3DDevice7_DrawIndexedPrimitive(p,a,b,c,d,e,f,g)        (p)->DrawIndexedPrimitive(a,b,c,d,e,f,g)
-#define IDirect3DDevice7_SetClipStatus(p,a)                           (p)->SetClipStatus(a)
-#define IDirect3DDevice7_GetClipStatus(p,a)                           (p)->GetClipStatus(a)
-#define IDirect3DDevice7_DrawPrimitiveStrided(p,a,b,c,d,e)            (p)->DrawPrimitiveStrided(a,b,c,d,e)
-#define IDirect3DDevice7_DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g) (p)->DrawIndexedPrimitiveStrided(a,b,c,d,e,f,g)
-#define IDirect3DDevice7_DrawPrimitiveVB(p,a,b,c,d,e)                 (p)->DrawPrimitiveVB(a,b,c,d,e)
-#define IDirect3DDevice7_DrawIndexedPrimitiveVB(p,a,b,c,d,e,f,g)      (p)->DrawIndexedPrimitiveVB(a,b,c,d,e,f,g)
-#define IDirect3DDevice7_ComputeSphereVisibility(p,a,b,c,d,e)         (p)->ComputeSphereVisibility(a,b,c,d,e)
-#define IDirect3DDevice7_GetTexture(p,a,b)                            (p)->GetTexture(a,b)
-#define IDirect3DDevice7_SetTexture(p,a,b)                            (p)->SetTexture(a,b)
-#define IDirect3DDevice7_GetTextureStageState(p,a,b,c)                (p)->GetTextureStageState(a,b,c)
-#define IDirect3DDevice7_SetTextureStageState(p,a,b,c)                (p)->SetTextureStageState(a,b,c)
-#define IDirect3DDevice7_ValidateDevice(p,a)                          (p)->ValidateDevice(a)
-#define IDirect3DDevice7_ApplyStateBlock(p,a)                         (p)->ApplyStateBlock(a)
-#define IDirect3DDevice7_CaptureStateBlock(p,a)                       (p)->CaptureStateBlock(a)
-#define IDirect3DDevice7_DeleteStateBlock(p,a)                        (p)->DeleteStateBlock(a)
-#define IDirect3DDevice7_CreateStateBlock(p,a,b)                      (p)->CreateStateBlock(a,b)
-#define IDirect3DDevice7_Load(p,a,b,c,d,e)                            (p)->Load(a,b,c,d,e)
-#define IDirect3DDevice7_LightEnable(p,a,b)                           (p)->LightEnable(a,b)
-#define IDirect3DDevice7_GetLightEnable(p,a,b)                        (p)->GetLightEnable(a,b)
-#define IDirect3DDevice7_SetClipPlane(p,a,b)                          (p)->SetClipPlane(a,b)
-#define IDirect3DDevice7_GetClipPlane(p,a,b)                          (p)->GetClipPlane(a,b)
-#define IDirect3DDevice7_GetInfo(p,a,b,c)                             (p)->GetInfo(a,b,c)
-#endif
-
-
-
-/*****************************************************************************
- * IDirect3DVertexBuffer interface
- */
-#define INTERFACE IDirect3DVertexBuffer
-DECLARE_INTERFACE_(IDirect3DVertexBuffer,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DVertexBuffer methods ***/
-    STDMETHOD(Lock)(THIS_ DWORD dwFlags,LPVOID *lplpData,LPDWORD lpdwSize) PURE;
-    STDMETHOD(Unlock)(THIS) PURE;
-    STDMETHOD(ProcessVertices)(THIS_ DWORD dwVertexOp,DWORD dwDestIndex,DWORD dwCount,LPDIRECT3DVERTEXBUFFER lpSrcBuffer,DWORD dwSrcIndex,LPDIRECT3DDEVICE3 lpD3DDevice,DWORD dwFlags) PURE;
-    STDMETHOD(GetVertexBufferDesc)(THIS_ LPD3DVERTEXBUFFERDESC lpD3DVertexBufferDesc) PURE;
-    STDMETHOD(Optimize)(THIS_ LPDIRECT3DDEVICE3  lpD3DDevice,DWORD dwFlags) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DVertexBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DVertexBuffer_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DVertexBuffer_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3DVertexBuffer methods ***/
-#define IDirect3DVertexBuffer_Lock(p,a,b,c)                    (p)->lpVtbl->Lock(p,a,b,c)
-#define IDirect3DVertexBuffer_Unlock(p)                        (p)->lpVtbl->Unlock(p)
-#define IDirect3DVertexBuffer_ProcessVertices(p,a,b,c,d,e,f,g) (p)->lpVtbl->ProcessVertices(p,a,b,c,d,e,f,g)
-#define IDirect3DVertexBuffer_GetVertexBufferDesc(p,a)         (p)->lpVtbl->GetVertexBufferDesc(p,a)
-#define IDirect3DVertexBuffer_Optimize(p,a,b)                  (p)->lpVtbl->Optimize(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DVertexBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DVertexBuffer_AddRef(p)             (p)->AddRef()
-#define IDirect3DVertexBuffer_Release(p)            (p)->Release()
-/*** IDirect3DVertexBuffer methods ***/
-#define IDirect3DVertexBuffer_Lock(p,a,b,c)                    (p)->Lock(a,b,c)
-#define IDirect3DVertexBuffer_Unlock(p)                        (p)->Unlock()
-#define IDirect3DVertexBuffer_ProcessVertices(p,a,b,c,d,e,f,g) (p)->ProcessVertices(a,b,c,d,e,f,g)
-#define IDirect3DVertexBuffer_GetVertexBufferDesc(p,a)         (p)->GetVertexBufferDesc(a)
-#define IDirect3DVertexBuffer_Optimize(p,a,b)                  (p)->Optimize(a,b)
-#endif
-
-/*****************************************************************************
- * IDirect3DVertexBuffer7 interface
- */
-#define INTERFACE IDirect3DVertexBuffer7
-DECLARE_INTERFACE_(IDirect3DVertexBuffer7,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DVertexBuffer7 methods ***/
-    STDMETHOD(Lock)(THIS_ DWORD dwFlags,LPVOID *lplpData,LPDWORD lpdwSize) PURE;
-    STDMETHOD(Unlock)(THIS) PURE;
-    STDMETHOD(ProcessVertices)(THIS_ DWORD dwVertexOp,DWORD dwDestIndex,DWORD dwCount,LPDIRECT3DVERTEXBUFFER7 lpSrcBuffer,DWORD dwSrcIndex,LPDIRECT3DDEVICE7 lpD3DDevice,DWORD dwFlags) PURE;
-    STDMETHOD(GetVertexBufferDesc)(THIS_ LPD3DVERTEXBUFFERDESC lpD3DVertexBufferDesc) PURE;
-    STDMETHOD(Optimize)(THIS_ LPDIRECT3DDEVICE7  lpD3DDevice,DWORD dwFlags) PURE;
-    STDMETHOD(ProcessVerticesStrided)(THIS_ DWORD dwVertexOp,DWORD dwDestIndex,DWORD dwCount,LPD3DDRAWPRIMITIVESTRIDEDDATA lpStrideData,DWORD dwVertexTypeDesc,LPDIRECT3DDEVICE7 lpD3DDevice,DWORD dwFlags) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DVertexBuffer7_QueryInterface(p,a,b)                   (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DVertexBuffer7_AddRef(p)                               (p)->lpVtbl->AddRef(p)
-#define IDirect3DVertexBuffer7_Release(p)                              (p)->lpVtbl->Release(p)
-/*** IDirect3DVertexBuffer7 methods ***/
-#define IDirect3DVertexBuffer7_Lock(p,a,b,c)                           (p)->lpVtbl->Lock(p,a,b,c)
-#define IDirect3DVertexBuffer7_Unlock(p)                               (p)->lpVtbl->Unlock(p)
-#define IDirect3DVertexBuffer7_ProcessVertices(p,a,b,c,d,e,f,g)        (p)->lpVtbl->ProcessVertices(p,a,b,c,d,e,f,g)
-#define IDirect3DVertexBuffer7_GetVertexBufferDesc(p,a)                (p)->lpVtbl->GetVertexBufferDesc(p,a)
-#define IDirect3DVertexBuffer7_Optimize(p,a,b)                         (p)->lpVtbl->Optimize(p,a,b)
-#define IDirect3DVertexBuffer7_ProcessVerticesStrided(p,a,b,c,d,e,f,g) (p)->lpVtbl->ProcessVerticesStrided(p,a,b,c,d,e,f,g)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DVertexBuffer7_QueryInterface(p,a,b)                   (p)->QueryInterface(a,b)
-#define IDirect3DVertexBuffer7_AddRef(p)                               (p)->AddRef()
-#define IDirect3DVertexBuffer7_Release(p)                              (p)->Release()
-/*** IDirect3DVertexBuffer7 methods ***/
-#define IDirect3DVertexBuffer7_Lock(p,a,b,c)                           (p)->Lock(a,b,c)
-#define IDirect3DVertexBuffer7_Unlock(p)                               (p)->Unlock()
-#define IDirect3DVertexBuffer7_ProcessVertices(p,a,b,c,d,e,f,g)        (p)->ProcessVertices(a,b,c,d,e,f,g)
-#define IDirect3DVertexBuffer7_GetVertexBufferDesc(p,a)                (p)->GetVertexBufferDesc(a)
-#define IDirect3DVertexBuffer7_Optimize(p,a,b)                         (p)->Optimize(a,b)
-#define IDirect3DVertexBuffer7_ProcessVerticesStrided(p,a,b,c,d,e,f,g) (p)->ProcessVerticesStrided(a,b,c,d,e,f,g)
-#endif
-
-#endif /* __WINE_D3D_H */
diff --git a/misc/builddeps/win32/dx/include/d3d10.h b/misc/builddeps/win32/dx/include/d3d10.h
deleted file mode 100644 (file)
index dd6ea6c..0000000
+++ /dev/null
@@ -1,5603 +0,0 @@
-/*** Autogenerated by WIDL 1.2-rc3 from d3d10.idl - Do not edit ***/
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifndef __WIDL_D3D10_H
-#define __WIDL_D3D10_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Headers for imported files */
-
-#include <oaidl.h>
-#include <ocidl.h>
-#include <dxgi.h>
-
-/* Forward declarations */
-
-#ifndef __ID3D10DeviceChild_FWD_DEFINED__
-#define __ID3D10DeviceChild_FWD_DEFINED__
-typedef interface ID3D10DeviceChild ID3D10DeviceChild;
-#endif
-
-#ifndef __ID3D10Resource_FWD_DEFINED__
-#define __ID3D10Resource_FWD_DEFINED__
-typedef interface ID3D10Resource ID3D10Resource;
-#endif
-
-#ifndef __ID3D10Buffer_FWD_DEFINED__
-#define __ID3D10Buffer_FWD_DEFINED__
-typedef interface ID3D10Buffer ID3D10Buffer;
-#endif
-
-#ifndef __ID3D10Texture1D_FWD_DEFINED__
-#define __ID3D10Texture1D_FWD_DEFINED__
-typedef interface ID3D10Texture1D ID3D10Texture1D;
-#endif
-
-#ifndef __ID3D10Texture2D_FWD_DEFINED__
-#define __ID3D10Texture2D_FWD_DEFINED__
-typedef interface ID3D10Texture2D ID3D10Texture2D;
-#endif
-
-#ifndef __ID3D10Texture3D_FWD_DEFINED__
-#define __ID3D10Texture3D_FWD_DEFINED__
-typedef interface ID3D10Texture3D ID3D10Texture3D;
-#endif
-
-#ifndef __ID3D10View_FWD_DEFINED__
-#define __ID3D10View_FWD_DEFINED__
-typedef interface ID3D10View ID3D10View;
-#endif
-
-#ifndef __ID3D10DepthStencilView_FWD_DEFINED__
-#define __ID3D10DepthStencilView_FWD_DEFINED__
-typedef interface ID3D10DepthStencilView ID3D10DepthStencilView;
-#endif
-
-#ifndef __ID3D10RenderTargetView_FWD_DEFINED__
-#define __ID3D10RenderTargetView_FWD_DEFINED__
-typedef interface ID3D10RenderTargetView ID3D10RenderTargetView;
-#endif
-
-#ifndef __ID3D10ShaderResourceView_FWD_DEFINED__
-#define __ID3D10ShaderResourceView_FWD_DEFINED__
-typedef interface ID3D10ShaderResourceView ID3D10ShaderResourceView;
-#endif
-
-#ifndef __ID3D10BlendState_FWD_DEFINED__
-#define __ID3D10BlendState_FWD_DEFINED__
-typedef interface ID3D10BlendState ID3D10BlendState;
-#endif
-
-#ifndef __ID3D10DepthStencilState_FWD_DEFINED__
-#define __ID3D10DepthStencilState_FWD_DEFINED__
-typedef interface ID3D10DepthStencilState ID3D10DepthStencilState;
-#endif
-
-#ifndef __ID3D10GeometryShader_FWD_DEFINED__
-#define __ID3D10GeometryShader_FWD_DEFINED__
-typedef interface ID3D10GeometryShader ID3D10GeometryShader;
-#endif
-
-#ifndef __ID3D10InputLayout_FWD_DEFINED__
-#define __ID3D10InputLayout_FWD_DEFINED__
-typedef interface ID3D10InputLayout ID3D10InputLayout;
-#endif
-
-#ifndef __ID3D10PixelShader_FWD_DEFINED__
-#define __ID3D10PixelShader_FWD_DEFINED__
-typedef interface ID3D10PixelShader ID3D10PixelShader;
-#endif
-
-#ifndef __ID3D10RasterizerState_FWD_DEFINED__
-#define __ID3D10RasterizerState_FWD_DEFINED__
-typedef interface ID3D10RasterizerState ID3D10RasterizerState;
-#endif
-
-#ifndef __ID3D10SamplerState_FWD_DEFINED__
-#define __ID3D10SamplerState_FWD_DEFINED__
-typedef interface ID3D10SamplerState ID3D10SamplerState;
-#endif
-
-#ifndef __ID3D10VertexShader_FWD_DEFINED__
-#define __ID3D10VertexShader_FWD_DEFINED__
-typedef interface ID3D10VertexShader ID3D10VertexShader;
-#endif
-
-#ifndef __ID3D10Asynchronous_FWD_DEFINED__
-#define __ID3D10Asynchronous_FWD_DEFINED__
-typedef interface ID3D10Asynchronous ID3D10Asynchronous;
-#endif
-
-#ifndef __ID3D10Counter_FWD_DEFINED__
-#define __ID3D10Counter_FWD_DEFINED__
-typedef interface ID3D10Counter ID3D10Counter;
-#endif
-
-#ifndef __ID3D10Query_FWD_DEFINED__
-#define __ID3D10Query_FWD_DEFINED__
-typedef interface ID3D10Query ID3D10Query;
-#endif
-
-#ifndef __ID3D10Predicate_FWD_DEFINED__
-#define __ID3D10Predicate_FWD_DEFINED__
-typedef interface ID3D10Predicate ID3D10Predicate;
-#endif
-
-#ifndef __ID3D10Device_FWD_DEFINED__
-#define __ID3D10Device_FWD_DEFINED__
-typedef interface ID3D10Device ID3D10Device;
-#endif
-
-#ifndef __ID3D10Multithread_FWD_DEFINED__
-#define __ID3D10Multithread_FWD_DEFINED__
-typedef interface ID3D10Multithread ID3D10Multithread;
-#endif
-
-
-#ifndef _D3D10_CONSTANTS
-#define _D3D10_CONSTANTS
-#define D3D10_DEFAULT_BLEND_FACTOR_ALPHA (1.00000000000000)
-
-#define D3D10_DEFAULT_BLEND_FACTOR_BLUE (1.00000000000000)
-
-#define D3D10_DEFAULT_BLEND_FACTOR_GREEN (1.00000000000000)
-
-#define D3D10_DEFAULT_BLEND_FACTOR_RED (1.00000000000000)
-
-#define D3D10_DEFAULT_BORDER_COLOR_COMPONENT (0.00000000000000)
-
-#define D3D10_DEFAULT_SLOPE_SCALED_DEPTH_BIAS (0.00000000000000)
-
-#define D3D10_DEFAULT_DEPTH_BIAS_CLAMP (0.00000000000000)
-
-#define D3D10_DEFAULT_MAX_ANISOTROPY (16.0000000000000)
-
-#define D3D10_DEFAULT_MIP_LOD_BIAS (0.00000000000000)
-
-#define D3D10_DEFAULT_VIEWPORT_MAX_DEPTH (0.00000000000000)
-
-#define D3D10_DEFAULT_VIEWPORT_MIN_DEPTH (0.00000000000000)
-
-#define D3D10_FLOAT16_FUSED_TOLERANCE_IN_ULP (0.600000000000000)
-
-#define D3D10_FLOAT32_MAX (3.40282346600000e+38)
-
-#define D3D10_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP (0.600000000000000)
-
-#define D3D10_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR (2.40000000000000)
-
-#define D3D10_FLOAT_TO_SRGB_EXPONENT_NUMERATOR (1.00000000000000)
-
-#define D3D10_FLOAT_TO_SRGB_OFFSET (0.0550000000000000)
-
-#define D3D10_FLOAT_TO_SRGB_SCALE_1 (12.9200000000000)
-
-#define D3D10_FLOAT_TO_SRGB_SCALE_2 (1.05500000000000)
-
-#define D3D10_FLOAT_TO_SRGB_THRESHOLD (0.00313080000000000)
-
-#define D3D10_FTOI_INSTRUCTION_MAX_INPUT (2147483647.99900)
-
-#define D3D10_FTOI_INSTRUCTION_MIN_INPUT (-2147483648.99900)
-
-#define D3D10_FTOU_INSTRUCTION_MAX_INPUT (4294967295.99900)
-
-#define D3D10_FTOU_INSTRUCTION_MIN_INPUT (0.00000000000000)
-
-#define D3D10_LINEAR_GAMMA (1.00000000000000)
-
-#define D3D10_MAX_BORDER_COLOR_COMPONENT (1.00000000000000)
-
-#define D3D10_MAX_DEPTH (1.00000000000000)
-
-#define D3D10_MAX_POSITION_VALUE (3.40282346600000e+34)
-
-#define D3D10_MIN_BORDER_COLOR_COMPONENT (0.00000000000000)
-
-#define D3D10_MIN_DEPTH (0.00000000000000)
-
-#define D3D10_MIP_LOD_BIAS_MAX (15.9900000000000)
-
-#define D3D10_MIP_LOD_BIAS_MIN (-16.0000000000000)
-
-#define D3D10_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT (0.500000000000000)
-
-#define D3D10_MULTISAMPLE_ANTIALIAS_LINE_WIDTH (1.40000000000000)
-
-#define D3D10_SRGB_GAMMA (2.20000000000000)
-
-#define D3D10_SRGB_TO_FLOAT_DENOMINATOR_1 (12.9200000000000)
-
-#define D3D10_SRGB_TO_FLOAT_DENOMINATOR_2 (1.05500000000000)
-
-#define D3D10_SRGB_TO_FLOAT_EXPONENT (2.40000000000000)
-
-#define D3D10_SRGB_TO_FLOAT_OFFSET (0.0550000000000000)
-
-#define D3D10_SRGB_TO_FLOAT_THRESHOLD (0.0404500000000000)
-
-#define D3D10_SRGB_TO_FLOAT_TOLERANCE_IN_ULP (0.500000000000000)
-
-#define D3D10_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT (0.00000000000000)
-
-#define D3D_SPEC_VERSION (1.05000500000000)
-
-#define D3D10_16BIT_INDEX_STRIP_CUT_VALUE (0xffff)
-
-#define D3D10_32BIT_INDEX_STRIP_CUT_VALUE (0xffffffff)
-
-#define D3D10_8BIT_INDEX_STRIP_CUT_VALUE (0xff)
-
-#define D3D10_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT (9)
-
-#define D3D10_CLIP_OR_CULL_DISTANCE_COUNT (8)
-
-#define D3D10_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT (2)
-
-#define D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT (14)
-
-#define D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS (4)
-
-#define D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT (32)
-
-#define D3D10_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT (15)
-
-#define D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS (4)
-
-#define D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT (15)
-
-#define D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST (1)
-
-#define D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS (1)
-
-#define D3D10_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT (64)
-
-#define D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS (4)
-
-#define D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT (1)
-
-#define D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST (1)
-
-#define D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS (1)
-
-#define D3D10_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT (32)
-
-#define D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS (1)
-
-#define D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT (128)
-
-#define D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST (1)
-
-#define D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS (1)
-
-#define D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT (128)
-
-#define D3D10_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS (1)
-
-#define D3D10_COMMONSHADER_SAMPLER_REGISTER_COUNT (16)
-
-#define D3D10_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST (1)
-
-#define D3D10_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS (1)
-
-#define D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT (16)
-
-#define D3D10_COMMONSHADER_SUBROUTINE_NESTING_LIMIT (32)
-
-#define D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENTS (4)
-
-#define D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT (32)
-
-#define D3D10_COMMONSHADER_TEMP_REGISTER_COUNT (4096)
-
-#define D3D10_COMMONSHADER_TEMP_REGISTER_READS_PER_INST (3)
-
-#define D3D10_COMMONSHADER_TEMP_REGISTER_READ_PORTS (3)
-
-#define D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX (10)
-
-#define D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN (-10)
-
-#define D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE (-8)
-
-#define D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE (7)
-
-#define D3D10_DEFAULT_DEPTH_BIAS (0)
-
-#define D3D10_DEFAULT_RENDER_TARGET_ARRAY_INDEX (0)
-
-#define D3D10_DEFAULT_SAMPLE_MASK (0xffffffff)
-
-#define D3D10_DEFAULT_SCISSOR_ENDX (0)
-
-#define D3D10_DEFAULT_SCISSOR_ENDY (0)
-
-#define D3D10_DEFAULT_SCISSOR_STARTX (0)
-
-#define D3D10_DEFAULT_SCISSOR_STARTY (0)
-
-#define D3D10_DEFAULT_STENCIL_READ_MASK (0xff)
-
-#define D3D10_DEFAULT_STENCIL_REFERENCE (0)
-
-#define D3D10_DEFAULT_STENCIL_WRITE_MASK (0xff)
-
-#define D3D10_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX (0)
-
-#define D3D10_DEFAULT_VIEWPORT_HEIGHT (0)
-
-#define D3D10_DEFAULT_VIEWPORT_TOPLEFTX (0)
-
-#define D3D10_DEFAULT_VIEWPORT_TOPLEFTY (0)
-
-#define D3D10_DEFAULT_VIEWPORT_WIDTH (0)
-
-#define D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS (1)
-
-#define D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT (32)
-
-#define D3D10_GS_INPUT_PRIM_CONST_REGISTER_COUNT (1)
-
-#define D3D10_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST (2)
-
-#define D3D10_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS (1)
-
-#define D3D10_GS_INPUT_REGISTER_COMPONENTS (4)
-
-#define D3D10_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT (32)
-
-#define D3D10_GS_INPUT_REGISTER_COUNT (16)
-
-#define D3D10_GS_INPUT_REGISTER_READS_PER_INST (2)
-
-#define D3D10_GS_INPUT_REGISTER_READ_PORTS (1)
-
-#define D3D10_GS_INPUT_REGISTER_VERTICES (6)
-
-#define D3D10_GS_OUTPUT_ELEMENTS (32)
-
-#define D3D10_GS_OUTPUT_REGISTER_COMPONENTS (4)
-
-#define D3D10_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT (32)
-
-#define D3D10_GS_OUTPUT_REGISTER_COUNT (32)
-
-#define D3D10_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES (0)
-
-#define D3D10_IA_DEFAULT_PRIMITIVE_TOPOLOGY (0)
-
-#define D3D10_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES (0)
-
-#define D3D10_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT (1)
-
-#define D3D10_IA_INSTANCE_ID_BIT_COUNT (32)
-
-#define D3D10_IA_INTEGER_ARITHMETIC_BIT_COUNT (32)
-
-#define D3D10_IA_PRIMITIVE_ID_BIT_COUNT (32)
-
-#define D3D10_IA_VERTEX_ID_BIT_COUNT (32)
-
-#define D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT (16)
-
-#define D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS (64)
-
-#define D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT (16)
-
-#define D3D10_INTEGER_DIVIDE_BY_ZERO_QUOTIENT (0xffffffff)
-
-#define D3D10_INTEGER_DIVIDE_BY_ZERO_REMAINDER (0xffffffff)
-
-#define D3D10_MAX_MAXANISOTROPY (16)
-
-#define D3D10_MAX_MULTISAMPLE_SAMPLE_COUNT (32)
-
-#define D3D10_MAX_TEXTURE_DIMENSION_2_TO_EXP (17)
-
-#define D3D10_MIN_MAXANISOTROPY (0)
-
-#define D3D10_MIP_LOD_FRACTIONAL_BIT_COUNT (6)
-
-#define D3D10_MIP_LOD_RANGE_BIT_COUNT (8)
-
-#define D3D10_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT (0)
-
-#define D3D10_PIXEL_ADDRESS_RANGE_BIT_COUNT (13)
-
-#define D3D10_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT (15)
-
-#define D3D10_PS_FRONTFACING_DEFAULT_VALUE (0xffffffff)
-
-#define D3D10_PS_FRONTFACING_FALSE_VALUE (0)
-
-#define D3D10_PS_FRONTFACING_TRUE_VALUE (0xffffffff)
-
-#define D3D10_PS_INPUT_REGISTER_COMPONENTS (4)
-
-#define D3D10_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT (32)
-
-#define D3D10_PS_INPUT_REGISTER_COUNT (32)
-
-#define D3D10_PS_INPUT_REGISTER_READS_PER_INST (2)
-
-#define D3D10_PS_INPUT_REGISTER_READ_PORTS (1)
-
-#define D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS (1)
-
-#define D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT (32)
-
-#define D3D10_PS_OUTPUT_DEPTH_REGISTER_COUNT (1)
-
-#define D3D10_PS_OUTPUT_REGISTER_COMPONENTS (4)
-
-#define D3D10_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT (32)
-
-#define D3D10_PS_OUTPUT_REGISTER_COUNT (8)
-
-#define D3D10_REQ_BLEND_OBJECT_COUNT_PER_CONTEXT (4096)
-
-#define D3D10_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP (27)
-
-#define D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT (4096)
-
-#define D3D10_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_CONTEXT (4096)
-
-#define D3D10_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP (32)
-
-#define D3D10_REQ_DRAW_VERTEX_COUNT_2_TO_EXP (32)
-
-#define D3D10_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION (8192)
-
-#define D3D10_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT (1024)
-
-#define D3D10_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT (4096)
-
-#define D3D10_REQ_MAXANISOTROPY (16)
-
-#define D3D10_REQ_MIP_LEVELS (14)
-
-#define D3D10_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES (2048)
-
-#define D3D10_REQ_RASTERIZER_OBJECT_COUNT_PER_CONTEXT (4096)
-
-#define D3D10_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH (8192)
-
-#define D3D10_REQ_RESOURCE_SIZE_IN_MEGABYTES (128)
-
-#define D3D10_REQ_RESOURCE_VIEW_COUNT_PER_CONTEXT_2_TO_EXP (20)
-
-#define D3D10_REQ_SAMPLER_OBJECT_COUNT_PER_CONTEXT (4096)
-
-#define D3D10_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION (512)
-
-#define D3D10_REQ_TEXTURE1D_U_DIMENSION (8192)
-
-#define D3D10_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION (512)
-
-#define D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION (8192)
-
-#define D3D10_REQ_TEXTURE3D_U_V_OR_W_DIMENSION (2048)
-
-#define D3D10_REQ_TEXTURECUBE_DIMENSION (8192)
-
-#define D3D10_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL (0)
-
-#define D3D10_SHADER_MAJOR_VERSION (4)
-
-#define D3D10_SHADER_MINOR_VERSION (0)
-
-#define D3D10_SHIFT_INSTRUCTION_PAD_VALUE (0)
-
-#define D3D10_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT (5)
-
-#define D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT (8)
-
-#define D3D10_SO_BUFFER_MAX_STRIDE_IN_BYTES (2048)
-
-#define D3D10_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES (256)
-
-#define D3D10_SO_BUFFER_SLOT_COUNT (4)
-
-#define D3D10_SO_DDI_REGISTER_INDEX_DENOTING_GAP (0xffffffff)
-
-#define D3D10_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER (1)
-
-#define D3D10_SO_SINGLE_BUFFER_COMPONENT_LIMIT (64)
-
-#define D3D10_STANDARD_COMPONENT_BIT_COUNT (32)
-
-#define D3D10_STANDARD_COMPONENT_BIT_COUNT_DOUBLED (64)
-
-#define D3D10_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE (4)
-
-#define D3D10_STANDARD_PIXEL_COMPONENT_COUNT (128)
-
-#define D3D10_STANDARD_PIXEL_ELEMENT_COUNT (32)
-
-#define D3D10_STANDARD_VECTOR_SIZE (4)
-
-#define D3D10_STANDARD_VERTEX_ELEMENT_COUNT (16)
-
-#define D3D10_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT (64)
-
-#define D3D10_SUBPIXEL_FRACTIONAL_BIT_COUNT (8)
-
-#define D3D10_SUBTEXEL_FRACTIONAL_BIT_COUNT (6)
-
-#define D3D10_TEXEL_ADDRESS_RANGE_BIT_COUNT (18)
-
-#define D3D10_UNBOUND_MEMORY_ACCESS_RESULT (0)
-
-#define D3D10_VIEWPORT_AND_SCISSORRECT_MAX_INDEX (15)
-
-#define D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE (16)
-
-#define D3D10_VIEWPORT_BOUNDS_MAX (16383)
-
-#define D3D10_VIEWPORT_BOUNDS_MIN (-16384)
-
-#define D3D10_VS_INPUT_REGISTER_COMPONENTS (4)
-
-#define D3D10_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT (32)
-
-#define D3D10_VS_INPUT_REGISTER_COUNT (16)
-
-#define D3D10_VS_INPUT_REGISTER_READS_PER_INST (2)
-
-#define D3D10_VS_INPUT_REGISTER_READ_PORTS (1)
-
-#define D3D10_VS_OUTPUT_REGISTER_COMPONENTS (4)
-
-#define D3D10_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT (32)
-
-#define D3D10_VS_OUTPUT_REGISTER_COUNT (16)
-
-#define D3D10_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT (10)
-
-#define D3D10_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP (25)
-
-#define D3D10_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP (25)
-
-#define D3D_MAJOR_VERSION (10)
-
-#define D3D_MINOR_VERSION (0)
-
-#define D3D_SPEC_DATE_DAY (8)
-
-#define D3D_SPEC_DATE_MONTH (8)
-
-#define D3D_SPEC_DATE_YEAR (2006)
-
-#endif
-#define D3D10_APPEND_ALIGNED_ELEMENT (0xffffffff)
-
-#define _FACD3D10 (0x87)
-
-#define _FACD3D10DEBUG (_FACD3D10 + 1)
-
-#define D3D10_FILTER_TYPE_MASK (0x3)
-
-#define D3D10_SDK_VERSION (29)
-
-#define MAKE_D3D10_HRESULT(code)                   MAKE_HRESULT( 1, _FACD3D10, code)
-#define MAKE_D3D10_STATUS(code)                    MAKE_HRESULT( 0, _FACD3D10, code)
-#define D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS  MAKE_D3D10_HRESULT(1)
-#define D3D10_ERROR_FILE_NOT_FOUND                 MAKE_D3D10_HRESULT(2)
-typedef enum D3D10_BLEND {
-    D3D10_BLEND_ZERO = 1,
-    D3D10_BLEND_ONE = 2,
-    D3D10_BLEND_SRC_COLOR = 3,
-    D3D10_BLEND_INV_SRC_COLOR = 4,
-    D3D10_BLEND_SRC_ALPHA = 5,
-    D3D10_BLEND_INV_SRC_ALPHA = 6,
-    D3D10_BLEND_DEST_ALPHA = 7,
-    D3D10_BLEND_INV_DEST_ALPHA = 8,
-    D3D10_BLEND_DEST_COLOR = 9,
-    D3D10_BLEND_INV_DEST_COLOR = 10,
-    D3D10_BLEND_SRC_ALPHA_SAT = 11,
-    D3D10_BLEND_BLEND_FACTOR = 14,
-    D3D10_BLEND_INV_BLEND_FACTOR = 15,
-    D3D10_BLEND_SRC1_COLOR = 16,
-    D3D10_BLEND_INV_SRC1_COLOR = 17,
-    D3D10_BLEND_SRC1_ALPHA = 18,
-    D3D10_BLEND_INV_SRC1_ALPHA = 19
-} D3D10_BLEND;
-typedef enum D3D10_BLEND_OP {
-    D3D10_BLEND_OP_ADD = 1,
-    D3D10_BLEND_OP_SUBTRACT = 2,
-    D3D10_BLEND_OP_REV_SUBTRACT = 3,
-    D3D10_BLEND_OP_MIN = 4,
-    D3D10_BLEND_OP_MAX = 5
-} D3D10_BLEND_OP;
-typedef struct D3D10_BLEND_DESC {
-    BOOL AlphaToCoverageEnable;
-    BOOL BlendEnable[8];
-    D3D10_BLEND SrcBlend;
-    D3D10_BLEND DestBlend;
-    D3D10_BLEND_OP BlendOp;
-    D3D10_BLEND SrcBlendAlpha;
-    D3D10_BLEND DestBlendAlpha;
-    D3D10_BLEND_OP BlendOpAlpha;
-    UINT8 RenderTargetWriteMask[8];
-} D3D10_BLEND_DESC;
-typedef enum D3D10_DEPTH_WRITE_MASK {
-    D3D10_DEPTH_WRITE_MASK_ZERO = 0,
-    D3D10_DEPTH_WRITE_MASK_ALL = 1
-} D3D10_DEPTH_WRITE_MASK;
-typedef enum D3D10_COMPARISON_FUNC {
-    D3D10_COMPARISON_NEVER = 1,
-    D3D10_COMPARISON_LESS = 2,
-    D3D10_COMPARISON_EQUAL = 3,
-    D3D10_COMPARISON_LESS_EQUAL = 4,
-    D3D10_COMPARISON_GREATER = 5,
-    D3D10_COMPARISON_NOT_EQUAL = 6,
-    D3D10_COMPARISON_GREATER_EQUAL = 7,
-    D3D10_COMPARISON_ALWAYS = 8
-} D3D10_COMPARISON_FUNC;
-typedef enum D3D10_STENCIL_OP {
-    D3D10_STENCIL_OP_KEEP = 1,
-    D3D10_STENCIL_OP_ZERO = 2,
-    D3D10_STENCIL_OP_REPLACE = 3,
-    D3D10_STENCIL_OP_INCR_SAT = 4,
-    D3D10_STENCIL_OP_DECR_SAT = 5,
-    D3D10_STENCIL_OP_INVERT = 6,
-    D3D10_STENCIL_OP_INCR = 7,
-    D3D10_STENCIL_OP_DECR = 8
-} D3D10_STENCIL_OP;
-typedef struct D3D10_DEPTH_STENCILOP_DESC {
-    D3D10_STENCIL_OP StencilFailOp;
-    D3D10_STENCIL_OP StencilDepthFailOp;
-    D3D10_STENCIL_OP StencilPassOp;
-    D3D10_COMPARISON_FUNC StencilFunc;
-} D3D10_DEPTH_STENCILOP_DESC;
-typedef struct D3D10_DEPTH_STENCIL_DESC {
-    BOOL DepthEnable;
-    D3D10_DEPTH_WRITE_MASK DepthWriteMask;
-    D3D10_COMPARISON_FUNC DepthFunc;
-    BOOL StencilEnable;
-    UINT8 StencilReadMask;
-    UINT8 StencilWriteMask;
-    D3D10_DEPTH_STENCILOP_DESC FrontFace;
-    D3D10_DEPTH_STENCILOP_DESC BackFace;
-} D3D10_DEPTH_STENCIL_DESC;
-typedef enum D3D10_FILL_MODE {
-    D3D10_FILL_WIREFRAME = 2,
-    D3D10_FILL_SOLID = 3
-} D3D10_FILL_MODE;
-typedef enum D3D10_CULL_MODE {
-    D3D10_CULL_NONE = 1,
-    D3D10_CULL_FRONT = 2,
-    D3D10_CULL_BACK = 3
-} D3D10_CULL_MODE;
-typedef struct D3D10_RASTERIZER_DESC {
-    D3D10_FILL_MODE FillMode;
-    D3D10_CULL_MODE CullMode;
-    BOOL FrontCounterClockwise;
-    INT DepthBias;
-    FLOAT DepthBiasClamp;
-    FLOAT SlopeScaledDepthBias;
-    BOOL DepthClipEnable;
-    BOOL ScissorEnable;
-    BOOL MultisampleEnable;
-    BOOL AntialiasedLineEnable;
-} D3D10_RASTERIZER_DESC;
-typedef enum D3D10_FILTER {
-    D3D10_FILTER_MIN_MAG_MIP_POINT = 0,
-    D3D10_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1,
-    D3D10_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4,
-    D3D10_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5,
-    D3D10_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10,
-    D3D10_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11,
-    D3D10_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14,
-    D3D10_FILTER_MIN_MAG_MIP_LINEAR = 0x15,
-    D3D10_FILTER_ANISOTROPIC = 0x55,
-    D3D10_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80,
-    D3D10_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81,
-    D3D10_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84,
-    D3D10_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85,
-    D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90,
-    D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
-    D3D10_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94,
-    D3D10_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95,
-    D3D10_FILTER_COMPARISON_ANISOTROPIC = 0xd5,
-    D3D10_FILTER_TEXT_1BIT = 0x80000000
-} D3D10_FILTER;
-typedef enum D3D10_TEXTURE_ADDRESS_MODE {
-    D3D10_TEXTURE_ADDRESS_WRAP = 1,
-    D3D10_TEXTURE_ADDRESS_MIRROR = 2,
-    D3D10_TEXTURE_ADDRESS_CLAMP = 3,
-    D3D10_TEXTURE_ADDRESS_BORDER = 4,
-    D3D10_TEXTURE_ADDRESS_MIRROR_ONCE = 5
-} D3D10_TEXTURE_ADDRESS_MODE;
-typedef struct D3D10_SAMPLER_DESC {
-    D3D10_FILTER Filter;
-    D3D10_TEXTURE_ADDRESS_MODE AddressU;
-    D3D10_TEXTURE_ADDRESS_MODE AddressV;
-    D3D10_TEXTURE_ADDRESS_MODE AddressW;
-    FLOAT MipLODBias;
-    UINT MaxAnisotropy;
-    D3D10_COMPARISON_FUNC ComparisonFunc;
-    FLOAT BorderColor[4];
-    FLOAT MinLOD;
-    FLOAT MaxLOD;
-} D3D10_SAMPLER_DESC;
-typedef enum D3D10_COUNTER {
-    D3D10_COUNTER_GPU_IDLE = 0,
-    D3D10_COUNTER_VERTEX_PROCESSING = 1,
-    D3D10_COUNTER_GEOMETRY_PROCESSING = 2,
-    D3D10_COUNTER_PIXEL_PROCESSING = 3,
-    D3D10_COUNTER_OTHER_GPU_PROCESSING = 4,
-    D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION = 5,
-    D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION = 6,
-    D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION = 7,
-    D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION = 8,
-    D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION = 9,
-    D3D10_COUNTER_VS_MEMORY_LIMITED = 10,
-    D3D10_COUNTER_VS_COMPUTATION_LIMITED = 11,
-    D3D10_COUNTER_GS_MEMORY_LIMITED = 12,
-    D3D10_COUNTER_GS_COMPUTATION_LIMITED = 13,
-    D3D10_COUNTER_PS_MEMORY_LIMITED = 14,
-    D3D10_COUNTER_PS_COMPUTATION_LIMITED = 15,
-    D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE = 16,
-    D3D10_COUNTER_TEXTURE_CACHE_HIT_RATE = 17,
-    D3D10_COUNTER_DEVICE_DEPENDENT_0 = 0x40000000
-} D3D10_COUNTER;
-typedef struct D3D10_COUNTER_DESC {
-    D3D10_COUNTER Counter;
-    UINT MiscFlags;
-} D3D10_COUNTER_DESC;
-typedef enum D3D10_COUNTER_TYPE {
-    D3D10_COUNTER_TYPE_FLOAT32 = 0,
-    D3D10_COUNTER_TYPE_UINT16 = 1,
-    D3D10_COUNTER_TYPE_UINT32 = 2,
-    D3D10_COUNTER_TYPE_UINT64 = 3
-} D3D10_COUNTER_TYPE;
-typedef struct D3D10_COUNTER_INFO {
-    D3D10_COUNTER LastDeviceDependentCounter;
-    UINT NumSimultaneousCounters;
-    UINT8 NumDetectableParallelUnits;
-} D3D10_COUNTER_INFO;
-typedef enum D3D10_RESOURCE_DIMENSION {
-    D3D10_RESOURCE_DIMENSION_UNKNOWN = 0,
-    D3D10_RESOURCE_DIMENSION_BUFFER = 1,
-    D3D10_RESOURCE_DIMENSION_TEXTURE1D = 2,
-    D3D10_RESOURCE_DIMENSION_TEXTURE2D = 3,
-    D3D10_RESOURCE_DIMENSION_TEXTURE3D = 4
-} D3D10_RESOURCE_DIMENSION;
-typedef enum D3D10_USAGE {
-    D3D10_USAGE_DEFAULT = 0,
-    D3D10_USAGE_IMMUTABLE = 1,
-    D3D10_USAGE_DYNAMIC = 2,
-    D3D10_USAGE_STAGING = 3
-} D3D10_USAGE;
-typedef struct D3D10_BUFFER_DESC {
-    UINT ByteWidth;
-    D3D10_USAGE Usage;
-    UINT BindFlags;
-    UINT CPUAccessFlags;
-    UINT MiscFlags;
-} D3D10_BUFFER_DESC;
-typedef enum D3D10_MAP {
-    D3D10_MAP_READ = 1,
-    D3D10_MAP_WRITE = 2,
-    D3D10_MAP_READ_WRITE = 3,
-    D3D10_MAP_WRITE_DISCARD = 4,
-    D3D10_MAP_WRITE_NO_OVERWRITE = 5
-} D3D10_MAP;
-typedef struct D3D10_TEXTURE1D_DESC {
-    UINT Width;
-    UINT MipLevels;
-    UINT ArraySize;
-    DXGI_FORMAT Format;
-    D3D10_USAGE Usage;
-    UINT BindFlags;
-    UINT CPUAccessFlags;
-    UINT MiscFlags;
-} D3D10_TEXTURE1D_DESC;
-typedef struct D3D10_TEXTURE2D_DESC {
-    UINT Width;
-    UINT Height;
-    UINT MipLevels;
-    UINT ArraySize;
-    DXGI_FORMAT Format;
-    DXGI_SAMPLE_DESC SampleDesc;
-    D3D10_USAGE Usage;
-    UINT BindFlags;
-    UINT CPUAccessFlags;
-    UINT MiscFlags;
-} D3D10_TEXTURE2D_DESC;
-typedef struct D3D10_TEXTURE3D_DESC {
-    UINT Width;
-    UINT Height;
-    UINT Depth;
-    UINT MipLevels;
-    DXGI_FORMAT Format;
-    D3D10_USAGE Usage;
-    UINT BindFlags;
-    UINT CPUAccessFlags;
-    UINT MiscFlags;
-} D3D10_TEXTURE3D_DESC;
-typedef enum D3D10_DSV_DIMENSION {
-    D3D10_DSV_DIMENSION_UNKNOWN = 0,
-    D3D10_DSV_DIMENSION_TEXTURE1D = 1,
-    D3D10_DSV_DIMENSION_TEXTURE1DARRAY = 2,
-    D3D10_DSV_DIMENSION_TEXTURE2D = 3,
-    D3D10_DSV_DIMENSION_TEXTURE2DARRAY = 4,
-    D3D10_DSV_DIMENSION_TEXTURE2DMS = 5,
-    D3D10_DSV_DIMENSION_TEXTURE2DMSARRAY = 6
-} D3D10_DSV_DIMENSION;
-typedef struct D3D10_TEX1D_DSV {
-    UINT MipSlice;
-} D3D10_TEX1D_DSV;
-typedef struct D3D10_TEX1D_ARRAY_DSV {
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX1D_ARRAY_DSV;
-typedef struct D3D10_TEX2D_DSV {
-    UINT MipSlice;
-} D3D10_TEX2D_DSV;
-typedef struct D3D10_TEX2D_ARRAY_DSV {
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2D_ARRAY_DSV;
-typedef struct D3D10_TEX2DMS_DSV {
-    UINT UnusedField_NothingToDefine;
-} D3D10_TEX2DMS_DSV;
-typedef struct D3D10_TEX2DMS_ARRAY_DSV {
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2DMS_ARRAY_DSV;
-typedef struct D3D10_DEPTH_STENCIL_VIEW_DESC {
-    DXGI_FORMAT Format;
-    D3D10_DSV_DIMENSION ViewDimension;
-    union {
-        D3D10_TEX1D_DSV Texture1D;
-        D3D10_TEX1D_ARRAY_DSV Texture1DArray;
-        D3D10_TEX2D_DSV Texture2D;
-        D3D10_TEX2D_ARRAY_DSV Texture2DArray;
-        D3D10_TEX2DMS_DSV Texture2DMS;
-        D3D10_TEX2DMS_ARRAY_DSV Texture2DMSArray;
-    } DUMMYUNIONNAME;
-} D3D10_DEPTH_STENCIL_VIEW_DESC;
-typedef enum D3D10_RTV_DIMENSION {
-    D3D10_RTV_DIMENSION_UNKNOWN = 0,
-    D3D10_RTV_DIMENSION_BUFFER = 1,
-    D3D10_RTV_DIMENSION_TEXTURE1D = 2,
-    D3D10_RTV_DIMENSION_TEXTURE1DARRAY = 3,
-    D3D10_RTV_DIMENSION_TEXTURE2D = 4,
-    D3D10_RTV_DIMENSION_TEXTURE2DARRAY = 5,
-    D3D10_RTV_DIMENSION_TEXTURE2DMS = 6,
-    D3D10_RTV_DIMENSION_TEXTURE2DMSARRAY = 7,
-    D3D10_RTV_DIMENSION_TEXTURE3D = 8
-} D3D10_RTV_DIMENSION;
-typedef struct D3D10_BUFFER_RTV {
-    UINT ElementOffset;
-    UINT ElementWidth;
-} D3D10_BUFFER_RTV;
-typedef struct D3D10_TEX1D_RTV {
-    UINT MipSlice;
-} D3D10_TEX1D_RTV;
-typedef struct D3D10_TEX1D_ARRAY_RTV {
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX1D_ARRAY_RTV;
-typedef struct D3D10_TEX2D_RTV {
-    UINT MipSlice;
-} D3D10_TEX2D_RTV;
-typedef struct D3D10_TEX2D_ARRAY_RTV {
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2D_ARRAY_RTV;
-typedef struct D3D10_TEX2DMS_RTV {
-    UINT UnusedField_NothingToDefine;
-} D3D10_TEX2DMS_RTV;
-typedef struct D3D10_TEX2DMS_ARRAY_RTV {
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2DMS_ARRAY_RTV;
-typedef struct D3D10_TEX3D_RTV {
-    UINT MipSlice;
-    UINT FirstWSlice;
-    UINT WSize;
-} D3D10_TEX3D_RTV;
-typedef struct D3D10_RENDER_TARGET_VIEW_DESC {
-    DXGI_FORMAT Format;
-    D3D10_RTV_DIMENSION ViewDimension;
-    union {
-        D3D10_BUFFER_RTV Buffer;
-        D3D10_TEX1D_RTV Texture1D;
-        D3D10_TEX1D_ARRAY_RTV Texture1DArray;
-        D3D10_TEX2D_RTV Texture2D;
-        D3D10_TEX2D_ARRAY_RTV Texture2DArray;
-        D3D10_TEX2DMS_RTV Texture2DMS;
-        D3D10_TEX2DMS_ARRAY_RTV Texture2DMSArray;
-        D3D10_TEX3D_RTV Texture3D;
-    } DUMMYUNIONNAME;
-} D3D10_RENDER_TARGET_VIEW_DESC;
-typedef enum D3D10_SRV_DIMENSION {
-    D3D10_SRV_DIMENSION_UNKNOWN = 0,
-    D3D10_SRV_DIMENSION_BUFFER = 1,
-    D3D10_SRV_DIMENSION_TEXTURE1D = 2,
-    D3D10_SRV_DIMENSION_TEXTURE1DARRAY = 3,
-    D3D10_SRV_DIMENSION_TEXTURE2D = 4,
-    D3D10_SRV_DIMENSION_TEXTURE2DARRAY = 5,
-    D3D10_SRV_DIMENSION_TEXTURE2DMS = 6,
-    D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY = 7,
-    D3D10_SRV_DIMENSION_TEXTURE3D = 8,
-    D3D10_SRV_DIMENSION_TEXTURECUBE = 9
-} D3D10_SRV_DIMENSION;
-typedef struct D3D10_BUFFER_SRV {
-    UINT ElementOffset;
-    UINT ElementWidth;
-} D3D10_BUFFER_SRV;
-typedef struct D3D10_TEX1D_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-} D3D10_TEX1D_SRV;
-typedef struct D3D10_TEX1D_ARRAY_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX1D_ARRAY_SRV;
-typedef struct D3D10_TEX2D_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-} D3D10_TEX2D_SRV;
-typedef struct D3D10_TEX2D_ARRAY_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2D_ARRAY_SRV;
-typedef struct D3D10_TEX2DMS_SRV {
-    UINT UnusedField_NothingToDefine;
-} D3D10_TEX2DMS_SRV;
-typedef struct D3D10_TEX2DMS_ARRAY_SRV {
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2DMS_ARRAY_SRV;
-typedef struct D3D10_TEX3D_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-} D3D10_TEX3D_SRV;
-typedef struct D3D10_TEXCUBE_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-} D3D10_TEXCUBE_SRV;
-typedef struct D3D10_SHADER_RESOURCE_VIEW_DESC {
-    DXGI_FORMAT Format;
-    D3D10_SRV_DIMENSION ViewDimension;
-    union {
-        D3D10_BUFFER_SRV Buffer;
-        D3D10_TEX1D_SRV Texture1D;
-        D3D10_TEX1D_ARRAY_SRV Texture1DArray;
-        D3D10_TEX2D_SRV Texture2D;
-        D3D10_TEX2D_ARRAY_SRV Texture2DArray;
-        D3D10_TEX2DMS_SRV Texture2DMS;
-        D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray;
-        D3D10_TEX3D_SRV Texture3D;
-        D3D10_TEXCUBE_SRV TextureCube;
-    } DUMMYUNIONNAME;
-} D3D10_SHADER_RESOURCE_VIEW_DESC;
-typedef struct D3D10_BOX {
-    UINT left;
-    UINT top;
-    UINT front;
-    UINT right;
-    UINT bottom;
-    UINT back;
-} D3D10_BOX;
-typedef struct D3D10_SUBRESOURCE_DATA {
-    const void *pSysMem;
-    UINT SysMemPitch;
-    UINT SysMemSlicePitch;
-} D3D10_SUBRESOURCE_DATA;
-typedef struct D3D10_SO_DECLARATION_ENTRY {
-    LPCSTR SemanticName;
-    UINT SemanticIndex;
-    BYTE StartComponent;
-    BYTE ComponentCount;
-    BYTE OutputSlot;
-} D3D10_SO_DECLARATION_ENTRY;
-typedef enum D3D10_INPUT_CLASSIFICATION {
-    D3D10_INPUT_PER_VERTEX_DATA = 0,
-    D3D10_INPUT_PER_INSTANCE_DATA = 1
-} D3D10_INPUT_CLASSIFICATION;
-typedef struct D3D10_INPUT_ELEMENT_DESC {
-    LPCSTR SemanticName;
-    UINT SemanticIndex;
-    DXGI_FORMAT Format;
-    UINT InputSlot;
-    UINT AlignedByteOffset;
-    D3D10_INPUT_CLASSIFICATION InputSlotClass;
-    UINT InstanceDataStepRate;
-} D3D10_INPUT_ELEMENT_DESC;
-typedef enum D3D10_QUERY {
-    D3D10_QUERY_EVENT = 0,
-    D3D10_QUERY_OCCLUSION = 1,
-    D3D10_QUERY_TIMESTAMP = 2,
-    D3D10_QUERY_TIMESTAMP_DISJOINT = 3,
-    D3D10_QUERY_PIPELINE_STATISTICS = 4,
-    D3D10_QUERY_OCCLUSION_PREDICATE = 5,
-    D3D10_QUERY_SO_STATISTICS = 6,
-    D3D10_QUERY_SO_OVERFLOW_PREDICATE = 7
-} D3D10_QUERY;
-typedef struct D3D10_QUERY_DESC {
-    D3D10_QUERY Query;
-    UINT MiscFlags;
-} D3D10_QUERY_DESC;
-typedef enum D3D10_PRIMITIVE_TOPOLOGY {
-    D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED = 0,
-    D3D10_PRIMITIVE_TOPOLOGY_POINTLIST = 1,
-    D3D10_PRIMITIVE_TOPOLOGY_LINELIST = 2,
-    D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP = 3,
-    D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4,
-    D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5,
-    D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10,
-    D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11,
-    D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12,
-    D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13
-} D3D10_PRIMITIVE_TOPOLOGY;
-typedef RECT D3D10_RECT;
-typedef struct D3D10_VIEWPORT {
-    INT TopLeftX;
-    INT TopLeftY;
-    UINT Width;
-    UINT Height;
-    FLOAT MinDepth;
-    FLOAT MaxDepth;
-} D3D10_VIEWPORT;
-typedef struct D3D10_MAPPED_TEXTURE2D {
-    void *pData;
-    UINT RowPitch;
-} D3D10_MAPPED_TEXTURE2D;
-typedef struct D3D10_MAPPED_TEXTURE3D {
-    void *pData;
-    UINT RowPitch;
-    UINT DepthPitch;
-} D3D10_MAPPED_TEXTURE3D;
-typedef enum D3D10_BIND_FLAG {
-    D3D10_BIND_VERTEX_BUFFER = 0x1,
-    D3D10_BIND_INDEX_BUFFER = 0x2,
-    D3D10_BIND_CONSTANT_BUFFER = 0x4,
-    D3D10_BIND_SHADER_RESOURCE = 0x8,
-    D3D10_BIND_STREAM_OUTPUT = 0x10,
-    D3D10_BIND_RENDER_TARGET = 0x20,
-    D3D10_BIND_DEPTH_STENCIL = 0x40
-} D3D10_BIND_FLAG;
-typedef enum D3D10_CPU_ACCESS_FLAG {
-    D3D10_CPU_ACCESS_WRITE = 0x10000,
-    D3D10_CPU_ACCESS_READ = 0x20000
-} D3D10_CPU_ACCESS_FLAG;
-typedef enum D3D10_RESOURCE_MISC_FLAG {
-    D3D10_RESOURCE_MISC_GENERATE_MIPS = 0x1,
-    D3D10_RESOURCE_MISC_SHARED = 0x2,
-    D3D10_RESOURCE_MISC_TEXTURECUBE = 0x4
-} D3D10_RESOURCE_MISC_FLAG;
-typedef enum D3D10_MAP_FLAG {
-    D3D10_MAP_FLAG_DO_NOT_WAIT = 0x100000
-} D3D10_MAP_FLAG;
-typedef enum D3D10_CLEAR_FLAG {
-    D3D10_CLEAR_DEPTH = 0x1,
-    D3D10_CLEAR_STENCIL = 0x2
-} D3D10_CLEAR_FLAG;
-typedef enum D3D10_COLOR_WRITE_ENABLE {
-    D3D10_COLOR_WRITE_ENABLE_RED = 0x1,
-    D3D10_COLOR_WRITE_ENABLE_GREEN = 0x2,
-    D3D10_COLOR_WRITE_ENABLE_BLUE = 0x4,
-    D3D10_COLOR_WRITE_ENABLE_ALPHA = 0x8,
-    D3D10_COLOR_WRITE_ENABLE_ALL = ((D3D10_COLOR_WRITE_ENABLE_RED | D3D10_COLOR_WRITE_ENABLE_GREEN) | D3D10_COLOR_WRITE_ENABLE_BLUE) | D3D10_COLOR_WRITE_ENABLE_ALPHA
-} D3D10_COLOR_WRITE_ENABLE;
-typedef enum D3D10_TEXTURECUBE_FACE {
-    D3D10_TEXTURECUBE_FACE_POSITIVE_X = 0,
-    D3D10_TEXTURECUBE_FACE_NEGATIVE_X = 1,
-    D3D10_TEXTURECUBE_FACE_POSITIVE_Y = 2,
-    D3D10_TEXTURECUBE_FACE_NEGATIVE_Y = 3,
-    D3D10_TEXTURECUBE_FACE_POSITIVE_Z = 4,
-    D3D10_TEXTURECUBE_FACE_NEGATIVE_Z = 5
-} D3D10_TEXTURECUBE_FACE;
-typedef enum D3D10_ASYNC_GETDATA_FLAG {
-    D3D10_ASYNC_GETDATA_DONOTFLUSH = 0x1
-} D3D10_ASYNC_GETDATA_FLAG;
-typedef enum D3D10_FILTER_TYPE {
-    D3D10_FILTER_TYPE_POINT = 0,
-    D3D10_FILTER_TYPE_LINEAR = 1
-} D3D10_FILTER_TYPE;
-typedef enum D3D10_QUERY_MISC_FLAG {
-    D3D10_QUERY_MISC_PREDICATEHINT = 0x1
-} D3D10_QUERY_MISC_FLAG;
-typedef struct D3D10_QUERY_DATA_TIMESTAMP_DISJOINT {
-    UINT64 Frequency;
-    BOOL Disjoint;
-} D3D10_QUERY_DATA_TIMESTAMP_DISJOINT;
-typedef struct D3D10_QUERY_DATA_PIPELINE_STATISTICS {
-    UINT64 IAVertices;
-    UINT64 IAPrimitives;
-    UINT64 VSInvocations;
-    UINT64 GSInvocations;
-    UINT64 GSPrimitives;
-    UINT64 CInvocations;
-    UINT64 CPrimitives;
-    UINT64 PSInvocations;
-} D3D10_QUERY_DATA_PIPELINE_STATISTICS;
-typedef struct D3D10_QUERY_DATA_SO_STATISTICS {
-    UINT64 NumPrimitivesWritten;
-    UINT64 PrimitivesStorageNeeded;
-} D3D10_QUERY_DATA_SO_STATISTICS;
-typedef enum D3D10_CREATE_DEVICE_FLAG {
-    D3D10_CREATE_DEVICE_SINGLETHREADED = 0x1,
-    D3D10_CREATE_DEVICE_DEBUG = 0x2,
-    D3D10_CREATE_DEVICE_SWITCH_TO_REF = 0x4,
-    D3D10_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x8
-} D3D10_CREATE_DEVICE_FLAG;
-#ifndef __ID3D10Device_FWD_DEFINED__
-#define __ID3D10Device_FWD_DEFINED__
-typedef interface ID3D10Device ID3D10Device;
-#endif
-
-/*****************************************************************************
- * ID3D10DeviceChild interface
- */
-#ifndef __ID3D10DeviceChild_INTERFACE_DEFINED__
-#define __ID3D10DeviceChild_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10DeviceChild, 0x9b7e4c00, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10DeviceChild : public IUnknown
-{
-    virtual void STDMETHODCALLTYPE GetDevice(
-        ID3D10Device **ppDevice) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
-        REFGUID guid,
-        const IUnknown *pData) = 0;
-
-};
-#else
-typedef struct ID3D10DeviceChildVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10DeviceChild* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10DeviceChild* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10DeviceChild* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10DeviceChild* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10DeviceChild* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10DeviceChild* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10DeviceChild* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    END_INTERFACE
-} ID3D10DeviceChildVtbl;
-interface ID3D10DeviceChild {
-    CONST_VTBL ID3D10DeviceChildVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10DeviceChild_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10DeviceChild_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10DeviceChild_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10DeviceChild_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10DeviceChild_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10DeviceChild_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10DeviceChild_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10DeviceChild_GetDevice_Proxy(
-    ID3D10DeviceChild* This,
-    ID3D10Device **ppDevice);
-void __RPC_STUB ID3D10DeviceChild_GetDevice_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10DeviceChild_GetPrivateData_Proxy(
-    ID3D10DeviceChild* This,
-    REFGUID guid,
-    UINT *pDataSize,
-    void *pData);
-void __RPC_STUB ID3D10DeviceChild_GetPrivateData_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10DeviceChild_SetPrivateData_Proxy(
-    ID3D10DeviceChild* This,
-    REFGUID guid,
-    UINT DataSize,
-    const void *pData);
-void __RPC_STUB ID3D10DeviceChild_SetPrivateData_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10DeviceChild_SetPrivateDataInterface_Proxy(
-    ID3D10DeviceChild* This,
-    REFGUID guid,
-    const IUnknown *pData);
-void __RPC_STUB ID3D10DeviceChild_SetPrivateDataInterface_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10DeviceChild_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10Resource interface
- */
-#ifndef __ID3D10Resource_INTERFACE_DEFINED__
-#define __ID3D10Resource_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10Resource, 0x9b7e4c01, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10Resource : public ID3D10DeviceChild
-{
-    virtual void STDMETHODCALLTYPE GetType(
-        D3D10_RESOURCE_DIMENSION *rType) = 0;
-
-    virtual void STDMETHODCALLTYPE SetEvictionPriority(
-        UINT EvictionPriority) = 0;
-
-    virtual UINT STDMETHODCALLTYPE GetEvictionPriority(
-        ) = 0;
-
-};
-#else
-typedef struct ID3D10ResourceVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10Resource* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10Resource* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10Resource* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10Resource* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10Resource* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10Resource* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10Resource* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10Resource methods ***/
-    void (STDMETHODCALLTYPE *GetType)(
-        ID3D10Resource* This,
-        D3D10_RESOURCE_DIMENSION *rType);
-
-    void (STDMETHODCALLTYPE *SetEvictionPriority)(
-        ID3D10Resource* This,
-        UINT EvictionPriority);
-
-    UINT (STDMETHODCALLTYPE *GetEvictionPriority)(
-        ID3D10Resource* This);
-
-    END_INTERFACE
-} ID3D10ResourceVtbl;
-interface ID3D10Resource {
-    CONST_VTBL ID3D10ResourceVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10Resource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10Resource_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10Resource_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10Resource_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10Resource_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10Resource_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10Resource_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10Resource methods ***/
-#define ID3D10Resource_GetType(This,rType) (This)->lpVtbl->GetType(This,rType)
-#define ID3D10Resource_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
-#define ID3D10Resource_GetEvictionPriority(This) (This)->lpVtbl->GetEvictionPriority(This)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10Resource_GetType_Proxy(
-    ID3D10Resource* This,
-    D3D10_RESOURCE_DIMENSION *rType);
-void __RPC_STUB ID3D10Resource_GetType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Resource_SetEvictionPriority_Proxy(
-    ID3D10Resource* This,
-    UINT EvictionPriority);
-void __RPC_STUB ID3D10Resource_SetEvictionPriority_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-UINT STDMETHODCALLTYPE ID3D10Resource_GetEvictionPriority_Proxy(
-    ID3D10Resource* This);
-void __RPC_STUB ID3D10Resource_GetEvictionPriority_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10Resource_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10Buffer interface
- */
-#ifndef __ID3D10Buffer_INTERFACE_DEFINED__
-#define __ID3D10Buffer_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10Buffer, 0x9b7e4c02, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10Buffer : public ID3D10Resource
-{
-    virtual HRESULT STDMETHODCALLTYPE Map(
-        D3D10_MAP MapType,
-        UINT MapFlags,
-        void **ppData) = 0;
-
-    virtual void STDMETHODCALLTYPE Unmap(
-        ) = 0;
-
-    virtual void STDMETHODCALLTYPE GetDesc(
-        D3D10_BUFFER_DESC *pDesc) = 0;
-
-};
-#else
-typedef struct ID3D10BufferVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10Buffer* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10Buffer* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10Buffer* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10Buffer* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10Buffer* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10Buffer* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10Buffer* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10Resource methods ***/
-    void (STDMETHODCALLTYPE *GetType)(
-        ID3D10Buffer* This,
-        D3D10_RESOURCE_DIMENSION *rType);
-
-    void (STDMETHODCALLTYPE *SetEvictionPriority)(
-        ID3D10Buffer* This,
-        UINT EvictionPriority);
-
-    UINT (STDMETHODCALLTYPE *GetEvictionPriority)(
-        ID3D10Buffer* This);
-
-    /*** ID3D10Buffer methods ***/
-    HRESULT (STDMETHODCALLTYPE *Map)(
-        ID3D10Buffer* This,
-        D3D10_MAP MapType,
-        UINT MapFlags,
-        void **ppData);
-
-    void (STDMETHODCALLTYPE *Unmap)(
-        ID3D10Buffer* This);
-
-    void (STDMETHODCALLTYPE *GetDesc)(
-        ID3D10Buffer* This,
-        D3D10_BUFFER_DESC *pDesc);
-
-    END_INTERFACE
-} ID3D10BufferVtbl;
-interface ID3D10Buffer {
-    CONST_VTBL ID3D10BufferVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10Buffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10Buffer_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10Buffer_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10Buffer_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10Buffer_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10Buffer_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10Buffer_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10Resource methods ***/
-#define ID3D10Buffer_GetType(This,rType) (This)->lpVtbl->GetType(This,rType)
-#define ID3D10Buffer_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
-#define ID3D10Buffer_GetEvictionPriority(This) (This)->lpVtbl->GetEvictionPriority(This)
-/*** ID3D10Buffer methods ***/
-#define ID3D10Buffer_Map(This,MapType,MapFlags,ppData) (This)->lpVtbl->Map(This,MapType,MapFlags,ppData)
-#define ID3D10Buffer_Unmap(This) (This)->lpVtbl->Unmap(This)
-#define ID3D10Buffer_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
-#endif
-
-#endif
-
-HRESULT STDMETHODCALLTYPE ID3D10Buffer_Map_Proxy(
-    ID3D10Buffer* This,
-    D3D10_MAP MapType,
-    UINT MapFlags,
-    void **ppData);
-void __RPC_STUB ID3D10Buffer_Map_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Buffer_Unmap_Proxy(
-    ID3D10Buffer* This);
-void __RPC_STUB ID3D10Buffer_Unmap_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Buffer_GetDesc_Proxy(
-    ID3D10Buffer* This,
-    D3D10_BUFFER_DESC *pDesc);
-void __RPC_STUB ID3D10Buffer_GetDesc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10Buffer_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10Texture1D interface
- */
-#ifndef __ID3D10Texture1D_INTERFACE_DEFINED__
-#define __ID3D10Texture1D_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10Texture1D, 0x9b7e4c03, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10Texture1D : public ID3D10Resource
-{
-    virtual HRESULT STDMETHODCALLTYPE Map(
-        UINT Subresource,
-        D3D10_MAP MapType,
-        UINT MapFlags,
-        void **ppData) = 0;
-
-    virtual void STDMETHODCALLTYPE Unmap(
-        UINT Subresource) = 0;
-
-    virtual void STDMETHODCALLTYPE GetDesc(
-        D3D10_TEXTURE1D_DESC *pDesc) = 0;
-
-};
-#else
-typedef struct ID3D10Texture1DVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10Texture1D* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10Texture1D* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10Texture1D* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10Texture1D* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10Texture1D* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10Texture1D* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10Texture1D* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10Resource methods ***/
-    void (STDMETHODCALLTYPE *GetType)(
-        ID3D10Texture1D* This,
-        D3D10_RESOURCE_DIMENSION *rType);
-
-    void (STDMETHODCALLTYPE *SetEvictionPriority)(
-        ID3D10Texture1D* This,
-        UINT EvictionPriority);
-
-    UINT (STDMETHODCALLTYPE *GetEvictionPriority)(
-        ID3D10Texture1D* This);
-
-    /*** ID3D10Texture1D methods ***/
-    HRESULT (STDMETHODCALLTYPE *Map)(
-        ID3D10Texture1D* This,
-        UINT Subresource,
-        D3D10_MAP MapType,
-        UINT MapFlags,
-        void **ppData);
-
-    void (STDMETHODCALLTYPE *Unmap)(
-        ID3D10Texture1D* This,
-        UINT Subresource);
-
-    void (STDMETHODCALLTYPE *GetDesc)(
-        ID3D10Texture1D* This,
-        D3D10_TEXTURE1D_DESC *pDesc);
-
-    END_INTERFACE
-} ID3D10Texture1DVtbl;
-interface ID3D10Texture1D {
-    CONST_VTBL ID3D10Texture1DVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10Texture1D_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10Texture1D_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10Texture1D_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10Texture1D_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10Texture1D_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10Texture1D_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10Texture1D_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10Resource methods ***/
-#define ID3D10Texture1D_GetType(This,rType) (This)->lpVtbl->GetType(This,rType)
-#define ID3D10Texture1D_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
-#define ID3D10Texture1D_GetEvictionPriority(This) (This)->lpVtbl->GetEvictionPriority(This)
-/*** ID3D10Texture1D methods ***/
-#define ID3D10Texture1D_Map(This,Subresource,MapType,MapFlags,ppData) (This)->lpVtbl->Map(This,Subresource,MapType,MapFlags,ppData)
-#define ID3D10Texture1D_Unmap(This,Subresource) (This)->lpVtbl->Unmap(This,Subresource)
-#define ID3D10Texture1D_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
-#endif
-
-#endif
-
-HRESULT STDMETHODCALLTYPE ID3D10Texture1D_Map_Proxy(
-    ID3D10Texture1D* This,
-    UINT Subresource,
-    D3D10_MAP MapType,
-    UINT MapFlags,
-    void **ppData);
-void __RPC_STUB ID3D10Texture1D_Map_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Texture1D_Unmap_Proxy(
-    ID3D10Texture1D* This,
-    UINT Subresource);
-void __RPC_STUB ID3D10Texture1D_Unmap_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Texture1D_GetDesc_Proxy(
-    ID3D10Texture1D* This,
-    D3D10_TEXTURE1D_DESC *pDesc);
-void __RPC_STUB ID3D10Texture1D_GetDesc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10Texture1D_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10Texture2D interface
- */
-#ifndef __ID3D10Texture2D_INTERFACE_DEFINED__
-#define __ID3D10Texture2D_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10Texture2D, 0x9b7e4c04, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10Texture2D : public ID3D10Resource
-{
-    virtual HRESULT STDMETHODCALLTYPE Map(
-        UINT Subresource,
-        D3D10_MAP MapType,
-        UINT MapFlags,
-        D3D10_MAPPED_TEXTURE2D *pMappedTex2D) = 0;
-
-    virtual void STDMETHODCALLTYPE Unmap(
-        UINT Subresource) = 0;
-
-    virtual void STDMETHODCALLTYPE GetDesc(
-        D3D10_TEXTURE2D_DESC *pDesc) = 0;
-
-};
-#else
-typedef struct ID3D10Texture2DVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10Texture2D* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10Texture2D* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10Texture2D* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10Texture2D* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10Texture2D* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10Texture2D* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10Texture2D* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10Resource methods ***/
-    void (STDMETHODCALLTYPE *GetType)(
-        ID3D10Texture2D* This,
-        D3D10_RESOURCE_DIMENSION *rType);
-
-    void (STDMETHODCALLTYPE *SetEvictionPriority)(
-        ID3D10Texture2D* This,
-        UINT EvictionPriority);
-
-    UINT (STDMETHODCALLTYPE *GetEvictionPriority)(
-        ID3D10Texture2D* This);
-
-    /*** ID3D10Texture2D methods ***/
-    HRESULT (STDMETHODCALLTYPE *Map)(
-        ID3D10Texture2D* This,
-        UINT Subresource,
-        D3D10_MAP MapType,
-        UINT MapFlags,
-        D3D10_MAPPED_TEXTURE2D *pMappedTex2D);
-
-    void (STDMETHODCALLTYPE *Unmap)(
-        ID3D10Texture2D* This,
-        UINT Subresource);
-
-    void (STDMETHODCALLTYPE *GetDesc)(
-        ID3D10Texture2D* This,
-        D3D10_TEXTURE2D_DESC *pDesc);
-
-    END_INTERFACE
-} ID3D10Texture2DVtbl;
-interface ID3D10Texture2D {
-    CONST_VTBL ID3D10Texture2DVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10Texture2D_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10Texture2D_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10Texture2D_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10Texture2D_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10Texture2D_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10Texture2D_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10Texture2D_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10Resource methods ***/
-#define ID3D10Texture2D_GetType(This,rType) (This)->lpVtbl->GetType(This,rType)
-#define ID3D10Texture2D_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
-#define ID3D10Texture2D_GetEvictionPriority(This) (This)->lpVtbl->GetEvictionPriority(This)
-/*** ID3D10Texture2D methods ***/
-#define ID3D10Texture2D_Map(This,Subresource,MapType,MapFlags,pMappedTex2D) (This)->lpVtbl->Map(This,Subresource,MapType,MapFlags,pMappedTex2D)
-#define ID3D10Texture2D_Unmap(This,Subresource) (This)->lpVtbl->Unmap(This,Subresource)
-#define ID3D10Texture2D_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
-#endif
-
-#endif
-
-HRESULT STDMETHODCALLTYPE ID3D10Texture2D_Map_Proxy(
-    ID3D10Texture2D* This,
-    UINT Subresource,
-    D3D10_MAP MapType,
-    UINT MapFlags,
-    D3D10_MAPPED_TEXTURE2D *pMappedTex2D);
-void __RPC_STUB ID3D10Texture2D_Map_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Texture2D_Unmap_Proxy(
-    ID3D10Texture2D* This,
-    UINT Subresource);
-void __RPC_STUB ID3D10Texture2D_Unmap_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Texture2D_GetDesc_Proxy(
-    ID3D10Texture2D* This,
-    D3D10_TEXTURE2D_DESC *pDesc);
-void __RPC_STUB ID3D10Texture2D_GetDesc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10Texture2D_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10Texture3D interface
- */
-#ifndef __ID3D10Texture3D_INTERFACE_DEFINED__
-#define __ID3D10Texture3D_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10Texture3D, 0x9b7e4c05, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10Texture3D : public ID3D10Resource
-{
-    virtual HRESULT STDMETHODCALLTYPE Map(
-        UINT Subresource,
-        D3D10_MAP MapType,
-        UINT MapFlags,
-        D3D10_MAPPED_TEXTURE3D *pMappedTex3D) = 0;
-
-    virtual void STDMETHODCALLTYPE Unmap(
-        UINT Subresource) = 0;
-
-    virtual void STDMETHODCALLTYPE GetDesc(
-        D3D10_TEXTURE3D_DESC *pDesc) = 0;
-
-};
-#else
-typedef struct ID3D10Texture3DVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10Texture3D* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10Texture3D* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10Texture3D* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10Texture3D* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10Texture3D* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10Texture3D* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10Texture3D* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10Resource methods ***/
-    void (STDMETHODCALLTYPE *GetType)(
-        ID3D10Texture3D* This,
-        D3D10_RESOURCE_DIMENSION *rType);
-
-    void (STDMETHODCALLTYPE *SetEvictionPriority)(
-        ID3D10Texture3D* This,
-        UINT EvictionPriority);
-
-    UINT (STDMETHODCALLTYPE *GetEvictionPriority)(
-        ID3D10Texture3D* This);
-
-    /*** ID3D10Texture3D methods ***/
-    HRESULT (STDMETHODCALLTYPE *Map)(
-        ID3D10Texture3D* This,
-        UINT Subresource,
-        D3D10_MAP MapType,
-        UINT MapFlags,
-        D3D10_MAPPED_TEXTURE3D *pMappedTex3D);
-
-    void (STDMETHODCALLTYPE *Unmap)(
-        ID3D10Texture3D* This,
-        UINT Subresource);
-
-    void (STDMETHODCALLTYPE *GetDesc)(
-        ID3D10Texture3D* This,
-        D3D10_TEXTURE3D_DESC *pDesc);
-
-    END_INTERFACE
-} ID3D10Texture3DVtbl;
-interface ID3D10Texture3D {
-    CONST_VTBL ID3D10Texture3DVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10Texture3D_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10Texture3D_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10Texture3D_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10Texture3D_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10Texture3D_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10Texture3D_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10Texture3D_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10Resource methods ***/
-#define ID3D10Texture3D_GetType(This,rType) (This)->lpVtbl->GetType(This,rType)
-#define ID3D10Texture3D_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
-#define ID3D10Texture3D_GetEvictionPriority(This) (This)->lpVtbl->GetEvictionPriority(This)
-/*** ID3D10Texture3D methods ***/
-#define ID3D10Texture3D_Map(This,Subresource,MapType,MapFlags,pMappedTex3D) (This)->lpVtbl->Map(This,Subresource,MapType,MapFlags,pMappedTex3D)
-#define ID3D10Texture3D_Unmap(This,Subresource) (This)->lpVtbl->Unmap(This,Subresource)
-#define ID3D10Texture3D_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
-#endif
-
-#endif
-
-HRESULT STDMETHODCALLTYPE ID3D10Texture3D_Map_Proxy(
-    ID3D10Texture3D* This,
-    UINT Subresource,
-    D3D10_MAP MapType,
-    UINT MapFlags,
-    D3D10_MAPPED_TEXTURE3D *pMappedTex3D);
-void __RPC_STUB ID3D10Texture3D_Map_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Texture3D_Unmap_Proxy(
-    ID3D10Texture3D* This,
-    UINT Subresource);
-void __RPC_STUB ID3D10Texture3D_Unmap_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Texture3D_GetDesc_Proxy(
-    ID3D10Texture3D* This,
-    D3D10_TEXTURE3D_DESC *pDesc);
-void __RPC_STUB ID3D10Texture3D_GetDesc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10Texture3D_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10View interface
- */
-#ifndef __ID3D10View_INTERFACE_DEFINED__
-#define __ID3D10View_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10View, 0xc902b03f, 0x60a7, 0x49ba, 0x99,0x36, 0x2a,0x3a,0xb3,0x7a,0x7e,0x33);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10View : public ID3D10DeviceChild
-{
-    virtual void STDMETHODCALLTYPE GetResource(
-        ID3D10Resource **ppResource) = 0;
-
-};
-#else
-typedef struct ID3D10ViewVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10View* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10View* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10View* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10View* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10View* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10View* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10View* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10View methods ***/
-    void (STDMETHODCALLTYPE *GetResource)(
-        ID3D10View* This,
-        ID3D10Resource **ppResource);
-
-    END_INTERFACE
-} ID3D10ViewVtbl;
-interface ID3D10View {
-    CONST_VTBL ID3D10ViewVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10View_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10View_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10View_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10View_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10View_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10View_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10View_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10View methods ***/
-#define ID3D10View_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10View_GetResource_Proxy(
-    ID3D10View* This,
-    ID3D10Resource **ppResource);
-void __RPC_STUB ID3D10View_GetResource_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10View_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10DepthStencilView interface
- */
-#ifndef __ID3D10DepthStencilView_INTERFACE_DEFINED__
-#define __ID3D10DepthStencilView_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10DepthStencilView, 0x9b7e4c09, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10DepthStencilView : public ID3D10View
-{
-    virtual void STDMETHODCALLTYPE GetDesc(
-        D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc) = 0;
-
-};
-#else
-typedef struct ID3D10DepthStencilViewVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10DepthStencilView* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10DepthStencilView* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10DepthStencilView* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10DepthStencilView* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10DepthStencilView* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10DepthStencilView* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10DepthStencilView* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10View methods ***/
-    void (STDMETHODCALLTYPE *GetResource)(
-        ID3D10DepthStencilView* This,
-        ID3D10Resource **ppResource);
-
-    /*** ID3D10DepthStencilView methods ***/
-    void (STDMETHODCALLTYPE *GetDesc)(
-        ID3D10DepthStencilView* This,
-        D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc);
-
-    END_INTERFACE
-} ID3D10DepthStencilViewVtbl;
-interface ID3D10DepthStencilView {
-    CONST_VTBL ID3D10DepthStencilViewVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10DepthStencilView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10DepthStencilView_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10DepthStencilView_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10DepthStencilView_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10DepthStencilView_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10DepthStencilView_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10DepthStencilView_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10View methods ***/
-#define ID3D10DepthStencilView_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
-/*** ID3D10DepthStencilView methods ***/
-#define ID3D10DepthStencilView_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10DepthStencilView_GetDesc_Proxy(
-    ID3D10DepthStencilView* This,
-    D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc);
-void __RPC_STUB ID3D10DepthStencilView_GetDesc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10DepthStencilView_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10RenderTargetView interface
- */
-#ifndef __ID3D10RenderTargetView_INTERFACE_DEFINED__
-#define __ID3D10RenderTargetView_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10RenderTargetView, 0x9b7e4c08, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10RenderTargetView : public ID3D10View
-{
-    virtual void STDMETHODCALLTYPE GetDesc(
-        D3D10_RENDER_TARGET_VIEW_DESC *pDesc) = 0;
-
-};
-#else
-typedef struct ID3D10RenderTargetViewVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10RenderTargetView* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10RenderTargetView* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10RenderTargetView* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10RenderTargetView* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10RenderTargetView* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10RenderTargetView* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10RenderTargetView* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10View methods ***/
-    void (STDMETHODCALLTYPE *GetResource)(
-        ID3D10RenderTargetView* This,
-        ID3D10Resource **ppResource);
-
-    /*** ID3D10RenderTargetView methods ***/
-    void (STDMETHODCALLTYPE *GetDesc)(
-        ID3D10RenderTargetView* This,
-        D3D10_RENDER_TARGET_VIEW_DESC *pDesc);
-
-    END_INTERFACE
-} ID3D10RenderTargetViewVtbl;
-interface ID3D10RenderTargetView {
-    CONST_VTBL ID3D10RenderTargetViewVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10RenderTargetView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10RenderTargetView_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10RenderTargetView_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10RenderTargetView_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10RenderTargetView_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10RenderTargetView_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10RenderTargetView_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10View methods ***/
-#define ID3D10RenderTargetView_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
-/*** ID3D10RenderTargetView methods ***/
-#define ID3D10RenderTargetView_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10RenderTargetView_GetDesc_Proxy(
-    ID3D10RenderTargetView* This,
-    D3D10_RENDER_TARGET_VIEW_DESC *pDesc);
-void __RPC_STUB ID3D10RenderTargetView_GetDesc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10RenderTargetView_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10ShaderResourceView interface
- */
-#ifndef __ID3D10ShaderResourceView_INTERFACE_DEFINED__
-#define __ID3D10ShaderResourceView_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10ShaderResourceView, 0x9b7e4c07, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10ShaderResourceView : public ID3D10View
-{
-    virtual void STDMETHODCALLTYPE GetDesc(
-        D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc) = 0;
-
-};
-#else
-typedef struct ID3D10ShaderResourceViewVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10ShaderResourceView* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10ShaderResourceView* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10ShaderResourceView* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10ShaderResourceView* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10ShaderResourceView* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10ShaderResourceView* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10ShaderResourceView* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10View methods ***/
-    void (STDMETHODCALLTYPE *GetResource)(
-        ID3D10ShaderResourceView* This,
-        ID3D10Resource **ppResource);
-
-    /*** ID3D10ShaderResourceView methods ***/
-    void (STDMETHODCALLTYPE *GetDesc)(
-        ID3D10ShaderResourceView* This,
-        D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc);
-
-    END_INTERFACE
-} ID3D10ShaderResourceViewVtbl;
-interface ID3D10ShaderResourceView {
-    CONST_VTBL ID3D10ShaderResourceViewVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10ShaderResourceView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10ShaderResourceView_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10ShaderResourceView_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10ShaderResourceView_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10ShaderResourceView_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10ShaderResourceView_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10ShaderResourceView_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10View methods ***/
-#define ID3D10ShaderResourceView_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
-/*** ID3D10ShaderResourceView methods ***/
-#define ID3D10ShaderResourceView_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10ShaderResourceView_GetDesc_Proxy(
-    ID3D10ShaderResourceView* This,
-    D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc);
-void __RPC_STUB ID3D10ShaderResourceView_GetDesc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10ShaderResourceView_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10BlendState interface
- */
-#ifndef __ID3D10BlendState_INTERFACE_DEFINED__
-#define __ID3D10BlendState_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10BlendState, 0xedad8d19, 0x8a35, 0x4d6d, 0x85,0x66, 0x2e,0xa2,0x76,0xcd,0xe1,0x61);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10BlendState : public ID3D10DeviceChild
-{
-    virtual void STDMETHODCALLTYPE GetDesc(
-        D3D10_BLEND_DESC *pDesc) = 0;
-
-};
-#else
-typedef struct ID3D10BlendStateVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10BlendState* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10BlendState* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10BlendState* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10BlendState* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10BlendState* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10BlendState* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10BlendState* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10BlendState methods ***/
-    void (STDMETHODCALLTYPE *GetDesc)(
-        ID3D10BlendState* This,
-        D3D10_BLEND_DESC *pDesc);
-
-    END_INTERFACE
-} ID3D10BlendStateVtbl;
-interface ID3D10BlendState {
-    CONST_VTBL ID3D10BlendStateVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10BlendState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10BlendState_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10BlendState_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10BlendState_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10BlendState_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10BlendState_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10BlendState_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10BlendState methods ***/
-#define ID3D10BlendState_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10BlendState_GetDesc_Proxy(
-    ID3D10BlendState* This,
-    D3D10_BLEND_DESC *pDesc);
-void __RPC_STUB ID3D10BlendState_GetDesc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10BlendState_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10DepthStencilState interface
- */
-#ifndef __ID3D10DepthStencilState_INTERFACE_DEFINED__
-#define __ID3D10DepthStencilState_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10DepthStencilState, 0x2b4b1cc8, 0xa4ad, 0x41f8, 0x83,0x22, 0xca,0x86,0xfc,0x3e,0xc6,0x75);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10DepthStencilState : public ID3D10DeviceChild
-{
-    virtual void STDMETHODCALLTYPE GetDesc(
-        D3D10_DEPTH_STENCIL_DESC *pDesc) = 0;
-
-};
-#else
-typedef struct ID3D10DepthStencilStateVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10DepthStencilState* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10DepthStencilState* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10DepthStencilState* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10DepthStencilState* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10DepthStencilState* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10DepthStencilState* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10DepthStencilState* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10DepthStencilState methods ***/
-    void (STDMETHODCALLTYPE *GetDesc)(
-        ID3D10DepthStencilState* This,
-        D3D10_DEPTH_STENCIL_DESC *pDesc);
-
-    END_INTERFACE
-} ID3D10DepthStencilStateVtbl;
-interface ID3D10DepthStencilState {
-    CONST_VTBL ID3D10DepthStencilStateVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10DepthStencilState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10DepthStencilState_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10DepthStencilState_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10DepthStencilState_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10DepthStencilState_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10DepthStencilState_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10DepthStencilState_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10DepthStencilState methods ***/
-#define ID3D10DepthStencilState_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10DepthStencilState_GetDesc_Proxy(
-    ID3D10DepthStencilState* This,
-    D3D10_DEPTH_STENCIL_DESC *pDesc);
-void __RPC_STUB ID3D10DepthStencilState_GetDesc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10DepthStencilState_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10GeometryShader interface
- */
-#ifndef __ID3D10GeometryShader_INTERFACE_DEFINED__
-#define __ID3D10GeometryShader_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10GeometryShader, 0x6316be88, 0x54cd, 0x4040, 0xab,0x44, 0x20,0x46,0x1b,0xc8,0x1f,0x68);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10GeometryShader : public ID3D10DeviceChild
-{
-};
-#else
-typedef struct ID3D10GeometryShaderVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10GeometryShader* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10GeometryShader* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10GeometryShader* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10GeometryShader* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10GeometryShader* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10GeometryShader* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10GeometryShader* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    END_INTERFACE
-} ID3D10GeometryShaderVtbl;
-interface ID3D10GeometryShader {
-    CONST_VTBL ID3D10GeometryShaderVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10GeometryShader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10GeometryShader_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10GeometryShader_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10GeometryShader_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10GeometryShader_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10GeometryShader_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10GeometryShader_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-#endif
-
-#endif
-
-
-#endif  /* __ID3D10GeometryShader_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10InputLayout interface
- */
-#ifndef __ID3D10InputLayout_INTERFACE_DEFINED__
-#define __ID3D10InputLayout_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10InputLayout, 0x9b7e4c0b, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10InputLayout : public ID3D10DeviceChild
-{
-};
-#else
-typedef struct ID3D10InputLayoutVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10InputLayout* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10InputLayout* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10InputLayout* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10InputLayout* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10InputLayout* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10InputLayout* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10InputLayout* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    END_INTERFACE
-} ID3D10InputLayoutVtbl;
-interface ID3D10InputLayout {
-    CONST_VTBL ID3D10InputLayoutVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10InputLayout_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10InputLayout_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10InputLayout_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10InputLayout_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10InputLayout_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10InputLayout_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10InputLayout_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-#endif
-
-#endif
-
-
-#endif  /* __ID3D10InputLayout_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10PixelShader interface
- */
-#ifndef __ID3D10PixelShader_INTERFACE_DEFINED__
-#define __ID3D10PixelShader_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10PixelShader, 0x4968b601, 0x9d00, 0x4cde, 0x83,0x46, 0x8e,0x7f,0x67,0x58,0x19,0xb6);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10PixelShader : public ID3D10DeviceChild
-{
-};
-#else
-typedef struct ID3D10PixelShaderVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10PixelShader* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10PixelShader* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10PixelShader* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10PixelShader* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10PixelShader* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10PixelShader* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10PixelShader* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    END_INTERFACE
-} ID3D10PixelShaderVtbl;
-interface ID3D10PixelShader {
-    CONST_VTBL ID3D10PixelShaderVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10PixelShader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10PixelShader_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10PixelShader_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10PixelShader_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10PixelShader_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10PixelShader_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10PixelShader_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-#endif
-
-#endif
-
-
-#endif  /* __ID3D10PixelShader_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10RasterizerState interface
- */
-#ifndef __ID3D10RasterizerState_INTERFACE_DEFINED__
-#define __ID3D10RasterizerState_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10RasterizerState, 0xa2a07292, 0x89af, 0x4345, 0xbe,0x2e, 0xc5,0x3d,0x9f,0xbb,0x6e,0x9f);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10RasterizerState : public ID3D10DeviceChild
-{
-    virtual void STDMETHODCALLTYPE GetDesc(
-        D3D10_RASTERIZER_DESC *pDesc) = 0;
-
-};
-#else
-typedef struct ID3D10RasterizerStateVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10RasterizerState* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10RasterizerState* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10RasterizerState* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10RasterizerState* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10RasterizerState* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10RasterizerState* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10RasterizerState* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10RasterizerState methods ***/
-    void (STDMETHODCALLTYPE *GetDesc)(
-        ID3D10RasterizerState* This,
-        D3D10_RASTERIZER_DESC *pDesc);
-
-    END_INTERFACE
-} ID3D10RasterizerStateVtbl;
-interface ID3D10RasterizerState {
-    CONST_VTBL ID3D10RasterizerStateVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10RasterizerState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10RasterizerState_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10RasterizerState_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10RasterizerState_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10RasterizerState_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10RasterizerState_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10RasterizerState_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10RasterizerState methods ***/
-#define ID3D10RasterizerState_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10RasterizerState_GetDesc_Proxy(
-    ID3D10RasterizerState* This,
-    D3D10_RASTERIZER_DESC *pDesc);
-void __RPC_STUB ID3D10RasterizerState_GetDesc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10RasterizerState_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10SamplerState interface
- */
-#ifndef __ID3D10SamplerState_INTERFACE_DEFINED__
-#define __ID3D10SamplerState_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10SamplerState, 0x9b7e4c0c, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10SamplerState : public ID3D10DeviceChild
-{
-    virtual void STDMETHODCALLTYPE GetDesc(
-        D3D10_SAMPLER_DESC *pDesc) = 0;
-
-};
-#else
-typedef struct ID3D10SamplerStateVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10SamplerState* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10SamplerState* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10SamplerState* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10SamplerState* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10SamplerState* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10SamplerState* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10SamplerState* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10SamplerState methods ***/
-    void (STDMETHODCALLTYPE *GetDesc)(
-        ID3D10SamplerState* This,
-        D3D10_SAMPLER_DESC *pDesc);
-
-    END_INTERFACE
-} ID3D10SamplerStateVtbl;
-interface ID3D10SamplerState {
-    CONST_VTBL ID3D10SamplerStateVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10SamplerState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10SamplerState_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10SamplerState_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10SamplerState_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10SamplerState_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10SamplerState_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10SamplerState_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10SamplerState methods ***/
-#define ID3D10SamplerState_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10SamplerState_GetDesc_Proxy(
-    ID3D10SamplerState* This,
-    D3D10_SAMPLER_DESC *pDesc);
-void __RPC_STUB ID3D10SamplerState_GetDesc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10SamplerState_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10VertexShader interface
- */
-#ifndef __ID3D10VertexShader_INTERFACE_DEFINED__
-#define __ID3D10VertexShader_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10VertexShader, 0x9b7e4c0a, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10VertexShader : public ID3D10DeviceChild
-{
-};
-#else
-typedef struct ID3D10VertexShaderVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10VertexShader* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10VertexShader* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10VertexShader* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10VertexShader* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10VertexShader* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10VertexShader* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10VertexShader* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    END_INTERFACE
-} ID3D10VertexShaderVtbl;
-interface ID3D10VertexShader {
-    CONST_VTBL ID3D10VertexShaderVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10VertexShader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10VertexShader_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10VertexShader_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10VertexShader_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10VertexShader_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10VertexShader_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10VertexShader_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-#endif
-
-#endif
-
-
-#endif  /* __ID3D10VertexShader_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10Asynchronous interface
- */
-#ifndef __ID3D10Asynchronous_INTERFACE_DEFINED__
-#define __ID3D10Asynchronous_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10Asynchronous, 0x9b7e4c0d, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10Asynchronous : public ID3D10DeviceChild
-{
-    virtual void STDMETHODCALLTYPE Begin(
-        ) = 0;
-
-    virtual void STDMETHODCALLTYPE End(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetData(
-        void *pData,
-        UINT DataSize,
-        UINT GetDataFlags) = 0;
-
-    virtual UINT STDMETHODCALLTYPE GetDataSize(
-        ) = 0;
-
-};
-#else
-typedef struct ID3D10AsynchronousVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10Asynchronous* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10Asynchronous* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10Asynchronous* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10Asynchronous* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10Asynchronous* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10Asynchronous* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10Asynchronous* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10Asynchronous methods ***/
-    void (STDMETHODCALLTYPE *Begin)(
-        ID3D10Asynchronous* This);
-
-    void (STDMETHODCALLTYPE *End)(
-        ID3D10Asynchronous* This);
-
-    HRESULT (STDMETHODCALLTYPE *GetData)(
-        ID3D10Asynchronous* This,
-        void *pData,
-        UINT DataSize,
-        UINT GetDataFlags);
-
-    UINT (STDMETHODCALLTYPE *GetDataSize)(
-        ID3D10Asynchronous* This);
-
-    END_INTERFACE
-} ID3D10AsynchronousVtbl;
-interface ID3D10Asynchronous {
-    CONST_VTBL ID3D10AsynchronousVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10Asynchronous_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10Asynchronous_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10Asynchronous_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10Asynchronous_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10Asynchronous_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10Asynchronous_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10Asynchronous_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10Asynchronous methods ***/
-#define ID3D10Asynchronous_Begin(This) (This)->lpVtbl->Begin(This)
-#define ID3D10Asynchronous_End(This) (This)->lpVtbl->End(This)
-#define ID3D10Asynchronous_GetData(This,pData,DataSize,GetDataFlags) (This)->lpVtbl->GetData(This,pData,DataSize,GetDataFlags)
-#define ID3D10Asynchronous_GetDataSize(This) (This)->lpVtbl->GetDataSize(This)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10Asynchronous_Begin_Proxy(
-    ID3D10Asynchronous* This);
-void __RPC_STUB ID3D10Asynchronous_Begin_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Asynchronous_End_Proxy(
-    ID3D10Asynchronous* This);
-void __RPC_STUB ID3D10Asynchronous_End_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Asynchronous_GetData_Proxy(
-    ID3D10Asynchronous* This,
-    void *pData,
-    UINT DataSize,
-    UINT GetDataFlags);
-void __RPC_STUB ID3D10Asynchronous_GetData_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-UINT STDMETHODCALLTYPE ID3D10Asynchronous_GetDataSize_Proxy(
-    ID3D10Asynchronous* This);
-void __RPC_STUB ID3D10Asynchronous_GetDataSize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10Asynchronous_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10Counter interface
- */
-#ifndef __ID3D10Counter_INTERFACE_DEFINED__
-#define __ID3D10Counter_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10Counter, 0x9b7e4c11, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10Counter : public ID3D10Asynchronous
-{
-    virtual void STDMETHODCALLTYPE GetDesc(
-        D3D10_COUNTER_DESC *pDesc) = 0;
-
-};
-#else
-typedef struct ID3D10CounterVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10Counter* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10Counter* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10Counter* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10Counter* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10Counter* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10Counter* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10Counter* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10Asynchronous methods ***/
-    void (STDMETHODCALLTYPE *Begin)(
-        ID3D10Counter* This);
-
-    void (STDMETHODCALLTYPE *End)(
-        ID3D10Counter* This);
-
-    HRESULT (STDMETHODCALLTYPE *GetData)(
-        ID3D10Counter* This,
-        void *pData,
-        UINT DataSize,
-        UINT GetDataFlags);
-
-    UINT (STDMETHODCALLTYPE *GetDataSize)(
-        ID3D10Counter* This);
-
-    /*** ID3D10Counter methods ***/
-    void (STDMETHODCALLTYPE *GetDesc)(
-        ID3D10Counter* This,
-        D3D10_COUNTER_DESC *pDesc);
-
-    END_INTERFACE
-} ID3D10CounterVtbl;
-interface ID3D10Counter {
-    CONST_VTBL ID3D10CounterVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10Counter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10Counter_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10Counter_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10Counter_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10Counter_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10Counter_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10Counter_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10Asynchronous methods ***/
-#define ID3D10Counter_Begin(This) (This)->lpVtbl->Begin(This)
-#define ID3D10Counter_End(This) (This)->lpVtbl->End(This)
-#define ID3D10Counter_GetData(This,pData,DataSize,GetDataFlags) (This)->lpVtbl->GetData(This,pData,DataSize,GetDataFlags)
-#define ID3D10Counter_GetDataSize(This) (This)->lpVtbl->GetDataSize(This)
-/*** ID3D10Counter methods ***/
-#define ID3D10Counter_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10Counter_GetDesc_Proxy(
-    ID3D10Counter* This,
-    D3D10_COUNTER_DESC *pDesc);
-void __RPC_STUB ID3D10Counter_GetDesc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10Counter_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10Query interface
- */
-#ifndef __ID3D10Query_INTERFACE_DEFINED__
-#define __ID3D10Query_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10Query, 0x9b7e4c0e, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10Query : public ID3D10Asynchronous
-{
-    virtual void STDMETHODCALLTYPE GetDesc(
-        D3D10_QUERY_DESC *pDesc) = 0;
-
-};
-#else
-typedef struct ID3D10QueryVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10Query* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10Query* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10Query* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10Query* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10Query* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10Query* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10Query* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10Asynchronous methods ***/
-    void (STDMETHODCALLTYPE *Begin)(
-        ID3D10Query* This);
-
-    void (STDMETHODCALLTYPE *End)(
-        ID3D10Query* This);
-
-    HRESULT (STDMETHODCALLTYPE *GetData)(
-        ID3D10Query* This,
-        void *pData,
-        UINT DataSize,
-        UINT GetDataFlags);
-
-    UINT (STDMETHODCALLTYPE *GetDataSize)(
-        ID3D10Query* This);
-
-    /*** ID3D10Query methods ***/
-    void (STDMETHODCALLTYPE *GetDesc)(
-        ID3D10Query* This,
-        D3D10_QUERY_DESC *pDesc);
-
-    END_INTERFACE
-} ID3D10QueryVtbl;
-interface ID3D10Query {
-    CONST_VTBL ID3D10QueryVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10Query_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10Query_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10Query_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10Query_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10Query_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10Query_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10Query_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10Asynchronous methods ***/
-#define ID3D10Query_Begin(This) (This)->lpVtbl->Begin(This)
-#define ID3D10Query_End(This) (This)->lpVtbl->End(This)
-#define ID3D10Query_GetData(This,pData,DataSize,GetDataFlags) (This)->lpVtbl->GetData(This,pData,DataSize,GetDataFlags)
-#define ID3D10Query_GetDataSize(This) (This)->lpVtbl->GetDataSize(This)
-/*** ID3D10Query methods ***/
-#define ID3D10Query_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10Query_GetDesc_Proxy(
-    ID3D10Query* This,
-    D3D10_QUERY_DESC *pDesc);
-void __RPC_STUB ID3D10Query_GetDesc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10Query_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10Predicate interface
- */
-#ifndef __ID3D10Predicate_INTERFACE_DEFINED__
-#define __ID3D10Predicate_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10Predicate, 0x9b7e4c10, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10Predicate : public ID3D10Query
-{
-};
-#else
-typedef struct ID3D10PredicateVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10Predicate* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10Predicate* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10Predicate* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10Predicate* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10Predicate* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10Predicate* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10Predicate* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10Asynchronous methods ***/
-    void (STDMETHODCALLTYPE *Begin)(
-        ID3D10Predicate* This);
-
-    void (STDMETHODCALLTYPE *End)(
-        ID3D10Predicate* This);
-
-    HRESULT (STDMETHODCALLTYPE *GetData)(
-        ID3D10Predicate* This,
-        void *pData,
-        UINT DataSize,
-        UINT GetDataFlags);
-
-    UINT (STDMETHODCALLTYPE *GetDataSize)(
-        ID3D10Predicate* This);
-
-    /*** ID3D10Query methods ***/
-    void (STDMETHODCALLTYPE *GetDesc)(
-        ID3D10Predicate* This,
-        D3D10_QUERY_DESC *pDesc);
-
-    END_INTERFACE
-} ID3D10PredicateVtbl;
-interface ID3D10Predicate {
-    CONST_VTBL ID3D10PredicateVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10Predicate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10Predicate_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10Predicate_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10Predicate_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10Predicate_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10Predicate_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10Predicate_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10Asynchronous methods ***/
-#define ID3D10Predicate_Begin(This) (This)->lpVtbl->Begin(This)
-#define ID3D10Predicate_End(This) (This)->lpVtbl->End(This)
-#define ID3D10Predicate_GetData(This,pData,DataSize,GetDataFlags) (This)->lpVtbl->GetData(This,pData,DataSize,GetDataFlags)
-#define ID3D10Predicate_GetDataSize(This) (This)->lpVtbl->GetDataSize(This)
-/*** ID3D10Query methods ***/
-#define ID3D10Predicate_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
-#endif
-
-#endif
-
-
-#endif  /* __ID3D10Predicate_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10Device interface
- */
-#ifndef __ID3D10Device_INTERFACE_DEFINED__
-#define __ID3D10Device_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10Device, 0x9b7e4c0f, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10Device : public IUnknown
-{
-    virtual void STDMETHODCALLTYPE VSSetConstantBuffers(
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer *const *ppConstantBuffers) = 0;
-
-    virtual void STDMETHODCALLTYPE PSSetShaderResources(
-        UINT StartSlot,
-        UINT NumViews,
-        ID3D10ShaderResourceView *const *ppShaderResourceViews) = 0;
-
-    virtual void STDMETHODCALLTYPE PSSetShader(
-        ID3D10PixelShader *pPixelShader) = 0;
-
-    virtual void STDMETHODCALLTYPE PSSetSamplers(
-        UINT StartSlot,
-        UINT NumSamplers,
-        ID3D10SamplerState *const *ppSamplers) = 0;
-
-    virtual void STDMETHODCALLTYPE VSSetShader(
-        ID3D10VertexShader *pVertexShader) = 0;
-
-    virtual void STDMETHODCALLTYPE DrawIndexed(
-        UINT IndexCount,
-        UINT StartIndexLocation,
-        INT BaseVertexLocation) = 0;
-
-    virtual void STDMETHODCALLTYPE Draw(
-        UINT VertexCount,
-        UINT StartVertexLocation) = 0;
-
-    virtual void STDMETHODCALLTYPE PSSetConstantBuffers(
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer *const *ppConstantBuffers) = 0;
-
-    virtual void STDMETHODCALLTYPE IASetInputLayout(
-        ID3D10InputLayout *pInputLayout) = 0;
-
-    virtual void STDMETHODCALLTYPE IASetVertexBuffers(
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer *const *ppVertexBuffers,
-        const UINT *pStrides,
-        const UINT *pOffsets) = 0;
-
-    virtual void STDMETHODCALLTYPE IASetIndexBuffer(
-        ID3D10Buffer *pIndexBuffer,
-        DXGI_FORMAT Format,
-        UINT Offset) = 0;
-
-    virtual void STDMETHODCALLTYPE DrawIndexedInstanced(
-        UINT IndexCountPerInstance,
-        UINT InstanceCount,
-        UINT StartIndexLocation,
-        INT BaseVertexLocation,
-        UINT StartInstanceLocation) = 0;
-
-    virtual void STDMETHODCALLTYPE DrawInstanced(
-        UINT VertexCountPerInstance,
-        UINT InstanceCount,
-        UINT StartVertexLocation,
-        UINT StartInstanceLocation) = 0;
-
-    virtual void STDMETHODCALLTYPE GSSetConstantBuffers(
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer *const *ppConstantBuffers) = 0;
-
-    virtual void STDMETHODCALLTYPE GSSetShader(
-        ID3D10GeometryShader *pShader) = 0;
-
-    virtual void STDMETHODCALLTYPE IASetPrimitiveTopology(
-        D3D10_PRIMITIVE_TOPOLOGY Topology) = 0;
-
-    virtual void STDMETHODCALLTYPE VSSetShaderResources(
-        UINT StartSlot,
-        UINT NumViews,
-        ID3D10ShaderResourceView *const *ppShaderResourceViews) = 0;
-
-    virtual void STDMETHODCALLTYPE VSSetSamplers(
-        UINT StartSlot,
-        UINT NumSamplers,
-        ID3D10SamplerState *const *ppSamplers) = 0;
-
-    virtual void STDMETHODCALLTYPE SetPredication(
-        ID3D10Predicate *pPredicate,
-        BOOL PredicateValue) = 0;
-
-    virtual void STDMETHODCALLTYPE GSSetShaderResources(
-        UINT StartSlot,
-        UINT NumViews,
-        ID3D10ShaderResourceView *const *ppShaderResourceViews) = 0;
-
-    virtual void STDMETHODCALLTYPE GSSetSamplers(
-        UINT StartSlot,
-        UINT NumSamplers,
-        ID3D10SamplerState *const *ppSamplers) = 0;
-
-    virtual void STDMETHODCALLTYPE OMSetRenderTargets(
-        UINT NumViews,
-        ID3D10RenderTargetView *const *ppRenderTargetViews,
-        ID3D10DepthStencilView *pDepthStencilView) = 0;
-
-    virtual void STDMETHODCALLTYPE OMSetBlendState(
-        ID3D10BlendState *pBlendState,
-        const FLOAT BlendFactor[4],
-        UINT SampleMask) = 0;
-
-    virtual void STDMETHODCALLTYPE OMSetDepthStencilState(
-        ID3D10DepthStencilState *pDepthStencilState,
-        UINT StencilRef) = 0;
-
-    virtual void STDMETHODCALLTYPE SOSetTargets(
-        UINT NumBuffers,
-        ID3D10Buffer *const *ppSOTargets,
-        const UINT *pOffsets) = 0;
-
-    virtual void STDMETHODCALLTYPE DrawAuto(
-        ) = 0;
-
-    virtual void STDMETHODCALLTYPE RSSetState(
-        ID3D10RasterizerState *pRasterizerState) = 0;
-
-    virtual void STDMETHODCALLTYPE RSSetViewports(
-        UINT NumViewports,
-        const D3D10_VIEWPORT *pViewports) = 0;
-
-    virtual void STDMETHODCALLTYPE RSSetScissorRects(
-        UINT NumRects,
-        const D3D10_RECT *pRects) = 0;
-
-    virtual void STDMETHODCALLTYPE CopySubresourceRegion(
-        ID3D10Resource *pDstResource,
-        UINT DstSubresource,
-        UINT DstX,
-        UINT DstY,
-        UINT DstZ,
-        ID3D10Resource *pSrcResource,
-        UINT SrcSubresource,
-        const D3D10_BOX *pSrcBox) = 0;
-
-    virtual void STDMETHODCALLTYPE CopyResource(
-        ID3D10Resource *pDstResource,
-        ID3D10Resource *pSrcResource) = 0;
-
-    virtual void STDMETHODCALLTYPE UpdateSubresource(
-        ID3D10Resource *pDstResource,
-        UINT DstSubresource,
-        const D3D10_BOX *pDstBox,
-        const void *pSrcData,
-        UINT SrcRowPitch,
-        UINT SrcDepthPitch) = 0;
-
-    virtual void STDMETHODCALLTYPE ClearRenderTargetView(
-        ID3D10RenderTargetView *pRenderTargetView,
-        const FLOAT ColorRGBA[4]) = 0;
-
-    virtual void STDMETHODCALLTYPE ClearDepthStencilView(
-        ID3D10DepthStencilView *pDepthStencilView,
-        UINT ClearFlags,
-        FLOAT Depth,
-        UINT8 Stencil) = 0;
-
-    virtual void STDMETHODCALLTYPE GenerateMips(
-        ID3D10ShaderResourceView *pShaderResourceView) = 0;
-
-    virtual void STDMETHODCALLTYPE ResolveSubresource(
-        ID3D10Resource *pDstResource,
-        UINT DstSubresource,
-        ID3D10Resource *pSrcResource,
-        UINT SrcSubresource,
-        DXGI_FORMAT Format) = 0;
-
-    virtual void STDMETHODCALLTYPE VSGetConstantBuffers(
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer **ppConstantBuffers) = 0;
-
-    virtual void STDMETHODCALLTYPE PSGetShaderResources(
-        UINT StartSlot,
-        UINT NumViews,
-        ID3D10ShaderResourceView **ppShaderResourceViews) = 0;
-
-    virtual void STDMETHODCALLTYPE PSGetShader(
-        ID3D10PixelShader **ppPixelShader) = 0;
-
-    virtual void STDMETHODCALLTYPE PSGetSamplers(
-        UINT StartSlot,
-        UINT NumSamplers,
-        ID3D10SamplerState **ppSamplers) = 0;
-
-    virtual void STDMETHODCALLTYPE VSGetShader(
-        ID3D10VertexShader **ppVertexShader) = 0;
-
-    virtual void STDMETHODCALLTYPE PSGetConstantBuffers(
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer **ppConstantBuffers) = 0;
-
-    virtual void STDMETHODCALLTYPE IAGetInputLayout(
-        ID3D10InputLayout **ppInputLayout) = 0;
-
-    virtual void STDMETHODCALLTYPE IAGetVertexBuffers(
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer **ppVertexBuffers,
-        UINT *pStrides,
-        UINT *pOffsets) = 0;
-
-    virtual void STDMETHODCALLTYPE IAGetIndexBuffer(
-        ID3D10Buffer **pIndexBuffer,
-        DXGI_FORMAT *Format,
-        UINT *Offset) = 0;
-
-    virtual void STDMETHODCALLTYPE GSGetConstantBuffers(
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer **ppConstantBuffers) = 0;
-
-    virtual void STDMETHODCALLTYPE GSGetShader(
-        ID3D10GeometryShader **ppGeometryShader) = 0;
-
-    virtual void STDMETHODCALLTYPE IAGetPrimitiveTopology(
-        D3D10_PRIMITIVE_TOPOLOGY *pTopology) = 0;
-
-    virtual void STDMETHODCALLTYPE VSGetShaderResources(
-        UINT StartSlot,
-        UINT NumViews,
-        ID3D10ShaderResourceView **ppShaderResourceViews) = 0;
-
-    virtual void STDMETHODCALLTYPE VSGetSamplers(
-        UINT StartSlot,
-        UINT NumSamplers,
-        ID3D10SamplerState **ppSamplers) = 0;
-
-    virtual void STDMETHODCALLTYPE GetPredication(
-        ID3D10Predicate **ppPredicate,
-        BOOL *pPredicateValue) = 0;
-
-    virtual void STDMETHODCALLTYPE GSGetShaderResources(
-        UINT StartSlot,
-        UINT NumViews,
-        ID3D10ShaderResourceView **ppShaderResourceViews) = 0;
-
-    virtual void STDMETHODCALLTYPE GSGetSamplers(
-        UINT StartSlot,
-        UINT NumSamplers,
-        ID3D10SamplerState **ppSamplers) = 0;
-
-    virtual void STDMETHODCALLTYPE OMGetRenderTargets(
-        UINT NumViews,
-        ID3D10RenderTargetView **ppRenderTargetViews,
-        ID3D10DepthStencilView **ppDepthStencilView) = 0;
-
-    virtual void STDMETHODCALLTYPE OMGetBlendState(
-        ID3D10BlendState **ppBlendState,
-        FLOAT BlendFactor[4],
-        UINT *pSampleMask) = 0;
-
-    virtual void STDMETHODCALLTYPE OMGetDepthStencilState(
-        ID3D10DepthStencilState **ppDepthStencilState,
-        UINT *pStencilRef) = 0;
-
-    virtual void STDMETHODCALLTYPE SOGetTargets(
-        UINT NumBuffers,
-        ID3D10Buffer **ppSOTargets,
-        UINT *pOffsets) = 0;
-
-    virtual void STDMETHODCALLTYPE RSGetState(
-        ID3D10RasterizerState **ppRasterizerState) = 0;
-
-    virtual void STDMETHODCALLTYPE RSGetViewports(
-        UINT *NumViewports,
-        D3D10_VIEWPORT *pViewports) = 0;
-
-    virtual void STDMETHODCALLTYPE RSGetScissorRects(
-        UINT *NumRects,
-        D3D10_RECT *pRects) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE SetExceptionMode(
-        UINT RaiseFlags) = 0;
-
-    virtual UINT STDMETHODCALLTYPE GetExceptionMode(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
-        REFGUID guid,
-        const IUnknown *pData) = 0;
-
-    virtual void STDMETHODCALLTYPE ClearState(
-        ) = 0;
-
-    virtual void STDMETHODCALLTYPE Flush(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateBuffer(
-        const D3D10_BUFFER_DESC *pDesc,
-        const D3D10_SUBRESOURCE_DATA *pInitialData,
-        ID3D10Buffer **ppBuffer) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateTexture1D(
-        const D3D10_TEXTURE1D_DESC *pDesc,
-        const D3D10_SUBRESOURCE_DATA *pInitialData,
-        ID3D10Texture1D **ppTexture1D) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateTexture2D(
-        const D3D10_TEXTURE2D_DESC *pDesc,
-        const D3D10_SUBRESOURCE_DATA *pInitialData,
-        ID3D10Texture2D **ppTexture2D) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateTexture3D(
-        const D3D10_TEXTURE3D_DESC *pDesc,
-        const D3D10_SUBRESOURCE_DATA *pInitialData,
-        ID3D10Texture3D **ppTexture3D) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateShaderResourceView(
-        ID3D10Resource *pResource,
-        const D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc,
-        ID3D10ShaderResourceView **ppSRView) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateRenderTargetView(
-        ID3D10Resource *pResource,
-        const D3D10_RENDER_TARGET_VIEW_DESC *pDesc,
-        ID3D10RenderTargetView **ppRTView) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateDepthStencilView(
-        ID3D10Resource *pResource,
-        const D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc,
-        ID3D10DepthStencilView **ppDepthStencilView) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateInputLayout(
-        const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs,
-        UINT NumElements,
-        const void *pShaderBytecodeWithInputSignature,
-        SIZE_T BytecodeLength,
-        ID3D10InputLayout **ppInputLayout) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateVertexShader(
-        const void *pShaderBytecode,
-        SIZE_T BytecodeLength,
-        ID3D10VertexShader **ppVertexShader) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateGeometryShader(
-        const void *pShaderBytecode,
-        SIZE_T BytecodeLength,
-        ID3D10GeometryShader **ppGeometryShader) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateGeometryShaderWithStreamOutput(
-        const void *pShaderBytecode,
-        SIZE_T BytecodeLength,
-        const D3D10_SO_DECLARATION_ENTRY *pSODeclaration,
-        UINT NumEntries,
-        UINT OutputStreamStride,
-        ID3D10GeometryShader **ppGeometryShader) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreatePixelShader(
-        const void *pShaderBytecode,
-        SIZE_T BytecodeLength,
-        ID3D10PixelShader **ppPixelShader) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateBlendState(
-        const D3D10_BLEND_DESC *pBlendStateDesc,
-        ID3D10BlendState **ppBlendState) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateDepthStencilState(
-        const D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc,
-        ID3D10DepthStencilState **ppDepthStencilState) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateRasterizerState(
-        const D3D10_RASTERIZER_DESC *pRasterizerDesc,
-        ID3D10RasterizerState **ppRasterizerState) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateSamplerState(
-        const D3D10_SAMPLER_DESC *pSamplerDesc,
-        ID3D10SamplerState **ppSamplerState) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateQuery(
-        const D3D10_QUERY_DESC *pQueryDesc,
-        ID3D10Query **ppQuery) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreatePredicate(
-        const D3D10_QUERY_DESC *pPredicateDesc,
-        ID3D10Predicate **ppPredicate) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateCounter(
-        const D3D10_COUNTER_DESC *pCounterDesc,
-        ID3D10Counter **ppCounter) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CheckFormatSupport(
-        DXGI_FORMAT Format,
-        UINT *pFormatSupport) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CheckMultisampleQualityLevels(
-        DXGI_FORMAT Format,
-        UINT SampleCount,
-        UINT *pNumQualityLevels) = 0;
-
-    virtual void STDMETHODCALLTYPE CheckCounterInfo(
-        D3D10_COUNTER_INFO *pCounterInfo) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CheckCounter(
-        const D3D10_COUNTER_DESC *pDesc,
-        D3D10_COUNTER_TYPE *pType,
-        UINT *pActiveCounters,
-        LPSTR szName,
-        UINT *pNameLength,
-        LPSTR szUnits,
-        UINT *pUnitsLength,
-        LPSTR szDescription,
-        UINT *pDescriptionLength) = 0;
-
-    virtual UINT STDMETHODCALLTYPE GetCreationFlags(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE OpenSharedResource(
-        HANDLE hResource,
-        REFIID ReturnedInterface,
-        void **ppResource) = 0;
-
-    virtual void STDMETHODCALLTYPE SetTextFilterSize(
-        UINT Width,
-        UINT Height) = 0;
-
-    virtual void STDMETHODCALLTYPE GetTextFilterSize(
-        UINT *pWidth,
-        UINT *pHeight) = 0;
-
-};
-#else
-typedef struct ID3D10DeviceVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10Device* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10Device* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10Device* This);
-
-    /*** ID3D10Device methods ***/
-    void (STDMETHODCALLTYPE *VSSetConstantBuffers)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer *const *ppConstantBuffers);
-
-    void (STDMETHODCALLTYPE *PSSetShaderResources)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumViews,
-        ID3D10ShaderResourceView *const *ppShaderResourceViews);
-
-    void (STDMETHODCALLTYPE *PSSetShader)(
-        ID3D10Device* This,
-        ID3D10PixelShader *pPixelShader);
-
-    void (STDMETHODCALLTYPE *PSSetSamplers)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumSamplers,
-        ID3D10SamplerState *const *ppSamplers);
-
-    void (STDMETHODCALLTYPE *VSSetShader)(
-        ID3D10Device* This,
-        ID3D10VertexShader *pVertexShader);
-
-    void (STDMETHODCALLTYPE *DrawIndexed)(
-        ID3D10Device* This,
-        UINT IndexCount,
-        UINT StartIndexLocation,
-        INT BaseVertexLocation);
-
-    void (STDMETHODCALLTYPE *Draw)(
-        ID3D10Device* This,
-        UINT VertexCount,
-        UINT StartVertexLocation);
-
-    void (STDMETHODCALLTYPE *PSSetConstantBuffers)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer *const *ppConstantBuffers);
-
-    void (STDMETHODCALLTYPE *IASetInputLayout)(
-        ID3D10Device* This,
-        ID3D10InputLayout *pInputLayout);
-
-    void (STDMETHODCALLTYPE *IASetVertexBuffers)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer *const *ppVertexBuffers,
-        const UINT *pStrides,
-        const UINT *pOffsets);
-
-    void (STDMETHODCALLTYPE *IASetIndexBuffer)(
-        ID3D10Device* This,
-        ID3D10Buffer *pIndexBuffer,
-        DXGI_FORMAT Format,
-        UINT Offset);
-
-    void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
-        ID3D10Device* This,
-        UINT IndexCountPerInstance,
-        UINT InstanceCount,
-        UINT StartIndexLocation,
-        INT BaseVertexLocation,
-        UINT StartInstanceLocation);
-
-    void (STDMETHODCALLTYPE *DrawInstanced)(
-        ID3D10Device* This,
-        UINT VertexCountPerInstance,
-        UINT InstanceCount,
-        UINT StartVertexLocation,
-        UINT StartInstanceLocation);
-
-    void (STDMETHODCALLTYPE *GSSetConstantBuffers)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer *const *ppConstantBuffers);
-
-    void (STDMETHODCALLTYPE *GSSetShader)(
-        ID3D10Device* This,
-        ID3D10GeometryShader *pShader);
-
-    void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
-        ID3D10Device* This,
-        D3D10_PRIMITIVE_TOPOLOGY Topology);
-
-    void (STDMETHODCALLTYPE *VSSetShaderResources)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumViews,
-        ID3D10ShaderResourceView *const *ppShaderResourceViews);
-
-    void (STDMETHODCALLTYPE *VSSetSamplers)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumSamplers,
-        ID3D10SamplerState *const *ppSamplers);
-
-    void (STDMETHODCALLTYPE *SetPredication)(
-        ID3D10Device* This,
-        ID3D10Predicate *pPredicate,
-        BOOL PredicateValue);
-
-    void (STDMETHODCALLTYPE *GSSetShaderResources)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumViews,
-        ID3D10ShaderResourceView *const *ppShaderResourceViews);
-
-    void (STDMETHODCALLTYPE *GSSetSamplers)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumSamplers,
-        ID3D10SamplerState *const *ppSamplers);
-
-    void (STDMETHODCALLTYPE *OMSetRenderTargets)(
-        ID3D10Device* This,
-        UINT NumViews,
-        ID3D10RenderTargetView *const *ppRenderTargetViews,
-        ID3D10DepthStencilView *pDepthStencilView);
-
-    void (STDMETHODCALLTYPE *OMSetBlendState)(
-        ID3D10Device* This,
-        ID3D10BlendState *pBlendState,
-        const FLOAT BlendFactor[4],
-        UINT SampleMask);
-
-    void (STDMETHODCALLTYPE *OMSetDepthStencilState)(
-        ID3D10Device* This,
-        ID3D10DepthStencilState *pDepthStencilState,
-        UINT StencilRef);
-
-    void (STDMETHODCALLTYPE *SOSetTargets)(
-        ID3D10Device* This,
-        UINT NumBuffers,
-        ID3D10Buffer *const *ppSOTargets,
-        const UINT *pOffsets);
-
-    void (STDMETHODCALLTYPE *DrawAuto)(
-        ID3D10Device* This);
-
-    void (STDMETHODCALLTYPE *RSSetState)(
-        ID3D10Device* This,
-        ID3D10RasterizerState *pRasterizerState);
-
-    void (STDMETHODCALLTYPE *RSSetViewports)(
-        ID3D10Device* This,
-        UINT NumViewports,
-        const D3D10_VIEWPORT *pViewports);
-
-    void (STDMETHODCALLTYPE *RSSetScissorRects)(
-        ID3D10Device* This,
-        UINT NumRects,
-        const D3D10_RECT *pRects);
-
-    void (STDMETHODCALLTYPE *CopySubresourceRegion)(
-        ID3D10Device* This,
-        ID3D10Resource *pDstResource,
-        UINT DstSubresource,
-        UINT DstX,
-        UINT DstY,
-        UINT DstZ,
-        ID3D10Resource *pSrcResource,
-        UINT SrcSubresource,
-        const D3D10_BOX *pSrcBox);
-
-    void (STDMETHODCALLTYPE *CopyResource)(
-        ID3D10Device* This,
-        ID3D10Resource *pDstResource,
-        ID3D10Resource *pSrcResource);
-
-    void (STDMETHODCALLTYPE *UpdateSubresource)(
-        ID3D10Device* This,
-        ID3D10Resource *pDstResource,
-        UINT DstSubresource,
-        const D3D10_BOX *pDstBox,
-        const void *pSrcData,
-        UINT SrcRowPitch,
-        UINT SrcDepthPitch);
-
-    void (STDMETHODCALLTYPE *ClearRenderTargetView)(
-        ID3D10Device* This,
-        ID3D10RenderTargetView *pRenderTargetView,
-        const FLOAT ColorRGBA[4]);
-
-    void (STDMETHODCALLTYPE *ClearDepthStencilView)(
-        ID3D10Device* This,
-        ID3D10DepthStencilView *pDepthStencilView,
-        UINT ClearFlags,
-        FLOAT Depth,
-        UINT8 Stencil);
-
-    void (STDMETHODCALLTYPE *GenerateMips)(
-        ID3D10Device* This,
-        ID3D10ShaderResourceView *pShaderResourceView);
-
-    void (STDMETHODCALLTYPE *ResolveSubresource)(
-        ID3D10Device* This,
-        ID3D10Resource *pDstResource,
-        UINT DstSubresource,
-        ID3D10Resource *pSrcResource,
-        UINT SrcSubresource,
-        DXGI_FORMAT Format);
-
-    void (STDMETHODCALLTYPE *VSGetConstantBuffers)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer **ppConstantBuffers);
-
-    void (STDMETHODCALLTYPE *PSGetShaderResources)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumViews,
-        ID3D10ShaderResourceView **ppShaderResourceViews);
-
-    void (STDMETHODCALLTYPE *PSGetShader)(
-        ID3D10Device* This,
-        ID3D10PixelShader **ppPixelShader);
-
-    void (STDMETHODCALLTYPE *PSGetSamplers)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumSamplers,
-        ID3D10SamplerState **ppSamplers);
-
-    void (STDMETHODCALLTYPE *VSGetShader)(
-        ID3D10Device* This,
-        ID3D10VertexShader **ppVertexShader);
-
-    void (STDMETHODCALLTYPE *PSGetConstantBuffers)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer **ppConstantBuffers);
-
-    void (STDMETHODCALLTYPE *IAGetInputLayout)(
-        ID3D10Device* This,
-        ID3D10InputLayout **ppInputLayout);
-
-    void (STDMETHODCALLTYPE *IAGetVertexBuffers)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer **ppVertexBuffers,
-        UINT *pStrides,
-        UINT *pOffsets);
-
-    void (STDMETHODCALLTYPE *IAGetIndexBuffer)(
-        ID3D10Device* This,
-        ID3D10Buffer **pIndexBuffer,
-        DXGI_FORMAT *Format,
-        UINT *Offset);
-
-    void (STDMETHODCALLTYPE *GSGetConstantBuffers)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer **ppConstantBuffers);
-
-    void (STDMETHODCALLTYPE *GSGetShader)(
-        ID3D10Device* This,
-        ID3D10GeometryShader **ppGeometryShader);
-
-    void (STDMETHODCALLTYPE *IAGetPrimitiveTopology)(
-        ID3D10Device* This,
-        D3D10_PRIMITIVE_TOPOLOGY *pTopology);
-
-    void (STDMETHODCALLTYPE *VSGetShaderResources)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumViews,
-        ID3D10ShaderResourceView **ppShaderResourceViews);
-
-    void (STDMETHODCALLTYPE *VSGetSamplers)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumSamplers,
-        ID3D10SamplerState **ppSamplers);
-
-    void (STDMETHODCALLTYPE *GetPredication)(
-        ID3D10Device* This,
-        ID3D10Predicate **ppPredicate,
-        BOOL *pPredicateValue);
-
-    void (STDMETHODCALLTYPE *GSGetShaderResources)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumViews,
-        ID3D10ShaderResourceView **ppShaderResourceViews);
-
-    void (STDMETHODCALLTYPE *GSGetSamplers)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumSamplers,
-        ID3D10SamplerState **ppSamplers);
-
-    void (STDMETHODCALLTYPE *OMGetRenderTargets)(
-        ID3D10Device* This,
-        UINT NumViews,
-        ID3D10RenderTargetView **ppRenderTargetViews,
-        ID3D10DepthStencilView **ppDepthStencilView);
-
-    void (STDMETHODCALLTYPE *OMGetBlendState)(
-        ID3D10Device* This,
-        ID3D10BlendState **ppBlendState,
-        FLOAT BlendFactor[4],
-        UINT *pSampleMask);
-
-    void (STDMETHODCALLTYPE *OMGetDepthStencilState)(
-        ID3D10Device* This,
-        ID3D10DepthStencilState **ppDepthStencilState,
-        UINT *pStencilRef);
-
-    void (STDMETHODCALLTYPE *SOGetTargets)(
-        ID3D10Device* This,
-        UINT NumBuffers,
-        ID3D10Buffer **ppSOTargets,
-        UINT *pOffsets);
-
-    void (STDMETHODCALLTYPE *RSGetState)(
-        ID3D10Device* This,
-        ID3D10RasterizerState **ppRasterizerState);
-
-    void (STDMETHODCALLTYPE *RSGetViewports)(
-        ID3D10Device* This,
-        UINT *NumViewports,
-        D3D10_VIEWPORT *pViewports);
-
-    void (STDMETHODCALLTYPE *RSGetScissorRects)(
-        ID3D10Device* This,
-        UINT *NumRects,
-        D3D10_RECT *pRects);
-
-    HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
-        ID3D10Device* This);
-
-    HRESULT (STDMETHODCALLTYPE *SetExceptionMode)(
-        ID3D10Device* This,
-        UINT RaiseFlags);
-
-    UINT (STDMETHODCALLTYPE *GetExceptionMode)(
-        ID3D10Device* This);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10Device* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10Device* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10Device* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    void (STDMETHODCALLTYPE *ClearState)(
-        ID3D10Device* This);
-
-    void (STDMETHODCALLTYPE *Flush)(
-        ID3D10Device* This);
-
-    HRESULT (STDMETHODCALLTYPE *CreateBuffer)(
-        ID3D10Device* This,
-        const D3D10_BUFFER_DESC *pDesc,
-        const D3D10_SUBRESOURCE_DATA *pInitialData,
-        ID3D10Buffer **ppBuffer);
-
-    HRESULT (STDMETHODCALLTYPE *CreateTexture1D)(
-        ID3D10Device* This,
-        const D3D10_TEXTURE1D_DESC *pDesc,
-        const D3D10_SUBRESOURCE_DATA *pInitialData,
-        ID3D10Texture1D **ppTexture1D);
-
-    HRESULT (STDMETHODCALLTYPE *CreateTexture2D)(
-        ID3D10Device* This,
-        const D3D10_TEXTURE2D_DESC *pDesc,
-        const D3D10_SUBRESOURCE_DATA *pInitialData,
-        ID3D10Texture2D **ppTexture2D);
-
-    HRESULT (STDMETHODCALLTYPE *CreateTexture3D)(
-        ID3D10Device* This,
-        const D3D10_TEXTURE3D_DESC *pDesc,
-        const D3D10_SUBRESOURCE_DATA *pInitialData,
-        ID3D10Texture3D **ppTexture3D);
-
-    HRESULT (STDMETHODCALLTYPE *CreateShaderResourceView)(
-        ID3D10Device* This,
-        ID3D10Resource *pResource,
-        const D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc,
-        ID3D10ShaderResourceView **ppSRView);
-
-    HRESULT (STDMETHODCALLTYPE *CreateRenderTargetView)(
-        ID3D10Device* This,
-        ID3D10Resource *pResource,
-        const D3D10_RENDER_TARGET_VIEW_DESC *pDesc,
-        ID3D10RenderTargetView **ppRTView);
-
-    HRESULT (STDMETHODCALLTYPE *CreateDepthStencilView)(
-        ID3D10Device* This,
-        ID3D10Resource *pResource,
-        const D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc,
-        ID3D10DepthStencilView **ppDepthStencilView);
-
-    HRESULT (STDMETHODCALLTYPE *CreateInputLayout)(
-        ID3D10Device* This,
-        const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs,
-        UINT NumElements,
-        const void *pShaderBytecodeWithInputSignature,
-        SIZE_T BytecodeLength,
-        ID3D10InputLayout **ppInputLayout);
-
-    HRESULT (STDMETHODCALLTYPE *CreateVertexShader)(
-        ID3D10Device* This,
-        const void *pShaderBytecode,
-        SIZE_T BytecodeLength,
-        ID3D10VertexShader **ppVertexShader);
-
-    HRESULT (STDMETHODCALLTYPE *CreateGeometryShader)(
-        ID3D10Device* This,
-        const void *pShaderBytecode,
-        SIZE_T BytecodeLength,
-        ID3D10GeometryShader **ppGeometryShader);
-
-    HRESULT (STDMETHODCALLTYPE *CreateGeometryShaderWithStreamOutput)(
-        ID3D10Device* This,
-        const void *pShaderBytecode,
-        SIZE_T BytecodeLength,
-        const D3D10_SO_DECLARATION_ENTRY *pSODeclaration,
-        UINT NumEntries,
-        UINT OutputStreamStride,
-        ID3D10GeometryShader **ppGeometryShader);
-
-    HRESULT (STDMETHODCALLTYPE *CreatePixelShader)(
-        ID3D10Device* This,
-        const void *pShaderBytecode,
-        SIZE_T BytecodeLength,
-        ID3D10PixelShader **ppPixelShader);
-
-    HRESULT (STDMETHODCALLTYPE *CreateBlendState)(
-        ID3D10Device* This,
-        const D3D10_BLEND_DESC *pBlendStateDesc,
-        ID3D10BlendState **ppBlendState);
-
-    HRESULT (STDMETHODCALLTYPE *CreateDepthStencilState)(
-        ID3D10Device* This,
-        const D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc,
-        ID3D10DepthStencilState **ppDepthStencilState);
-
-    HRESULT (STDMETHODCALLTYPE *CreateRasterizerState)(
-        ID3D10Device* This,
-        const D3D10_RASTERIZER_DESC *pRasterizerDesc,
-        ID3D10RasterizerState **ppRasterizerState);
-
-    HRESULT (STDMETHODCALLTYPE *CreateSamplerState)(
-        ID3D10Device* This,
-        const D3D10_SAMPLER_DESC *pSamplerDesc,
-        ID3D10SamplerState **ppSamplerState);
-
-    HRESULT (STDMETHODCALLTYPE *CreateQuery)(
-        ID3D10Device* This,
-        const D3D10_QUERY_DESC *pQueryDesc,
-        ID3D10Query **ppQuery);
-
-    HRESULT (STDMETHODCALLTYPE *CreatePredicate)(
-        ID3D10Device* This,
-        const D3D10_QUERY_DESC *pPredicateDesc,
-        ID3D10Predicate **ppPredicate);
-
-    HRESULT (STDMETHODCALLTYPE *CreateCounter)(
-        ID3D10Device* This,
-        const D3D10_COUNTER_DESC *pCounterDesc,
-        ID3D10Counter **ppCounter);
-
-    HRESULT (STDMETHODCALLTYPE *CheckFormatSupport)(
-        ID3D10Device* This,
-        DXGI_FORMAT Format,
-        UINT *pFormatSupport);
-
-    HRESULT (STDMETHODCALLTYPE *CheckMultisampleQualityLevels)(
-        ID3D10Device* This,
-        DXGI_FORMAT Format,
-        UINT SampleCount,
-        UINT *pNumQualityLevels);
-
-    void (STDMETHODCALLTYPE *CheckCounterInfo)(
-        ID3D10Device* This,
-        D3D10_COUNTER_INFO *pCounterInfo);
-
-    HRESULT (STDMETHODCALLTYPE *CheckCounter)(
-        ID3D10Device* This,
-        const D3D10_COUNTER_DESC *pDesc,
-        D3D10_COUNTER_TYPE *pType,
-        UINT *pActiveCounters,
-        LPSTR szName,
-        UINT *pNameLength,
-        LPSTR szUnits,
-        UINT *pUnitsLength,
-        LPSTR szDescription,
-        UINT *pDescriptionLength);
-
-    UINT (STDMETHODCALLTYPE *GetCreationFlags)(
-        ID3D10Device* This);
-
-    HRESULT (STDMETHODCALLTYPE *OpenSharedResource)(
-        ID3D10Device* This,
-        HANDLE hResource,
-        REFIID ReturnedInterface,
-        void **ppResource);
-
-    void (STDMETHODCALLTYPE *SetTextFilterSize)(
-        ID3D10Device* This,
-        UINT Width,
-        UINT Height);
-
-    void (STDMETHODCALLTYPE *GetTextFilterSize)(
-        ID3D10Device* This,
-        UINT *pWidth,
-        UINT *pHeight);
-
-    END_INTERFACE
-} ID3D10DeviceVtbl;
-interface ID3D10Device {
-    CONST_VTBL ID3D10DeviceVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10Device_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10Device_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10Device_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10Device methods ***/
-#define ID3D10Device_VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
-#define ID3D10Device_PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
-#define ID3D10Device_PSSetShader(This,pPixelShader) (This)->lpVtbl->PSSetShader(This,pPixelShader)
-#define ID3D10Device_PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
-#define ID3D10Device_VSSetShader(This,pVertexShader) (This)->lpVtbl->VSSetShader(This,pVertexShader)
-#define ID3D10Device_DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) (This)->lpVtbl->DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation)
-#define ID3D10Device_Draw(This,VertexCount,StartVertexLocation) (This)->lpVtbl->Draw(This,VertexCount,StartVertexLocation)
-#define ID3D10Device_PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
-#define ID3D10Device_IASetInputLayout(This,pInputLayout) (This)->lpVtbl->IASetInputLayout(This,pInputLayout)
-#define ID3D10Device_IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) (This)->lpVtbl->IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)
-#define ID3D10Device_IASetIndexBuffer(This,pIndexBuffer,Format,Offset) (This)->lpVtbl->IASetIndexBuffer(This,pIndexBuffer,Format,Offset)
-#define ID3D10Device_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) (This)->lpVtbl->DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation)
-#define ID3D10Device_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) (This)->lpVtbl->DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation)
-#define ID3D10Device_GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
-#define ID3D10Device_GSSetShader(This,pShader) (This)->lpVtbl->GSSetShader(This,pShader)
-#define ID3D10Device_IASetPrimitiveTopology(This,Topology) (This)->lpVtbl->IASetPrimitiveTopology(This,Topology)
-#define ID3D10Device_VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
-#define ID3D10Device_VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
-#define ID3D10Device_SetPredication(This,pPredicate,PredicateValue) (This)->lpVtbl->SetPredication(This,pPredicate,PredicateValue)
-#define ID3D10Device_GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
-#define ID3D10Device_GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
-#define ID3D10Device_OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) (This)->lpVtbl->OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView)
-#define ID3D10Device_OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) (This)->lpVtbl->OMSetBlendState(This,pBlendState,BlendFactor,SampleMask)
-#define ID3D10Device_OMSetDepthStencilState(This,pDepthStencilState,StencilRef) (This)->lpVtbl->OMSetDepthStencilState(This,pDepthStencilState,StencilRef)
-#define ID3D10Device_SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) (This)->lpVtbl->SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets)
-#define ID3D10Device_DrawAuto(This) (This)->lpVtbl->DrawAuto(This)
-#define ID3D10Device_RSSetState(This,pRasterizerState) (This)->lpVtbl->RSSetState(This,pRasterizerState)
-#define ID3D10Device_RSSetViewports(This,NumViewports,pViewports) (This)->lpVtbl->RSSetViewports(This,NumViewports,pViewports)
-#define ID3D10Device_RSSetScissorRects(This,NumRects,pRects) (This)->lpVtbl->RSSetScissorRects(This,NumRects,pRects)
-#define ID3D10Device_CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) (This)->lpVtbl->CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox)
-#define ID3D10Device_CopyResource(This,pDstResource,pSrcResource) (This)->lpVtbl->CopyResource(This,pDstResource,pSrcResource)
-#define ID3D10Device_UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) (This)->lpVtbl->UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch)
-#define ID3D10Device_ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) (This)->lpVtbl->ClearRenderTargetView(This,pRenderTargetView,ColorRGBA)
-#define ID3D10Device_ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) (This)->lpVtbl->ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil)
-#define ID3D10Device_GenerateMips(This,pShaderResourceView) (This)->lpVtbl->GenerateMips(This,pShaderResourceView)
-#define ID3D10Device_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) (This)->lpVtbl->ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format)
-#define ID3D10Device_VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
-#define ID3D10Device_PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
-#define ID3D10Device_PSGetShader(This,ppPixelShader) (This)->lpVtbl->PSGetShader(This,ppPixelShader)
-#define ID3D10Device_PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
-#define ID3D10Device_VSGetShader(This,ppVertexShader) (This)->lpVtbl->VSGetShader(This,ppVertexShader)
-#define ID3D10Device_PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
-#define ID3D10Device_IAGetInputLayout(This,ppInputLayout) (This)->lpVtbl->IAGetInputLayout(This,ppInputLayout)
-#define ID3D10Device_IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) (This)->lpVtbl->IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)
-#define ID3D10Device_IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) (This)->lpVtbl->IAGetIndexBuffer(This,pIndexBuffer,Format,Offset)
-#define ID3D10Device_GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
-#define ID3D10Device_GSGetShader(This,ppGeometryShader) (This)->lpVtbl->GSGetShader(This,ppGeometryShader)
-#define ID3D10Device_IAGetPrimitiveTopology(This,pTopology) (This)->lpVtbl->IAGetPrimitiveTopology(This,pTopology)
-#define ID3D10Device_VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
-#define ID3D10Device_VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
-#define ID3D10Device_GetPredication(This,ppPredicate,pPredicateValue) (This)->lpVtbl->GetPredication(This,ppPredicate,pPredicateValue)
-#define ID3D10Device_GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
-#define ID3D10Device_GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
-#define ID3D10Device_OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) (This)->lpVtbl->OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView)
-#define ID3D10Device_OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) (This)->lpVtbl->OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask)
-#define ID3D10Device_OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) (This)->lpVtbl->OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef)
-#define ID3D10Device_SOGetTargets(This,NumBuffers,ppSOTargets,pOffsets) (This)->lpVtbl->SOGetTargets(This,NumBuffers,ppSOTargets,pOffsets)
-#define ID3D10Device_RSGetState(This,ppRasterizerState) (This)->lpVtbl->RSGetState(This,ppRasterizerState)
-#define ID3D10Device_RSGetViewports(This,NumViewports,pViewports) (This)->lpVtbl->RSGetViewports(This,NumViewports,pViewports)
-#define ID3D10Device_RSGetScissorRects(This,NumRects,pRects) (This)->lpVtbl->RSGetScissorRects(This,NumRects,pRects)
-#define ID3D10Device_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
-#define ID3D10Device_SetExceptionMode(This,RaiseFlags) (This)->lpVtbl->SetExceptionMode(This,RaiseFlags)
-#define ID3D10Device_GetExceptionMode(This) (This)->lpVtbl->GetExceptionMode(This)
-#define ID3D10Device_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10Device_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10Device_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-#define ID3D10Device_ClearState(This) (This)->lpVtbl->ClearState(This)
-#define ID3D10Device_Flush(This) (This)->lpVtbl->Flush(This)
-#define ID3D10Device_CreateBuffer(This,pDesc,pInitialData,ppBuffer) (This)->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer)
-#define ID3D10Device_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) (This)->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D)
-#define ID3D10Device_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) (This)->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D)
-#define ID3D10Device_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) (This)->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D)
-#define ID3D10Device_CreateShaderResourceView(This,pResource,pDesc,ppSRView) (This)->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView)
-#define ID3D10Device_CreateRenderTargetView(This,pResource,pDesc,ppRTView) (This)->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView)
-#define ID3D10Device_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) (This)->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView)
-#define ID3D10Device_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) (This)->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout)
-#define ID3D10Device_CreateVertexShader(This,pShaderBytecode,BytecodeLength,ppVertexShader) (This)->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,ppVertexShader)
-#define ID3D10Device_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,ppGeometryShader) (This)->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,ppGeometryShader)
-#define ID3D10Device_CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,OutputStreamStride,ppGeometryShader) (This)->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,OutputStreamStride,ppGeometryShader)
-#define ID3D10Device_CreatePixelShader(This,pShaderBytecode,BytecodeLength,ppPixelShader) (This)->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,ppPixelShader)
-#define ID3D10Device_CreateBlendState(This,pBlendStateDesc,ppBlendState) (This)->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState)
-#define ID3D10Device_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) (This)->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState)
-#define ID3D10Device_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) (This)->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState)
-#define ID3D10Device_CreateSamplerState(This,pSamplerDesc,ppSamplerState) (This)->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState)
-#define ID3D10Device_CreateQuery(This,pQueryDesc,ppQuery) (This)->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery)
-#define ID3D10Device_CreatePredicate(This,pPredicateDesc,ppPredicate) (This)->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate)
-#define ID3D10Device_CreateCounter(This,pCounterDesc,ppCounter) (This)->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter)
-#define ID3D10Device_CheckFormatSupport(This,Format,pFormatSupport) (This)->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport)
-#define ID3D10Device_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) (This)->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels)
-#define ID3D10Device_CheckCounterInfo(This,pCounterInfo) (This)->lpVtbl->CheckCounterInfo(This,pCounterInfo)
-#define ID3D10Device_CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) (This)->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength)
-#define ID3D10Device_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
-#define ID3D10Device_OpenSharedResource(This,hResource,ReturnedInterface,ppResource) (This)->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource)
-#define ID3D10Device_SetTextFilterSize(This,Width,Height) (This)->lpVtbl->SetTextFilterSize(This,Width,Height)
-#define ID3D10Device_GetTextFilterSize(This,pWidth,pHeight) (This)->lpVtbl->GetTextFilterSize(This,pWidth,pHeight)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10Device_VSSetConstantBuffers_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumBuffers,
-    ID3D10Buffer *const *ppConstantBuffers);
-void __RPC_STUB ID3D10Device_VSSetConstantBuffers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_PSSetShaderResources_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumViews,
-    ID3D10ShaderResourceView *const *ppShaderResourceViews);
-void __RPC_STUB ID3D10Device_PSSetShaderResources_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_PSSetShader_Proxy(
-    ID3D10Device* This,
-    ID3D10PixelShader *pPixelShader);
-void __RPC_STUB ID3D10Device_PSSetShader_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_PSSetSamplers_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumSamplers,
-    ID3D10SamplerState *const *ppSamplers);
-void __RPC_STUB ID3D10Device_PSSetSamplers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_VSSetShader_Proxy(
-    ID3D10Device* This,
-    ID3D10VertexShader *pVertexShader);
-void __RPC_STUB ID3D10Device_VSSetShader_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_DrawIndexed_Proxy(
-    ID3D10Device* This,
-    UINT IndexCount,
-    UINT StartIndexLocation,
-    INT BaseVertexLocation);
-void __RPC_STUB ID3D10Device_DrawIndexed_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_Draw_Proxy(
-    ID3D10Device* This,
-    UINT VertexCount,
-    UINT StartVertexLocation);
-void __RPC_STUB ID3D10Device_Draw_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_PSSetConstantBuffers_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumBuffers,
-    ID3D10Buffer *const *ppConstantBuffers);
-void __RPC_STUB ID3D10Device_PSSetConstantBuffers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_IASetInputLayout_Proxy(
-    ID3D10Device* This,
-    ID3D10InputLayout *pInputLayout);
-void __RPC_STUB ID3D10Device_IASetInputLayout_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_IASetVertexBuffers_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumBuffers,
-    ID3D10Buffer *const *ppVertexBuffers,
-    const UINT *pStrides,
-    const UINT *pOffsets);
-void __RPC_STUB ID3D10Device_IASetVertexBuffers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_IASetIndexBuffer_Proxy(
-    ID3D10Device* This,
-    ID3D10Buffer *pIndexBuffer,
-    DXGI_FORMAT Format,
-    UINT Offset);
-void __RPC_STUB ID3D10Device_IASetIndexBuffer_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_DrawIndexedInstanced_Proxy(
-    ID3D10Device* This,
-    UINT IndexCountPerInstance,
-    UINT InstanceCount,
-    UINT StartIndexLocation,
-    INT BaseVertexLocation,
-    UINT StartInstanceLocation);
-void __RPC_STUB ID3D10Device_DrawIndexedInstanced_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_DrawInstanced_Proxy(
-    ID3D10Device* This,
-    UINT VertexCountPerInstance,
-    UINT InstanceCount,
-    UINT StartVertexLocation,
-    UINT StartInstanceLocation);
-void __RPC_STUB ID3D10Device_DrawInstanced_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_GSSetConstantBuffers_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumBuffers,
-    ID3D10Buffer *const *ppConstantBuffers);
-void __RPC_STUB ID3D10Device_GSSetConstantBuffers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_GSSetShader_Proxy(
-    ID3D10Device* This,
-    ID3D10GeometryShader *pShader);
-void __RPC_STUB ID3D10Device_GSSetShader_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_IASetPrimitiveTopology_Proxy(
-    ID3D10Device* This,
-    D3D10_PRIMITIVE_TOPOLOGY Topology);
-void __RPC_STUB ID3D10Device_IASetPrimitiveTopology_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_VSSetShaderResources_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumViews,
-    ID3D10ShaderResourceView *const *ppShaderResourceViews);
-void __RPC_STUB ID3D10Device_VSSetShaderResources_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_VSSetSamplers_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumSamplers,
-    ID3D10SamplerState *const *ppSamplers);
-void __RPC_STUB ID3D10Device_VSSetSamplers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_SetPredication_Proxy(
-    ID3D10Device* This,
-    ID3D10Predicate *pPredicate,
-    BOOL PredicateValue);
-void __RPC_STUB ID3D10Device_SetPredication_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_GSSetShaderResources_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumViews,
-    ID3D10ShaderResourceView *const *ppShaderResourceViews);
-void __RPC_STUB ID3D10Device_GSSetShaderResources_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_GSSetSamplers_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumSamplers,
-    ID3D10SamplerState *const *ppSamplers);
-void __RPC_STUB ID3D10Device_GSSetSamplers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_OMSetRenderTargets_Proxy(
-    ID3D10Device* This,
-    UINT NumViews,
-    ID3D10RenderTargetView *const *ppRenderTargetViews,
-    ID3D10DepthStencilView *pDepthStencilView);
-void __RPC_STUB ID3D10Device_OMSetRenderTargets_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_OMSetBlendState_Proxy(
-    ID3D10Device* This,
-    ID3D10BlendState *pBlendState,
-    const FLOAT BlendFactor[4],
-    UINT SampleMask);
-void __RPC_STUB ID3D10Device_OMSetBlendState_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_OMSetDepthStencilState_Proxy(
-    ID3D10Device* This,
-    ID3D10DepthStencilState *pDepthStencilState,
-    UINT StencilRef);
-void __RPC_STUB ID3D10Device_OMSetDepthStencilState_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_SOSetTargets_Proxy(
-    ID3D10Device* This,
-    UINT NumBuffers,
-    ID3D10Buffer *const *ppSOTargets,
-    const UINT *pOffsets);
-void __RPC_STUB ID3D10Device_SOSetTargets_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_DrawAuto_Proxy(
-    ID3D10Device* This);
-void __RPC_STUB ID3D10Device_DrawAuto_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_RSSetState_Proxy(
-    ID3D10Device* This,
-    ID3D10RasterizerState *pRasterizerState);
-void __RPC_STUB ID3D10Device_RSSetState_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_RSSetViewports_Proxy(
-    ID3D10Device* This,
-    UINT NumViewports,
-    const D3D10_VIEWPORT *pViewports);
-void __RPC_STUB ID3D10Device_RSSetViewports_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_RSSetScissorRects_Proxy(
-    ID3D10Device* This,
-    UINT NumRects,
-    const D3D10_RECT *pRects);
-void __RPC_STUB ID3D10Device_RSSetScissorRects_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_CopySubresourceRegion_Proxy(
-    ID3D10Device* This,
-    ID3D10Resource *pDstResource,
-    UINT DstSubresource,
-    UINT DstX,
-    UINT DstY,
-    UINT DstZ,
-    ID3D10Resource *pSrcResource,
-    UINT SrcSubresource,
-    const D3D10_BOX *pSrcBox);
-void __RPC_STUB ID3D10Device_CopySubresourceRegion_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_CopyResource_Proxy(
-    ID3D10Device* This,
-    ID3D10Resource *pDstResource,
-    ID3D10Resource *pSrcResource);
-void __RPC_STUB ID3D10Device_CopyResource_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_UpdateSubresource_Proxy(
-    ID3D10Device* This,
-    ID3D10Resource *pDstResource,
-    UINT DstSubresource,
-    const D3D10_BOX *pDstBox,
-    const void *pSrcData,
-    UINT SrcRowPitch,
-    UINT SrcDepthPitch);
-void __RPC_STUB ID3D10Device_UpdateSubresource_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_ClearRenderTargetView_Proxy(
-    ID3D10Device* This,
-    ID3D10RenderTargetView *pRenderTargetView,
-    const FLOAT ColorRGBA[4]);
-void __RPC_STUB ID3D10Device_ClearRenderTargetView_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_ClearDepthStencilView_Proxy(
-    ID3D10Device* This,
-    ID3D10DepthStencilView *pDepthStencilView,
-    UINT ClearFlags,
-    FLOAT Depth,
-    UINT8 Stencil);
-void __RPC_STUB ID3D10Device_ClearDepthStencilView_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_GenerateMips_Proxy(
-    ID3D10Device* This,
-    ID3D10ShaderResourceView *pShaderResourceView);
-void __RPC_STUB ID3D10Device_GenerateMips_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_ResolveSubresource_Proxy(
-    ID3D10Device* This,
-    ID3D10Resource *pDstResource,
-    UINT DstSubresource,
-    ID3D10Resource *pSrcResource,
-    UINT SrcSubresource,
-    DXGI_FORMAT Format);
-void __RPC_STUB ID3D10Device_ResolveSubresource_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_VSGetConstantBuffers_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumBuffers,
-    ID3D10Buffer **ppConstantBuffers);
-void __RPC_STUB ID3D10Device_VSGetConstantBuffers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_PSGetShaderResources_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumViews,
-    ID3D10ShaderResourceView **ppShaderResourceViews);
-void __RPC_STUB ID3D10Device_PSGetShaderResources_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_PSGetShader_Proxy(
-    ID3D10Device* This,
-    ID3D10PixelShader **ppPixelShader);
-void __RPC_STUB ID3D10Device_PSGetShader_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_PSGetSamplers_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumSamplers,
-    ID3D10SamplerState **ppSamplers);
-void __RPC_STUB ID3D10Device_PSGetSamplers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_VSGetShader_Proxy(
-    ID3D10Device* This,
-    ID3D10VertexShader **ppVertexShader);
-void __RPC_STUB ID3D10Device_VSGetShader_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_PSGetConstantBuffers_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumBuffers,
-    ID3D10Buffer **ppConstantBuffers);
-void __RPC_STUB ID3D10Device_PSGetConstantBuffers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_IAGetInputLayout_Proxy(
-    ID3D10Device* This,
-    ID3D10InputLayout **ppInputLayout);
-void __RPC_STUB ID3D10Device_IAGetInputLayout_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_IAGetVertexBuffers_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumBuffers,
-    ID3D10Buffer **ppVertexBuffers,
-    UINT *pStrides,
-    UINT *pOffsets);
-void __RPC_STUB ID3D10Device_IAGetVertexBuffers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_IAGetIndexBuffer_Proxy(
-    ID3D10Device* This,
-    ID3D10Buffer **pIndexBuffer,
-    DXGI_FORMAT *Format,
-    UINT *Offset);
-void __RPC_STUB ID3D10Device_IAGetIndexBuffer_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_GSGetConstantBuffers_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumBuffers,
-    ID3D10Buffer **ppConstantBuffers);
-void __RPC_STUB ID3D10Device_GSGetConstantBuffers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_GSGetShader_Proxy(
-    ID3D10Device* This,
-    ID3D10GeometryShader **ppGeometryShader);
-void __RPC_STUB ID3D10Device_GSGetShader_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_IAGetPrimitiveTopology_Proxy(
-    ID3D10Device* This,
-    D3D10_PRIMITIVE_TOPOLOGY *pTopology);
-void __RPC_STUB ID3D10Device_IAGetPrimitiveTopology_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_VSGetShaderResources_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumViews,
-    ID3D10ShaderResourceView **ppShaderResourceViews);
-void __RPC_STUB ID3D10Device_VSGetShaderResources_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_VSGetSamplers_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumSamplers,
-    ID3D10SamplerState **ppSamplers);
-void __RPC_STUB ID3D10Device_VSGetSamplers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_GetPredication_Proxy(
-    ID3D10Device* This,
-    ID3D10Predicate **ppPredicate,
-    BOOL *pPredicateValue);
-void __RPC_STUB ID3D10Device_GetPredication_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_GSGetShaderResources_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumViews,
-    ID3D10ShaderResourceView **ppShaderResourceViews);
-void __RPC_STUB ID3D10Device_GSGetShaderResources_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_GSGetSamplers_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumSamplers,
-    ID3D10SamplerState **ppSamplers);
-void __RPC_STUB ID3D10Device_GSGetSamplers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_OMGetRenderTargets_Proxy(
-    ID3D10Device* This,
-    UINT NumViews,
-    ID3D10RenderTargetView **ppRenderTargetViews,
-    ID3D10DepthStencilView **ppDepthStencilView);
-void __RPC_STUB ID3D10Device_OMGetRenderTargets_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_OMGetBlendState_Proxy(
-    ID3D10Device* This,
-    ID3D10BlendState **ppBlendState,
-    FLOAT BlendFactor[4],
-    UINT *pSampleMask);
-void __RPC_STUB ID3D10Device_OMGetBlendState_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_OMGetDepthStencilState_Proxy(
-    ID3D10Device* This,
-    ID3D10DepthStencilState **ppDepthStencilState,
-    UINT *pStencilRef);
-void __RPC_STUB ID3D10Device_OMGetDepthStencilState_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_SOGetTargets_Proxy(
-    ID3D10Device* This,
-    UINT NumBuffers,
-    ID3D10Buffer **ppSOTargets,
-    UINT *pOffsets);
-void __RPC_STUB ID3D10Device_SOGetTargets_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_RSGetState_Proxy(
-    ID3D10Device* This,
-    ID3D10RasterizerState **ppRasterizerState);
-void __RPC_STUB ID3D10Device_RSGetState_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_RSGetViewports_Proxy(
-    ID3D10Device* This,
-    UINT *NumViewports,
-    D3D10_VIEWPORT *pViewports);
-void __RPC_STUB ID3D10Device_RSGetViewports_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_RSGetScissorRects_Proxy(
-    ID3D10Device* This,
-    UINT *NumRects,
-    D3D10_RECT *pRects);
-void __RPC_STUB ID3D10Device_RSGetScissorRects_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_GetDeviceRemovedReason_Proxy(
-    ID3D10Device* This);
-void __RPC_STUB ID3D10Device_GetDeviceRemovedReason_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_SetExceptionMode_Proxy(
-    ID3D10Device* This,
-    UINT RaiseFlags);
-void __RPC_STUB ID3D10Device_SetExceptionMode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-UINT STDMETHODCALLTYPE ID3D10Device_GetExceptionMode_Proxy(
-    ID3D10Device* This);
-void __RPC_STUB ID3D10Device_GetExceptionMode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_GetPrivateData_Proxy(
-    ID3D10Device* This,
-    REFGUID guid,
-    UINT *pDataSize,
-    void *pData);
-void __RPC_STUB ID3D10Device_GetPrivateData_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_SetPrivateData_Proxy(
-    ID3D10Device* This,
-    REFGUID guid,
-    UINT DataSize,
-    const void *pData);
-void __RPC_STUB ID3D10Device_SetPrivateData_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_SetPrivateDataInterface_Proxy(
-    ID3D10Device* This,
-    REFGUID guid,
-    const IUnknown *pData);
-void __RPC_STUB ID3D10Device_SetPrivateDataInterface_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_ClearState_Proxy(
-    ID3D10Device* This);
-void __RPC_STUB ID3D10Device_ClearState_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_Flush_Proxy(
-    ID3D10Device* This);
-void __RPC_STUB ID3D10Device_Flush_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateBuffer_Proxy(
-    ID3D10Device* This,
-    const D3D10_BUFFER_DESC *pDesc,
-    const D3D10_SUBRESOURCE_DATA *pInitialData,
-    ID3D10Buffer **ppBuffer);
-void __RPC_STUB ID3D10Device_CreateBuffer_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateTexture1D_Proxy(
-    ID3D10Device* This,
-    const D3D10_TEXTURE1D_DESC *pDesc,
-    const D3D10_SUBRESOURCE_DATA *pInitialData,
-    ID3D10Texture1D **ppTexture1D);
-void __RPC_STUB ID3D10Device_CreateTexture1D_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateTexture2D_Proxy(
-    ID3D10Device* This,
-    const D3D10_TEXTURE2D_DESC *pDesc,
-    const D3D10_SUBRESOURCE_DATA *pInitialData,
-    ID3D10Texture2D **ppTexture2D);
-void __RPC_STUB ID3D10Device_CreateTexture2D_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateTexture3D_Proxy(
-    ID3D10Device* This,
-    const D3D10_TEXTURE3D_DESC *pDesc,
-    const D3D10_SUBRESOURCE_DATA *pInitialData,
-    ID3D10Texture3D **ppTexture3D);
-void __RPC_STUB ID3D10Device_CreateTexture3D_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateShaderResourceView_Proxy(
-    ID3D10Device* This,
-    ID3D10Resource *pResource,
-    const D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc,
-    ID3D10ShaderResourceView **ppSRView);
-void __RPC_STUB ID3D10Device_CreateShaderResourceView_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateRenderTargetView_Proxy(
-    ID3D10Device* This,
-    ID3D10Resource *pResource,
-    const D3D10_RENDER_TARGET_VIEW_DESC *pDesc,
-    ID3D10RenderTargetView **ppRTView);
-void __RPC_STUB ID3D10Device_CreateRenderTargetView_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateDepthStencilView_Proxy(
-    ID3D10Device* This,
-    ID3D10Resource *pResource,
-    const D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc,
-    ID3D10DepthStencilView **ppDepthStencilView);
-void __RPC_STUB ID3D10Device_CreateDepthStencilView_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateInputLayout_Proxy(
-    ID3D10Device* This,
-    const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs,
-    UINT NumElements,
-    const void *pShaderBytecodeWithInputSignature,
-    SIZE_T BytecodeLength,
-    ID3D10InputLayout **ppInputLayout);
-void __RPC_STUB ID3D10Device_CreateInputLayout_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateVertexShader_Proxy(
-    ID3D10Device* This,
-    const void *pShaderBytecode,
-    SIZE_T BytecodeLength,
-    ID3D10VertexShader **ppVertexShader);
-void __RPC_STUB ID3D10Device_CreateVertexShader_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateGeometryShader_Proxy(
-    ID3D10Device* This,
-    const void *pShaderBytecode,
-    SIZE_T BytecodeLength,
-    ID3D10GeometryShader **ppGeometryShader);
-void __RPC_STUB ID3D10Device_CreateGeometryShader_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateGeometryShaderWithStreamOutput_Proxy(
-    ID3D10Device* This,
-    const void *pShaderBytecode,
-    SIZE_T BytecodeLength,
-    const D3D10_SO_DECLARATION_ENTRY *pSODeclaration,
-    UINT NumEntries,
-    UINT OutputStreamStride,
-    ID3D10GeometryShader **ppGeometryShader);
-void __RPC_STUB ID3D10Device_CreateGeometryShaderWithStreamOutput_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreatePixelShader_Proxy(
-    ID3D10Device* This,
-    const void *pShaderBytecode,
-    SIZE_T BytecodeLength,
-    ID3D10PixelShader **ppPixelShader);
-void __RPC_STUB ID3D10Device_CreatePixelShader_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateBlendState_Proxy(
-    ID3D10Device* This,
-    const D3D10_BLEND_DESC *pBlendStateDesc,
-    ID3D10BlendState **ppBlendState);
-void __RPC_STUB ID3D10Device_CreateBlendState_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateDepthStencilState_Proxy(
-    ID3D10Device* This,
-    const D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc,
-    ID3D10DepthStencilState **ppDepthStencilState);
-void __RPC_STUB ID3D10Device_CreateDepthStencilState_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateRasterizerState_Proxy(
-    ID3D10Device* This,
-    const D3D10_RASTERIZER_DESC *pRasterizerDesc,
-    ID3D10RasterizerState **ppRasterizerState);
-void __RPC_STUB ID3D10Device_CreateRasterizerState_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateSamplerState_Proxy(
-    ID3D10Device* This,
-    const D3D10_SAMPLER_DESC *pSamplerDesc,
-    ID3D10SamplerState **ppSamplerState);
-void __RPC_STUB ID3D10Device_CreateSamplerState_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateQuery_Proxy(
-    ID3D10Device* This,
-    const D3D10_QUERY_DESC *pQueryDesc,
-    ID3D10Query **ppQuery);
-void __RPC_STUB ID3D10Device_CreateQuery_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreatePredicate_Proxy(
-    ID3D10Device* This,
-    const D3D10_QUERY_DESC *pPredicateDesc,
-    ID3D10Predicate **ppPredicate);
-void __RPC_STUB ID3D10Device_CreatePredicate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateCounter_Proxy(
-    ID3D10Device* This,
-    const D3D10_COUNTER_DESC *pCounterDesc,
-    ID3D10Counter **ppCounter);
-void __RPC_STUB ID3D10Device_CreateCounter_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CheckFormatSupport_Proxy(
-    ID3D10Device* This,
-    DXGI_FORMAT Format,
-    UINT *pFormatSupport);
-void __RPC_STUB ID3D10Device_CheckFormatSupport_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CheckMultisampleQualityLevels_Proxy(
-    ID3D10Device* This,
-    DXGI_FORMAT Format,
-    UINT SampleCount,
-    UINT *pNumQualityLevels);
-void __RPC_STUB ID3D10Device_CheckMultisampleQualityLevels_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_CheckCounterInfo_Proxy(
-    ID3D10Device* This,
-    D3D10_COUNTER_INFO *pCounterInfo);
-void __RPC_STUB ID3D10Device_CheckCounterInfo_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CheckCounter_Proxy(
-    ID3D10Device* This,
-    const D3D10_COUNTER_DESC *pDesc,
-    D3D10_COUNTER_TYPE *pType,
-    UINT *pActiveCounters,
-    LPSTR szName,
-    UINT *pNameLength,
-    LPSTR szUnits,
-    UINT *pUnitsLength,
-    LPSTR szDescription,
-    UINT *pDescriptionLength);
-void __RPC_STUB ID3D10Device_CheckCounter_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-UINT STDMETHODCALLTYPE ID3D10Device_GetCreationFlags_Proxy(
-    ID3D10Device* This);
-void __RPC_STUB ID3D10Device_GetCreationFlags_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_OpenSharedResource_Proxy(
-    ID3D10Device* This,
-    HANDLE hResource,
-    REFIID ReturnedInterface,
-    void **ppResource);
-void __RPC_STUB ID3D10Device_OpenSharedResource_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_SetTextFilterSize_Proxy(
-    ID3D10Device* This,
-    UINT Width,
-    UINT Height);
-void __RPC_STUB ID3D10Device_SetTextFilterSize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_GetTextFilterSize_Proxy(
-    ID3D10Device* This,
-    UINT *pWidth,
-    UINT *pHeight);
-void __RPC_STUB ID3D10Device_GetTextFilterSize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10Device_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10Multithread interface
- */
-#ifndef __ID3D10Multithread_INTERFACE_DEFINED__
-#define __ID3D10Multithread_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10Multithread, 0x9b7e4e00, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10Multithread : public IUnknown
-{
-    virtual void STDMETHODCALLTYPE Enter(
-        ) = 0;
-
-    virtual void STDMETHODCALLTYPE Leave(
-        ) = 0;
-
-    virtual BOOL STDMETHODCALLTYPE SetMultithreadProtected(
-        BOOL bMTProtect) = 0;
-
-    virtual BOOL STDMETHODCALLTYPE GetMultithreadProtected(
-        ) = 0;
-
-};
-#else
-typedef struct ID3D10MultithreadVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10Multithread* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10Multithread* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10Multithread* This);
-
-    /*** ID3D10Multithread methods ***/
-    void (STDMETHODCALLTYPE *Enter)(
-        ID3D10Multithread* This);
-
-    void (STDMETHODCALLTYPE *Leave)(
-        ID3D10Multithread* This);
-
-    BOOL (STDMETHODCALLTYPE *SetMultithreadProtected)(
-        ID3D10Multithread* This,
-        BOOL bMTProtect);
-
-    BOOL (STDMETHODCALLTYPE *GetMultithreadProtected)(
-        ID3D10Multithread* This);
-
-    END_INTERFACE
-} ID3D10MultithreadVtbl;
-interface ID3D10Multithread {
-    CONST_VTBL ID3D10MultithreadVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10Multithread_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10Multithread_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10Multithread_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10Multithread methods ***/
-#define ID3D10Multithread_Enter(This) (This)->lpVtbl->Enter(This)
-#define ID3D10Multithread_Leave(This) (This)->lpVtbl->Leave(This)
-#define ID3D10Multithread_SetMultithreadProtected(This,bMTProtect) (This)->lpVtbl->SetMultithreadProtected(This,bMTProtect)
-#define ID3D10Multithread_GetMultithreadProtected(This) (This)->lpVtbl->GetMultithreadProtected(This)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10Multithread_Enter_Proxy(
-    ID3D10Multithread* This);
-void __RPC_STUB ID3D10Multithread_Enter_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Multithread_Leave_Proxy(
-    ID3D10Multithread* This);
-void __RPC_STUB ID3D10Multithread_Leave_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-BOOL STDMETHODCALLTYPE ID3D10Multithread_SetMultithreadProtected_Proxy(
-    ID3D10Multithread* This,
-    BOOL bMTProtect);
-void __RPC_STUB ID3D10Multithread_SetMultithreadProtected_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-BOOL STDMETHODCALLTYPE ID3D10Multithread_GetMultithreadProtected_Proxy(
-    ID3D10Multithread* This);
-void __RPC_STUB ID3D10Multithread_GetMultithreadProtected_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10Multithread_INTERFACE_DEFINED__ */
-
-#include "d3d10misc.h"
-#include "d3d10shader.h"
-#include "d3d10effect.h"
-/* Begin additional prototypes for all interfaces */
-
-
-/* End additional prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __WIDL_D3D10_H */
diff --git a/misc/builddeps/win32/dx/include/d3d10.idl b/misc/builddeps/win32/dx/include/d3d10.idl
deleted file mode 100644 (file)
index 6205917..0000000
+++ /dev/null
@@ -1,1539 +0,0 @@
-/*
- * Copyright 2007 Andras Kovacs
- *
- * 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 "oaidl.idl";
-import "ocidl.idl";
-import "dxgi.idl";
-
-cpp_quote("#ifndef _D3D10_CONSTANTS")
-cpp_quote("#define _D3D10_CONSTANTS")
-const float D3D10_DEFAULT_BLEND_FACTOR_ALPHA                                            = 1.0;
-const float D3D10_DEFAULT_BLEND_FACTOR_BLUE                                             = 1.0;
-const float D3D10_DEFAULT_BLEND_FACTOR_GREEN                                            = 1.0;
-const float D3D10_DEFAULT_BLEND_FACTOR_RED                                              = 1.0;
-const float D3D10_DEFAULT_BORDER_COLOR_COMPONENT                                        = 0.0;
-const float D3D10_DEFAULT_SLOPE_SCALED_DEPTH_BIAS                                       = 0.0;
-const float D3D10_DEFAULT_DEPTH_BIAS_CLAMP                                              = 0.0;
-const float D3D10_DEFAULT_MAX_ANISOTROPY                                                = 16.0;
-const float D3D10_DEFAULT_MIP_LOD_BIAS                                                  = 0.0;
-const float D3D10_DEFAULT_VIEWPORT_MAX_DEPTH                                            = 0.0;
-const float D3D10_DEFAULT_VIEWPORT_MIN_DEPTH                                            = 0.0;
-const float D3D10_FLOAT16_FUSED_TOLERANCE_IN_ULP                                        = 0.6;
-const float D3D10_FLOAT32_MAX                                                           = 3.402823466e+38;
-const float D3D10_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP                                   = 0.6;
-const float D3D10_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR                                    = 2.4;
-const float D3D10_FLOAT_TO_SRGB_EXPONENT_NUMERATOR                                      = 1.0;
-const float D3D10_FLOAT_TO_SRGB_OFFSET                                                  = 0.055;
-const float D3D10_FLOAT_TO_SRGB_SCALE_1                                                 = 12.92;
-const float D3D10_FLOAT_TO_SRGB_SCALE_2                                                 = 1.055;
-const float D3D10_FLOAT_TO_SRGB_THRESHOLD                                               = 0.0031308;
-const float D3D10_FTOI_INSTRUCTION_MAX_INPUT                                            = 2147483647.999;
-const float D3D10_FTOI_INSTRUCTION_MIN_INPUT                                            = -2147483648.999;
-const float D3D10_FTOU_INSTRUCTION_MAX_INPUT                                            = 4294967295.999;
-const float D3D10_FTOU_INSTRUCTION_MIN_INPUT                                            = 0.0;
-const float D3D10_LINEAR_GAMMA                                                          = 1.0;
-const float D3D10_MAX_BORDER_COLOR_COMPONENT                                            = 1.0;
-const float D3D10_MAX_DEPTH                                                             = 1.0;
-const float D3D10_MAX_POSITION_VALUE                                                    = 3.402823466e+34;
-const float D3D10_MIN_BORDER_COLOR_COMPONENT                                            = 0.0;
-const float D3D10_MIN_DEPTH                                                             = 0.0;
-const float D3D10_MIP_LOD_BIAS_MAX                                                      = 15.99;
-const float D3D10_MIP_LOD_BIAS_MIN                                                      = -16.0;
-const float D3D10_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT                                  = 0.5;
-const float D3D10_MULTISAMPLE_ANTIALIAS_LINE_WIDTH                                      = 1.4;
-const float D3D10_SRGB_GAMMA                                                            = 2.2;
-const float D3D10_SRGB_TO_FLOAT_DENOMINATOR_1                                           = 12.92;
-const float D3D10_SRGB_TO_FLOAT_DENOMINATOR_2                                           = 1.055;
-const float D3D10_SRGB_TO_FLOAT_EXPONENT                                                = 2.4;
-const float D3D10_SRGB_TO_FLOAT_OFFSET                                                  = 0.055;
-const float D3D10_SRGB_TO_FLOAT_THRESHOLD                                               = 0.04045;
-const float D3D10_SRGB_TO_FLOAT_TOLERANCE_IN_ULP                                        = 0.5;
-const float D3D10_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT                           = 0.0;
-const float D3D_SPEC_VERSION                                                            = 1.050005;
-const unsigned int D3D10_16BIT_INDEX_STRIP_CUT_VALUE                                    = 0xffff;
-const unsigned int D3D10_32BIT_INDEX_STRIP_CUT_VALUE                                    = 0xffffffff;
-const unsigned int D3D10_8BIT_INDEX_STRIP_CUT_VALUE                                     = 0xff;
-const unsigned int D3D10_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT                             = 9;
-const unsigned int D3D10_CLIP_OR_CULL_DISTANCE_COUNT                                    = 8;
-const unsigned int D3D10_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT                            = 2;
-const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT                    = 14;
-const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS                        = 4;
-const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT               = 32;
-const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT                     = 15;
-const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS               = 4;
-const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT                    = 15;
-const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST           = 1;
-const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS               = 1;
-const unsigned int D3D10_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT                         = 64;
-const unsigned int D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS     = 4;
-const unsigned int D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT          = 1;
-const unsigned int D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1;
-const unsigned int D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS     = 1;
-const unsigned int D3D10_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT               = 32;
-const unsigned int D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS                = 1;
-const unsigned int D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT                     = 128;
-const unsigned int D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST            = 1;
-const unsigned int D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS                = 1;
-const unsigned int D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT                         = 128;
-const unsigned int D3D10_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS                       = 1;
-const unsigned int D3D10_COMMONSHADER_SAMPLER_REGISTER_COUNT                            = 16;
-const unsigned int D3D10_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST                   = 1;
-const unsigned int D3D10_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS                       = 1;
-const unsigned int D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT                                = 16;
-const unsigned int D3D10_COMMONSHADER_SUBROUTINE_NESTING_LIMIT                          = 32;
-const unsigned int D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENTS                          = 4;
-const unsigned int D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT                 = 32;
-const unsigned int D3D10_COMMONSHADER_TEMP_REGISTER_COUNT                               = 4096;
-const unsigned int D3D10_COMMONSHADER_TEMP_REGISTER_READS_PER_INST                      = 3;
-const unsigned int D3D10_COMMONSHADER_TEMP_REGISTER_READ_PORTS                          = 3;
-const unsigned int D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX                      = 10;
-const int D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN                               = -10;
-const int D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE                                  = -8;
-const unsigned int D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE                         = 7;
-const unsigned int D3D10_DEFAULT_DEPTH_BIAS                                             = 0;
-const unsigned int D3D10_DEFAULT_RENDER_TARGET_ARRAY_INDEX                              = 0;
-const unsigned int D3D10_DEFAULT_SAMPLE_MASK                                            = 0xffffffff;
-const unsigned int D3D10_DEFAULT_SCISSOR_ENDX                                           = 0;
-const unsigned int D3D10_DEFAULT_SCISSOR_ENDY                                           = 0;
-const unsigned int D3D10_DEFAULT_SCISSOR_STARTX                                         = 0;
-const unsigned int D3D10_DEFAULT_SCISSOR_STARTY                                         = 0;
-const unsigned int D3D10_DEFAULT_STENCIL_READ_MASK                                      = 0xff;
-const unsigned int D3D10_DEFAULT_STENCIL_REFERENCE                                      = 0;
-const unsigned int D3D10_DEFAULT_STENCIL_WRITE_MASK                                     = 0xff;
-const unsigned int D3D10_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX                         = 0;
-const unsigned int D3D10_DEFAULT_VIEWPORT_HEIGHT                                        = 0;
-const unsigned int D3D10_DEFAULT_VIEWPORT_TOPLEFTX                                      = 0;
-const unsigned int D3D10_DEFAULT_VIEWPORT_TOPLEFTY                                      = 0;
-const unsigned int D3D10_DEFAULT_VIEWPORT_WIDTH                                         = 0;
-const unsigned int D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS                        = 1;
-const unsigned int D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT               = 32;
-const unsigned int D3D10_GS_INPUT_PRIM_CONST_REGISTER_COUNT                             = 1;
-const unsigned int D3D10_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST                    = 2;
-const unsigned int D3D10_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS                        = 1;
-const unsigned int D3D10_GS_INPUT_REGISTER_COMPONENTS                                   = 4;
-const unsigned int D3D10_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT                          =32;
-const unsigned int D3D10_GS_INPUT_REGISTER_COUNT                                        = 16;
-const unsigned int D3D10_GS_INPUT_REGISTER_READS_PER_INST                               = 2;
-const unsigned int D3D10_GS_INPUT_REGISTER_READ_PORTS                                   = 1;
-const unsigned int D3D10_GS_INPUT_REGISTER_VERTICES                                     = 6;
-const unsigned int D3D10_GS_OUTPUT_ELEMENTS                                             = 32;
-const unsigned int D3D10_GS_OUTPUT_REGISTER_COMPONENTS                                  = 4;
-const unsigned int D3D10_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT                         = 32;
-const unsigned int D3D10_GS_OUTPUT_REGISTER_COUNT                                       = 32;
-const unsigned int D3D10_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES                        = 0;
-const unsigned int D3D10_IA_DEFAULT_PRIMITIVE_TOPOLOGY                                  = 0;
-const unsigned int D3D10_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES                       = 0;
-const unsigned int D3D10_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT                             = 1;
-const unsigned int D3D10_IA_INSTANCE_ID_BIT_COUNT                                       = 32;
-const unsigned int D3D10_IA_INTEGER_ARITHMETIC_BIT_COUNT                                = 32;
-const unsigned int D3D10_IA_PRIMITIVE_ID_BIT_COUNT                                      = 32;
-const unsigned int D3D10_IA_VERTEX_ID_BIT_COUNT                                         = 32;
-const unsigned int D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT                            = 16;
-const unsigned int D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS                  = 64;
-const unsigned int D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT                        = 16;
-const unsigned int D3D10_INTEGER_DIVIDE_BY_ZERO_QUOTIENT                                = 0xffffffff;
-const unsigned int D3D10_INTEGER_DIVIDE_BY_ZERO_REMAINDER                               = 0xffffffff;
-const unsigned int D3D10_MAX_MAXANISOTROPY                                              = 16;
-const unsigned int D3D10_MAX_MULTISAMPLE_SAMPLE_COUNT                                   = 32;
-const unsigned int D3D10_MAX_TEXTURE_DIMENSION_2_TO_EXP                                 = 17;
-const unsigned int D3D10_MIN_MAXANISOTROPY                                              = 0;
-const unsigned int D3D10_MIP_LOD_FRACTIONAL_BIT_COUNT                                   = 6;
-const unsigned int D3D10_MIP_LOD_RANGE_BIT_COUNT                                        = 8;
-const unsigned int D3D10_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT                     = 0;
-const unsigned int D3D10_PIXEL_ADDRESS_RANGE_BIT_COUNT                                  = 13;
-const unsigned int D3D10_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT                      = 15;
-const unsigned int D3D10_PS_FRONTFACING_DEFAULT_VALUE                                   = 0xffffffff;
-const unsigned int D3D10_PS_FRONTFACING_FALSE_VALUE                                     = 0;
-const unsigned int D3D10_PS_FRONTFACING_TRUE_VALUE                                      = 0xffffffff;
-const unsigned int D3D10_PS_INPUT_REGISTER_COMPONENTS                                   = 4;
-const unsigned int D3D10_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT                          = 32;
-const unsigned int D3D10_PS_INPUT_REGISTER_COUNT                                        = 32;
-const unsigned int D3D10_PS_INPUT_REGISTER_READS_PER_INST                               = 2;
-const unsigned int D3D10_PS_INPUT_REGISTER_READ_PORTS                                   = 1;
-const unsigned int D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS                            = 1;
-const unsigned int D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT                   = 32;
-const unsigned int D3D10_PS_OUTPUT_DEPTH_REGISTER_COUNT                                 = 1;
-const unsigned int D3D10_PS_OUTPUT_REGISTER_COMPONENTS                                  = 4;
-const unsigned int D3D10_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT                         = 32;
-const unsigned int D3D10_PS_OUTPUT_REGISTER_COUNT                                       = 8;
-const unsigned int D3D10_REQ_BLEND_OBJECT_COUNT_PER_CONTEXT                             = 4096;
-const unsigned int D3D10_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP                       = 27;
-const unsigned int D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT                              = 4096;
-const unsigned int D3D10_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_CONTEXT                     = 4096;
-const unsigned int D3D10_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP                           = 32;
-const unsigned int D3D10_REQ_DRAW_VERTEX_COUNT_2_TO_EXP                                 = 32;
-const unsigned int D3D10_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION                = 8192;
-const unsigned int D3D10_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT                 = 1024;
-const unsigned int D3D10_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT                    = 4096;
-const unsigned int D3D10_REQ_MAXANISOTROPY                                              = 16;
-const unsigned int D3D10_REQ_MIP_LEVELS                                                 = 14;
-const unsigned int D3D10_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES                      = 2048;
-const unsigned int D3D10_REQ_RASTERIZER_OBJECT_COUNT_PER_CONTEXT                        = 4096;
-const unsigned int D3D10_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH                              = 8192;
-const unsigned int D3D10_REQ_RESOURCE_SIZE_IN_MEGABYTES                                 = 128;
-const unsigned int D3D10_REQ_RESOURCE_VIEW_COUNT_PER_CONTEXT_2_TO_EXP                   = 20;
-const unsigned int D3D10_REQ_SAMPLER_OBJECT_COUNT_PER_CONTEXT                           = 4096;
-const unsigned int D3D10_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION                             = 512;
-const unsigned int D3D10_REQ_TEXTURE1D_U_DIMENSION                                      = 8192;
-const unsigned int D3D10_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION                             = 512;
-const unsigned int D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION                                 = 8192;
-const unsigned int D3D10_REQ_TEXTURE3D_U_V_OR_W_DIMENSION                               = 2048;
-const unsigned int D3D10_REQ_TEXTURECUBE_DIMENSION                                      = 8192;
-const unsigned int D3D10_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL                   = 0;
-const unsigned int D3D10_SHADER_MAJOR_VERSION                                           = 4;
-const unsigned int D3D10_SHADER_MINOR_VERSION                                           = 0;
-const unsigned int D3D10_SHIFT_INSTRUCTION_PAD_VALUE                                    = 0;
-const unsigned int D3D10_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT                        = 5;
-const unsigned int D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT                               = 8;
-const unsigned int D3D10_SO_BUFFER_MAX_STRIDE_IN_BYTES                                  = 2048;
-const unsigned int D3D10_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES                            = 256;
-const unsigned int D3D10_SO_BUFFER_SLOT_COUNT                                           = 4;
-const unsigned int D3D10_SO_DDI_REGISTER_INDEX_DENOTING_GAP                             = 0xffffffff;
-const unsigned int D3D10_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER                         = 1;
-const unsigned int D3D10_SO_SINGLE_BUFFER_COMPONENT_LIMIT                               = 64;
-const unsigned int D3D10_STANDARD_COMPONENT_BIT_COUNT                                   = 32;
-const unsigned int D3D10_STANDARD_COMPONENT_BIT_COUNT_DOUBLED                           = 64;
-const unsigned int D3D10_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE               = 4;
-const unsigned int D3D10_STANDARD_PIXEL_COMPONENT_COUNT                                 = 128;
-const unsigned int D3D10_STANDARD_PIXEL_ELEMENT_COUNT                                   = 32;
-const unsigned int D3D10_STANDARD_VECTOR_SIZE                                           = 4;
-const unsigned int D3D10_STANDARD_VERTEX_ELEMENT_COUNT                                  = 16;
-const unsigned int D3D10_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT                          = 64;
-const unsigned int D3D10_SUBPIXEL_FRACTIONAL_BIT_COUNT                                  = 8;
-const unsigned int D3D10_SUBTEXEL_FRACTIONAL_BIT_COUNT                                  = 6;
-const unsigned int D3D10_TEXEL_ADDRESS_RANGE_BIT_COUNT                                  = 18;
-const unsigned int D3D10_UNBOUND_MEMORY_ACCESS_RESULT                                   = 0;
-const unsigned int D3D10_VIEWPORT_AND_SCISSORRECT_MAX_INDEX                             = 15;
-const unsigned int D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE             = 16;
-const unsigned int D3D10_VIEWPORT_BOUNDS_MAX                                            = 16383;
-const int D3D10_VIEWPORT_BOUNDS_MIN                                                     = -16384;
-const unsigned int D3D10_VS_INPUT_REGISTER_COMPONENTS                                   = 4;
-const unsigned int D3D10_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT                          = 32;
-const unsigned int D3D10_VS_INPUT_REGISTER_COUNT                                        = 16;
-const unsigned int D3D10_VS_INPUT_REGISTER_READS_PER_INST                               = 2;
-const unsigned int D3D10_VS_INPUT_REGISTER_READ_PORTS                                   = 1;
-const unsigned int D3D10_VS_OUTPUT_REGISTER_COMPONENTS                                  = 4;
-const unsigned int D3D10_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT                         = 32;
-const unsigned int D3D10_VS_OUTPUT_REGISTER_COUNT                                       = 16;
-const unsigned int D3D10_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT                          = 10;
-const unsigned int D3D10_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP                          = 25;
-const unsigned int D3D10_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP                                = 25;
-const unsigned int D3D_MAJOR_VERSION                                                    = 10;
-const unsigned int D3D_MINOR_VERSION                                                    = 0;
-const unsigned int D3D_SPEC_DATE_DAY                                                    = 8;
-const unsigned int D3D_SPEC_DATE_MONTH                                                  = 8;
-const unsigned int D3D_SPEC_DATE_YEAR                                                   = 2006;
-cpp_quote("#endif")
-
-const unsigned int D3D10_APPEND_ALIGNED_ELEMENT                                         = 0xffffffff;
-const unsigned int _FACD3D10                                                            = 0x87;
-const unsigned int _FACD3D10DEBUG                                                       = _FACD3D10 + 1;
-const unsigned int D3D10_FILTER_TYPE_MASK                                               = 0x3;
-const unsigned int D3D10_SDK_VERSION                                                    = 29;
-
-cpp_quote("#define MAKE_D3D10_HRESULT(code)                   MAKE_HRESULT( 1, _FACD3D10, code)")
-cpp_quote("#define MAKE_D3D10_STATUS(code)                    MAKE_HRESULT( 0, _FACD3D10, code)")
-cpp_quote("#define D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS  MAKE_D3D10_HRESULT(1)")
-cpp_quote("#define D3D10_ERROR_FILE_NOT_FOUND                 MAKE_D3D10_HRESULT(2)")
-
-typedef enum D3D10_BLEND {
-    D3D10_BLEND_ZERO             = 1,
-    D3D10_BLEND_ONE              = 2,
-    D3D10_BLEND_SRC_COLOR        = 3,
-    D3D10_BLEND_INV_SRC_COLOR    = 4,
-    D3D10_BLEND_SRC_ALPHA        = 5,
-    D3D10_BLEND_INV_SRC_ALPHA    = 6,
-    D3D10_BLEND_DEST_ALPHA       = 7,
-    D3D10_BLEND_INV_DEST_ALPHA   = 8,
-    D3D10_BLEND_DEST_COLOR       = 9,
-    D3D10_BLEND_INV_DEST_COLOR   = 10,
-    D3D10_BLEND_SRC_ALPHA_SAT    = 11,
-    D3D10_BLEND_BLEND_FACTOR     = 14,
-    D3D10_BLEND_INV_BLEND_FACTOR = 15,
-    D3D10_BLEND_SRC1_COLOR       = 16,
-    D3D10_BLEND_INV_SRC1_COLOR   = 17,
-    D3D10_BLEND_SRC1_ALPHA       = 18,
-    D3D10_BLEND_INV_SRC1_ALPHA   = 19
-} D3D10_BLEND;
-
-typedef enum D3D10_BLEND_OP {
-    D3D10_BLEND_OP_ADD = 1,
-    D3D10_BLEND_OP_SUBTRACT,
-    D3D10_BLEND_OP_REV_SUBTRACT,
-    D3D10_BLEND_OP_MIN,
-    D3D10_BLEND_OP_MAX,
-} D3D10_BLEND_OP;
-
-typedef struct D3D10_BLEND_DESC {
-    BOOL AlphaToCoverageEnable;
-    BOOL BlendEnable[8];
-    D3D10_BLEND SrcBlend;
-    D3D10_BLEND DestBlend;
-    D3D10_BLEND_OP BlendOp;
-    D3D10_BLEND SrcBlendAlpha;
-    D3D10_BLEND DestBlendAlpha;
-    D3D10_BLEND_OP BlendOpAlpha;
-    UINT8 RenderTargetWriteMask[8];
-} D3D10_BLEND_DESC;
-
-typedef enum D3D10_DEPTH_WRITE_MASK {
-    D3D10_DEPTH_WRITE_MASK_ZERO,
-    D3D10_DEPTH_WRITE_MASK_ALL,
-} D3D10_DEPTH_WRITE_MASK;
-
-typedef enum D3D10_COMPARISON_FUNC {
-    D3D10_COMPARISON_NEVER = 1,
-    D3D10_COMPARISON_LESS,
-    D3D10_COMPARISON_EQUAL,
-    D3D10_COMPARISON_LESS_EQUAL,
-    D3D10_COMPARISON_GREATER,
-    D3D10_COMPARISON_NOT_EQUAL,
-    D3D10_COMPARISON_GREATER_EQUAL,
-    D3D10_COMPARISON_ALWAYS,
-} D3D10_COMPARISON_FUNC;
-
-typedef enum D3D10_STENCIL_OP {
-    D3D10_STENCIL_OP_KEEP = 1,
-    D3D10_STENCIL_OP_ZERO,
-    D3D10_STENCIL_OP_REPLACE,
-    D3D10_STENCIL_OP_INCR_SAT,
-    D3D10_STENCIL_OP_DECR_SAT,
-    D3D10_STENCIL_OP_INVERT,
-    D3D10_STENCIL_OP_INCR,
-    D3D10_STENCIL_OP_DECR,
-} D3D10_STENCIL_OP;
-
-typedef struct D3D10_DEPTH_STENCILOP_DESC {
-    D3D10_STENCIL_OP StencilFailOp;
-    D3D10_STENCIL_OP StencilDepthFailOp;
-    D3D10_STENCIL_OP StencilPassOp;
-    D3D10_COMPARISON_FUNC StencilFunc;
-} D3D10_DEPTH_STENCILOP_DESC;
-
-typedef struct D3D10_DEPTH_STENCIL_DESC {
-    BOOL DepthEnable;
-    D3D10_DEPTH_WRITE_MASK DepthWriteMask;
-    D3D10_COMPARISON_FUNC DepthFunc;
-    BOOL StencilEnable;
-    UINT8 StencilReadMask;
-    UINT8 StencilWriteMask;
-    D3D10_DEPTH_STENCILOP_DESC FrontFace;
-    D3D10_DEPTH_STENCILOP_DESC BackFace;
-} D3D10_DEPTH_STENCIL_DESC;
-
-typedef enum D3D10_FILL_MODE {
-    D3D10_FILL_WIREFRAME = 2,
-    D3D10_FILL_SOLID,
-} D3D10_FILL_MODE;
-
-typedef enum D3D10_CULL_MODE {
-    D3D10_CULL_NONE = 1,
-    D3D10_CULL_FRONT,
-    D3D10_CULL_BACK,
-} D3D10_CULL_MODE;
-
-typedef struct D3D10_RASTERIZER_DESC {
-    D3D10_FILL_MODE FillMode;
-    D3D10_CULL_MODE CullMode;
-    BOOL FrontCounterClockwise;
-    INT DepthBias;
-    FLOAT DepthBiasClamp;
-    FLOAT SlopeScaledDepthBias;
-    BOOL DepthClipEnable;
-    BOOL ScissorEnable;
-    BOOL MultisampleEnable;
-    BOOL AntialiasedLineEnable;
-} D3D10_RASTERIZER_DESC;
-
-typedef enum D3D10_FILTER {
-    D3D10_FILTER_MIN_MAG_MIP_POINT                          = 0,
-    D3D10_FILTER_MIN_MAG_POINT_MIP_LINEAR                   = 0x1,
-    D3D10_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT             = 0x4,
-    D3D10_FILTER_MIN_POINT_MAG_MIP_LINEAR                   = 0x5,
-    D3D10_FILTER_MIN_LINEAR_MAG_MIP_POINT                   = 0x10,
-    D3D10_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR            = 0x11,
-    D3D10_FILTER_MIN_MAG_LINEAR_MIP_POINT                   = 0x14,
-    D3D10_FILTER_MIN_MAG_MIP_LINEAR                         = 0x15,
-    D3D10_FILTER_ANISOTROPIC                                = 0x55,
-    D3D10_FILTER_COMPARISON_MIN_MAG_MIP_POINT               = 0x80,
-    D3D10_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR        = 0x81,
-    D3D10_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT  = 0x84,
-    D3D10_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR        = 0x85,
-    D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT        = 0x90,
-    D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
-    D3D10_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT        = 0x94,
-    D3D10_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR              = 0x95,
-    D3D10_FILTER_COMPARISON_ANISOTROPIC                     = 0xd5,
-    D3D10_FILTER_TEXT_1BIT                                  = 0x80000000
-} D3D10_FILTER;
-
-typedef enum D3D10_TEXTURE_ADDRESS_MODE {
-    D3D10_TEXTURE_ADDRESS_WRAP = 1,
-    D3D10_TEXTURE_ADDRESS_MIRROR,
-    D3D10_TEXTURE_ADDRESS_CLAMP,
-    D3D10_TEXTURE_ADDRESS_BORDER,
-    D3D10_TEXTURE_ADDRESS_MIRROR_ONCE,
-} D3D10_TEXTURE_ADDRESS_MODE;
-
-typedef struct D3D10_SAMPLER_DESC {
-    D3D10_FILTER Filter;
-    D3D10_TEXTURE_ADDRESS_MODE AddressU;
-    D3D10_TEXTURE_ADDRESS_MODE AddressV;
-    D3D10_TEXTURE_ADDRESS_MODE AddressW;
-    FLOAT MipLODBias;
-    UINT MaxAnisotropy;
-    D3D10_COMPARISON_FUNC ComparisonFunc;
-    FLOAT BorderColor[4];
-    FLOAT MinLOD;
-    FLOAT MaxLOD;
-} D3D10_SAMPLER_DESC;
-
-typedef enum D3D10_COUNTER {
-    D3D10_COUNTER_GPU_IDLE,
-    D3D10_COUNTER_VERTEX_PROCESSING,
-    D3D10_COUNTER_GEOMETRY_PROCESSING,
-    D3D10_COUNTER_PIXEL_PROCESSING,
-    D3D10_COUNTER_OTHER_GPU_PROCESSING,
-    D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION,
-    D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION,
-    D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION,
-    D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION,
-    D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION,
-    D3D10_COUNTER_VS_MEMORY_LIMITED,
-    D3D10_COUNTER_VS_COMPUTATION_LIMITED,
-    D3D10_COUNTER_GS_MEMORY_LIMITED,
-    D3D10_COUNTER_GS_COMPUTATION_LIMITED,
-    D3D10_COUNTER_PS_MEMORY_LIMITED,
-    D3D10_COUNTER_PS_COMPUTATION_LIMITED,
-    D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE,
-    D3D10_COUNTER_TEXTURE_CACHE_HIT_RATE,
-    D3D10_COUNTER_DEVICE_DEPENDENT_0 = 0x40000000
-} D3D10_COUNTER;
-
-typedef struct D3D10_COUNTER_DESC {
-    D3D10_COUNTER Counter;
-    UINT MiscFlags;
-} D3D10_COUNTER_DESC;
-
-typedef enum D3D10_COUNTER_TYPE {
-    D3D10_COUNTER_TYPE_FLOAT32,
-    D3D10_COUNTER_TYPE_UINT16,
-    D3D10_COUNTER_TYPE_UINT32,
-    D3D10_COUNTER_TYPE_UINT64,
-} D3D10_COUNTER_TYPE;
-
-typedef struct D3D10_COUNTER_INFO {
-    D3D10_COUNTER LastDeviceDependentCounter;
-    UINT NumSimultaneousCounters;
-    UINT8 NumDetectableParallelUnits;
-} D3D10_COUNTER_INFO;
-
-typedef enum D3D10_RESOURCE_DIMENSION {
-    D3D10_RESOURCE_DIMENSION_UNKNOWN,
-    D3D10_RESOURCE_DIMENSION_BUFFER,
-    D3D10_RESOURCE_DIMENSION_TEXTURE1D,
-    D3D10_RESOURCE_DIMENSION_TEXTURE2D,
-    D3D10_RESOURCE_DIMENSION_TEXTURE3D,
-} D3D10_RESOURCE_DIMENSION;
-
-typedef enum D3D10_USAGE {
-    D3D10_USAGE_DEFAULT,
-    D3D10_USAGE_IMMUTABLE,
-    D3D10_USAGE_DYNAMIC,
-    D3D10_USAGE_STAGING,
-} D3D10_USAGE;
-
-typedef struct D3D10_BUFFER_DESC {
-    UINT ByteWidth;
-    D3D10_USAGE Usage;
-    UINT BindFlags;
-    UINT CPUAccessFlags;
-    UINT MiscFlags;
-} D3D10_BUFFER_DESC;
-
-typedef enum D3D10_MAP {
-    D3D10_MAP_READ = 1,
-    D3D10_MAP_WRITE,
-    D3D10_MAP_READ_WRITE,
-    D3D10_MAP_WRITE_DISCARD,
-    D3D10_MAP_WRITE_NO_OVERWRITE,
-} D3D10_MAP;
-
-typedef struct D3D10_TEXTURE1D_DESC {
-    UINT Width;
-    UINT MipLevels;
-    UINT ArraySize;
-    DXGI_FORMAT Format;
-    D3D10_USAGE Usage;
-    UINT BindFlags;
-    UINT CPUAccessFlags;
-    UINT MiscFlags;
-} D3D10_TEXTURE1D_DESC;
-
-typedef struct D3D10_TEXTURE2D_DESC {
-    UINT Width;
-    UINT Height;
-    UINT MipLevels;
-    UINT ArraySize;
-    DXGI_FORMAT Format;
-    DXGI_SAMPLE_DESC SampleDesc;
-    D3D10_USAGE Usage;
-    UINT BindFlags;
-    UINT CPUAccessFlags;
-    UINT MiscFlags;
-} D3D10_TEXTURE2D_DESC;
-
-typedef struct D3D10_TEXTURE3D_DESC {
-    UINT Width;
-    UINT Height;
-    UINT Depth;
-    UINT MipLevels;
-    DXGI_FORMAT Format;
-    D3D10_USAGE Usage;
-    UINT BindFlags;
-    UINT CPUAccessFlags;
-    UINT MiscFlags;
-} D3D10_TEXTURE3D_DESC;
-
-typedef enum D3D10_DSV_DIMENSION
-{
-    D3D10_DSV_DIMENSION_UNKNOWN,
-    D3D10_DSV_DIMENSION_TEXTURE1D,
-    D3D10_DSV_DIMENSION_TEXTURE1DARRAY,
-    D3D10_DSV_DIMENSION_TEXTURE2D,
-    D3D10_DSV_DIMENSION_TEXTURE2DARRAY,
-    D3D10_DSV_DIMENSION_TEXTURE2DMS,
-    D3D10_DSV_DIMENSION_TEXTURE2DMSARRAY,
-} D3D10_DSV_DIMENSION;
-
-typedef struct D3D10_TEX1D_DSV {
-    UINT MipSlice;
-} D3D10_TEX1D_DSV;
-
-typedef struct D3D10_TEX1D_ARRAY_DSV {
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX1D_ARRAY_DSV;
-
-typedef struct D3D10_TEX2D_DSV {
-    UINT MipSlice;
-} D3D10_TEX2D_DSV;
-
-typedef struct D3D10_TEX2D_ARRAY_DSV {
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2D_ARRAY_DSV;
-
-typedef struct D3D10_TEX2DMS_DSV {
-    UINT UnusedField_NothingToDefine;
-} D3D10_TEX2DMS_DSV;
-
-typedef struct D3D10_TEX2DMS_ARRAY_DSV {
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2DMS_ARRAY_DSV;
-
-typedef struct D3D10_DEPTH_STENCIL_VIEW_DESC {
-    DXGI_FORMAT Format;
-    D3D10_DSV_DIMENSION ViewDimension;
-    union {
-        D3D10_TEX1D_DSV Texture1D;
-        D3D10_TEX1D_ARRAY_DSV Texture1DArray;
-        D3D10_TEX2D_DSV Texture2D;
-        D3D10_TEX2D_ARRAY_DSV Texture2DArray;
-        D3D10_TEX2DMS_DSV Texture2DMS;
-        D3D10_TEX2DMS_ARRAY_DSV Texture2DMSArray;
-    } DUMMYUNIONNAME;
-} D3D10_DEPTH_STENCIL_VIEW_DESC;
-
-typedef enum D3D10_RTV_DIMENSION {
-    D3D10_RTV_DIMENSION_UNKNOWN,
-    D3D10_RTV_DIMENSION_BUFFER,
-    D3D10_RTV_DIMENSION_TEXTURE1D,
-    D3D10_RTV_DIMENSION_TEXTURE1DARRAY,
-    D3D10_RTV_DIMENSION_TEXTURE2D,
-    D3D10_RTV_DIMENSION_TEXTURE2DARRAY,
-    D3D10_RTV_DIMENSION_TEXTURE2DMS,
-    D3D10_RTV_DIMENSION_TEXTURE2DMSARRAY,
-    D3D10_RTV_DIMENSION_TEXTURE3D,
-} D3D10_RTV_DIMENSION;
-
-typedef struct D3D10_BUFFER_RTV {
-    UINT ElementOffset;
-    UINT ElementWidth;
-} D3D10_BUFFER_RTV;
-
-typedef struct D3D10_TEX1D_RTV {
-    UINT MipSlice;
-} D3D10_TEX1D_RTV;
-
-typedef struct D3D10_TEX1D_ARRAY_RTV {
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX1D_ARRAY_RTV;
-
-typedef struct D3D10_TEX2D_RTV {
-    UINT MipSlice;
-} D3D10_TEX2D_RTV;
-
-typedef struct D3D10_TEX2D_ARRAY_RTV {
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2D_ARRAY_RTV;
-
-typedef struct D3D10_TEX2DMS_RTV {
-    UINT UnusedField_NothingToDefine;
-} D3D10_TEX2DMS_RTV;
-
-typedef struct D3D10_TEX2DMS_ARRAY_RTV {
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2DMS_ARRAY_RTV;
-
-typedef struct D3D10_TEX3D_RTV {
-    UINT MipSlice;
-    UINT FirstWSlice;
-    UINT WSize;
-} D3D10_TEX3D_RTV;
-
-typedef struct D3D10_RENDER_TARGET_VIEW_DESC {
-    DXGI_FORMAT Format;
-    D3D10_RTV_DIMENSION ViewDimension;
-    union {
-        D3D10_BUFFER_RTV Buffer;
-        D3D10_TEX1D_RTV Texture1D;
-        D3D10_TEX1D_ARRAY_RTV Texture1DArray;
-        D3D10_TEX2D_RTV Texture2D;
-        D3D10_TEX2D_ARRAY_RTV Texture2DArray;
-        D3D10_TEX2DMS_RTV Texture2DMS;
-        D3D10_TEX2DMS_ARRAY_RTV Texture2DMSArray;
-        D3D10_TEX3D_RTV Texture3D;
-    } DUMMYUNIONNAME;
-} D3D10_RENDER_TARGET_VIEW_DESC;
-
-typedef enum D3D10_SRV_DIMENSION {
-    D3D10_SRV_DIMENSION_UNKNOWN,
-    D3D10_SRV_DIMENSION_BUFFER,
-    D3D10_SRV_DIMENSION_TEXTURE1D,
-    D3D10_SRV_DIMENSION_TEXTURE1DARRAY,
-    D3D10_SRV_DIMENSION_TEXTURE2D,
-    D3D10_SRV_DIMENSION_TEXTURE2DARRAY,
-    D3D10_SRV_DIMENSION_TEXTURE2DMS,
-    D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY,
-    D3D10_SRV_DIMENSION_TEXTURE3D,
-    D3D10_SRV_DIMENSION_TEXTURECUBE,
-} D3D10_SRV_DIMENSION;
-
-typedef struct D3D10_BUFFER_SRV {
-    UINT ElementOffset;
-    UINT ElementWidth;
-} D3D10_BUFFER_SRV;
-
-typedef struct D3D10_TEX1D_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-} D3D10_TEX1D_SRV;
-
-typedef struct D3D10_TEX1D_ARRAY_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX1D_ARRAY_SRV;
-
-typedef struct D3D10_TEX2D_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-} D3D10_TEX2D_SRV;
-
-typedef struct D3D10_TEX2D_ARRAY_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2D_ARRAY_SRV;
-
-typedef struct D3D10_TEX2DMS_SRV {
-    UINT UnusedField_NothingToDefine;
-} D3D10_TEX2DMS_SRV;
-
-typedef struct D3D10_TEX2DMS_ARRAY_SRV {
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2DMS_ARRAY_SRV;
-
-typedef struct D3D10_TEX3D_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-} D3D10_TEX3D_SRV;
-
-typedef struct D3D10_TEXCUBE_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-} D3D10_TEXCUBE_SRV;
-
-typedef struct D3D10_SHADER_RESOURCE_VIEW_DESC {
-    DXGI_FORMAT Format;
-    D3D10_SRV_DIMENSION ViewDimension;
-    union {
-        D3D10_BUFFER_SRV Buffer;
-        D3D10_TEX1D_SRV Texture1D;
-        D3D10_TEX1D_ARRAY_SRV Texture1DArray;
-        D3D10_TEX2D_SRV Texture2D;
-        D3D10_TEX2D_ARRAY_SRV Texture2DArray;
-        D3D10_TEX2DMS_SRV Texture2DMS;
-        D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray;
-        D3D10_TEX3D_SRV Texture3D;
-        D3D10_TEXCUBE_SRV TextureCube;
-    } DUMMYUNIONNAME;
-} D3D10_SHADER_RESOURCE_VIEW_DESC;
-
-typedef struct D3D10_BOX {
-    UINT left;
-    UINT top;
-    UINT front;
-    UINT right;
-    UINT bottom;
-    UINT back;
-} D3D10_BOX;
-
-typedef struct D3D10_SUBRESOURCE_DATA {
-    const void *pSysMem;
-    UINT SysMemPitch;
-    UINT SysMemSlicePitch;
-} D3D10_SUBRESOURCE_DATA;
-
-typedef struct D3D10_SO_DECLARATION_ENTRY {
-    LPCSTR SemanticName;
-    UINT SemanticIndex;
-    BYTE StartComponent;
-    BYTE ComponentCount;
-    BYTE OutputSlot;
-} D3D10_SO_DECLARATION_ENTRY;
-
-typedef enum D3D10_INPUT_CLASSIFICATION {
-    D3D10_INPUT_PER_VERTEX_DATA,
-    D3D10_INPUT_PER_INSTANCE_DATA,
-} D3D10_INPUT_CLASSIFICATION;
-
-typedef struct D3D10_INPUT_ELEMENT_DESC {
-    LPCSTR SemanticName;
-    UINT SemanticIndex;
-    DXGI_FORMAT Format;
-    UINT InputSlot;
-    UINT AlignedByteOffset;
-    D3D10_INPUT_CLASSIFICATION InputSlotClass;
-    UINT InstanceDataStepRate;
-} D3D10_INPUT_ELEMENT_DESC;
-
-typedef enum D3D10_QUERY {
-    D3D10_QUERY_EVENT,
-    D3D10_QUERY_OCCLUSION,
-    D3D10_QUERY_TIMESTAMP,
-    D3D10_QUERY_TIMESTAMP_DISJOINT,
-    D3D10_QUERY_PIPELINE_STATISTICS,
-    D3D10_QUERY_OCCLUSION_PREDICATE,
-    D3D10_QUERY_SO_STATISTICS,
-    D3D10_QUERY_SO_OVERFLOW_PREDICATE,
-} D3D10_QUERY;
-
-typedef struct D3D10_QUERY_DESC {
-    D3D10_QUERY Query;
-    UINT MiscFlags;
-} D3D10_QUERY_DESC;
-
-typedef enum D3D10_PRIMITIVE_TOPOLOGY {
-    D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED         = 0,
-    D3D10_PRIMITIVE_TOPOLOGY_POINTLIST         = 1,
-    D3D10_PRIMITIVE_TOPOLOGY_LINELIST          = 2,
-    D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP         = 3,
-    D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST      = 4,
-    D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP     = 5,
-    D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ      = 10,
-    D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ     = 11,
-    D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ  = 12,
-    D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13
-} D3D10_PRIMITIVE_TOPOLOGY;
-
-typedef RECT D3D10_RECT;
-
-typedef struct D3D10_VIEWPORT {
-    INT TopLeftX;
-    INT TopLeftY;
-    UINT Width;
-    UINT Height;
-    FLOAT MinDepth;
-    FLOAT MaxDepth;
-} D3D10_VIEWPORT;
-
-typedef struct D3D10_MAPPED_TEXTURE2D {
-    void *pData;
-    UINT RowPitch;
-} D3D10_MAPPED_TEXTURE2D;
-
-typedef struct D3D10_MAPPED_TEXTURE3D {
-    void *pData;
-    UINT RowPitch;
-    UINT DepthPitch;
-} D3D10_MAPPED_TEXTURE3D;
-
-typedef enum D3D10_BIND_FLAG {
-    D3D10_BIND_VERTEX_BUFFER   = 0x1,
-    D3D10_BIND_INDEX_BUFFER    = 0x2,
-    D3D10_BIND_CONSTANT_BUFFER = 0x4,
-    D3D10_BIND_SHADER_RESOURCE = 0x8,
-    D3D10_BIND_STREAM_OUTPUT   = 0x10,
-    D3D10_BIND_RENDER_TARGET   = 0x20,
-    D3D10_BIND_DEPTH_STENCIL   = 0x40
-} D3D10_BIND_FLAG;
-
-typedef enum D3D10_CPU_ACCESS_FLAG {
-    D3D10_CPU_ACCESS_WRITE = 0x10000,
-    D3D10_CPU_ACCESS_READ  = 0x20000
-} D3D10_CPU_ACCESS_FLAG;
-
-typedef enum D3D10_RESOURCE_MISC_FLAG {
-    D3D10_RESOURCE_MISC_GENERATE_MIPS = 0x1,
-    D3D10_RESOURCE_MISC_SHARED        = 0x2,
-    D3D10_RESOURCE_MISC_TEXTURECUBE   = 0x4
-} D3D10_RESOURCE_MISC_FLAG;
-
-typedef enum D3D10_MAP_FLAG {
-    D3D10_MAP_FLAG_DO_NOT_WAIT = 0x100000,
-} D3D10_MAP_FLAG;
-
-typedef enum D3D10_CLEAR_FLAG {
-    D3D10_CLEAR_DEPTH   = 0x1,
-    D3D10_CLEAR_STENCIL = 0x2
-} D3D10_CLEAR_FLAG;
-
-typedef enum D3D10_COLOR_WRITE_ENABLE {
-    D3D10_COLOR_WRITE_ENABLE_RED   = 0x1,
-    D3D10_COLOR_WRITE_ENABLE_GREEN = 0x2,
-    D3D10_COLOR_WRITE_ENABLE_BLUE  = 0x4,
-    D3D10_COLOR_WRITE_ENABLE_ALPHA = 0x8,
-    D3D10_COLOR_WRITE_ENABLE_ALL   = (D3D10_COLOR_WRITE_ENABLE_RED  | D3D10_COLOR_WRITE_ENABLE_GREEN |
-                                      D3D10_COLOR_WRITE_ENABLE_BLUE | D3D10_COLOR_WRITE_ENABLE_ALPHA)
-} D3D10_COLOR_WRITE_ENABLE;
-
-typedef enum D3D10_TEXTURECUBE_FACE {
-    D3D10_TEXTURECUBE_FACE_POSITIVE_X,
-    D3D10_TEXTURECUBE_FACE_NEGATIVE_X,
-    D3D10_TEXTURECUBE_FACE_POSITIVE_Y,
-    D3D10_TEXTURECUBE_FACE_NEGATIVE_Y,
-    D3D10_TEXTURECUBE_FACE_POSITIVE_Z,
-    D3D10_TEXTURECUBE_FACE_NEGATIVE_Z,
-} D3D10_TEXTURECUBE_FACE;
-
-typedef enum D3D10_ASYNC_GETDATA_FLAG {
-    D3D10_ASYNC_GETDATA_DONOTFLUSH = 0x1,
-} D3D10_ASYNC_GETDATA_FLAG;
-
-typedef enum D3D10_FILTER_TYPE {
-    D3D10_FILTER_TYPE_POINT,
-    D3D10_FILTER_TYPE_LINEAR
-} D3D10_FILTER_TYPE;
-
-typedef enum D3D10_QUERY_MISC_FLAG {
-    D3D10_QUERY_MISC_PREDICATEHINT = 0x1
-} D3D10_QUERY_MISC_FLAG;
-
-typedef struct D3D10_QUERY_DATA_TIMESTAMP_DISJOINT {
-    UINT64 Frequency;
-    BOOL Disjoint;
-} D3D10_QUERY_DATA_TIMESTAMP_DISJOINT;
-
-typedef struct D3D10_QUERY_DATA_PIPELINE_STATISTICS {
-    UINT64 IAVertices;
-    UINT64 IAPrimitives;
-    UINT64 VSInvocations;
-    UINT64 GSInvocations;
-    UINT64 GSPrimitives;
-    UINT64 CInvocations;
-    UINT64 CPrimitives;
-    UINT64 PSInvocations;
-} D3D10_QUERY_DATA_PIPELINE_STATISTICS;
-
-typedef struct D3D10_QUERY_DATA_SO_STATISTICS {
-    UINT64 NumPrimitivesWritten;
-    UINT64 PrimitivesStorageNeeded;
-} D3D10_QUERY_DATA_SO_STATISTICS;
-
-typedef enum D3D10_CREATE_DEVICE_FLAG {
-    D3D10_CREATE_DEVICE_SINGLETHREADED                           = 0x1,
-    D3D10_CREATE_DEVICE_DEBUG                                    = 0x2,
-    D3D10_CREATE_DEVICE_SWITCH_TO_REF                            = 0x4,
-    D3D10_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x8
-} D3D10_CREATE_DEVICE_FLAG;
-
-/* Core */
-
-interface ID3D10Device;
-
-[
-    object,
-    local,
-    uuid(9b7e4c00-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10DeviceChild : IUnknown
-{
-        void GetDevice(
-            [out] ID3D10Device **ppDevice);
-        HRESULT GetPrivateData(
-            [in] REFGUID guid,
-            [in, out] UINT *pDataSize,
-            [out] void *pData);
-        HRESULT SetPrivateData(
-            [in] REFGUID guid,
-            [in] UINT DataSize,
-            [in] const void *pData);
-        HRESULT SetPrivateDataInterface(
-            [in] REFGUID guid,
-            [in] const IUnknown *pData);
-}
-
-/* Resource */
-
-[
-    object,
-    local,
-    uuid(9b7e4c01-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10Resource : ID3D10DeviceChild
-{
-        void GetType(
-            [out] D3D10_RESOURCE_DIMENSION *rType);
-        void SetEvictionPriority(
-            [in] UINT EvictionPriority);
-        UINT GetEvictionPriority();
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c02-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10Buffer : ID3D10Resource
-{
-        HRESULT Map(
-            [in] D3D10_MAP MapType,
-            [in] UINT MapFlags,
-            [out] void **ppData);
-        void Unmap();
-        void GetDesc(
-            [out] D3D10_BUFFER_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c03-342c-4106-a19f-4f2704f689F0)
-]
-interface ID3D10Texture1D : ID3D10Resource
-{
-        HRESULT Map(
-            [in] UINT Subresource,
-            [in] D3D10_MAP MapType,
-            [in] UINT MapFlags,
-            [out] void **ppData);
-        void Unmap(
-            [in] UINT Subresource);
-        void GetDesc(
-            [out] D3D10_TEXTURE1D_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c04-342c-4106-a19f-4f2704f689F0)
-]
-interface ID3D10Texture2D : ID3D10Resource
-{
-        HRESULT Map(
-            [in] UINT Subresource,
-            [in] D3D10_MAP MapType,
-            [in] UINT MapFlags,
-            [out] D3D10_MAPPED_TEXTURE2D *pMappedTex2D);
-        void Unmap(
-            [in] UINT Subresource);
-        void GetDesc(
-            [out] D3D10_TEXTURE2D_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c05-342c-4106-a19f-4f2704f689F0)
-]
-interface ID3D10Texture3D : ID3D10Resource
-{
-        HRESULT Map(
-            [in] UINT Subresource,
-            [in] D3D10_MAP MapType,
-            [in] UINT MapFlags,
-            [out] D3D10_MAPPED_TEXTURE3D *pMappedTex3D);
-        void Unmap(
-            [in] UINT Subresource);
-        void GetDesc(
-            [out] D3D10_TEXTURE3D_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(c902b03f-60a7-49ba-9936-2a3ab37a7e33)
-]
-interface ID3D10View : ID3D10DeviceChild
-{
-        void GetResource(
-            [out] ID3D10Resource **ppResource);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c09-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10DepthStencilView : ID3D10View
-{
-        void GetDesc(
-            [out] D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc);
-}
-
-
-[
-    object,
-    local,
-    uuid(9b7e4c08-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10RenderTargetView : ID3D10View
-{
-        void GetDesc(
-            [out] D3D10_RENDER_TARGET_VIEW_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c07-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10ShaderResourceView  : ID3D10View
-{
-        void GetDesc(
-            [out] D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc);
-}
-
-/* Resource End */
-
-[
-    object,
-    local,
-    uuid(edad8d19-8a35-4d6d-8566-2ea276cde161)
-]
-interface ID3D10BlendState : ID3D10DeviceChild
-{
-    void GetDesc(
-            [out] D3D10_BLEND_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(2b4b1cc8-a4ad-41f8-8322-ca86fc3ec675)
-]
-interface ID3D10DepthStencilState : ID3D10DeviceChild
-{
-    void GetDesc(
-            [out] D3D10_DEPTH_STENCIL_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(6316be88-54cd-4040-ab44-20461bc81f68)
-]
-interface ID3D10GeometryShader  : ID3D10DeviceChild
-{
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c0b-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10InputLayout  : ID3D10DeviceChild
-{
-}
-
-[
-    object,
-    local,
-    uuid(4968b601-9d00-4cde-8346-8e7f675819b6)
-]
-interface ID3D10PixelShader  : ID3D10DeviceChild
-{
-}
-
-[
-    object,
-    local,
-    uuid(a2a07292-89af-4345-be2e-c53d9fbb6e9f)
-]
-interface ID3D10RasterizerState  : ID3D10DeviceChild
-{
-    void GetDesc(
-            [out] D3D10_RASTERIZER_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c0c-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10SamplerState  : ID3D10DeviceChild
-{
-    void GetDesc(
-            [out] D3D10_SAMPLER_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c0a-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10VertexShader  : ID3D10DeviceChild
-{
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c0d-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10Asynchronous  : ID3D10DeviceChild
-{
-    void Begin();
-    void End();
-    HRESULT GetData(
-            [out] void *pData,
-            [in] UINT DataSize,
-            [in] UINT GetDataFlags);
-    UINT GetDataSize();
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c11-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10Counter  : ID3D10Asynchronous
-{
-    void GetDesc(
-            [out] D3D10_COUNTER_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4C0e-342C-4106-a19f-4f2704f689f0)
-]
-interface ID3D10Query : ID3D10Asynchronous
-{
-    void GetDesc(
-            [out] D3D10_QUERY_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c10-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10Predicate : ID3D10Query
-{
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c0f-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10Device : IUnknown
-{
-        void VSSetConstantBuffers(
-            [in] UINT StartSlot,
-            [in] UINT NumBuffers,
-            [in] ID3D10Buffer *const *ppConstantBuffers);
-        void PSSetShaderResources(
-            [in] UINT StartSlot,
-            [in] UINT NumViews,
-            [in] ID3D10ShaderResourceView *const *ppShaderResourceViews);
-        void PSSetShader(
-            [in] ID3D10PixelShader *pPixelShader);
-        void PSSetSamplers(
-            [in] UINT StartSlot,
-            [in] UINT NumSamplers,
-            [in]ID3D10SamplerState *const *ppSamplers);
-        void VSSetShader(
-            [in] ID3D10VertexShader *pVertexShader);
-        void DrawIndexed(
-            [in] UINT IndexCount,
-            [in] UINT StartIndexLocation,
-            [in] INT BaseVertexLocation);
-        void Draw(
-            [in] UINT VertexCount,
-            [in] UINT StartVertexLocation);
-        void PSSetConstantBuffers(
-            [in] UINT StartSlot,
-            [in] UINT NumBuffers,
-            [in] ID3D10Buffer *const *ppConstantBuffers);
-        void IASetInputLayout(
-            [in] ID3D10InputLayout *pInputLayout);
-        void IASetVertexBuffers(
-            [in] UINT StartSlot,
-            [in] UINT NumBuffers,
-            [in] ID3D10Buffer *const *ppVertexBuffers,
-            [in] const UINT *pStrides,
-            [in] const UINT *pOffsets);
-        void IASetIndexBuffer(
-            [in] ID3D10Buffer *pIndexBuffer,
-            [in] DXGI_FORMAT Format,
-            [in] UINT Offset);
-        void DrawIndexedInstanced(
-            [in] UINT IndexCountPerInstance,
-            [in] UINT InstanceCount,
-            [in] UINT StartIndexLocation,
-            [in] INT BaseVertexLocation,
-            [in] UINT StartInstanceLocation);
-        void DrawInstanced(
-            [in] UINT VertexCountPerInstance,
-            [in] UINT InstanceCount,
-            [in] UINT StartVertexLocation,
-            [in] UINT StartInstanceLocation);
-        void GSSetConstantBuffers(
-            [in] UINT StartSlot,
-            [in] UINT NumBuffers,
-            [in] ID3D10Buffer *const *ppConstantBuffers);
-        void GSSetShader(
-            [in] ID3D10GeometryShader *pShader);
-        void IASetPrimitiveTopology(
-            [in] D3D10_PRIMITIVE_TOPOLOGY Topology);
-        void VSSetShaderResources(
-            [in] UINT StartSlot,
-            [in] UINT NumViews,
-            [in] ID3D10ShaderResourceView *const *ppShaderResourceViews);
-        void VSSetSamplers(
-            [in] UINT StartSlot,
-            [in] UINT NumSamplers,
-            [in] ID3D10SamplerState *const *ppSamplers);
-        void SetPredication(
-            [in] ID3D10Predicate *pPredicate,
-            [in] BOOL PredicateValue);
-        void GSSetShaderResources(
-            [in] UINT StartSlot,
-            [in] UINT NumViews,
-            [in] ID3D10ShaderResourceView * const *ppShaderResourceViews);
-        void GSSetSamplers(
-            [in] UINT StartSlot,
-            [in] UINT NumSamplers,
-            [in] ID3D10SamplerState *const *ppSamplers);
-        void OMSetRenderTargets(
-            [in] UINT NumViews,
-            [in] ID3D10RenderTargetView *const *ppRenderTargetViews,
-            [in] ID3D10DepthStencilView *pDepthStencilView);
-        void OMSetBlendState(
-            [in] ID3D10BlendState *pBlendState,
-            [in] const FLOAT BlendFactor[4],
-            [in] UINT SampleMask);
-        void OMSetDepthStencilState(
-            [in] ID3D10DepthStencilState *pDepthStencilState,
-            [in] UINT StencilRef);
-        void SOSetTargets(
-            [in] UINT NumBuffers,
-            [in] ID3D10Buffer *const *ppSOTargets,
-            [in] const UINT *pOffsets);
-        void DrawAuto();
-        void RSSetState(
-            [in] ID3D10RasterizerState *pRasterizerState);
-        void RSSetViewports(
-            [in] UINT NumViewports,
-            [in] const D3D10_VIEWPORT *pViewports);
-        void RSSetScissorRects(
-            [in] UINT NumRects,
-            [in] const D3D10_RECT *pRects);
-        void CopySubresourceRegion(
-            [in] ID3D10Resource *pDstResource,
-            [in] UINT DstSubresource,
-            [in] UINT DstX,
-            [in] UINT DstY,
-            [in] UINT DstZ,
-            [in] ID3D10Resource *pSrcResource,
-            [in] UINT SrcSubresource,
-            [in] const D3D10_BOX *pSrcBox);
-        void CopyResource(
-            [in] ID3D10Resource *pDstResource,
-            [in] ID3D10Resource *pSrcResource);
-        void UpdateSubresource(
-            [in] ID3D10Resource *pDstResource,
-            [in] UINT DstSubresource,
-            [in] const D3D10_BOX *pDstBox,
-            [in] const void *pSrcData,
-            [in] UINT SrcRowPitch,
-            [in] UINT SrcDepthPitch);
-        void ClearRenderTargetView(
-            [in] ID3D10RenderTargetView *pRenderTargetView,
-            [in] const FLOAT ColorRGBA[4]);
-        void ClearDepthStencilView(
-            [in] ID3D10DepthStencilView *pDepthStencilView,
-            [in] UINT ClearFlags,
-            [in] FLOAT Depth,
-            [in] UINT8 Stencil);
-        void GenerateMips(
-            [in] ID3D10ShaderResourceView *pShaderResourceView);
-        void ResolveSubresource(
-            [in] ID3D10Resource *pDstResource,
-            [in] UINT DstSubresource,
-            [in] ID3D10Resource *pSrcResource,
-            [in] UINT SrcSubresource,
-            [in] DXGI_FORMAT Format);
-        void VSGetConstantBuffers(
-            [in] UINT StartSlot,
-            [in] UINT NumBuffers,
-            [out] ID3D10Buffer **ppConstantBuffers);
-        void PSGetShaderResources(
-            [in] UINT StartSlot,
-            [in] UINT NumViews,
-            [out] ID3D10ShaderResourceView **ppShaderResourceViews);
-        void PSGetShader(
-            [out] ID3D10PixelShader **ppPixelShader);
-        void PSGetSamplers(
-            [in] UINT StartSlot,
-            [in] UINT NumSamplers,
-            [out] ID3D10SamplerState **ppSamplers);
-        void VSGetShader(
-            [out] ID3D10VertexShader **ppVertexShader);
-        void PSGetConstantBuffers(
-            [in] UINT StartSlot,
-            [in] UINT NumBuffers,
-            [out] ID3D10Buffer **ppConstantBuffers);
-        void IAGetInputLayout(
-            [out] ID3D10InputLayout **ppInputLayout);
-        void IAGetVertexBuffers(
-            [in] UINT StartSlot,
-            [in] UINT NumBuffers,
-            [out] ID3D10Buffer **ppVertexBuffers,
-            [out] UINT *pStrides,
-            [out] UINT *pOffsets);
-        void IAGetIndexBuffer(
-            [out] ID3D10Buffer **pIndexBuffer,
-            [out] DXGI_FORMAT *Format,
-            [out] UINT *Offset);
-        void GSGetConstantBuffers(
-            [in] UINT StartSlot,
-            [in] UINT NumBuffers,
-            [out] ID3D10Buffer **ppConstantBuffers);
-        void GSGetShader(
-            [out] ID3D10GeometryShader **ppGeometryShader);
-        void IAGetPrimitiveTopology(
-            [out] D3D10_PRIMITIVE_TOPOLOGY *pTopology);
-        void VSGetShaderResources(
-            [in] UINT StartSlot,
-            [in] UINT NumViews,
-            [out] ID3D10ShaderResourceView **ppShaderResourceViews);
-        void VSGetSamplers(
-            [in] UINT StartSlot,
-            [in] UINT NumSamplers,
-            [out] ID3D10SamplerState **ppSamplers);
-        void GetPredication(
-            [out] ID3D10Predicate **ppPredicate,
-            [out] BOOL *pPredicateValue);
-        void GSGetShaderResources(
-            [in] UINT StartSlot,
-            [in] UINT NumViews,
-            [out] ID3D10ShaderResourceView **ppShaderResourceViews);
-        void GSGetSamplers(
-            [in] UINT StartSlot,
-            [in] UINT NumSamplers,
-            [out] ID3D10SamplerState **ppSamplers);
-        void OMGetRenderTargets(
-            [in] UINT NumViews,
-            [out] ID3D10RenderTargetView **ppRenderTargetViews,
-            [out] ID3D10DepthStencilView **ppDepthStencilView);
-        void OMGetBlendState(
-            [out] ID3D10BlendState **ppBlendState,
-            [out] FLOAT BlendFactor[4],
-            [out] UINT *pSampleMask);
-        void OMGetDepthStencilState(
-            [out] ID3D10DepthStencilState **ppDepthStencilState,
-            [out] UINT *pStencilRef);
-        void SOGetTargets(
-            [in] UINT NumBuffers,
-            [out] ID3D10Buffer **ppSOTargets,
-            [out] UINT *pOffsets);
-        void RSGetState(
-            [out] ID3D10RasterizerState **ppRasterizerState);
-        void RSGetViewports(
-            [in, out] UINT *NumViewports,
-            [out] D3D10_VIEWPORT *pViewports);
-        void RSGetScissorRects(
-            [in, out] UINT *NumRects,
-            [out] D3D10_RECT *pRects);
-        HRESULT GetDeviceRemovedReason();
-        HRESULT SetExceptionMode(
-            [in] UINT RaiseFlags);
-        UINT GetExceptionMode();
-        HRESULT GetPrivateData(
-            [in] REFGUID guid,
-            [in, out] UINT *pDataSize,
-            [out] void *pData);
-        HRESULT SetPrivateData(
-            [in] REFGUID guid,
-            [in] UINT DataSize,
-            [in] const void *pData);
-        HRESULT SetPrivateDataInterface(
-            [in] REFGUID guid,
-            [in] const IUnknown *pData);
-        void ClearState();
-        void Flush();
-        HRESULT CreateBuffer(
-            [in] const D3D10_BUFFER_DESC *pDesc,
-            [in] const D3D10_SUBRESOURCE_DATA *pInitialData,
-            [out] ID3D10Buffer **ppBuffer);
-        HRESULT CreateTexture1D(
-            [in] const D3D10_TEXTURE1D_DESC *pDesc,
-            [in] const D3D10_SUBRESOURCE_DATA *pInitialData,
-            [out] ID3D10Texture1D **ppTexture1D);
-        HRESULT CreateTexture2D(
-            [in] const D3D10_TEXTURE2D_DESC *pDesc,
-            [in] const D3D10_SUBRESOURCE_DATA *pInitialData,
-            [out] ID3D10Texture2D **ppTexture2D);
-        HRESULT CreateTexture3D(
-            [in] const D3D10_TEXTURE3D_DESC *pDesc,
-            [in] const D3D10_SUBRESOURCE_DATA *pInitialData,
-            [out] ID3D10Texture3D **ppTexture3D);
-        HRESULT CreateShaderResourceView(
-            [in] ID3D10Resource *pResource,
-            [in] const D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc,
-            [out] ID3D10ShaderResourceView **ppSRView);
-        HRESULT CreateRenderTargetView(
-            [in] ID3D10Resource *pResource,
-            [in] const D3D10_RENDER_TARGET_VIEW_DESC *pDesc,
-            [out] ID3D10RenderTargetView **ppRTView);
-        HRESULT CreateDepthStencilView(
-            [in] ID3D10Resource *pResource,
-            [in] const D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc,
-            [out] ID3D10DepthStencilView **ppDepthStencilView);
-        HRESULT CreateInputLayout(
-            [in] const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs,
-            [in] UINT NumElements,
-            [in] const void *pShaderBytecodeWithInputSignature,
-            [in] SIZE_T BytecodeLength,
-            [out] ID3D10InputLayout **ppInputLayout);
-        HRESULT CreateVertexShader(
-            [in] const void *pShaderBytecode,
-            [in] SIZE_T BytecodeLength,
-            [out] ID3D10VertexShader **ppVertexShader);
-        HRESULT CreateGeometryShader(
-            [in] const void *pShaderBytecode,
-            [in] SIZE_T BytecodeLength,
-            [out] ID3D10GeometryShader **ppGeometryShader);
-        HRESULT CreateGeometryShaderWithStreamOutput(
-            [in] const void *pShaderBytecode,
-            [in] SIZE_T BytecodeLength,
-            [in] const D3D10_SO_DECLARATION_ENTRY *pSODeclaration,
-            [in] UINT NumEntries,
-            [in] UINT OutputStreamStride,
-            [out] ID3D10GeometryShader **ppGeometryShader);
-        HRESULT CreatePixelShader(
-            [in] const void *pShaderBytecode,
-            [in] SIZE_T BytecodeLength,
-            [out] ID3D10PixelShader **ppPixelShader);
-        HRESULT CreateBlendState(
-            [in] const D3D10_BLEND_DESC *pBlendStateDesc,
-            [out] ID3D10BlendState **ppBlendState);
-        HRESULT CreateDepthStencilState(
-            [in] const D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc,
-            [out] ID3D10DepthStencilState **ppDepthStencilState);
-        HRESULT CreateRasterizerState(
-            [in] const D3D10_RASTERIZER_DESC *pRasterizerDesc,
-            [out] ID3D10RasterizerState **ppRasterizerState);
-        HRESULT CreateSamplerState(
-            [in] const D3D10_SAMPLER_DESC *pSamplerDesc,
-            [out] ID3D10SamplerState **ppSamplerState);
-        HRESULT CreateQuery(
-            [in] const D3D10_QUERY_DESC *pQueryDesc,
-            [out] ID3D10Query **ppQuery);
-        HRESULT CreatePredicate(
-            [in] const D3D10_QUERY_DESC *pPredicateDesc,
-            [out] ID3D10Predicate **ppPredicate);
-        HRESULT CreateCounter(
-            [in] const D3D10_COUNTER_DESC *pCounterDesc,
-            [out] ID3D10Counter **ppCounter);
-        HRESULT CheckFormatSupport(
-            [in] DXGI_FORMAT Format,
-            [out] UINT *pFormatSupport);
-        HRESULT CheckMultisampleQualityLevels(
-            [in] DXGI_FORMAT Format,
-            [in] UINT SampleCount,
-            [out] UINT *pNumQualityLevels);
-        void CheckCounterInfo(
-            [out] D3D10_COUNTER_INFO *pCounterInfo);
-        HRESULT CheckCounter(
-            [in] const D3D10_COUNTER_DESC *pDesc,
-            [out] D3D10_COUNTER_TYPE *pType,
-            [out] UINT *pActiveCounters,
-            [out] LPSTR szName,
-            [in, out] UINT *pNameLength,
-            [out] LPSTR szUnits,
-            [in, out] UINT *pUnitsLength,
-            [out] LPSTR szDescription,
-            [in, out] UINT *pDescriptionLength);
-        UINT GetCreationFlags();
-        HRESULT OpenSharedResource(
-            [in] HANDLE hResource,
-            [in] REFIID ReturnedInterface,
-            [out] void **ppResource);
-        void SetTextFilterSize(
-            [in] UINT Width,
-            [in] UINT Height);
-        void GetTextFilterSize(
-            [out] UINT *pWidth,
-            [out] UINT *pHeight);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4e00-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10Multithread : IUnknown
-{
-        void Enter();
-        void Leave();
-        BOOL SetMultithreadProtected(
-            [in] BOOL bMTProtect);
-        BOOL GetMultithreadProtected();
-}
-
-cpp_quote("#include \"d3d10misc.h\"")
-cpp_quote("#include \"d3d10shader.h\"")
-cpp_quote("#include \"d3d10effect.h\"")
-/* TODO: Include "d310sdklayers.h" as soon as it exists */
diff --git a/misc/builddeps/win32/dx/include/d3d10effect.h b/misc/builddeps/win32/dx/include/d3d10effect.h
deleted file mode 100644 (file)
index e020583..0000000
+++ /dev/null
@@ -1,788 +0,0 @@
-/*
- * Copyright 2009 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
- *
- */
-
-#ifndef __WINE_D3D10EFFECT_H
-#define __WINE_D3D10EFFECT_H
-
-#include "d3d10.h"
-
-#define D3D10_EFFECT_VARIABLE_POOLED                0x1
-#define D3D10_EFFECT_VARIABLE_ANNOTATION            0x2
-#define D3D10_EFFECT_VARIABLE_EXPLICIT_BIND_POINT   0x4
-
-#ifndef D3D10_BYTES_FROM_BITS
-#define D3D10_BYTES_FROM_BITS(x) (((x) + 7) >> 3)
-#endif
-
-typedef struct _D3D10_EFFECT_TYPE_DESC
-{
-    LPCSTR TypeName;
-    D3D10_SHADER_VARIABLE_CLASS Class;
-    D3D10_SHADER_VARIABLE_TYPE Type;
-    UINT Elements;
-    UINT Members;
-    UINT Rows;
-    UINT Columns;
-    UINT PackedSize;
-    UINT UnpackedSize;
-    UINT Stride;
-} D3D10_EFFECT_TYPE_DESC;
-
-typedef struct _D3D10_EFFECT_VARIABLE_DESC
-{
-    LPCSTR Name;
-    LPCSTR Semantic;
-    UINT Flags;
-    UINT Annotations;
-    UINT BufferOffset;
-    UINT ExplicitBindPoint;
-} D3D10_EFFECT_VARIABLE_DESC;
-
-typedef struct _D3D10_TECHNIQUE_DESC
-{
-    LPCSTR Name;
-    UINT Passes;
-    UINT Annotations;
-} D3D10_TECHNIQUE_DESC;
-
-typedef struct _D3D10_STATE_BLOCK_MASK
-{
-    BYTE VS;
-    BYTE VSSamplers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT)];
-    BYTE VSShaderResources[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)];
-    BYTE VSConstantBuffers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)];
-    BYTE GS;
-    BYTE GSSamplers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT)];
-    BYTE GSShaderResources[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)];
-    BYTE GSConstantBuffers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)];
-    BYTE PS;
-    BYTE PSSamplers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT)];
-    BYTE PSShaderResources[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)];
-    BYTE PSConstantBuffers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)];
-    BYTE IAVertexBuffers[D3D10_BYTES_FROM_BITS(D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT)];
-    BYTE IAIndexBuffer;
-    BYTE IAInputLayout;
-    BYTE IAPrimitiveTopology;
-    BYTE OMRenderTargets;
-    BYTE OMDepthStencilState;
-    BYTE OMBlendState;
-    BYTE RSViewports;
-    BYTE RSScissorRects;
-    BYTE RSRasterizerState;
-    BYTE SOBuffers;
-    BYTE Predication;
-} D3D10_STATE_BLOCK_MASK;
-
-typedef struct _D3D10_EFFECT_DESC
-{
-    BOOL IsChildEffect;
-    UINT ConstantBuffers;
-    UINT SharedConstantBuffers;
-    UINT GlobalVariables;
-    UINT SharedGlobalVariables;
-    UINT Techniques;
-} D3D10_EFFECT_DESC;
-
-typedef struct _D3D10_EFFECT_SHADER_DESC
-{
-    const BYTE *pInputSignature;
-    BOOL IsInline;
-    const BYTE *pBytecode;
-    UINT BytecodeLength;
-    LPCSTR SODecl;
-    UINT NumInputSignatureEntries;
-    UINT NumOutputSignatureEntries;
-} D3D10_EFFECT_SHADER_DESC;
-
-typedef struct _D3D10_PASS_DESC
-{
-    LPCSTR Name;
-    UINT Annotations;
-    BYTE *pIAInputSignature;
-    SIZE_T IAInputSignatureSize;
-    UINT StencilRef;
-    UINT SampleMask;
-    FLOAT BlendFactor[4];
-} D3D10_PASS_DESC;
-
-typedef struct _D3D10_PASS_SHADER_DESC
-{
-    struct ID3D10EffectShaderVariable *pShaderVariable;
-    UINT ShaderIndex;
-} D3D10_PASS_SHADER_DESC;
-
-DEFINE_GUID(IID_ID3D10EffectType, 0x4e9e1ddc, 0xcd9d, 0x4772, 0xa8, 0x37, 0x00, 0x18, 0x0b, 0x9b, 0x88, 0xfd);
-
-#define INTERFACE ID3D10EffectType
-DECLARE_INTERFACE(ID3D10EffectType)
-{
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_TYPE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetMemberTypeByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetMemberTypeByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetMemberTypeBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(LPCSTR, GetMemberName)(THIS_ UINT index) PURE;
-    STDMETHOD_(LPCSTR, GetMemberSemantic)(THIS_ UINT index) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectVariable, 0xae897105, 0x00e6, 0x45bf, 0xbb, 0x8e, 0x28, 0x1d, 0xd6, 0xdb, 0x8e, 0x1b);
-
-#define INTERFACE ID3D10EffectVariable
-DECLARE_INTERFACE(ID3D10EffectVariable)
-{
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
-    STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectConstantBuffer, 0x56648f4d, 0xcc8b, 0x4444, 0xa5, 0xad, 0xb5, 0xa3, 0xd7, 0x6e, 0x91, 0xb3);
-
-#define INTERFACE ID3D10EffectConstantBuffer
-DECLARE_INTERFACE_(ID3D10EffectConstantBuffer, ID3D10EffectVariable)
-{
-    /* ID3D10EffectVariable methods */
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
-    STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    /* ID3D10EffectConstantBuffer methods */
-    STDMETHOD(SetConstantBuffer)(THIS_ ID3D10Buffer *buffer) PURE;
-    STDMETHOD(GetConstantBuffer)(THIS_ ID3D10Buffer **buffer) PURE;
-    STDMETHOD(SetTextureBuffer)(THIS_ ID3D10ShaderResourceView *view) PURE;
-    STDMETHOD(GetTextureBuffer)(THIS_ ID3D10ShaderResourceView **view) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectScalarVariable, 0x00e48f7b, 0xd2c8, 0x49e8, 0xa8, 0x6c, 0x02, 0x2d, 0xee, 0x53, 0x43, 0x1f);
-
-#define INTERFACE ID3D10EffectScalarVariable
-DECLARE_INTERFACE_(ID3D10EffectScalarVariable, ID3D10EffectVariable)
-{
-    /* ID3D10EffectVariable methods */
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
-    STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    /* ID3D10EffectScalarVariable methods */
-    STDMETHOD(SetFloat)(THIS_ float value) PURE;
-    STDMETHOD(GetFloat)(THIS_ float *value) PURE;
-    STDMETHOD(SetFloatArray)(THIS_ float *values, UINT offset, UINT count) PURE;
-    STDMETHOD(GetFloatArray)(THIS_ float *values, UINT offset, UINT count) PURE;
-    STDMETHOD(SetInt)(THIS_ int value) PURE;
-    STDMETHOD(GetInt)(THIS_ int *value) PURE;
-    STDMETHOD(SetIntArray)(THIS_ int *values, UINT offset, UINT count) PURE;
-    STDMETHOD(GetIntArray)(THIS_ int *values, UINT offset, UINT count) PURE;
-    STDMETHOD(SetBool)(THIS_ BOOL value) PURE;
-    STDMETHOD(GetBool)(THIS_ BOOL *value) PURE;
-    STDMETHOD(SetBoolArray)(THIS_ BOOL *values, UINT offset, UINT count) PURE;
-    STDMETHOD(GetBoolArray)(THIS_ BOOL *values, UINT offset, UINT count) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectVectorVariable, 0x62b98c44, 0x1f82, 0x4c67, 0xbc, 0xd0, 0x72, 0xcf, 0x8f, 0x21, 0x7e, 0x81);
-
-#define INTERFACE ID3D10EffectVectorVariable
-DECLARE_INTERFACE_(ID3D10EffectVectorVariable, ID3D10EffectVariable)
-{
-    /* ID3D10EffectVariable methods */
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
-    STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    /* ID3D10EffectVectorVariable methods */
-    STDMETHOD(SetBoolVector)(THIS_ BOOL *value) PURE;
-    STDMETHOD(SetIntVector)(THIS_ int *value) PURE;
-    STDMETHOD(SetFloatVector)(THIS_ float *value) PURE;
-    STDMETHOD(GetBoolVector)(THIS_ BOOL *value) PURE;
-    STDMETHOD(GetIntVector)(THIS_ int *value) PURE;
-    STDMETHOD(GetFloatVector)(THIS_ float *value) PURE;
-    STDMETHOD(SetBoolVectorArray)(THIS_ BOOL *values, UINT offset, UINT count) PURE;
-    STDMETHOD(SetIntVectorArray)(THIS_ int *values, UINT offset, UINT count) PURE;
-    STDMETHOD(SetFloatVectorArray)(THIS_ float *values, UINT offset, UINT count) PURE;
-    STDMETHOD(GetBoolVectorArray)(THIS_ BOOL *values, UINT offset, UINT count) PURE;
-    STDMETHOD(GetIntVectorArray)(THIS_ int *values, UINT offset, UINT count) PURE;
-    STDMETHOD(GetFloatVectorArray)(THIS_ float *values, UINT offset, UINT count) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectMatrixVariable, 0x50666c24, 0xb82f, 0x4eed, 0xa1, 0x72, 0x5b, 0x6e, 0x7e, 0x85, 0x22, 0xe0);
-
-#define INTERFACE ID3D10EffectMatrixVariable
-DECLARE_INTERFACE_(ID3D10EffectMatrixVariable, ID3D10EffectVariable)
-{
-    /* ID3D10EffectVariable methods */
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
-    STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    /* ID3D10EffectMatrixVariable methods */
-    STDMETHOD(SetMatrix)(THIS_ float *data) PURE;
-    STDMETHOD(GetMatrix)(THIS_ float *data) PURE;
-    STDMETHOD(SetMatrixArray)(THIS_ float *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetMatrixArray)(THIS_ float *data, UINT offset, UINT count) PURE;
-    STDMETHOD(SetMatrixTranspose)(THIS_ float *data) PURE;
-    STDMETHOD(GetMatrixTranspose)(THIS_ float *data) PURE;
-    STDMETHOD(SetMatrixTransposeArray)(THIS_ float *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetMatrixTransposeArray)(THIS_ float *data, UINT offset, UINT count) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectStringVariable, 0x71417501, 0x8df9, 0x4e0a, 0xa7, 0x8a, 0x25, 0x5f, 0x97, 0x56, 0xba, 0xff);
-
-#define INTERFACE ID3D10EffectStringVariable
-DECLARE_INTERFACE_(ID3D10EffectStringVariable, ID3D10EffectVariable)
-{
-    /* ID3D10EffectVariable methods */
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
-    STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    /* ID3D10EffectStringVariable methods */
-    STDMETHOD(GetString)(THIS_ LPCSTR *str) PURE;
-    STDMETHOD(GetStringArray)(THIS_ LPCSTR *strs, UINT offset, UINT count) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectShaderResourceVariable,
-        0xc0a7157b, 0xd872, 0x4b1d, 0x80, 0x73, 0xef, 0xc2, 0xac, 0xd4, 0xb1, 0xfc);
-
-#define INTERFACE ID3D10EffectShaderResourceVariable
-DECLARE_INTERFACE_(ID3D10EffectShaderResourceVariable, ID3D10EffectVariable)
-{
-    /* ID3D10EffectVariable methods */
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
-    STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    /* ID3D10EffectShaderResourceVariable methods */
-    STDMETHOD(SetResource)(THIS_ ID3D10ShaderResourceView *resource) PURE;
-    STDMETHOD(GetResource)(THIS_ ID3D10ShaderResourceView **resource) PURE;
-    STDMETHOD(SetResourceArray)(THIS_ ID3D10ShaderResourceView **resources, UINT offset, UINT count) PURE;
-    STDMETHOD(GetResourceArray)(THIS_ ID3D10ShaderResourceView **resources, UINT offset, UINT count) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectRenderTargetViewVariable,
-        0x28ca0cc3, 0xc2c9, 0x40bb, 0xb5, 0x7f, 0x67, 0xb7, 0x37, 0x12, 0x2b, 0x17);
-
-#define INTERFACE ID3D10EffectRenderTargetViewVariable
-DECLARE_INTERFACE_(ID3D10EffectRenderTargetViewVariable, ID3D10EffectVariable)
-{
-    /* ID3D10EffectVariable methods */
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
-    STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    /* ID3D10EffectRenderTargetViewVariable methods */
-    STDMETHOD(SetRenderTarget)(THIS_ ID3D10RenderTargetView *view) PURE;
-    STDMETHOD(GetRenderTarget)(THIS_ ID3D10RenderTargetView **view) PURE;
-    STDMETHOD(SetRenderTargetArray)(THIS_ ID3D10RenderTargetView **views, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRenderTargetArray)(THIS_ ID3D10RenderTargetView **views, UINT offset, UINT count) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectDepthStencilViewVariable,
-        0x3e02c918, 0xcc79, 0x4985, 0xb6, 0x22, 0x2d, 0x92, 0xad, 0x70, 0x16, 0x23);
-
-#define INTERFACE ID3D10EffectDepthStencilViewVariable
-DECLARE_INTERFACE_(ID3D10EffectDepthStencilViewVariable, ID3D10EffectVariable)
-{
-    /* ID3D10EffectVariable methods */
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
-    STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    /* ID3D10EffectDepthStencilViewVariable methods */
-    STDMETHOD(SetDepthStencil)(THIS_ ID3D10DepthStencilView *view) PURE;
-    STDMETHOD(GetDepthStencil)(THIS_ ID3D10DepthStencilView **view) PURE;
-    STDMETHOD(SetDepthStencilArray)(THIS_ ID3D10DepthStencilView **views, UINT offset, UINT count) PURE;
-    STDMETHOD(GetDepthStencilArray)(THIS_ ID3D10DepthStencilView **views, UINT offset, UINT count) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectShaderVariable, 0x80849279, 0xc799, 0x4797, 0x8c, 0x33, 0x04, 0x07, 0xa0, 0x7d, 0x9e, 0x06);
-
-#define INTERFACE ID3D10EffectShaderVariable
-DECLARE_INTERFACE_(ID3D10EffectShaderVariable, ID3D10EffectVariable)
-{
-    /* ID3D10EffectVariable methods */
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
-    STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    /* ID3D10EffectShaderVariable methods */
-    STDMETHOD(GetShaderDesc)(THIS_ UINT index, D3D10_EFFECT_SHADER_DESC *desc) PURE;
-    STDMETHOD(GetVertexShader)(THIS_ UINT index, ID3D10VertexShader **shader) PURE;
-    STDMETHOD(GetGeometryShader)(THIS_ UINT index, ID3D10GeometryShader **shader) PURE;
-    STDMETHOD(GetPixelShader)(THIS_ UINT index, ID3D10PixelShader **shader) PURE;
-    STDMETHOD(GetInputSignatureElementDesc)(THIS_ UINT shader_index, UINT element_index,
-            D3D10_SIGNATURE_PARAMETER_DESC *desc) PURE;
-    STDMETHOD(GetOutputSignatureElementDesc)(THIS_ UINT shader_index, UINT element_index,
-            D3D10_SIGNATURE_PARAMETER_DESC *desc) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectBlendVariable, 0x1fcd2294, 0xdf6d, 0x4eae, 0x86, 0xb3, 0x0e, 0x91, 0x60, 0xcf, 0xb0, 0x7b);
-
-#define INTERFACE ID3D10EffectBlendVariable
-DECLARE_INTERFACE_(ID3D10EffectBlendVariable, ID3D10EffectVariable)
-{
-    /* ID3D10EffectVariable methods */
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
-    STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    /* ID3D10EffectBlendVariable methods */
-    STDMETHOD(GetBlendState)(THIS_ UINT index, ID3D10BlendState **blend_state) PURE;
-    STDMETHOD(GetBackingStore)(THIS_ UINT index, D3D10_BLEND_DESC *desc) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectDepthStencilVariable,
-        0xaf482368, 0x330a, 0x46a5, 0x9a, 0x5c, 0x01, 0xc7, 0x1a, 0xf2, 0x4c, 0x8d);
-
-#define INTERFACE ID3D10EffectDepthStencilVariable
-DECLARE_INTERFACE_(ID3D10EffectDepthStencilVariable, ID3D10EffectVariable)
-{
-    /* ID3D10EffectVariable methods */
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
-    STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    /* ID3D10EffectDepthStencilVariable methods */
-    STDMETHOD(GetDepthStencilState)(THIS_ UINT index, ID3D10DepthStencilState **depth_stencil_state) PURE;
-    STDMETHOD(GetBackingStore)(THIS_ UINT index, D3D10_DEPTH_STENCIL_DESC *desc) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectRasterizerVariable,
-        0x21af9f0e, 0x4d94, 0x4ea9, 0x97, 0x85, 0x2c, 0xb7, 0x6b, 0x8c, 0x0b, 0x34);
-
-#define INTERFACE ID3D10EffectRasterizerVariable
-DECLARE_INTERFACE_(ID3D10EffectRasterizerVariable, ID3D10EffectVariable)
-{
-    /* ID3D10EffectVariable methods */
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
-    STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    /* ID3D10EffectRasterizerVariable methods */
-    STDMETHOD(GetRasterizerState)(THIS_ UINT index, ID3D10RasterizerState **rasterizer_state) PURE;
-    STDMETHOD(GetBackingStore)(THIS_ UINT index, D3D10_RASTERIZER_DESC *desc) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectSamplerVariable,
-        0x6530d5c7, 0x07e9, 0x4271, 0xa4, 0x18, 0xe7, 0xce, 0x4b, 0xd1, 0xe4, 0x80);
-
-#define INTERFACE ID3D10EffectSamplerVariable
-DECLARE_INTERFACE_(ID3D10EffectSamplerVariable, ID3D10EffectVariable)
-{
-    /* ID3D10EffectVariable methods */
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
-    STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    /* ID3D10EffectSamplerVariable methods */
-    STDMETHOD(GetSampler)(THIS_ UINT index, ID3D10SamplerState **sampler) PURE;
-    STDMETHOD(GetBackingStore)(THIS_ UINT index, D3D10_SAMPLER_DESC *desc) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectTechnique, 0xdb122ce8, 0xd1c9, 0x4292, 0xb2, 0x37, 0x24, 0xed, 0x3d, 0xe8, 0xb1, 0x75);
-
-#define INTERFACE ID3D10EffectTechnique
-DECLARE_INTERFACE(ID3D10EffectTechnique)
-{
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_TECHNIQUE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectPass *, GetPassByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectPass *, GetPassByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD(ComputeStateBlockMask)(THIS_ D3D10_STATE_BLOCK_MASK *mask) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10Effect, 0x51b0ca8b, 0xec0b, 0x4519, 0x87, 0x0d, 0x8e, 0xe1, 0xcb, 0x50, 0x17, 0xc7);
-
-#define INTERFACE ID3D10Effect
-DECLARE_INTERFACE_(ID3D10Effect, IUnknown)
-{
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-    /* ID3D10Effect methods */
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(BOOL, IsPool)(THIS) PURE;
-    STDMETHOD(GetDevice)(THIS_ ID3D10Device **device) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetConstantBufferByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetConstantBufferByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetVariableByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetVariableByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetVariableBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectTechnique *, GetTechniqueByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectTechnique *, GetTechniqueByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD(Optimize)(THIS) PURE;
-    STDMETHOD_(BOOL, IsOptimized)(THIS) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectPool, 0x9537ab04, 0x3250, 0x412e, 0x82, 0x13, 0xfc, 0xd2, 0xf8, 0x67, 0x79, 0x33);
-
-#define INTERFACE ID3D10EffectPool
-DECLARE_INTERFACE_(ID3D10EffectPool, IUnknown)
-{
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-    /* ID3D10EffectPool methods */
-    STDMETHOD_(struct ID3D10Effect *, AsEffect)(THIS) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectPass, 0x5cfbeb89, 0x1a06, 0x46e0, 0xb2, 0x82, 0xe3, 0xf9, 0xbf, 0xa3, 0x6a, 0x54);
-
-#define INTERFACE ID3D10EffectPass
-DECLARE_INTERFACE(ID3D10EffectPass)
-{
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_PASS_DESC *desc) PURE;
-    STDMETHOD(GetVertexShaderDesc)(THIS_ D3D10_PASS_SHADER_DESC *desc) PURE;
-    STDMETHOD(GetGeometryShaderDesc)(THIS_ D3D10_PASS_SHADER_DESC *desc) PURE;
-    STDMETHOD(GetPixelShaderDesc)(THIS_ D3D10_PASS_SHADER_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD(Apply)(THIS_ UINT flags) PURE;
-    STDMETHOD(ComputeStateBlockMask)(THIS_ D3D10_STATE_BLOCK_MASK *mask) PURE;
-};
-#undef INTERFACE
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-HRESULT WINAPI D3D10CreateEffectFromMemory(void *data, SIZE_T data_size, UINT flags,
-        ID3D10Device *device, ID3D10EffectPool *effect_pool, ID3D10Effect **effect);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __WINE_D3D10EFFECT_H */
diff --git a/misc/builddeps/win32/dx/include/d3d10misc.h b/misc/builddeps/win32/dx/include/d3d10misc.h
deleted file mode 100644 (file)
index 58a6d26..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * 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
- */
-
-#ifndef __D3D10MISC_H__
-#define __D3D10MISC_H__
-
-#include "d3d10.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef enum D3D10_DRIVER_TYPE {
-    D3D10_DRIVER_TYPE_HARDWARE  = 0,
-    D3D10_DRIVER_TYPE_REFERENCE = 1,
-    D3D10_DRIVER_TYPE_NULL      = 2,
-    D3D10_DRIVER_TYPE_SOFTWARE  = 3,
-} D3D10_DRIVER_TYPE;
-
-HRESULT WINAPI D3D10CreateDevice(IDXGIAdapter *adapter, D3D10_DRIVER_TYPE driver_type,
-        HMODULE swrast, UINT flags, UINT sdk_version, ID3D10Device **device);
-
-HRESULT WINAPI D3D10CreateDeviceAndSwapChain(IDXGIAdapter *adapter, D3D10_DRIVER_TYPE driver_type,
-        HMODULE swrast, UINT flags, UINT sdk_version, DXGI_SWAP_CHAIN_DESC *swapchain_desc,
-        IDXGISwapChain **swapchain, ID3D10Device **device);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __D3D10MISC_H__ */
diff --git a/misc/builddeps/win32/dx/include/d3d10shader.h b/misc/builddeps/win32/dx/include/d3d10shader.h
deleted file mode 100644 (file)
index 99b123c..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright 2009 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
- *
- */
-
-#ifndef __WINE_D3D10SHADER_H
-#define __WINE_D3D10SHADER_H
-
-#include "d3d10.h"
-
-#define D3D10_SHADER_DEBUG                          0x0001
-#define D3D10_SHADER_SKIP_VALIDATION                0x0002
-#define D3D10_SHADER_SKIP_OPTIMIZATION              0x0004
-#define D3D10_SHADER_PACK_MATRIX_ROW_MAJOR          0x0008
-#define D3D10_SHADER_PACK_MATRIX_COLUMN_MAJOR       0x0010
-#define D3D10_SHADER_PARTIAL_PRECISION              0x0020
-#define D3D10_SHADER_FORCE_VS_SOFTWARE_NO_OPT       0x0040
-#define D3D10_SHADER_FORCE_PS_SOFTWARE_NO_OPT       0x0080
-#define D3D10_SHADER_NO_PRESHADER                   0x0100
-#define D3D10_SHADER_AVOID_FLOW_CONTROL             0x0200
-#define D3D10_SHADER_PREFER_FLOW_CONTROL            0x0400
-#define D3D10_SHADER_ENABLE_STRICTNESS              0x0800
-#define D3D10_SHADER_ENABLE_BACKWARDS_COMPATIBILITY 0x1000
-#define D3D10_SHADER_IEEE_STRICTNESS                0x2000
-
-typedef enum _D3D10_SHADER_VARIABLE_CLASS
-{
-    D3D10_SVC_SCALAR,
-    D3D10_SVC_VECTOR,
-    D3D10_SVC_MATRIX_ROWS,
-    D3D10_SVC_MATRIX_COLUMNS,
-    D3D10_SVC_OBJECT,
-    D3D10_SVC_STRUCT,
-    D3D10_SVC_FORCE_DWORD = 0x7fffffff
-} D3D10_SHADER_VARIABLE_CLASS, *LPD3D10_SHADER_VARIABLE_CLASS;
-
-typedef enum _D3D10_SHADER_VARIABLE_TYPE
-{
-    D3D10_SVT_VOID = 0,
-    D3D10_SVT_BOOL = 1,
-    D3D10_SVT_INT = 2,
-    D3D10_SVT_FLOAT = 3,
-    D3D10_SVT_STRING = 4,
-    D3D10_SVT_TEXTURE = 5,
-    D3D10_SVT_TEXTURE1D = 6,
-    D3D10_SVT_TEXTURE2D = 7,
-    D3D10_SVT_TEXTURE3D = 8,
-    D3D10_SVT_TEXTURECUBE = 9,
-    D3D10_SVT_SAMPLER = 10,
-    D3D10_SVT_PIXELSHADER = 15,
-    D3D10_SVT_VERTEXSHADER = 16,
-    D3D10_SVT_UINT = 19,
-    D3D10_SVT_UINT8 = 20,
-    D3D10_SVT_GEOMETRYSHADER = 21,
-    D3D10_SVT_RASTERIZER = 22,
-    D3D10_SVT_DEPTHSTENCIL = 23,
-    D3D10_SVT_BLEND = 24,
-    D3D10_SVT_BUFFER = 25,
-    D3D10_SVT_CBUFFER = 26,
-    D3D10_SVT_TBUFFER = 27,
-    D3D10_SVT_TEXTURE1DARRAY = 28,
-    D3D10_SVT_TEXTURE2DARRAY = 29,
-    D3D10_SVT_RENDERTARGETVIEW = 30,
-    D3D10_SVT_DEPTHSTENCILVIEW = 31,
-    D3D10_SVT_TEXTURE2DMS = 32,
-    D3D10_SVT_TEXTURE2DMSARRAY = 33,
-    D3D10_SVT_TEXTURECUBEARRAY = 34,
-    D3D10_SVT_FORCE_DWORD = 0x7fffffff
-} D3D10_SHADER_VARIABLE_TYPE, *LPD3D10_SHADER_VARIABLE_TYPE;
-
-typedef enum D3D10_CBUFFER_TYPE
-{
-    D3D10_CT_CBUFFER = 0,
-    D3D10_CT_TBUFFER = 1
-} D3D10_CBUFFER_TYPE, *LPD3D10_CBUFFER_TYPE;
-
-typedef enum D3D10_NAME
-{
-    D3D10_NAME_UNDEFINED = 0,
-    D3D10_NAME_POSITION = 1,
-    D3D10_NAME_CLIP_DISTANCE = 2,
-    D3D10_NAME_CULL_DISTANCE = 3,
-    D3D10_NAME_RENDER_TARGET_ARRAY_INDEX = 4,
-    D3D10_NAME_VIEWPORT_ARRAY_INDEX = 5,
-    D3D10_NAME_VERTEX_ID = 6,
-    D3D10_NAME_PRIMITIVE_ID = 7,
-    D3D10_NAME_INSTANCE_ID = 8,
-    D3D10_NAME_IS_FRONT_FACE = 9,
-    D3D10_NAME_SAMPLE_INDEX = 10,
-    D3D10_NAME_TARGET = 64,
-    D3D10_NAME_DEPTH = 65,
-} D3D10_NAME;
-
-typedef enum D3D10_REGISTER_COMPONENT_TYPE
-{
-    D3D10_REGISTER_COMPONENT_UNKNOWN = 0,
-    D3D10_REGISTER_COMPONENT_UINT32 = 1,
-    D3D10_REGISTER_COMPONENT_SINT32 = 2,
-    D3D10_REGISTER_COMPONENT_FLOAT32 = 3,
-} D3D10_REGISTER_COMPONENT_TYPE;
-
-typedef struct _D3D10_SHADER_MACRO
-{
-    LPCSTR Name;
-    LPCSTR Definition;
-} D3D10_SHADER_MACRO, *LPD3D10_SHADER_MACRO;
-
-typedef struct _D3D10_SIGNATURE_PARAMETER_DESC
-{
-    LPCSTR SemanticName;
-    UINT SemanticIndex;
-    UINT Register;
-    D3D10_NAME SystemValueType;
-    D3D10_REGISTER_COMPONENT_TYPE ComponentType;
-    BYTE Mask;
-    BYTE ReadWriteMask;
-} D3D10_SIGNATURE_PARAMETER_DESC;
-
-LPCSTR WINAPI D3D10GetVertexShaderProfile(ID3D10Device *device);
-LPCSTR WINAPI D3D10GetGeometryShaderProfile(ID3D10Device *device);
-LPCSTR WINAPI D3D10GetPixelShaderProfile(ID3D10Device *device);
-
-#endif /* __WINE_D3D10SHADER_H */
diff --git a/misc/builddeps/win32/dx/include/d3d8.h b/misc/builddeps/win32/dx/include/d3d8.h
deleted file mode 100644 (file)
index 46e0812..0000000
+++ /dev/null
@@ -1,1145 +0,0 @@
-/*
- * Copyright (C) 2002 Jason Edmeades
- *
- * 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_D3D8_H
-#define __WINE_D3D8_H
-
-#ifndef DIRECT3D_VERSION
-#define DIRECT3D_VERSION  0x0800
-#endif
-
-#include <stdlib.h>
-
-#define COM_NO_WINDOWS_H
-#include <objbase.h>
-
-#ifndef __WINESRC__
-# include <windows.h>
-#endif
-
-#include <d3d8types.h>
-#include <d3d8caps.h>
-
-/*****************************************************************************
- * Behavior Flags for IDirect3D8::CreateDevice
- */
-#define D3DCREATE_FPU_PRESERVE                  0x00000002L
-#define D3DCREATE_MULTITHREADED                 0x00000004L
-#define D3DCREATE_PUREDEVICE                    0x00000010L
-#define D3DCREATE_SOFTWARE_VERTEXPROCESSING     0x00000020L
-#define D3DCREATE_HARDWARE_VERTEXPROCESSING     0x00000040L
-#define D3DCREATE_MIXED_VERTEXPROCESSING        0x00000080L
-
-/*****************************************************************************
- * Flags for SetPrivateData
- */
-#define D3DSPD_IUNKNOWN                         0x00000001L
-
-/*****************************************************************************
- * #defines and error codes
- */
-#define D3D_SDK_VERSION              220
-#define D3DADAPTER_DEFAULT           0
-#define D3DENUM_NO_WHQL_LEVEL        2
-
-#define _FACD3D  0x876
-#define MAKE_D3DHRESULT( code )  MAKE_HRESULT( 1, _FACD3D, code )
-
-/*
- * Direct3D Errors
- */
-#define D3D_OK                                  S_OK
-#define D3DERR_WRONGTEXTUREFORMAT               MAKE_D3DHRESULT(2072)
-#define D3DERR_UNSUPPORTEDCOLOROPERATION        MAKE_D3DHRESULT(2073)
-#define D3DERR_UNSUPPORTEDCOLORARG              MAKE_D3DHRESULT(2074)
-#define D3DERR_UNSUPPORTEDALPHAOPERATION        MAKE_D3DHRESULT(2075)
-#define D3DERR_UNSUPPORTEDALPHAARG              MAKE_D3DHRESULT(2076)
-#define D3DERR_TOOMANYOPERATIONS                MAKE_D3DHRESULT(2077)
-#define D3DERR_CONFLICTINGTEXTUREFILTER         MAKE_D3DHRESULT(2078)
-#define D3DERR_UNSUPPORTEDFACTORVALUE           MAKE_D3DHRESULT(2079)
-#define D3DERR_CONFLICTINGRENDERSTATE           MAKE_D3DHRESULT(2081)
-#define D3DERR_UNSUPPORTEDTEXTUREFILTER         MAKE_D3DHRESULT(2082)
-#define D3DERR_CONFLICTINGTEXTUREPALETTE        MAKE_D3DHRESULT(2086)
-#define D3DERR_DRIVERINTERNALERROR              MAKE_D3DHRESULT(2087)
-
-#define D3DERR_NOTFOUND                         MAKE_D3DHRESULT(2150)
-#define D3DERR_MOREDATA                         MAKE_D3DHRESULT(2151)
-#define D3DERR_DEVICELOST                       MAKE_D3DHRESULT(2152)
-#define D3DERR_DEVICENOTRESET                   MAKE_D3DHRESULT(2153)
-#define D3DERR_NOTAVAILABLE                     MAKE_D3DHRESULT(2154)
-#define D3DERR_OUTOFVIDEOMEMORY                 MAKE_D3DHRESULT(380)
-#define D3DERR_INVALIDDEVICE                    MAKE_D3DHRESULT(2155)
-#define D3DERR_INVALIDCALL                      MAKE_D3DHRESULT(2156)
-#define D3DERR_DRIVERINVALIDCALL                MAKE_D3DHRESULT(2157)
-
-/*****************************************************************************
- * Predeclare the interfaces
- */
-DEFINE_GUID(IID_IDirect3D8,              0x1DD9E8DA,0x1C77,0x4D40,0xB0,0xCF,0x98,0xFE,0xFD,0xFF,0x95,0x12);
-typedef struct IDirect3D8 *LPDIRECT3D8;
-
-DEFINE_GUID(IID_IDirect3DDevice8,        0x7385E5DF,0x8FE8,0x41D5,0x86,0xB6,0xD7,0xB4,0x85,0x47,0xB6,0xCF);
-typedef struct IDirect3DDevice8 *LPDIRECT3DDEVICE8;
-
-DEFINE_GUID(IID_IDirect3DResource8,      0x1B36BB7B,0x09B7,0x410A,0xB4,0x45,0x7D,0x14,0x30,0xD7,0xB3,0x3F);
-typedef struct IDirect3DResource8 *LPDIRECT3DRESOURCE8, *PDIRECT3DRESOURCE8;
-
-DEFINE_GUID(IID_IDirect3DVertexBuffer8,  0x8AEEEAC7,0x05F9,0x44D4,0xB5,0x91,0x00,0x0B,0x0D,0xF1,0xCB,0x95);
-typedef struct IDirect3DVertexBuffer8 *LPDIRECT3DVERTEXBUFFER8, *PDIRECT3DVERTEXBUFFER8;
-
-DEFINE_GUID(IID_IDirect3DVolume8,        0xBD7349F5,0x14F1,0x42E4,0x9C,0x79,0x97,0x23,0x80,0xDB,0x40,0xC0);
-typedef struct IDirect3DVolume8 *LPDIRECT3DVOLUME8, *PDIRECT3DVOLUME8;
-
-DEFINE_GUID(IID_IDirect3DSwapChain8,     0x928C088B,0x76B9,0x4C6B,0xA5,0x36,0xA5,0x90,0x85,0x38,0x76,0xCD);
-typedef struct IDirect3DSwapChain8 *LPDIRECT3DSWAPCHAIN8, *PDIRECT3DSWAPCHAIN8;
-
-DEFINE_GUID(IID_IDirect3DSurface8,       0xB96EEBCA,0xB326,0x4EA5,0x88,0x2F,0x2F,0xF5,0xBA,0xE0,0x21,0xDD);
-typedef struct IDirect3DSurface8 *LPDIRECT3DSURFACE8, *PDIRECT3DSURFACE8;
-
-DEFINE_GUID(IID_IDirect3DIndexBuffer8,   0x0E689C9A,0x053D,0x44A0,0x9D,0x92,0xDB,0x0E,0x3D,0x75,0x0F,0x86);
-typedef struct IDirect3DIndexBuffer8 *LPDIRECT3DINDEXBUFFER8, *PDIRECT3DINDEXBUFFER8;
-
-DEFINE_GUID(IID_IDirect3DBaseTexture8,   0xB4211CFA,0x51B9,0x4A9F,0xAB,0x78,0xDB,0x99,0xB2,0xBB,0x67,0x8E);
-typedef struct IDirect3DBaseTexture8 *LPDIRECT3DBASETEXTURE8, *PDIRECT3DBASETEXTURE8;
-
-DEFINE_GUID(IID_IDirect3DTexture8,       0xE4CDD575,0x2866,0x4F01,0xB1,0x2E,0x7E,0xEC,0xE1,0xEC,0x93,0x58);
-typedef struct IDirect3DTexture8 *LPDIRECT3DTEXTURE8, *PDIRECT3DTEXTURE8;
-
-DEFINE_GUID(IID_IDirect3DCubeTexture8,   0x3EE5B968,0x2ACA,0x4C34,0x8B,0xB5,0x7E,0x0C,0x3D,0x19,0xB7,0x50);
-typedef struct IDirect3DCubeTexture8 *LPDIRECT3DCUBETEXTURE8, *PDIRECT3DCUBETEXTURE8;
-
-DEFINE_GUID(IID_IDirect3DVolumeTexture8, 0x4B8AAAFA,0x140F,0x42BA,0x91,0x31,0x59,0x7E,0xAF,0xAA,0x2E,0xAD);
-typedef struct IDirect3DVolumeTexture8 *LPDIRECT3DVOLUMETEXTURE8, *PDIRECT3DVOLUMETEXTURE8;
-
-/*****************************************************************************
- * IDirect3D8 interface
- */
-#define INTERFACE IDirect3D8
-DECLARE_INTERFACE_(IDirect3D8,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3D8 methods ***/
-    STDMETHOD(RegisterSoftwareDevice)(THIS_ void * pInitializeFunction) PURE;
-    STDMETHOD_(UINT,GetAdapterCount             )(THIS) PURE;
-    STDMETHOD(GetAdapterIdentifier)(THIS_ UINT  Adapter, DWORD  Flags, D3DADAPTER_IDENTIFIER8 * pIdentifier) PURE;
-    STDMETHOD_(UINT,GetAdapterModeCount)(THIS_ UINT  Adapter) PURE;
-    STDMETHOD(EnumAdapterModes)(THIS_ UINT  Adapter, UINT  Mode, D3DDISPLAYMODE * pMode) PURE;
-    STDMETHOD(GetAdapterDisplayMode)(THIS_ UINT  Adapter, D3DDISPLAYMODE * pMode) PURE;
-    STDMETHOD(CheckDeviceType)(THIS_ UINT  Adapter, D3DDEVTYPE  CheckType, D3DFORMAT  DisplayFormat, D3DFORMAT  BackBufferFormat, BOOL  Windowed) PURE;
-    STDMETHOD(CheckDeviceFormat)(THIS_ UINT  Adapter, D3DDEVTYPE  DeviceType, D3DFORMAT  AdapterFormat, DWORD  Usage, D3DRESOURCETYPE  RType, D3DFORMAT  CheckFormat) PURE;
-    STDMETHOD(CheckDeviceMultiSampleType)(THIS_ UINT  Adapter, D3DDEVTYPE  DeviceType, D3DFORMAT  SurfaceFormat, BOOL  Windowed, D3DMULTISAMPLE_TYPE  MultiSampleType) PURE;
-    STDMETHOD(CheckDepthStencilMatch)(THIS_ UINT  Adapter, D3DDEVTYPE  DeviceType, D3DFORMAT  AdapterFormat, D3DFORMAT  RenderTargetFormat, D3DFORMAT  DepthStencilFormat) PURE;
-    STDMETHOD(GetDeviceCaps)(THIS_ UINT  Adapter, D3DDEVTYPE  DeviceType, D3DCAPS8 * pCaps) PURE;
-    STDMETHOD_(HMONITOR,GetAdapterMonitor)(THIS_ UINT  Adapter) PURE;
-    STDMETHOD(CreateDevice)(THIS_ UINT  Adapter, D3DDEVTYPE  DeviceType,HWND  hFocusWindow, DWORD  BehaviorFlags, D3DPRESENT_PARAMETERS * pPresentationParameters, struct IDirect3DDevice8 ** ppReturnedDeviceInterface) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3D8_QueryInterface(p,a,b)                    (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3D8_AddRef(p)                                (p)->lpVtbl->AddRef(p)
-#define IDirect3D8_Release(p)                               (p)->lpVtbl->Release(p)
-/*** IDirect3D8 methods ***/
-#define IDirect3D8_RegisterSoftwareDevice(p,a)              (p)->lpVtbl->RegisterSoftwareDevice(p,a)
-#define IDirect3D8_GetAdapterCount(p)                       (p)->lpVtbl->GetAdapterCount(p)
-#define IDirect3D8_GetAdapterIdentifier(p,a,b,c)            (p)->lpVtbl->GetAdapterIdentifier(p,a,b,c)
-#define IDirect3D8_GetAdapterModeCount(p,a)                 (p)->lpVtbl->GetAdapterModeCount(p,a)
-#define IDirect3D8_EnumAdapterModes(p,a,b,c)                (p)->lpVtbl->EnumAdapterModes(p,a,b,c)
-#define IDirect3D8_GetAdapterDisplayMode(p,a,b)             (p)->lpVtbl->GetAdapterDisplayMode(p,a,b)
-#define IDirect3D8_CheckDeviceType(p,a,b,c,d,e)             (p)->lpVtbl->CheckDeviceType(p,a,b,c,d,e)
-#define IDirect3D8_CheckDeviceFormat(p,a,b,c,d,e,f)         (p)->lpVtbl->CheckDeviceFormat(p,a,b,c,d,e,f)
-#define IDirect3D8_CheckDeviceMultiSampleType(p,a,b,c,d,e)  (p)->lpVtbl->CheckDeviceMultiSampleType(p,a,b,c,d,e)
-#define IDirect3D8_CheckDepthStencilMatch(p,a,b,c,d,e)      (p)->lpVtbl->CheckDepthStencilMatch(p,a,b,c,d,e)
-#define IDirect3D8_GetDeviceCaps(p,a,b,c)                   (p)->lpVtbl->GetDeviceCaps(p,a,b,c)
-#define IDirect3D8_GetAdapterMonitor(p,a)                   (p)->lpVtbl->GetAdapterMonitor(p,a)
-#define IDirect3D8_CreateDevice(p,a,b,c,d,e,f)              (p)->lpVtbl->CreateDevice(p,a,b,c,d,e,f)
-#else
-/*** IUnknown methods ***/
-#define IDirect3D8_QueryInterface(p,a,b)                    (p)->QueryInterface(a,b)
-#define IDirect3D8_AddRef(p)                                (p)->AddRef()
-#define IDirect3D8_Release(p)                               (p)->Release()
-/*** IDirect3D8 methods ***/
-#define IDirect3D8_RegisterSoftwareDevice(p,a)              (p)->RegisterSoftwareDevice(a)
-#define IDirect3D8_GetAdapterCount(p)                       (p)->GetAdapterCount()
-#define IDirect3D8_GetAdapterIdentifier(p,a,b,c)            (p)->GetAdapterIdentifier(a,b,c)
-#define IDirect3D8_GetAdapterModeCount(p,a)                 (p)->GetAdapterModeCount(a)
-#define IDirect3D8_EnumAdapterModes(p,a,b,c)                (p)->EnumAdapterModes(a,b,c)
-#define IDirect3D8_GetAdapterDisplayMode(p,a,b)             (p)->GetAdapterDisplayMode(a,b)
-#define IDirect3D8_CheckDeviceType(p,a,b,c,d,e)             (p)->CheckDeviceType(a,b,c,d,e)
-#define IDirect3D8_CheckDeviceFormat(p,a,b,c,d,e,f)         (p)->CheckDeviceFormat(a,b,c,d,e,f)
-#define IDirect3D8_CheckDeviceMultiSampleType(p,a,b,c,d,e)  (p)->CheckDeviceMultiSampleType(a,b,c,d,e)
-#define IDirect3D8_CheckDepthStencilMatch(p,a,b,c,d,e)      (p)->CheckDepthStencilMatch(a,b,c,d,e)
-#define IDirect3D8_GetDeviceCaps(p,a,b,c)                   (p)->GetDeviceCaps(a,b,c)
-#define IDirect3D8_GetAdapterMonitor(p,a)                   (p)->GetAdapterMonitor(a)
-#define IDirect3D8_CreateDevice(p,a,b,c,d,e,f)              (p)->CreateDevice(a,b,c,d,e,f)
-#endif
-
-/*****************************************************************************
- * IDirect3DVolume8 interface
- */
-#define INTERFACE IDirect3DVolume8
-DECLARE_INTERFACE_(IDirect3DVolume8,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DVolume8 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** 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(GetContainer)(THIS_ REFIID  riid, void ** ppContainer) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3DVOLUME_DESC * pDesc) PURE;
-    STDMETHOD(LockBox)(THIS_ D3DLOCKED_BOX * pLockedVolume,CONST D3DBOX * pBox, DWORD  Flags) PURE;
-    STDMETHOD(UnlockBox)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DVolume8_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DVolume8_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DVolume8_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DVolume8 methods ***/
-#define IDirect3DVolume8_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DVolume8_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DVolume8_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DVolume8_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DVolume8_GetContainer(p,a,b)          (p)->lpVtbl->GetContainer(p,a,b)
-#define IDirect3DVolume8_GetDesc(p,a)                 (p)->lpVtbl->GetDesc(p,a)
-#define IDirect3DVolume8_LockBox(p,a,b,c)             (p)->lpVtbl->LockBox(p,a,b,c)
-#define IDirect3DVolume8_UnlockBox(p)                 (p)->lpVtbl->UnlockBox(p)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DVolume8_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DVolume8_AddRef(p)                    (p)->AddRef()
-#define IDirect3DVolume8_Release(p)                   (p)->Release()
-/*** IDirect3DVolume8 methods ***/
-#define IDirect3DVolume8_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DVolume8_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DVolume8_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
-#define IDirect3DVolume8_FreePrivateData(p,a)         (p)->FreePrivateData(a)
-#define IDirect3DVolume8_GetContainer(p,a,b)          (p)->GetContainer(a,b)
-#define IDirect3DVolume8_GetDesc(p,a)                 (p)->GetDesc(a)
-#define IDirect3DVolume8_LockBox(p,a,b,c)             (p)->LockBox(a,b,c)
-#define IDirect3DVolume8_UnlockBox(p)                 (p)->UnlockBox()
-#endif
-
-/*****************************************************************************
- * IDirect3DSwapChain8 interface
- */
-#define INTERFACE IDirect3DSwapChain8
-DECLARE_INTERFACE_(IDirect3DSwapChain8,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DSwapChain8 methods ***/
-    STDMETHOD(Present)(THIS_ CONST RECT * pSourceRect, CONST RECT * pDestRect, HWND  hDestWindowOverride,CONST RGNDATA * pDirtyRegion) PURE;
-    STDMETHOD(GetBackBuffer)(THIS_ UINT  BackBuffer, D3DBACKBUFFER_TYPE  Type, struct IDirect3DSurface8 ** ppBackBuffer) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DSwapChain8_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DSwapChain8_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DSwapChain8_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DSwapChain8 methods ***/
-#define IDirect3DSwapChain8_Present(p,a,b,c)             (p)->lpVtbl->Present(p,a,b,c)
-#define IDirect3DSwapChain8_GetBackBuffer(p,a,b,c)       (p)->lpVtbl->GetBackBuffer(p,a,b,c)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DSwapChain8_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DSwapChain8_AddRef(p)                    (p)->AddRef()
-#define IDirect3DSwapChain8_Release(p)                   (p)->Release()
-/*** IDirect3DSwapChain8 methods ***/
-#define IDirect3DSwapChain8_Present(p,a,b,c)             (p)->Present(a,b,c)
-#define IDirect3DSwapChain8_GetBackBuffer(p,a,b,c)       (p)->GetBackBuffer(a,b,c)
-#endif
-
-/*****************************************************************************
- * IDirect3DSurface8 interface
- */
-#define INTERFACE IDirect3DSurface8
-DECLARE_INTERFACE_(IDirect3DSurface8,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DSurface8 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** 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(GetContainer)(THIS_ REFIID  riid, void ** ppContainer) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3DSURFACE_DESC * pDesc) PURE;
-    STDMETHOD(LockRect)(THIS_ D3DLOCKED_RECT * pLockedRect, CONST RECT * pRect,DWORD  Flags) PURE;
-    STDMETHOD(UnlockRect)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DSurface8_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DSurface8_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DSurface8_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DSurface8 methods ***/
-#define IDirect3DSurface8_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DSurface8_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DSurface8_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DSurface8_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DSurface8_GetContainer(p,a,b)          (p)->lpVtbl->GetContainer(p,a,b)
-#define IDirect3DSurface8_GetDesc(p,a)                 (p)->lpVtbl->GetDesc(p,a)
-#define IDirect3DSurface8_LockRect(p,a,b,c)            (p)->lpVtbl->LockRect(p,a,b,c)
-#define IDirect3DSurface8_UnlockRect(p)                (p)->lpVtbl->UnlockRect(p)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DSurface8_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DSurface8_AddRef(p)                    (p)->AddRef()
-#define IDirect3DSurface8_Release(p)                   (p)->Release()
-/*** IDirect3DSurface8 methods ***/
-#define IDirect3DSurface8_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DSurface8_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DSurface8_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
-#define IDirect3DSurface8_FreePrivateData(p,a)         (p)->FreePrivateData(a)
-#define IDirect3DSurface8_GetContainer(p,a,b)          (p)->GetContainer(a,b)
-#define IDirect3DSurface8_GetDesc(p,a)                 (p)->GetDesc(a)
-#define IDirect3DSurface8_LockRect(p,a,b,c)            (p)->LockRect(a,b,c)
-#define IDirect3DSurface8_UnlockRect(p)                (p)->UnlockRect()
-#endif
-
-/*****************************************************************************
- * IDirect3DResource8 interface
- */
-#define INTERFACE IDirect3DResource8
-DECLARE_INTERFACE_(IDirect3DResource8,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource8 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** 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_(D3DRESOURCETYPE,GetType)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DResource8_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DResource8_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DResource8_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DResource8 methods ***/
-#define IDirect3DResource8_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DResource8_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DResource8_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DResource8_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DResource8_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DResource8_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
-#define IDirect3DResource8_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
-#define IDirect3DResource8_GetType(p)                   (p)->lpVtbl->GetType(p)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DResource8_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DResource8_AddRef(p)                    (p)->AddRef()
-#define IDirect3DResource8_Release(p)                   (p)->Release()
-/*** IDirect3DResource8 methods ***/
-#define IDirect3DResource8_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DResource8_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DResource8_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
-#define IDirect3DResource8_FreePrivateData(p,a)         (p)->FreePrivateData(a)
-#define IDirect3DResource8_SetPriority(p,a)             (p)->SetPriority(a)
-#define IDirect3DResource8_GetPriority(p)               (p)->GetPriority()
-#define IDirect3DResource8_PreLoad(p)                   (p)->PreLoad()
-#define IDirect3DResource8_GetType(p)                   (p)->GetType()
-#endif
-
-/*****************************************************************************
- * IDirect3DVertexBuffer8 interface
- */
-#define INTERFACE IDirect3DVertexBuffer8
-DECLARE_INTERFACE_(IDirect3DVertexBuffer8,IDirect3DResource8)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource8 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** 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_(D3DRESOURCETYPE,GetType)(THIS) PURE;
-    /*** IDirect3DVertexBuffer8 methods ***/
-    STDMETHOD(Lock)(THIS_ UINT  OffsetToLock, UINT  SizeToLock, BYTE ** ppbData, DWORD  Flags) PURE;
-    STDMETHOD(Unlock)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3DVERTEXBUFFER_DESC  * pDesc) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DVertexBuffer8_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DVertexBuffer8_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DVertexBuffer8_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DVertexBuffer8 methods: IDirect3DResource8 ***/
-#define IDirect3DVertexBuffer8_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DVertexBuffer8_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DVertexBuffer8_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DVertexBuffer8_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DVertexBuffer8_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DVertexBuffer8_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
-#define IDirect3DVertexBuffer8_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
-#define IDirect3DVertexBuffer8_GetType(p)                   (p)->lpVtbl->GetType(p)
-/*** IDirect3DVertexBuffer8 methods ***/
-#define IDirect3DVertexBuffer8_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
-#define IDirect3DVertexBuffer8_Unlock(p)                    (p)->lpVtbl->Unlock(p)
-#define IDirect3DVertexBuffer8_GetDesc(p,a)                 (p)->lpVtbl->GetDesc(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DVertexBuffer8_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DVertexBuffer8_AddRef(p)                    (p)->AddRef()
-#define IDirect3DVertexBuffer8_Release(p)                   (p)->Release()
-/*** IDirect3DVertexBuffer8 methods: IDirect3DResource8 ***/
-#define IDirect3DVertexBuffer8_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DVertexBuffer8_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DVertexBuffer8_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
-#define IDirect3DVertexBuffer8_FreePrivateData(p,a)         (p)->FreePrivateData(a)
-#define IDirect3DVertexBuffer8_SetPriority(p,a)             (p)->SetPriority(a)
-#define IDirect3DVertexBuffer8_GetPriority(p)               (p)->GetPriority()
-#define IDirect3DVertexBuffer8_PreLoad(p)                   (p)->PreLoad()
-#define IDirect3DVertexBuffer8_GetType(p)                   (p)->GetType()
-/*** IDirect3DVertexBuffer8 methods ***/
-#define IDirect3DVertexBuffer8_Lock(p,a,b,c,d)              (p)->Lock(a,b,c,d)
-#define IDirect3DVertexBuffer8_Unlock(p)                    (p)->Unlock()
-#define IDirect3DVertexBuffer8_GetDesc(p,a)                 (p)->GetDesc(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DIndexBuffer8 interface
- */
-#define INTERFACE IDirect3DIndexBuffer8
-DECLARE_INTERFACE_(IDirect3DIndexBuffer8,IDirect3DResource8)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource8 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** 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_(D3DRESOURCETYPE,GetType)(THIS) PURE;
-    /*** IDirect3DIndexBuffer8 methods ***/
-    STDMETHOD(Lock)(THIS_ UINT  OffsetToLock, UINT  SizeToLock, BYTE ** ppbData, DWORD  Flags) PURE;
-    STDMETHOD(Unlock)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3DINDEXBUFFER_DESC * pDesc) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DIndexBuffer8_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DIndexBuffer8_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DIndexBuffer8_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DIndexBuffer8 methods: IDirect3DResource8 ***/
-#define IDirect3DIndexBuffer8_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DIndexBuffer8_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DIndexBuffer8_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DIndexBuffer8_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DIndexBuffer8_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DIndexBuffer8_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
-#define IDirect3DIndexBuffer8_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
-#define IDirect3DIndexBuffer8_GetType(p)                   (p)->lpVtbl->GetType(p)
-/*** IDirect3DIndexBuffer8 methods ***/
-#define IDirect3DIndexBuffer8_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
-#define IDirect3DIndexBuffer8_Unlock(p)                    (p)->lpVtbl->Unlock(p)
-#define IDirect3DIndexBuffer8_GetDesc(p,a)                 (p)->lpVtbl->GetDesc(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DIndexBuffer8_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DIndexBuffer8_AddRef(p)                    (p)->AddRef()
-#define IDirect3DIndexBuffer8_Release(p)                   (p)->Release()
-/*** IDirect3DIndexBuffer8 methods: IDirect3DResource8 ***/
-#define IDirect3DIndexBuffer8_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DIndexBuffer8_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DIndexBuffer8_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
-#define IDirect3DIndexBuffer8_FreePrivateData(p,a)         (p)->FreePrivateData(a)
-#define IDirect3DIndexBuffer8_SetPriority(p,a)             (p)->SetPriority(a)
-#define IDirect3DIndexBuffer8_GetPriority(p)               (p)->GetPriority()
-#define IDirect3DIndexBuffer8_PreLoad(p)                   (p)->PreLoad()
-#define IDirect3DIndexBuffer8_GetType(p)                   (p)->GetType()
-/*** IDirect3DIndexBuffer8 methods ***/
-#define IDirect3DIndexBuffer8_Lock(p,a,b,c,d)              (p)->Lock(a,b,c,d)
-#define IDirect3DIndexBuffer8_Unlock(p)                    (p)->Unlock()
-#define IDirect3DIndexBuffer8_GetDesc(p,a)                 (p)->GetDesc(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DBaseTexture8 interface
- */
-#define INTERFACE IDirect3DBaseTexture8
-DECLARE_INTERFACE_(IDirect3DBaseTexture8,IDirect3DResource8)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource8 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** 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_(D3DRESOURCETYPE,GetType)(THIS) PURE;
-    /*** IDirect3DBaseTexture8 methods ***/
-    STDMETHOD_(DWORD,SetLOD)(THIS_ DWORD  LODNew) PURE;
-    STDMETHOD_(DWORD,GetLOD)(THIS) PURE;
-    STDMETHOD_(DWORD,GetLevelCount)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DBaseTexture8_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DBaseTexture8_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DBaseTexture8_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DBaseTexture8 methods: IDirect3DResource8 ***/
-#define IDirect3DBaseTexture8_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DBaseTexture8_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DBaseTexture8_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DBaseTexture8_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DBaseTexture8_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DBaseTexture8_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
-#define IDirect3DBaseTexture8_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
-#define IDirect3DBaseTexture8_GetType(p)                   (p)->lpVtbl->GetType(p)
-/*** IDirect3DBaseTexture8 methods ***/
-#define IDirect3DBaseTexture8_SetLOD(p,a)                  (p)->lpVtbl->SetLOD(p,a)
-#define IDirect3DBaseTexture8_GetLOD(p)                    (p)->lpVtbl->GetLOD(p)
-#define IDirect3DBaseTexture8_GetLevelCount(p)             (p)->lpVtbl->GetLevelCount(p)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DBaseTexture8_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DBaseTexture8_AddRef(p)                    (p)->AddRef()
-#define IDirect3DBaseTexture8_Release(p)                   (p)->Release()
-/*** IDirect3DBaseTexture8 methods: IDirect3DResource8 ***/
-#define IDirect3DBaseTexture8_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DBaseTexture8_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DBaseTexture8_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
-#define IDirect3DBaseTexture8_FreePrivateData(p,a)         (p)->FreePrivateData(a)
-#define IDirect3DBaseTexture8_SetPriority(p,a)             (p)->SetPriority(a)
-#define IDirect3DBaseTexture8_GetPriority(p)               (p)->GetPriority()
-#define IDirect3DBaseTexture8_PreLoad(p)                   (p)->PreLoad()
-#define IDirect3DBaseTexture8_GetType(p)                   (p)->GetType()
-/*** IDirect3DBaseTexture8 methods ***/
-#define IDirect3DBaseTexture8_SetLOD(p,a)                  (p)->SetLOD(a)
-#define IDirect3DBaseTexture8_GetLOD(p)                    (p)->GetLOD()
-#define IDirect3DBaseTexture8_GetLevelCount(p)             (p)->GetLevelCount()
-#endif
-
-/*****************************************************************************
- * IDirect3DCubeTexture8 interface
- */
-#define INTERFACE IDirect3DCubeTexture8
-DECLARE_INTERFACE_(IDirect3DCubeTexture8,IDirect3DBaseTexture8)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource8 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** 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_(D3DRESOURCETYPE,GetType)(THIS) PURE;
-    /*** IDirect3DBaseTexture8 methods ***/
-    STDMETHOD_(DWORD,SetLOD)(THIS_ DWORD  LODNew) PURE;
-    STDMETHOD_(DWORD,GetLOD)(THIS) PURE;
-    STDMETHOD_(DWORD,GetLevelCount)(THIS) PURE;
-    /*** IDirect3DCubeTexture8 methods ***/
-    STDMETHOD(GetLevelDesc)(THIS_ UINT  Level,D3DSURFACE_DESC * pDesc) PURE;
-    STDMETHOD(GetCubeMapSurface)(THIS_ D3DCUBEMAP_FACES  FaceType,UINT  Level,IDirect3DSurface8 ** ppCubeMapSurface) PURE;
-    STDMETHOD(LockRect)(THIS_ D3DCUBEMAP_FACES  FaceType,UINT  Level,D3DLOCKED_RECT * pLockedRect,CONST RECT * pRect,DWORD  Flags) PURE;
-    STDMETHOD(UnlockRect)(THIS_ D3DCUBEMAP_FACES  FaceType,UINT  Level) PURE;
-    STDMETHOD(AddDirtyRect)(THIS_ D3DCUBEMAP_FACES  FaceType,CONST RECT * pDirtyRect) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DCubeTexture8_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DCubeTexture8_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DCubeTexture8_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DCubeTexture8 methods: IDirect3DResource8 ***/
-#define IDirect3DCubeTexture8_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DCubeTexture8_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DCubeTexture8_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DCubeTexture8_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DCubeTexture8_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DCubeTexture8_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
-#define IDirect3DCubeTexture8_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
-#define IDirect3DCubeTexture8_GetType(p)                   (p)->lpVtbl->GetType(p)
-/*** IDirect3DCubeTexture8 methods: IDirect3DBaseTexture8 ***/
-#define IDirect3DCubeTexture8_SetLOD(p,a)                  (p)->lpVtbl->SetLOD(p,a)
-#define IDirect3DCubeTexture8_GetLOD(p)                    (p)->lpVtbl->GetLOD(p)
-#define IDirect3DCubeTexture8_GetLevelCount(p)             (p)->lpVtbl->GetLevelCount(p)
-/*** IDirect3DCubeTexture8 methods ***/
-#define IDirect3DCubeTexture8_GetLevelDesc(p,a,b)          (p)->lpVtbl->GetLevelDesc(p,a,b)
-#define IDirect3DCubeTexture8_GetCubeMapSurface(p,a,b,c)   (p)->lpVtbl->GetCubeMapSurface(p,a,b,c)
-#define IDirect3DCubeTexture8_LockRect(p,a,b,c,d,e)        (p)->lpVtbl->LockRect(p,a,b,c,d,e)
-#define IDirect3DCubeTexture8_UnlockRect(p,a,b)            (p)->lpVtbl->UnlockRect(p,a,b)
-#define IDirect3DCubeTexture8_AddDirtyRect(p,a,b)          (p)->lpVtbl->AddDirtyRect(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DCubeTexture8_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DCubeTexture8_AddRef(p)                    (p)->AddRef()
-#define IDirect3DCubeTexture8_Release(p)                   (p)->Release()
-/*** IDirect3DCubeTexture8 methods: IDirect3DResource8 ***/
-#define IDirect3DCubeTexture8_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DCubeTexture8_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DCubeTexture8_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
-#define IDirect3DCubeTexture8_FreePrivateData(p,a)         (p)->FreePrivateData(a)
-#define IDirect3DCubeTexture8_SetPriority(p,a)             (p)->SetPriority(a)
-#define IDirect3DCubeTexture8_GetPriority(p)               (p)->GetPriority()
-#define IDirect3DCubeTexture8_PreLoad(p)                   (p)->PreLoad()
-#define IDirect3DCubeTexture8_GetType(p)                   (p)->GetType()
-/*** IDirect3DCubeTexture8 methods: IDirect3DBaseTexture8 ***/
-#define IDirect3DCubeTexture8_SetLOD(p,a)                  (p)->SetLOD(a)
-#define IDirect3DCubeTexture8_GetLOD(p)                    (p)->GetLOD()
-#define IDirect3DCubeTexture8_GetLevelCount(p)             (p)->GetLevelCount()
-/*** IDirect3DCubeTexture8 methods ***/
-#define IDirect3DCubeTexture8_GetLevelDesc(p,a,b)          (p)->GetLevelDesc(a,b)
-#define IDirect3DCubeTexture8_GetCubeMapSurface(p,a,b,c)   (p)->GetCubeMapSurface(a,b,c)
-#define IDirect3DCubeTexture8_LockRect(p,a,b,c,d,e)        (p)->LockRect(a,b,c,d,e)
-#define IDirect3DCubeTexture8_UnlockRect(p,a,b)            (p)->UnlockRect(a,b)
-#define IDirect3DCubeTexture8_AddDirtyRect(p,a,b)          (p)->AddDirtyRect(a,b)
-#endif
-
-/*****************************************************************************
- * IDirect3DTexture8 interface
- */
-#define INTERFACE IDirect3DTexture8
-DECLARE_INTERFACE_(IDirect3DTexture8,IDirect3DBaseTexture8)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource8 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** 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_(D3DRESOURCETYPE,GetType)(THIS) PURE;
-    /*** IDirect3DBaseTexture8 methods ***/
-    STDMETHOD_(DWORD,SetLOD)(THIS_ DWORD  LODNew) PURE;
-    STDMETHOD_(DWORD,GetLOD)(THIS) PURE;
-    STDMETHOD_(DWORD,GetLevelCount)(THIS) PURE;
-    /*** IDirect3DTexture8 methods ***/
-    STDMETHOD(GetLevelDesc)(THIS_ UINT  Level,D3DSURFACE_DESC * pDesc) PURE;
-    STDMETHOD(GetSurfaceLevel)(THIS_ UINT  Level,IDirect3DSurface8 ** ppSurfaceLevel) PURE;
-    STDMETHOD(LockRect)(THIS_ UINT  Level,D3DLOCKED_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 IDirect3DTexture8_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DTexture8_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DTexture8_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DTexture8 methods: IDirect3DResource8 ***/
-#define IDirect3DTexture8_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DTexture8_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DTexture8_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DTexture8_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DTexture8_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DTexture8_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
-#define IDirect3DTexture8_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
-#define IDirect3DTexture8_GetType(p)                   (p)->lpVtbl->GetType(p)
-/*** IDirect3DTexture8 methods: IDirect3DBaseTexture8 ***/
-#define IDirect3DTexture8_SetLOD(p,a)                  (p)->lpVtbl->SetLOD(p,a)
-#define IDirect3DTexture8_GetLOD(p)                    (p)->lpVtbl->GetLOD(p)
-#define IDirect3DTexture8_GetLevelCount(p)             (p)->lpVtbl->GetLevelCount(p)
-/*** IDirect3DTexture8 methods ***/
-#define IDirect3DTexture8_GetLevelDesc(p,a,b)          (p)->lpVtbl->GetLevelDesc(p,a,b)
-#define IDirect3DTexture8_GetSurfaceLevel(p,a,b)       (p)->lpVtbl->GetSurfaceLevel(p,a,b)
-#define IDirect3DTexture8_LockRect(p,a,b,c,d)          (p)->lpVtbl->LockRect(p,a,b,c,d)
-#define IDirect3DTexture8_UnlockRect(p,a)              (p)->lpVtbl->UnlockRect(p,a)
-#define IDirect3DTexture8_AddDirtyRect(p,a)            (p)->lpVtbl->AddDirtyRect(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DTexture8_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DTexture8_AddRef(p)                    (p)->AddRef()
-#define IDirect3DTexture8_Release(p)                   (p)->Release()
-/*** IDirect3DTexture8 methods: IDirect3DResource8 ***/
-#define IDirect3DTexture8_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DTexture8_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DTexture8_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
-#define IDirect3DTexture8_FreePrivateData(p,a)         (p)->FreePrivateData(a)
-#define IDirect3DTexture8_SetPriority(p,a)             (p)->SetPriority(a)
-#define IDirect3DTexture8_GetPriority(p)               (p)->GetPriority()
-#define IDirect3DTexture8_PreLoad(p)                   (p)->PreLoad()
-#define IDirect3DTexture8_GetType(p)                   (p)->GetType()
-/*** IDirect3DTexture8 methods: IDirect3DBaseTexture8 ***/
-#define IDirect3DTexture8_SetLOD(p,a)                  (p)->SetLOD(a)
-#define IDirect3DTexture8_GetLOD(p)                    (p)->GetLOD()
-#define IDirect3DTexture8_GetLevelCount(p)             (p)->GetLevelCount()
-/*** IDirect3DTexture8 methods ***/
-#define IDirect3DTexture8_GetLevelDesc(p,a,b)          (p)->GetLevelDesc(a,b)
-#define IDirect3DTexture8_GetSurfaceLevel(p,a,b)       (p)->GetSurfaceLevel(a,b)
-#define IDirect3DTexture8_LockRect(p,a,b,c,d)          (p)->LockRect(a,b,c,d)
-#define IDirect3DTexture8_UnlockRect(p,a)              (p)->UnlockRect(a)
-#define IDirect3DTexture8_AddDirtyRect(p,a)            (p)->AddDirtyRect(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DVolumeTexture8 interface
- */
-#define INTERFACE IDirect3DVolumeTexture8
-DECLARE_INTERFACE_(IDirect3DVolumeTexture8,IDirect3DBaseTexture8)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource8 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** 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_(D3DRESOURCETYPE,GetType)(THIS) PURE;
-    /*** IDirect3DBaseTexture8 methods ***/
-    STDMETHOD_(DWORD,SetLOD)(THIS_ DWORD  LODNew) PURE;
-    STDMETHOD_(DWORD,GetLOD)(THIS) PURE;
-    STDMETHOD_(DWORD,GetLevelCount)(THIS) PURE;
-    /*** IDirect3DVolumeTexture8 methods ***/
-    STDMETHOD(GetLevelDesc)(THIS_ UINT  Level,D3DVOLUME_DESC * pDesc) PURE;
-    STDMETHOD(GetVolumeLevel)(THIS_ UINT  Level,IDirect3DVolume8 ** ppVolumeLevel) PURE;
-    STDMETHOD(LockBox)(THIS_ UINT  Level,D3DLOCKED_BOX * pLockedVolume,CONST D3DBOX * pBox,DWORD  Flags) PURE;
-    STDMETHOD(UnlockBox)(THIS_ UINT  Level) PURE;
-    STDMETHOD(AddDirtyBox)(THIS_ CONST D3DBOX * pDirtyBox) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DVolumeTexture8_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DVolumeTexture8_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DVolumeTexture8_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DVolumeTexture8 methods: IDirect3DResource8 ***/
-#define IDirect3DVolumeTexture8_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DVolumeTexture8_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DVolumeTexture8_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DVolumeTexture8_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DVolumeTexture8_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DVolumeTexture8_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
-#define IDirect3DVolumeTexture8_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
-#define IDirect3DVolumeTexture8_GetType(p)                   (p)->lpVtbl->GetType(p)
-/*** IDirect3DVolumeTexture8 methods: IDirect3DBaseTexture8 ***/
-#define IDirect3DVolumeTexture8_SetLOD(p,a)                  (p)->lpVtbl->SetLOD(p,a)
-#define IDirect3DVolumeTexture8_GetLOD(p)                    (p)->lpVtbl->GetLOD(p)
-#define IDirect3DVolumeTexture8_GetLevelCount(p)             (p)->lpVtbl->GetLevelCount(p)
-/*** IDirect3DVolumeTexture8 methods ***/
-#define IDirect3DVolumeTexture8_GetLevelDesc(p,a,b)          (p)->lpVtbl->GetLevelDesc(p,a,b)
-#define IDirect3DVolumeTexture8_GetVolumeLevel(p,a,b)        (p)->lpVtbl->GetVolumeLevel(p,a,b)
-#define IDirect3DVolumeTexture8_LockBox(p,a,b,c,d)           (p)->lpVtbl->LockBox(p,a,b,c,d)
-#define IDirect3DVolumeTexture8_UnlockBox(p,a)               (p)->lpVtbl->UnlockBox(p,a)
-#define IDirect3DVolumeTexture8_AddDirtyBox(p,a)             (p)->lpVtbl->AddDirtyBox(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DVolumeTexture8_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DVolumeTexture8_AddRef(p)                    (p)->AddRef()
-#define IDirect3DVolumeTexture8_Release(p)                   (p)->Release()
-/*** IDirect3DVolumeTexture8 methods: IDirect3DResource8 ***/
-#define IDirect3DVolumeTexture8_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DVolumeTexture8_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DVolumeTexture8_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
-#define IDirect3DVolumeTexture8_FreePrivateData(p,a)         (p)->FreePrivateData(a)
-#define IDirect3DVolumeTexture8_SetPriority(p,a)             (p)->SetPriority(a)
-#define IDirect3DVolumeTexture8_GetPriority(p)               (p)->GetPriority()
-#define IDirect3DVolumeTexture8_PreLoad(p)                   (p)->PreLoad()
-#define IDirect3DVolumeTexture8_GetType(p)                   (p)->GetType()
-/*** IDirect3DVolumeTexture8 methods: IDirect3DBaseTexture8 ***/
-#define IDirect3DVolumeTexture8_SetLOD(p,a)                  (p)->SetLOD(a)
-#define IDirect3DVolumeTexture8_GetLOD(p)                    (p)->GetLOD()
-#define IDirect3DVolumeTexture8_GetLevelCount(p)             (p)->GetLevelCount()
-/*** IDirect3DVolumeTexture8 methods ***/
-#define IDirect3DVolumeTexture8_GetLevelDesc(p,a,b)          (p)->GetLevelDesc(a,b)
-#define IDirect3DVolumeTexture8_GetVolumeLevel(p,a,b)        (p)->GetVolumeLevel(a,b)
-#define IDirect3DVolumeTexture8_LockBox(p,a,b,c,d)           (p)->LockBox(a,b,c,d)
-#define IDirect3DVolumeTexture8_UnlockBox(p,a)               (p)->UnlockBox(a)
-#define IDirect3DVolumeTexture8_AddDirtyBox(p,a)             (p)->AddDirtyBox(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DDevice8 interface
- */
-#define INTERFACE IDirect3DDevice8
-DECLARE_INTERFACE_(IDirect3DDevice8,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DDevice8 methods ***/
-    STDMETHOD(TestCooperativeLevel)(THIS) PURE;
-    STDMETHOD_(UINT,GetAvailableTextureMem)(THIS) PURE;
-    STDMETHOD(ResourceManagerDiscardBytes)(THIS_ DWORD  Bytes) PURE;
-    STDMETHOD(GetDirect3D)(THIS_ IDirect3D8 ** ppD3D8) PURE;
-    STDMETHOD(GetDeviceCaps)(THIS_ D3DCAPS8 * pCaps) PURE;
-    STDMETHOD(GetDisplayMode)(THIS_ D3DDISPLAYMODE * pMode) PURE;
-    STDMETHOD(GetCreationParameters)(THIS_ D3DDEVICE_CREATION_PARAMETERS  * pParameters) PURE;
-    STDMETHOD(SetCursorProperties)(THIS_ UINT  XHotSpot, UINT  YHotSpot, IDirect3DSurface8 * pCursorBitmap) PURE;
-    STDMETHOD_(void,SetCursorPosition)(THIS_ UINT  XScreenSpace, UINT  YScreenSpace,DWORD  Flags) PURE;
-    STDMETHOD_(BOOL,ShowCursor)(THIS_ BOOL  bShow) PURE;
-    STDMETHOD(CreateAdditionalSwapChain)(THIS_ D3DPRESENT_PARAMETERS * pPresentationParameters, IDirect3DSwapChain8 ** pSwapChain) PURE;
-    STDMETHOD(Reset)(THIS_ D3DPRESENT_PARAMETERS * pPresentationParameters) PURE;
-    STDMETHOD(Present)(THIS_ CONST RECT * pSourceRect,CONST RECT * pDestRect,HWND  hDestWindowOverride,CONST RGNDATA * pDirtyRegion) PURE;
-    STDMETHOD(GetBackBuffer)(THIS_ UINT  BackBuffer,D3DBACKBUFFER_TYPE  Type,IDirect3DSurface8 ** ppBackBuffer) PURE;
-    STDMETHOD(GetRasterStatus)(THIS_ D3DRASTER_STATUS * pRasterStatus) PURE;
-    STDMETHOD_(void,SetGammaRamp)(THIS_ DWORD  Flags,CONST D3DGAMMARAMP * pRamp) PURE;
-    STDMETHOD_(void,GetGammaRamp)(THIS_ D3DGAMMARAMP * pRamp) PURE;
-    STDMETHOD(CreateTexture)(THIS_ UINT  Width,UINT  Height,UINT  Levels,DWORD  Usage,D3DFORMAT  Format,D3DPOOL  Pool,IDirect3DTexture8 ** ppTexture) PURE;
-    STDMETHOD(CreateVolumeTexture)(THIS_ UINT  Width,UINT  Height,UINT  Depth,UINT  Levels,DWORD  Usage,D3DFORMAT  Format,D3DPOOL  Pool,IDirect3DVolumeTexture8 ** ppVolumeTexture) PURE;
-    STDMETHOD(CreateCubeTexture)(THIS_ UINT  EdgeLength,UINT  Levels,DWORD  Usage,D3DFORMAT  Format,D3DPOOL  Pool,IDirect3DCubeTexture8 ** ppCubeTexture) PURE;
-    STDMETHOD(CreateVertexBuffer)(THIS_ UINT  Length,DWORD  Usage,DWORD  FVF,D3DPOOL  Pool,IDirect3DVertexBuffer8 ** ppVertexBuffer) PURE;
-    STDMETHOD(CreateIndexBuffer)(THIS_ UINT  Length,DWORD  Usage,D3DFORMAT  Format,D3DPOOL  Pool,IDirect3DIndexBuffer8 ** ppIndexBuffer) PURE;
-    STDMETHOD(CreateRenderTarget)(THIS_ UINT  Width,UINT  Height,D3DFORMAT  Format,D3DMULTISAMPLE_TYPE  MultiSample,BOOL  Lockable,IDirect3DSurface8 ** ppSurface) PURE;
-    STDMETHOD(CreateDepthStencilSurface)(THIS_ UINT  Width,UINT  Height,D3DFORMAT  Format,D3DMULTISAMPLE_TYPE  MultiSample,IDirect3DSurface8 ** ppSurface) PURE;
-    STDMETHOD(CreateImageSurface)(THIS_ UINT  Width,UINT  Height,D3DFORMAT  Format,IDirect3DSurface8 ** ppSurface) PURE;
-    STDMETHOD(CopyRects)(THIS_ IDirect3DSurface8 * pSourceSurface,CONST RECT * pSourceRectsArray,UINT  cRects,IDirect3DSurface8 * pDestinationSurface,CONST POINT * pDestPointsArray) PURE;
-    STDMETHOD(UpdateTexture)(THIS_ IDirect3DBaseTexture8 * pSourceTexture,IDirect3DBaseTexture8 * pDestinationTexture) PURE;
-    STDMETHOD(GetFrontBuffer)(THIS_ IDirect3DSurface8 * pDestSurface) PURE;
-    STDMETHOD(SetRenderTarget)(THIS_ IDirect3DSurface8 * pRenderTarget,IDirect3DSurface8 * pNewZStencil) PURE;
-    STDMETHOD(GetRenderTarget)(THIS_ IDirect3DSurface8 ** ppRenderTarget) PURE;
-    STDMETHOD(GetDepthStencilSurface)(THIS_ IDirect3DSurface8 ** ppZStencilSurface) PURE;
-    STDMETHOD(BeginScene)(THIS) PURE;
-    STDMETHOD(EndScene)(THIS) PURE;
-    STDMETHOD(Clear)(THIS_ DWORD  Count,CONST D3DRECT * pRects,DWORD  Flags,D3DCOLOR  Color,float  Z,DWORD  Stencil) PURE;
-    STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE  State,CONST D3DMATRIX * pMatrix) PURE;
-    STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE  State,D3DMATRIX * pMatrix) PURE;
-    STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE  State, CONST D3DMATRIX * pMatrix) PURE;
-    STDMETHOD(SetViewport)(THIS_ CONST D3DVIEWPORT8 * pViewport) PURE;
-    STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT8 * pViewport) PURE;
-    STDMETHOD(SetMaterial)(THIS_ CONST D3DMATERIAL8 * pMaterial) PURE;
-    STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL8 *pMaterial) PURE;
-    STDMETHOD(SetLight)(THIS_ DWORD  Index,CONST D3DLIGHT8 * pLight) PURE;
-    STDMETHOD(GetLight)(THIS_ DWORD  Index,D3DLIGHT8 * pLight) PURE;
-    STDMETHOD(LightEnable)(THIS_ DWORD  Index,BOOL  Enable) PURE;
-    STDMETHOD(GetLightEnable)(THIS_ DWORD  Index,BOOL * pEnable) PURE;
-    STDMETHOD(SetClipPlane)(THIS_ DWORD  Index,CONST float * pPlane) PURE;
-    STDMETHOD(GetClipPlane)(THIS_ DWORD  Index,float * pPlane) PURE;
-    STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE  State,DWORD  Value) PURE;
-    STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE  State,DWORD * pValue) PURE;
-    STDMETHOD(BeginStateBlock)(THIS) PURE;
-    STDMETHOD(EndStateBlock)(THIS_ DWORD * pToken) PURE;
-    STDMETHOD(ApplyStateBlock)(THIS_ DWORD  Token) PURE;
-    STDMETHOD(CaptureStateBlock)(THIS_ DWORD  Token) PURE;
-    STDMETHOD(DeleteStateBlock)(THIS_ DWORD  Token) PURE;
-    STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE  Type,DWORD * pToken) PURE;
-    STDMETHOD(SetClipStatus)(THIS_ CONST D3DCLIPSTATUS8 * pClipStatus) PURE;
-    STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS8 * pClipStatus) PURE;
-    STDMETHOD(GetTexture)(THIS_ DWORD  Stage,IDirect3DBaseTexture8 ** ppTexture) PURE;
-    STDMETHOD(SetTexture)(THIS_ DWORD  Stage,IDirect3DBaseTexture8 * pTexture) PURE;
-    STDMETHOD(GetTextureStageState)(THIS_ DWORD  Stage,D3DTEXTURESTAGESTATETYPE  Type,DWORD * pValue) PURE;
-    STDMETHOD(SetTextureStageState)(THIS_ DWORD  Stage,D3DTEXTURESTAGESTATETYPE  Type,DWORD  Value) PURE;
-    STDMETHOD(ValidateDevice)(THIS_ DWORD * pNumPasses) PURE;
-    STDMETHOD(GetInfo)(THIS_ DWORD  DevInfoID,void * pDevInfoStruct,DWORD  DevInfoStructSize) PURE;
-    STDMETHOD(SetPaletteEntries)(THIS_ UINT  PaletteNumber,CONST PALETTEENTRY * pEntries) PURE;
-    STDMETHOD(GetPaletteEntries)(THIS_ UINT  PaletteNumber,PALETTEENTRY * pEntries) PURE;
-    STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT  PaletteNumber) PURE;
-    STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT  * PaletteNumber) PURE;
-    STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE  PrimitiveType,UINT  StartVertex,UINT  PrimitiveCount) PURE;
-    STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE  PrimitiveType,UINT  minIndex,UINT  NumVertices,UINT  startIndex,UINT  primCount) PURE;
-    STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE  PrimitiveType,UINT  PrimitiveCount,CONST void * pVertexStreamZeroData,UINT  VertexStreamZeroStride) PURE;
-    STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE  PrimitiveType,UINT  MinVertexIndex,UINT  NumVertexIndices,UINT  PrimitiveCount,CONST void * pIndexData,D3DFORMAT  IndexDataFormat,CONST void * pVertexStreamZeroData,UINT  VertexStreamZeroStride) PURE;
-    STDMETHOD(ProcessVertices)(THIS_ UINT  SrcStartIndex,UINT  DestIndex,UINT  VertexCount,IDirect3DVertexBuffer8 * pDestBuffer,DWORD  Flags) PURE;
-    STDMETHOD(CreateVertexShader)(THIS_ CONST DWORD * pDeclaration,CONST DWORD * pFunction,DWORD * pHandle,DWORD  Usage) PURE;
-    STDMETHOD(SetVertexShader)(THIS_ DWORD  Handle) PURE;
-    STDMETHOD(GetVertexShader)(THIS_ DWORD * pHandle) PURE;
-    STDMETHOD(DeleteVertexShader)(THIS_ DWORD  Handle) PURE;
-    STDMETHOD(SetVertexShaderConstant)(THIS_ DWORD  Register,CONST void * pConstantData,DWORD  ConstantCount) PURE;
-    STDMETHOD(GetVertexShaderConstant)(THIS_ DWORD  Register,void * pConstantData,DWORD  ConstantCount) PURE;
-    STDMETHOD(GetVertexShaderDeclaration)(THIS_ DWORD  Handle,void * pData,DWORD * pSizeOfData) PURE;
-    STDMETHOD(GetVertexShaderFunction)(THIS_ DWORD  Handle,void * pData,DWORD * pSizeOfData) PURE;
-    STDMETHOD(SetStreamSource)(THIS_ UINT  StreamNumber,IDirect3DVertexBuffer8 * pStreamData,UINT  Stride) PURE;
-    STDMETHOD(GetStreamSource)(THIS_ UINT  StreamNumber,IDirect3DVertexBuffer8 ** ppStreamData,UINT * pStride) PURE;
-    STDMETHOD(SetIndices)(THIS_ IDirect3DIndexBuffer8 * pIndexData,UINT  BaseVertexIndex) PURE;
-    STDMETHOD(GetIndices)(THIS_ IDirect3DIndexBuffer8 ** ppIndexData,UINT * pBaseVertexIndex) PURE;
-    STDMETHOD(CreatePixelShader)(THIS_ CONST DWORD * pFunction,DWORD * pHandle) PURE;
-    STDMETHOD(SetPixelShader)(THIS_ DWORD  Handle) PURE;
-    STDMETHOD(GetPixelShader)(THIS_ DWORD * pHandle) PURE;
-    STDMETHOD(DeletePixelShader)(THIS_ DWORD  Handle) PURE;
-    STDMETHOD(SetPixelShaderConstant)(THIS_ DWORD  Register,CONST void * pConstantData,DWORD  ConstantCount) PURE;
-    STDMETHOD(GetPixelShaderConstant)(THIS_ DWORD  Register,void * pConstantData,DWORD  ConstantCount) PURE;
-    STDMETHOD(GetPixelShaderFunction)(THIS_ DWORD  Handle,void * pData,DWORD * pSizeOfData) PURE;
-    STDMETHOD(DrawRectPatch)(THIS_ UINT  Handle,CONST float * pNumSegs,CONST D3DRECTPATCH_INFO * pRectPatchInfo) PURE;
-    STDMETHOD(DrawTriPatch)(THIS_ UINT  Handle,CONST float * pNumSegs,CONST D3DTRIPATCH_INFO * pTriPatchInfo) PURE;
-    STDMETHOD(DeletePatch)(THIS_ UINT  Handle) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DDevice8_QueryInterface(p,a,b)                     (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DDevice8_AddRef(p)                                 (p)->lpVtbl->AddRef(p)
-#define IDirect3DDevice8_Release(p)                                (p)->lpVtbl->Release(p)
-/*** IDirect3DDevice8 methods ***/
-#define IDirect3DDevice8_TestCooperativeLevel(p)                   (p)->lpVtbl->TestCooperativeLevel(p)
-#define IDirect3DDevice8_GetAvailableTextureMem(p)                 (p)->lpVtbl->GetAvailableTextureMem(p)
-#define IDirect3DDevice8_ResourceManagerDiscardBytes(p,a)          (p)->lpVtbl->ResourceManagerDiscardBytes(p,a)
-#define IDirect3DDevice8_GetDirect3D(p,a)                          (p)->lpVtbl->GetDirect3D(p,a)
-#define IDirect3DDevice8_GetDeviceCaps(p,a)                        (p)->lpVtbl->GetDeviceCaps(p,a)
-#define IDirect3DDevice8_GetDisplayMode(p,a)                       (p)->lpVtbl->GetDisplayMode(p,a)
-#define IDirect3DDevice8_GetCreationParameters(p,a)                (p)->lpVtbl->GetCreationParameters(p,a)
-#define IDirect3DDevice8_SetCursorProperties(p,a,b,c)              (p)->lpVtbl->SetCursorProperties(p,a,b,c)
-#define IDirect3DDevice8_SetCursorPosition(p,a,b,c)                (p)->lpVtbl->SetCursorPosition(p,a,b,c)
-#define IDirect3DDevice8_ShowCursor(p,a)                           (p)->lpVtbl->ShowCursor(p,a)
-#define IDirect3DDevice8_CreateAdditionalSwapChain(p,a,b)          (p)->lpVtbl->CreateAdditionalSwapChain(p,a,b)
-#define IDirect3DDevice8_Reset(p,a)                                (p)->lpVtbl->Reset(p,a)
-#define IDirect3DDevice8_Present(p,a,b,c,d)                        (p)->lpVtbl->Present(p,a,b,c,d)
-#define IDirect3DDevice8_GetBackBuffer(p,a,b,c)                    (p)->lpVtbl->GetBackBuffer(p,a,b,c)
-#define IDirect3DDevice8_GetRasterStatus(p,a)                      (p)->lpVtbl->GetRasterStatus(p,a)
-#define IDirect3DDevice8_SetGammaRamp(p,a,b)                       (p)->lpVtbl->SetGammaRamp(p,a,b)
-#define IDirect3DDevice8_GetGammaRamp(p,a)                         (p)->lpVtbl->GetGammaRamp(p,a)
-#define IDirect3DDevice8_CreateTexture(p,a,b,c,d,e,f,g)            (p)->lpVtbl->CreateTexture(p,a,b,c,d,e,f,g)
-#define IDirect3DDevice8_CreateVolumeTexture(p,a,b,c,d,e,f,g,h)    (p)->lpVtbl->CreateVolumeTexture(p,a,b,c,d,e,f,g,h)
-#define IDirect3DDevice8_CreateCubeTexture(p,a,b,c,d,e,f)          (p)->lpVtbl->CreateCubeTexture(p,a,b,c,d,e,f)
-#define IDirect3DDevice8_CreateVertexBuffer(p,a,b,c,d,e)           (p)->lpVtbl->CreateVertexBuffer(p,a,b,c,d,e)
-#define IDirect3DDevice8_CreateIndexBuffer(p,a,b,c,d,e)            (p)->lpVtbl->CreateIndexBuffer(p,a,b,c,d,e)
-#define IDirect3DDevice8_CreateRenderTarget(p,a,b,c,d,e,f)         (p)->lpVtbl->CreateRenderTarget(p,a,b,c,d,e,f)
-#define IDirect3DDevice8_CreateDepthStencilSurface(p,a,b,c,d,e)    (p)->lpVtbl->CreateDepthStencilSurface(p,a,b,c,d,e)
-#define IDirect3DDevice8_CreateImageSurface(p,a,b,c,d)             (p)->lpVtbl->CreateImageSurface(p,a,b,c,d)
-#define IDirect3DDevice8_CopyRects(p,a,b,c,d,e)                    (p)->lpVtbl->CopyRects(p,a,b,c,d,e)
-#define IDirect3DDevice8_UpdateTexture(p,a,b)                      (p)->lpVtbl->UpdateTexture(p,a,b)
-#define IDirect3DDevice8_GetFrontBuffer(p,a)                       (p)->lpVtbl->GetFrontBuffer(p,a)
-#define IDirect3DDevice8_SetRenderTarget(p,a,b)                    (p)->lpVtbl->SetRenderTarget(p,a,b)
-#define IDirect3DDevice8_GetRenderTarget(p,a)                      (p)->lpVtbl->GetRenderTarget(p,a)
-#define IDirect3DDevice8_GetDepthStencilSurface(p,a)               (p)->lpVtbl->GetDepthStencilSurface(p,a)
-#define IDirect3DDevice8_BeginScene(p)                             (p)->lpVtbl->BeginScene(p)
-#define IDirect3DDevice8_EndScene(p)                               (p)->lpVtbl->EndScene(p)
-#define IDirect3DDevice8_Clear(p,a,b,c,d,e,f)                      (p)->lpVtbl->Clear(p,a,b,c,d,e,f)
-#define IDirect3DDevice8_SetTransform(p,a,b)                       (p)->lpVtbl->SetTransform(p,a,b)
-#define IDirect3DDevice8_GetTransform(p,a,b)                       (p)->lpVtbl->GetTransform(p,a,b)
-#define IDirect3DDevice8_MultiplyTransform(p,a,b)                  (p)->lpVtbl->MultiplyTransform(p,a,b)
-#define IDirect3DDevice8_SetViewport(p,a)                          (p)->lpVtbl->SetViewport(p,a)
-#define IDirect3DDevice8_GetViewport(p,a)                          (p)->lpVtbl->GetViewport(p,a)
-#define IDirect3DDevice8_SetMaterial(p,a)                          (p)->lpVtbl->SetMaterial(p,a)
-#define IDirect3DDevice8_GetMaterial(p,a)                          (p)->lpVtbl->GetMaterial(p,a)
-#define IDirect3DDevice8_SetLight(p,a,b)                           (p)->lpVtbl->SetLight(p,a,b)
-#define IDirect3DDevice8_GetLight(p,a,b)                           (p)->lpVtbl->GetLight(p,a,b)
-#define IDirect3DDevice8_LightEnable(p,a,b)                        (p)->lpVtbl->LightEnable(p,a,b)
-#define IDirect3DDevice8_GetLightEnable(p,a,b)                     (p)->lpVtbl->GetLightEnable(p,a,b)
-#define IDirect3DDevice8_SetClipPlane(p,a,b)                       (p)->lpVtbl->SetClipPlane(p,a,b)
-#define IDirect3DDevice8_GetClipPlane(p,a,b)                       (p)->lpVtbl->GetClipPlane(p,a,b)
-#define IDirect3DDevice8_SetRenderState(p,a,b)                     (p)->lpVtbl->SetRenderState(p,a,b)
-#define IDirect3DDevice8_GetRenderState(p,a,b)                     (p)->lpVtbl->GetRenderState(p,a,b)
-#define IDirect3DDevice8_BeginStateBlock(p)                        (p)->lpVtbl->BeginStateBlock(p)
-#define IDirect3DDevice8_EndStateBlock(p,a)                        (p)->lpVtbl->EndStateBlock(p,a)
-#define IDirect3DDevice8_ApplyStateBlock(p,a)                      (p)->lpVtbl->ApplyStateBlock(p,a)
-#define IDirect3DDevice8_CaptureStateBlock(p,a)                    (p)->lpVtbl->CaptureStateBlock(p,a)
-#define IDirect3DDevice8_DeleteStateBlock(p,a)                     (p)->lpVtbl->DeleteStateBlock(p,a)
-#define IDirect3DDevice8_CreateStateBlock(p,a,b)                   (p)->lpVtbl->CreateStateBlock(p,a,b)
-#define IDirect3DDevice8_SetClipStatus(p,a)                        (p)->lpVtbl->SetClipStatus(p,a)
-#define IDirect3DDevice8_GetClipStatus(p,a)                        (p)->lpVtbl->GetClipStatus(p,a)
-#define IDirect3DDevice8_GetTexture(p,a,b)                         (p)->lpVtbl->GetTexture(p,a,b)
-#define IDirect3DDevice8_SetTexture(p,a,b)                         (p)->lpVtbl->SetTexture(p,a,b)
-#define IDirect3DDevice8_GetTextureStageState(p,a,b,c)             (p)->lpVtbl->GetTextureStageState(p,a,b,c)
-#define IDirect3DDevice8_SetTextureStageState(p,a,b,c)             (p)->lpVtbl->SetTextureStageState(p,a,b,c)
-#define IDirect3DDevice8_ValidateDevice(p,a)                       (p)->lpVtbl->ValidateDevice(p,a)
-#define IDirect3DDevice8_GetInfo(p,a,b,c)                          (p)->lpVtbl->GetInfo(p,a,b,c)
-#define IDirect3DDevice8_SetPaletteEntries(p,a,b)                  (p)->lpVtbl->SetPaletteEntries(p,a,b)
-#define IDirect3DDevice8_GetPaletteEntries(p,a,b)                  (p)->lpVtbl->GetPaletteEntries(p,a,b)
-#define IDirect3DDevice8_SetCurrentTexturePalette(p,a)             (p)->lpVtbl->SetCurrentTexturePalette(p,a)
-#define IDirect3DDevice8_GetCurrentTexturePalette(p,a)             (p)->lpVtbl->GetCurrentTexturePalette(p,a)
-#define IDirect3DDevice8_DrawPrimitive(p,a,b,c)                    (p)->lpVtbl->DrawPrimitive(p,a,b,c)
-#define IDirect3DDevice8_DrawIndexedPrimitive(p,a,b,c,d,e)         (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e)
-#define IDirect3DDevice8_DrawPrimitiveUP(p,a,b,c,d)                (p)->lpVtbl->DrawPrimitiveUP(p,a,b,c,d)
-#define IDirect3DDevice8_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h)
-#define IDirect3DDevice8_ProcessVertices(p,a,b,c,d,e)              (p)->lpVtbl->processVertices(p,a,b,c,d,e)
-#define IDirect3DDevice8_CreateVertexShader(p,a,b,c,d)             (p)->lpVtbl->CreateVertexShader(p,a,b,c,d)
-#define IDirect3DDevice8_SetVertexShader(p,a)                      (p)->lpVtbl->SetVertexShader(p,a)
-#define IDirect3DDevice8_GetVertexShader(p,a)                      (p)->lpVtbl->GetVertexShader(p,a)
-#define IDirect3DDevice8_DeleteVertexShader(p,a)                   (p)->lpVtbl->DeleteVertexShader(p,a)
-#define IDirect3DDevice8_SetVertexShaderConstant(p,a,b,c)          (p)->lpVtbl->SetVertexShaderConstant(p,a,b,c)
-#define IDirect3DDevice8_GetVertexShaderConstant(p,a,b,c)          (p)->lpVtbl->GetVertexShaderConstant(p,a,b,c)
-#define IDirect3DDevice8_GetVertexShaderDeclaration(p,a,b,c)       (p)->lpVtbl->GetVertexShaderDeclaration(p,a,b,c)
-#define IDirect3DDevice8_GetVertexShaderFunction(p,a,b,c)          (p)->lpVtbl->GetVertexShaderFunction(p,a,b,c)
-#define IDirect3DDevice8_SetStreamSource(p,a,b,c)                  (p)->lpVtbl->SetStreamSource(p,a,b,c)
-#define IDirect3DDevice8_GetStreamSource(p,a,b,c)                  (p)->lpVtbl->GetStreamSource(p,a,b,c)
-#define IDirect3DDevice8_SetIndices(p,a,b)                         (p)->lpVtbl->SetIndices(p,a,b)
-#define IDirect3DDevice8_GetIndices(p,a,b)                         (p)->lpVtbl->GetIndices(p,a,b)
-#define IDirect3DDevice8_CreatePixelShader(p,a,b)                  (p)->lpVtbl->CreatePixelShader(p,a,b)
-#define IDirect3DDevice8_SetPixelShader(p,a)                       (p)->lpVtbl->SetPixelShader(p,a)
-#define IDirect3DDevice8_GetPixelShader(p,a)                       (p)->lpVtbl->GetPixelShader(p,a)
-#define IDirect3DDevice8_DeletePixelShader(p,a)                    (p)->lpVtbl->DeletePixelShader(p,a)
-#define IDirect3DDevice8_SetPixelShaderConstant(p,a,b,c)           (p)->lpVtbl->SetPixelShaderConstant(p,a,b,c)
-#define IDirect3DDevice8_GetPixelShaderConstant(p,a,b,c)           (p)->lpVtbl->GetPixelShaderConstant(p,a,b,c)
-#define IDirect3DDevice8_GetPixelShaderFunction(p,a,b,c)           (p)->lpVtbl->GetPixelShaderFunction(p,a,b,c)
-#define IDirect3DDevice8_DrawRectPatch(p,a,b,c)                    (p)->lpVtbl->DrawRectPatch(p,a,b,c)
-#define IDirect3DDevice8_DrawTriPatch(p,a,b,c)                     (p)->lpVtbl->DrawTriPatch(p,a,b,c)
-#define IDirect3DDevice8_DeletePatch(p,a)                          (p)->lpVtbl->DeletePatch(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DDevice8_QueryInterface(p,a,b)                     (p)->QueryInterface(a,b)
-#define IDirect3DDevice8_AddRef(p)                                 (p)->AddRef()
-#define IDirect3DDevice8_Release(p)                                (p)->Release()
-/*** IDirect3DDevice8 methods ***/
-#define IDirect3DDevice8_TestCooperativeLevel(p)                   (p)->TestCooperativeLevel()
-#define IDirect3DDevice8_GetAvailableTextureMem(p)                 (p)->GetAvailableTextureMem()
-#define IDirect3DDevice8_ResourceManagerDiscardBytes(p,a)          (p)->ResourceManagerDiscardBytes(a)
-#define IDirect3DDevice8_GetDirect3D(p,a)                          (p)->GetDirect3D(a)
-#define IDirect3DDevice8_GetDeviceCaps(p,a)                        (p)->GetDeviceCaps(a)
-#define IDirect3DDevice8_GetDisplayMode(p,a)                       (p)->GetDisplayMode(a)
-#define IDirect3DDevice8_GetCreationParameters(p,a)                (p)->GetCreationParameters(a)
-#define IDirect3DDevice8_SetCursorProperties(p,a,b,c)              (p)->SetCursorProperties(a,b,c)
-#define IDirect3DDevice8_SetCursorPosition(p,a,b,c)                (p)->SetCursorPosition(a,b,c)
-#define IDirect3DDevice8_ShowCursor(p,a)                           (p)->ShowCursor(a)
-#define IDirect3DDevice8_CreateAdditionalSwapChain(p,a,b)          (p)->CreateAdditionalSwapChain(a,b)
-#define IDirect3DDevice8_Reset(p,a)                                (p)->Reset(a)
-#define IDirect3DDevice8_Present(p,a,b,c,d)                        (p)->Present(a,b,c,d)
-#define IDirect3DDevice8_GetBackBuffer(p,a,b,c)                    (p)->GetBackBuffer(a,b,c)
-#define IDirect3DDevice8_GetRasterStatus(p,a)                      (p)->GetRasterStatus(a)
-#define IDirect3DDevice8_SetGammaRamp(p,a,b)                       (p)->SetGammaRamp(a,b)
-#define IDirect3DDevice8_GetGammaRamp(p,a)                         (p)->GetGammaRamp(a)
-#define IDirect3DDevice8_CreateTexture(p,a,b,c,d,e,f,g)            (p)->CreateTexture(a,b,c,d,e,f,g)
-#define IDirect3DDevice8_CreateVolumeTexture(p,a,b,c,d,e,f,g,h)    (p)->CreateVolumeTexture(a,b,c,d,e,f,g,h)
-#define IDirect3DDevice8_CreateCubeTexture(p,a,b,c,d,e,f)          (p)->CreateCubeTexture(a,b,c,d,e,f)
-#define IDirect3DDevice8_CreateVertexBuffer(p,a,b,c,d,e)           (p)->CreateVertexBuffer(a,b,c,d,e)
-#define IDirect3DDevice8_CreateIndexBuffer(p,a,b,c,d,e)            (p)->CreateIndexBuffer(a,b,c,d,e)
-#define IDirect3DDevice8_CreateRenderTarget(p,a,b,c,d,e,f)         (p)->CreateRenderTarget(a,b,c,d,e,f)
-#define IDirect3DDevice8_CreateDepthStencilSurface(p,a,b,c,d,e)    (p)->CreateDepthStencilSurface(a,b,c,d,e)
-#define IDirect3DDevice8_CreateImageSurface(p,a,b,c,d)             (p)->CreateImageSurface(a,b,c,d)
-#define IDirect3DDevice8_CopyRects(p,a,b,c,d,e)                    (p)->CopyRects(a,b,c,d,e)
-#define IDirect3DDevice8_UpdateTexture(p,a,b)                      (p)->UpdateTexture(a,b)
-#define IDirect3DDevice8_GetFrontBuffer(p,a)                       (p)->GetFrontBuffer(a)
-#define IDirect3DDevice8_SetRenderTarget(p,a,b)                    (p)->SetRenderTarget(a,b)
-#define IDirect3DDevice8_GetRenderTarget(p,a)                      (p)->GetRenderTarget(a)
-#define IDirect3DDevice8_GetDepthStencilSurface(p,a)               (p)->GetDepthStencilSurface(a)
-#define IDirect3DDevice8_BeginScene(p)                             (p)->BeginScene()
-#define IDirect3DDevice8_EndScene(p)                               (p)->EndScene()
-#define IDirect3DDevice8_Clear(p,a,b,c,d,e,f)                      (p)->Clear(a,b,c,d,e,f)
-#define IDirect3DDevice8_SetTransform(p,a,b)                       (p)->SetTransform(a,b)
-#define IDirect3DDevice8_GetTransform(p,a,b)                       (p)->GetTransform(a,b)
-#define IDirect3DDevice8_MultiplyTransform(p,a,b)                  (p)->MultiplyTransform(a,b)
-#define IDirect3DDevice8_SetViewport(p,a)                          (p)->SetViewport(a)
-#define IDirect3DDevice8_GetViewport(p,a)                          (p)->GetViewport(a)
-#define IDirect3DDevice8_SetMaterial(p,a)                          (p)->SetMaterial(a)
-#define IDirect3DDevice8_GetMaterial(p,a)                          (p)->GetMaterial(a)
-#define IDirect3DDevice8_SetLight(p,a,b)                           (p)->SetLight(a,b)
-#define IDirect3DDevice8_GetLight(p,a,b)                           (p)->GetLight(a,b)
-#define IDirect3DDevice8_LightEnable(p,a,b)                        (p)->LightEnable(a,b)
-#define IDirect3DDevice8_GetLightEnable(p,a,b)                     (p)->GetLightEnable(a,b)
-#define IDirect3DDevice8_SetClipPlane(p,a,b)                       (p)->SetClipPlane(a,b)
-#define IDirect3DDevice8_GetClipPlane(p,a,b)                       (p)->GetClipPlane(a,b)
-#define IDirect3DDevice8_SetRenderState(p,a,b)                     (p)->SetRenderState(a,b)
-#define IDirect3DDevice8_GetRenderState(p,a,b)                     (p)->GetRenderState(a,b)
-#define IDirect3DDevice8_BeginStateBlock(p)                        (p)->BeginStateBlock()
-#define IDirect3DDevice8_EndStateBlock(p,a)                        (p)->EndStateBlock(a)
-#define IDirect3DDevice8_ApplyStateBlock(p,a)                      (p)->ApplyStateBlock(a)
-#define IDirect3DDevice8_CaptureStateBlock(p,a)                    (p)->CaptureStateBlock(a)
-#define IDirect3DDevice8_DeleteStateBlock(p,a)                     (p)->DeleteStateBlock(a)
-#define IDirect3DDevice8_CreateStateBlock(p,a,b)                   (p)->CreateStateBlock(a,b)
-#define IDirect3DDevice8_SetClipStatus(p,a)                        (p)->SetClipStatus(a)
-#define IDirect3DDevice8_GetClipStatus(p,a)                        (p)->GetClipStatus(a)
-#define IDirect3DDevice8_GetTexture(p,a,b)                         (p)->GetTexture(a,b)
-#define IDirect3DDevice8_SetTexture(p,a,b)                         (p)->SetTexture(a,b)
-#define IDirect3DDevice8_GetTextureStageState(p,a,b,c)             (p)->GetTextureStageState(a,b,c)
-#define IDirect3DDevice8_SetTextureStageState(p,a,b,c)             (p)->SetTextureStageState(a,b,c)
-#define IDirect3DDevice8_ValidateDevice(p,a)                       (p)->ValidateDevice(a)
-#define IDirect3DDevice8_GetInfo(p,a,b,c)                          (p)->GetInfo(a,b,c)
-#define IDirect3DDevice8_SetPaletteEntries(p,a,b)                  (p)->SetPaletteEntries(a,b)
-#define IDirect3DDevice8_GetPaletteEntries(p,a,b)                  (p)->GetPaletteEntries(a,b)
-#define IDirect3DDevice8_SetCurrentTexturePalette(p,a)             (p)->SetCurrentTexturePalette(a)
-#define IDirect3DDevice8_GetCurrentTexturePalette(p,a)             (p)->GetCurrentTexturePalette(a)
-#define IDirect3DDevice8_DrawPrimitive(p,a,b,c)                    (p)->DrawPrimitive(a,b,c)
-#define IDirect3DDevice8_DrawIndexedPrimitive(p,a,b,c,d,e)         (p)->DrawIndexedPrimitive(a,b,c,d,e)
-#define IDirect3DDevice8_DrawPrimitiveUP(p,a,b,c,d)                (p)->DrawPrimitiveUP(a,b,c,d)
-#define IDirect3DDevice8_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->DrawIndexedPrimitiveUP(a,b,c,d,e,f,g,h)
-#define IDirect3DDevice8_ProcessVertices(p,a,b,c,d,e)              (p)->processVertices(a,b,c,d,e)
-#define IDirect3DDevice8_CreateVertexShader(p,a,b,c,d)             (p)->CreateVertexShader(a,b,c,d)
-#define IDirect3DDevice8_SetVertexShader(p,a)                      (p)->SetVertexShader(a)
-#define IDirect3DDevice8_GetVertexShader(p,a)                      (p)->GetVertexShader(a)
-#define IDirect3DDevice8_DeleteVertexShader(p,a)                   (p)->DeleteVertexShader(a)
-#define IDirect3DDevice8_SetVertexShaderConstant(p,a,b,c)          (p)->SetVertexShaderConstant(a,b,c)
-#define IDirect3DDevice8_GetVertexShaderConstant(p,a,b,c)          (p)->GetVertexShaderConstant(a,b,c)
-#define IDirect3DDevice8_GetVertexShaderDeclaration(p,a,b,c)       (p)->GetVertexShaderDeclaration(a,b,c)
-#define IDirect3DDevice8_GetVertexShaderFunction(p,a,b,c)          (p)->GetVertexShaderFunction(a,b,c)
-#define IDirect3DDevice8_SetStreamSource(p,a,b,c)                  (p)->SetStreamSource(a,b,c)
-#define IDirect3DDevice8_GetStreamSource(p,a,b,c)                  (p)->GetStreamSource(a,b,c)
-#define IDirect3DDevice8_SetIndices(p,a,b)                         (p)->SetIndices(a,b)
-#define IDirect3DDevice8_GetIndices(p,a,b)                         (p)->GetIndices(a,b)
-#define IDirect3DDevice8_CreatePixelShader(p,a,b)                  (p)->CreatePixelShader(a,b)
-#define IDirect3DDevice8_SetPixelShader(p,a)                       (p)->SetPixelShader(a)
-#define IDirect3DDevice8_GetPixelShader(p,a)                       (p)->GetPixelShader(a)
-#define IDirect3DDevice8_DeletePixelShader(p,a)                    (p)->DeletePixelShader(a)
-#define IDirect3DDevice8_SetPixelShaderConstant(p,a,b,c)           (p)->SetPixelShaderConstant(a,b,c)
-#define IDirect3DDevice8_GetPixelShaderConstant(p,a,b,c)           (p)->GetPixelShaderConstant(a,b,c)
-#define IDirect3DDevice8_GetPixelShaderFunction(p,a,b,c)           (p)->GetPixelShaderFunction(a,b,c)
-#define IDirect3DDevice8_DrawRectPatch(p,a,b,c)                    (p)->DrawRectPatch(a,b,c)
-#define IDirect3DDevice8_DrawTriPatch(p,a,b,c)                     (p)->DrawTriPatch(a,b,c)
-#define IDirect3DDevice8_DeletePatch(p,a)                          (p)->DeletePatch(a)
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif  /* defined(__cplusplus) */
-
-/* Define the main entrypoint as well */
-IDirect3D8* WINAPI Direct3DCreate8(UINT SDKVersion);
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif /* defined(__cplusplus) */
-
-#endif /* __WINE_D3D8_H */
diff --git a/misc/builddeps/win32/dx/include/d3d8caps.h b/misc/builddeps/win32/dx/include/d3d8caps.h
deleted file mode 100644 (file)
index 019d346..0000000
+++ /dev/null
@@ -1,286 +0,0 @@
-/*
- * Copyright (C) 2002 Jason Edmeades
- *
- * 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_D3D8CAPS_H
-#define __WINE_D3D8CAPS_H
-
-/*
- * Definitions
- */
-
-#define D3DCAPS_READ_SCANLINE 0x20000
-
-#define D3DCURSORCAPS_COLOR   1
-#define D3DCURSORCAPS_LOWRES  2
-
-#define D3DDEVCAPS_EXECUTESYSTEMMEMORY     0x0000010
-#define D3DDEVCAPS_EXECUTEVIDEOMEMORY      0x0000020
-#define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY    0x0000040
-#define D3DDEVCAPS_TLVERTEXVIDEOMEMORY     0x0000080
-#define D3DDEVCAPS_TEXTURESYSTEMMEMORY     0x0000100
-#define D3DDEVCAPS_TEXTUREVIDEOMEMORY      0x0000200
-#define D3DDEVCAPS_DRAWPRIMTLVERTEX        0x0000400
-#define D3DDEVCAPS_CANRENDERAFTERFLIP      0x0000800
-#define D3DDEVCAPS_TEXTURENONLOCALVIDMEM   0x0001000
-#define D3DDEVCAPS_DRAWPRIMITIVES2         0x0002000
-#define D3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x0004000
-#define D3DDEVCAPS_DRAWPRIMITIVES2EX       0x0008000
-#define D3DDEVCAPS_HWTRANSFORMANDLIGHT     0x0010000
-#define D3DDEVCAPS_CANBLTSYSTONONLOCAL     0x0020000
-#define D3DDEVCAPS_HWRASTERIZATION         0x0080000
-#define D3DDEVCAPS_PUREDEVICE              0x0100000
-#define D3DDEVCAPS_QUINTICRTPATCHES        0x0200000
-#define D3DDEVCAPS_RTPATCHES               0x0400000
-#define D3DDEVCAPS_RTPATCHHANDLEZERO       0x0800000
-#define D3DDEVCAPS_NPATCHES                0x1000000
-
-#define D3DFVFCAPS_TEXCOORDCOUNTMASK  0x00FFFF
-#define D3DFVFCAPS_DONOTSTRIPELEMENTS 0x080000
-#define D3DFVFCAPS_PSIZE              0x100000
-
-#define D3DLINECAPS_TEXTURE           0x01
-#define D3DLINECAPS_ZTEST             0x02
-#define D3DLINECAPS_BLEND             0x04
-#define D3DLINECAPS_ALPHACMP          0x08
-#define D3DLINECAPS_FOG               0x10
-
-#define D3DPBLENDCAPS_ZERO            0x0001
-#define D3DPBLENDCAPS_ONE             0x0002
-#define D3DPBLENDCAPS_SRCCOLOR        0x0004
-#define D3DPBLENDCAPS_INVSRCCOLOR     0x0008
-#define D3DPBLENDCAPS_SRCALPHA        0x0010
-#define D3DPBLENDCAPS_INVSRCALPHA     0x0020
-#define D3DPBLENDCAPS_DESTALPHA       0x0040
-#define D3DPBLENDCAPS_INVDESTALPHA    0x0080
-#define D3DPBLENDCAPS_DESTCOLOR       0x0100
-#define D3DPBLENDCAPS_INVDESTCOLOR    0x0200
-#define D3DPBLENDCAPS_SRCALPHASAT     0x0400
-#define D3DPBLENDCAPS_BOTHSRCALPHA    0x0800
-#define D3DPBLENDCAPS_BOTHINVSRCALPHA 0x1000
-
-#define D3DPCMPCAPS_NEVER        0x01
-#define D3DPCMPCAPS_LESS         0x02
-#define D3DPCMPCAPS_EQUAL        0x04
-#define D3DPCMPCAPS_LESSEQUAL    0x08
-#define D3DPCMPCAPS_GREATER      0x10
-#define D3DPCMPCAPS_NOTEQUAL     0x20
-#define D3DPCMPCAPS_GREATEREQUAL 0x40
-#define D3DPCMPCAPS_ALWAYS       0x80
-
-#define D3DPMISCCAPS_MASKZ                 0x0002
-#define D3DPMISCCAPS_LINEPATTERNREP        0x0004
-#define D3DPMISCCAPS_CULLNONE              0x0010
-#define D3DPMISCCAPS_CULLCW                0x0020
-#define D3DPMISCCAPS_CULLCCW               0x0040
-#define D3DPMISCCAPS_COLORWRITEENABLE      0x0080
-#define D3DPMISCCAPS_CLIPPLANESCALEDPOINTS 0x0100
-#define D3DPMISCCAPS_CLIPTLVERTS           0x0200
-#define D3DPMISCCAPS_TSSARGTEMP            0x0400
-#define D3DPMISCCAPS_BLENDOP               0x0800
-
-#define D3DPRASTERCAPS_DITHER                     0x00000001
-#define D3DPRASTERCAPS_PAT                        0x00000008
-#define D3DPRASTERCAPS_ZTEST                      0x00000010
-#define D3DPRASTERCAPS_FOGVERTEX                  0x00000080
-#define D3DPRASTERCAPS_FOGTABLE                   0x00000100
-#define D3DPRASTERCAPS_ANTIALIASEDGES             0x00001000
-#define D3DPRASTERCAPS_MIPMAPLODBIAS              0x00002000
-#define D3DPRASTERCAPS_ZBIAS                      0x00004000
-#define D3DPRASTERCAPS_ZBUFFERLESSHSR             0x00008000
-#define D3DPRASTERCAPS_FOGRANGE                   0x00010000
-#define D3DPRASTERCAPS_ANISOTROPY                 0x00020000
-#define D3DPRASTERCAPS_WBUFFER                    0x00040000
-#define D3DPRASTERCAPS_WFOG                       0x00100000
-#define D3DPRASTERCAPS_ZFOG                       0x00200000
-#define D3DPRASTERCAPS_COLORPERSPECTIVE           0x00400000
-#define D3DPRASTERCAPS_STRETCHBLTMULTISAMPLE      0x00800000
-
-#define D3DPRESENT_INTERVAL_DEFAULT               0x00000000
-#define D3DPRESENT_INTERVAL_ONE                   0x00000001
-#define D3DPRESENT_INTERVAL_TWO                   0x00000002
-#define D3DPRESENT_INTERVAL_THREE                 0x00000004
-#define D3DPRESENT_INTERVAL_FOUR                  0x00000008
-#define D3DPRESENT_INTERVAL_IMMEDIATE             0x80000000
-
-#define D3DPSHADECAPS_COLORGOURAUDRGB             0x00008
-#define D3DPSHADECAPS_SPECULARGOURAUDRGB          0x00200
-#define D3DPSHADECAPS_ALPHAGOURAUDBLEND           0x04000
-#define D3DPSHADECAPS_FOGGOURAUD                  0x80000
-
-#define D3DPTADDRESSCAPS_WRAP                     0x01
-#define D3DPTADDRESSCAPS_MIRROR                   0x02
-#define D3DPTADDRESSCAPS_CLAMP                    0x04
-#define D3DPTADDRESSCAPS_BORDER                   0x08
-#define D3DPTADDRESSCAPS_INDEPENDENTUV            0x10
-#define D3DPTADDRESSCAPS_MIRRORONCE               0x20
-
-#define D3DPTEXTURECAPS_PERSPECTIVE              0x00001
-#define D3DPTEXTURECAPS_POW2                     0x00002
-#define D3DPTEXTURECAPS_ALPHA                    0x00004
-#define D3DPTEXTURECAPS_SQUAREONLY               0x00020
-#define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 0x00040
-#define D3DPTEXTURECAPS_ALPHAPALETTE             0x00080
-#define D3DPTEXTURECAPS_NONPOW2CONDITIONAL       0x00100
-#define D3DPTEXTURECAPS_PROJECTED                0x00400
-#define D3DPTEXTURECAPS_CUBEMAP                  0x00800
-#define D3DPTEXTURECAPS_VOLUMEMAP                0x02000
-#define D3DPTEXTURECAPS_MIPMAP                   0x04000
-#define D3DPTEXTURECAPS_MIPVOLUMEMAP             0x08000
-#define D3DPTEXTURECAPS_MIPCUBEMAP               0x10000
-#define D3DPTEXTURECAPS_CUBEMAP_POW2             0x20000
-#define D3DPTEXTURECAPS_VOLUMEMAP_POW2           0x40000
-
-#define D3DPTFILTERCAPS_MINFPOINT                0x00000100
-#define D3DPTFILTERCAPS_MINFLINEAR               0x00000200
-#define D3DPTFILTERCAPS_MINFANISOTROPIC          0x00000400
-#define D3DPTFILTERCAPS_MIPFPOINT                0x00010000
-#define D3DPTFILTERCAPS_MIPFLINEAR               0x00020000
-#define D3DPTFILTERCAPS_MAGFPOINT                0x01000000
-#define D3DPTFILTERCAPS_MAGFLINEAR               0x02000000
-#define D3DPTFILTERCAPS_MAGFANISOTROPIC          0x04000000
-#define D3DPTFILTERCAPS_MAGFAFLATCUBIC           0x08000000
-#define D3DPTFILTERCAPS_MAGFGAUSSIANCUBIC        0x10000000
-
-#define D3DSTENCILCAPS_KEEP                      0x01
-#define D3DSTENCILCAPS_ZERO                      0x02
-#define D3DSTENCILCAPS_REPLACE                   0x04
-#define D3DSTENCILCAPS_INCRSAT                   0x08
-#define D3DSTENCILCAPS_DECRSAT                   0x10
-#define D3DSTENCILCAPS_INVERT                    0x20
-#define D3DSTENCILCAPS_INCR                      0x40
-#define D3DSTENCILCAPS_DECR                      0x80
-
-#define D3DTEXOPCAPS_DISABLE                     0x0000001
-#define D3DTEXOPCAPS_SELECTARG1                  0x0000002
-#define D3DTEXOPCAPS_SELECTARG2                  0x0000004
-#define D3DTEXOPCAPS_MODULATE                    0x0000008
-#define D3DTEXOPCAPS_MODULATE2X                  0x0000010
-#define D3DTEXOPCAPS_MODULATE4X                  0x0000020
-#define D3DTEXOPCAPS_ADD                         0x0000040
-#define D3DTEXOPCAPS_ADDSIGNED                   0x0000080
-#define D3DTEXOPCAPS_ADDSIGNED2X                 0x0000100
-#define D3DTEXOPCAPS_SUBTRACT                    0x0000200
-#define D3DTEXOPCAPS_ADDSMOOTH                   0x0000400
-#define D3DTEXOPCAPS_BLENDDIFFUSEALPHA           0x0000800
-#define D3DTEXOPCAPS_BLENDTEXTUREALPHA           0x0001000
-#define D3DTEXOPCAPS_BLENDFACTORALPHA            0x0002000
-#define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM         0x0004000
-#define D3DTEXOPCAPS_BLENDCURRENTALPHA           0x0008000
-#define D3DTEXOPCAPS_PREMODULATE                 0x0010000
-#define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR      0x0020000
-#define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA      0x0040000
-#define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR   0x0080000
-#define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA   0x0100000
-#define D3DTEXOPCAPS_BUMPENVMAP                  0x0200000
-#define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE         0x0400000
-#define D3DTEXOPCAPS_DOTPRODUCT3                 0x0800000
-#define D3DTEXOPCAPS_MULTIPLYADD                 0x1000000
-#define D3DTEXOPCAPS_LERP                        0x2000000
-
-#define D3DVTXPCAPS_TEXGEN                       0x01
-#define D3DVTXPCAPS_MATERIALSOURCE7              0x02
-#define D3DVTXPCAPS_DIRECTIONALLIGHTS            0x08
-#define D3DVTXPCAPS_POSITIONALLIGHTS             0x10
-#define D3DVTXPCAPS_LOCALVIEWER                  0x20
-#define D3DVTXPCAPS_TWEENING                     0x40
-
-#define D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD  0x00000020
-#define D3DCAPS3_RESERVED                          0x8000001f
-
-#define D3DCAPS2_CANCALIBRATEGAMMA                 0x0100000
-#define D3DCAPS2_CANRENDERWINDOWED                 0x0080000
-#define D3DCAPS2_CANMANAGERESOURCE                 0x10000000
-#define D3DCAPS2_DYNAMICTEXTURES                   0x20000000
-#define D3DCAPS2_FULLSCREENGAMMA                   0x0020000
-#define D3DCAPS2_NO2DDURING3DSCENE                 0x0000002
-#define D3DCAPS2_RESERVED                          0x2000000
-
-/*
- * The d3dcaps8 structure
- */
-typedef struct _D3DCAPS8 {
-    D3DDEVTYPE          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, 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               MaxPixelShaderValue;
-} D3DCAPS8;
-
-#endif  /* __WINE_D3D8CAPS_H */
diff --git a/misc/builddeps/win32/dx/include/d3d8types.h b/misc/builddeps/win32/dx/include/d3d8types.h
deleted file mode 100644 (file)
index 7c24b73..0000000
+++ /dev/null
@@ -1,1221 +0,0 @@
-/*
- * Copyright (C) 2002 Jason Edmeades
- *
- * 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_D3D8TYPES_H
-#define __WINE_D3D8TYPES_H
-
-#include <_mingw_dxhelper.h>
-
-/*****************************************************************************
- * Direct 3D v8 #defines
- */
-
-#ifndef D3DCLEAR_TARGET
-#define D3DCLEAR_TARGET   1
-#endif
-#ifndef D3DCLEAR_ZBUFFER
-#define D3DCLEAR_ZBUFFER  2
-#endif
-#ifndef D3DCLEAR_STENCIL
-#define D3DCLEAR_STENCIL  4
-#endif
-
-#define D3DCLIPPLANE0 (1 << 0)
-#define D3DCLIPPLANE1 (1 << 1)
-#define D3DCLIPPLANE2 (1 << 2)
-#define D3DCLIPPLANE3 (1 << 3)
-#define D3DCLIPPLANE4 (1 << 4)
-#define D3DCLIPPLANE5 (1 << 5)
-
-#define D3DCOLOR_ARGB(a,r,g,b)        ((D3DCOLOR)((((a)&0xff)<<24)|(((r)&0xff)<<16)|(((g)&0xff)<<8)|((b)&0xff)))
-#define D3DCOLOR_COLORVALUE(r,g,b,a)  D3DCOLOR_RGBA((DWORD)((r)*255.f),(DWORD)((g)*255.f),(DWORD)((b)*255.f),(DWORD)((a)*255.f))
-#define D3DCOLOR_RGBA(r,g,b,a)        D3DCOLOR_ARGB(a,r,g,b)
-#define D3DCOLOR_XRGB(r,g,b)          D3DCOLOR_ARGB(0xff,r,g,b)
-
-#define D3DCS_LEFT                 0x001
-#define D3DCS_RIGHT                0x002
-#define D3DCS_TOP                  0x004
-#define D3DCS_BOTTOM               0x008
-#define D3DCS_FRONT                0x010
-#define D3DCS_BACK                 0x020
-#define D3DCS_PLANE0               0x040
-#define D3DCS_PLANE1               0x080
-#define D3DCS_PLANE2               0x100
-#define D3DCS_PLANE3               0x200
-#define D3DCS_PLANE4               0x400
-#define D3DCS_PLANE5               0x800
-#define D3DCS_ALL                  0xFFF
-
-#define D3DFVF_TEXTUREFORMAT1 3
-#define D3DFVF_TEXTUREFORMAT2 0
-#define D3DFVF_TEXTUREFORMAT3 1
-#define D3DFVF_TEXTUREFORMAT4 2
-#define D3DFVF_TEXCOORDSIZE1(CoordIndex) (D3DFVF_TEXTUREFORMAT1 << (CoordIndex*2 + 16))
-#define D3DFVF_TEXCOORDSIZE2(CoordIndex) (D3DFVF_TEXTUREFORMAT2)
-#define D3DFVF_TEXCOORDSIZE3(CoordIndex) (D3DFVF_TEXTUREFORMAT3 << (CoordIndex*2 + 16))
-#define D3DFVF_TEXCOORDSIZE4(CoordIndex) (D3DFVF_TEXTUREFORMAT4 << (CoordIndex*2 + 16))
-
-#define D3DLOCK_READONLY           0x0010
-#define D3DLOCK_NOSYSLOCK          0x0800
-#define D3DLOCK_NOOVERWRITE        0x1000
-#define D3DLOCK_DISCARD            0x2000
-#define D3DLOCK_NO_DIRTY_UPDATE    0x8000
-
-#define D3DMAXUSERCLIPPLANES       32
-
-#define D3DRENDERSTATE_WRAPBIAS    0x80
-
-#define D3DTSS_TCI_PASSTHRU                       0x00000
-#define D3DTSS_TCI_CAMERASPACENORMAL              0x10000
-#define D3DTSS_TCI_CAMERASPACEPOSITION            0x20000
-#define D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR    0x30000
-
-
-#define D3DTS_WORLD  D3DTS_WORLDMATRIX(0)
-#define D3DTS_WORLD1 D3DTS_WORLDMATRIX(1)
-#define D3DTS_WORLD2 D3DTS_WORLDMATRIX(2)
-#define D3DTS_WORLD3 D3DTS_WORLDMATRIX(3)
-#define D3DTS_WORLDMATRIX(index) (D3DTRANSFORMSTATETYPE)(index + 256)
-
-#define D3DUSAGE_RENDERTARGET       0x01
-#define D3DUSAGE_DEPTHSTENCIL       0x02
-#define D3DUSAGE_WRITEONLY          0x08
-#define D3DUSAGE_SOFTWAREPROCESSING 0x10
-#define D3DUSAGE_DONOTCLIP          0x20
-#define D3DUSAGE_POINTS             0x40
-#define D3DUSAGE_RTPATCHES          0x80
-#define D3DUSAGE_NPATCHES           0x100
-#define D3DUSAGE_DYNAMIC            0x200
-
-#define D3DWRAP_U        1
-#define D3DWRAP_V        2
-#define D3DWRAP_W        4
-#define D3DWRAPCOORD_0   1
-#define D3DWRAPCOORD_1   2
-#define D3DWRAPCOORD_2   4
-#define D3DWRAPCOORD_3   8
-
-#define MAX_DEVICE_IDENTIFIER_STRING        512
-
-#define D3DFVF_RESERVED0           0x0001
-#define D3DFVF_POSITION_MASK       0x000E
-#define D3DFVF_XYZ                 0x0002
-#define D3DFVF_XYZRHW              0x0004
-#define D3DFVF_XYZB1               0x0006
-#define D3DFVF_XYZB2               0x0008
-#define D3DFVF_XYZB3               0x000a
-#define D3DFVF_XYZB4               0x000c
-#define D3DFVF_XYZB5               0x000e
-#define D3DFVF_NORMAL              0x0010
-#define D3DFVF_PSIZE               0x0020
-#define D3DFVF_DIFFUSE             0x0040
-#define D3DFVF_SPECULAR            0x0080
-#define D3DFVF_TEXCOUNT_MASK       0x0f00
-#define D3DFVF_TEXCOUNT_SHIFT           8
-#define D3DFVF_TEX0                0x0000
-#define D3DFVF_TEX1                0x0100
-#define D3DFVF_TEX2                0x0200
-#define D3DFVF_TEX3                0x0300
-#define D3DFVF_TEX4                0x0400
-#define D3DFVF_TEX5                0x0500
-#define D3DFVF_TEX6                0x0600
-#define D3DFVF_TEX7                0x0700
-#define D3DFVF_TEX8                0x0800
-#define D3DFVF_LASTBETA_UBYTE4     0x1000
-#define D3DFVF_RESERVED2           0xE000
-
-#define D3DTA_SELECTMASK        0x0000000f
-#define D3DTA_DIFFUSE           0x00000000
-#define D3DTA_CURRENT           0x00000001
-#define D3DTA_TEXTURE           0x00000002
-#define D3DTA_TFACTOR           0x00000003
-#define D3DTA_SPECULAR          0x00000004
-#define D3DTA_COMPLEMENT        0x00000010
-#define D3DTA_ALPHAREPLICATE    0x00000020
-#define D3DTA_TEMP              0x00000005
-
-#define D3DCOLORWRITEENABLE_RED   (1L<<0)   
-#define D3DCOLORWRITEENABLE_GREEN (1L<<1)
-#define D3DCOLORWRITEENABLE_BLUE  (1L<<2)
-#define D3DCOLORWRITEENABLE_ALPHA (1L<<3)
-
-
-#ifndef MAKEFOURCC
-#define MAKEFOURCC(ch0, ch1, ch2, ch3)  \
-    ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) |  \
-    ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 ))
-#endif /* MAKEFOURCC */
-
-
-/**************************** 
- * Vertex Shaders Declaration
- */
-
-typedef enum _D3DVSD_TOKENTYPE {
-  D3DVSD_TOKEN_NOP         = 0,
-  D3DVSD_TOKEN_STREAM      = 1,
-  D3DVSD_TOKEN_STREAMDATA  = 2,
-  D3DVSD_TOKEN_TESSELLATOR = 3,
-  D3DVSD_TOKEN_CONSTMEM    = 4,
-  D3DVSD_TOKEN_EXT         = 5,
-  /* RESERVED              = 6 */
-  D3DVSD_TOKEN_END         = 7,
-  D3DVSD_FORCE_DWORD       = 0x7FFFFFFF
-} D3DVSD_TOKENTYPE;
-
-/** input registers for vertex shaders functions */
-/*
-#define D3DVSDE_POSITION      0
-#define D3DVSDE_BLENDWEIGHT   1
-#define D3DVSDE_BLENDINDICES  2
-#define D3DVSDE_NORMAL        3
-#define D3DVSDE_PSIZE         4
-#define D3DVSDE_DIFFUSE       5
-#define D3DVSDE_SPECULAR      6
-#define D3DVSDE_TEXCOORD0     7
-#define D3DVSDE_TEXCOORD1     8
-#define D3DVSDE_TEXCOORD2     9
-#define D3DVSDE_TEXCOORD3    10
-#define D3DVSDE_TEXCOORD4    11
-#define D3DVSDE_TEXCOORD5    12
-#define D3DVSDE_TEXCOORD6    13
-#define D3DVSDE_TEXCOORD7    14
-#define D3DVSDE_POSITION2    15
-#define D3DVSDE_NORMAL2      16
-*/
-/** Address of the vertex register. 0 - 16 */
-typedef enum _D3DVSDE_REGISTER {
-  D3DVSDE_POSITION     =  0,
-  D3DVSDE_BLENDWEIGHT  =  1,
-  D3DVSDE_BLENDINDICES =  2,
-  D3DVSDE_NORMAL       =  3,
-  D3DVSDE_PSIZE        =  4,
-  D3DVSDE_DIFFUSE      =  5,
-  D3DVSDE_SPECULAR     =  6,
-  D3DVSDE_TEXCOORD0    =  7,
-  D3DVSDE_TEXCOORD1    =  8,
-  D3DVSDE_TEXCOORD2    =  9,
-  D3DVSDE_TEXCOORD3    = 10,
-  D3DVSDE_TEXCOORD4    = 11,
-  D3DVSDE_TEXCOORD5    = 12,
-  D3DVSDE_TEXCOORD6    = 13,
-  D3DVSDE_TEXCOORD7    = 14,
-  D3DVSDE_POSITION2    = 15,
-  D3DVSDE_NORMAL2      = 16
-} D3DVSDE_REGISTER;
-
-/** bit-field declaration for VertexRegister Type */
-/*
-#define D3DVSDT_FLOAT1      0x00
-#define D3DVSDT_FLOAT2      0x01
-#define D3DVSDT_FLOAT3      0x02
-#define D3DVSDT_FLOAT4      0x03
-#define D3DVSDT_D3DCOLOR    0x04
-#define D3DVSDT_UBYTE4      0x05
-#define D3DVSDT_SHORT2      0x06
-#define D3DVSDT_SHORT4      0x07
-*/
-typedef enum _D3DVSDT_TYPE {
-  D3DVSDT_FLOAT1   = 0x00,
-  D3DVSDT_FLOAT2   = 0x01,
-  D3DVSDT_FLOAT3   = 0x02,
-  D3DVSDT_FLOAT4   = 0x03,
-  D3DVSDT_D3DCOLOR = 0x04,
-  D3DVSDT_UBYTE4   = 0x05,
-  D3DVSDT_SHORT2   = 0x06,
-  D3DVSDT_SHORT4   = 0x07
-} D3DVSDT_TYPE;
-
-
-#define D3DVSD_CONSTADDRESSSHIFT  0
-#define D3DVSD_EXTINFOSHIFT       0
-#define D3DVSD_STREAMNUMBERSHIFT  0
-#define D3DVSD_VERTEXREGSHIFT     0
-#define D3DVSD_CONSTRSSHIFT      16
-#define D3DVSD_DATATYPESHIFT     16
-#define D3DVSD_SKIPCOUNTSHIFT    16
-#define D3DVSD_VERTEXREGINSHIFT  20
-#define D3DVSD_EXTCOUNTSHIFT     24
-#define D3DVSD_CONSTCOUNTSHIFT   25
-#define D3DVSD_DATALOADTYPESHIFT 28
-#define D3DVSD_STREAMTESSSHIFT   28
-#define D3DVSD_TOKENTYPESHIFT    29
-
-#define D3DVSD_CONSTADDRESSMASK  (0x7F     << D3DVSD_CONSTADDRESSSHIFT)
-#define D3DVSD_EXTINFOMASK       (0xFFFFFF << D3DVSD_EXTINFOSHIFT)
-#define D3DVSD_STREAMNUMBERMASK  (0xF      << D3DVSD_STREAMNUMBERSHIFT)
-#define D3DVSD_VERTEXREGMASK     (0x1F     << D3DVSD_VERTEXREGSHIFT)
-#define D3DVSD_CONSTRSMASK       (0x1FFF   << D3DVSD_CONSTRSSHIFT)
-#define D3DVSD_DATATYPEMASK      (0xF      << D3DVSD_DATATYPESHIFT)
-#define D3DVSD_SKIPCOUNTMASK     (0xF      << D3DVSD_SKIPCOUNTSHIFT)
-#define D3DVSD_EXTCOUNTMASK      (0x1F     << D3DVSD_EXTCOUNTSHIFT)
-#define D3DVSD_VERTEXREGINMASK   (0xF      << D3DVSD_VERTEXREGINSHIFT)
-#define D3DVSD_CONSTCOUNTMASK    (0xF      << D3DVSD_CONSTCOUNTSHIFT)
-#define D3DVSD_DATALOADTYPEMASK  (0x1      << D3DVSD_DATALOADTYPESHIFT)
-#define D3DVSD_STREAMTESSMASK    (0x1      << D3DVSD_STREAMTESSSHIFT)
-#define D3DVSD_TOKENTYPEMASK     (0x7      << D3DVSD_TOKENTYPESHIFT)
-
-
-#define D3DVSD_MAKETOKENTYPE(TokenType) \
-  ((TokenType << D3DVSD_TOKENTYPESHIFT) & D3DVSD_TOKENTYPEMASK)
-
-#define D3DVSD_CONST(ConstantAddress, Count) \
-  (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_CONSTMEM) | ((Count) << D3DVSD_CONSTCOUNTSHIFT) | (ConstantAddress))
-
-#define D3DVSD_END() 0xFFFFFFFF
-
-#define D3DVSD_NOP() 0x00000000
-
-#define D3DVSD_REG(VertexRegister, Type) \
-  (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAMDATA) | ((Type) << D3DVSD_DATATYPESHIFT) | (VertexRegister))
-
-#define D3DVSD_SKIP(Count) \
-  (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAMDATA) | 0x10000000 | ((Count) << D3DVSD_SKIPCOUNTSHIFT))
-
-#define D3DVSD_STREAM(StreamNumber) \
-  (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAM) | (StreamNumber))
-
-#define D3DVSD_STREAM_TESS() \
-  (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAM) | (D3DVSD_STREAMTESSMASK))
-
-#define D3DVSD_TESSNORMAL(RegisterIn, RegisterOut) \
-  (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_TESSELLATOR) | ((RegisterIn) << D3DVSD_VERTEXREGINSHIFT) | ((0x02) << D3DVSD_DATATYPESHIFT) | (RegisterOut))
-
-#define D3DVSD_TESSUV(Register) \
-  (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_TESSELLATOR) | 0x10000000 | ((0x01) << D3DVSD_DATATYPESHIFT) | (Register))
-
-
-/********************************
- * Pixel/Vertex Shaders Functions
- */
-
-/** Maximum number of supported texture coordinates sets operation */
-#define D3DDP_MAXTEXCOORD   8
-
-/** opcode token mask */
-#define D3DSI_OPCODE_MASK 0x0000FFFF
-
-/** opcodes types for PS and VS */
-typedef enum _D3DSHADER_INSTRUCTION_OPCODE_TYPE {
-  D3DSIO_NOP          =  0,
-  D3DSIO_MOV          =  1,
-  D3DSIO_ADD          =  2,
-  D3DSIO_SUB          =  3,
-  D3DSIO_MAD          =  4,
-  D3DSIO_MUL          =  5,
-  D3DSIO_RCP          =  6,
-  D3DSIO_RSQ          =  7,
-  D3DSIO_DP3          =  8,
-  D3DSIO_DP4          =  9,
-  D3DSIO_MIN          = 10,
-  D3DSIO_MAX          = 11,
-  D3DSIO_SLT          = 12,
-  D3DSIO_SGE          = 13,
-  D3DSIO_EXP          = 14,
-  D3DSIO_LOG          = 15,
-  D3DSIO_LIT          = 16,
-  D3DSIO_DST          = 17,
-  D3DSIO_LRP          = 18,
-  D3DSIO_FRC          = 19,
-  D3DSIO_M4x4         = 20,
-  D3DSIO_M4x3         = 21,
-  D3DSIO_M3x4         = 22,
-  D3DSIO_M3x3         = 23,
-  D3DSIO_M3x2         = 24,
-
-  D3DSIO_TEXCOORD     = 64,
-  D3DSIO_TEXKILL      = 65,
-  D3DSIO_TEX          = 66,
-  D3DSIO_TEXBEM       = 67,
-  D3DSIO_TEXBEML      = 68,
-  D3DSIO_TEXREG2AR    = 69,
-  D3DSIO_TEXREG2GB    = 70,
-  D3DSIO_TEXM3x2PAD   = 71,
-  D3DSIO_TEXM3x2TEX   = 72,
-  D3DSIO_TEXM3x3PAD   = 73,
-  D3DSIO_TEXM3x3TEX   = 74,
-  D3DSIO_TEXM3x3DIFF  = 75,
-  D3DSIO_TEXM3x3SPEC  = 76,
-  D3DSIO_TEXM3x3VSPEC = 77,
-  D3DSIO_EXPP         = 78,
-  D3DSIO_LOGP         = 79,
-  D3DSIO_CND          = 80,
-  D3DSIO_DEF          = 81,
-  D3DSIO_TEXREG2RGB   = 82,
-  D3DSIO_TEXDP3TEX    = 83,
-  D3DSIO_TEXM3x2DEPTH = 84,
-  D3DSIO_TEXDP3       = 85,
-  D3DSIO_TEXM3x3      = 86,
-  D3DSIO_TEXDEPTH     = 87,
-  D3DSIO_CMP          = 88,
-  D3DSIO_BEM          = 89,
-
-  D3DSIO_PHASE        = 0xFFFD,
-  D3DSIO_COMMENT      = 0xFFFE,
-  D3DSIO_END          = 0XFFFF,
-
-  D3DSIO_FORCE_DWORD  = 0X7FFFFFFF /** for 32-bit alignment */
-} D3DSHADER_INSTRUCTION_OPCODE_TYPE;
-
-/** for parallelism */
-#define D3DSI_COISSUE 0x40000000
-
-/** destination parameter modifiers (.xyzw) */
-#define D3DSP_WRITEMASK_0       0x00010000 /* .x r */
-#define D3DSP_WRITEMASK_1       0x00020000 /* .y g */
-#define D3DSP_WRITEMASK_2       0x00040000 /* .z b */
-#define D3DSP_WRITEMASK_3       0x00080000 /* .w a */
-#define D3DSP_WRITEMASK_ALL     0x000F0000 /* all */
-
-#define D3DSP_DSTMOD_SHIFT      20
-#define D3DSP_DSTMOD_MASK       (0xF << D3DSP_DSTMOD_SHIFT)
-
-typedef enum _D3DSHADER_PARAM_DSTMOD_TYPE {
-  D3DSPDM_NONE         = 0 << D3DSP_DSTMOD_SHIFT,
-  D3DSPDM_SATURATE     = 1 << D3DSP_DSTMOD_SHIFT,
-  D3DSPDM_FORCE_DWORD  = 0X7FFFFFFF
-} D3DSHADER_PARAM_DSTMOD_TYPE;
-
-/** destination param */
-#define D3DSP_DSTSHIFT_SHIFT     24
-#define D3DSP_DSTSHIFT_MASK      (0xF << D3DSP_DSTSHIFT_SHIFT)
-
-/** destination/source reg type */
-#define D3DSP_REGTYPE_SHIFT      28
-#define D3DSP_REGTYPE_MASK       (0x7 << D3DSP_REGTYPE_SHIFT)
-
-typedef enum _D3DSHADER_PARAM_REGISTER_TYPE {
-  D3DSPR_TEMP         = 0 << D3DSP_REGTYPE_SHIFT,
-  D3DSPR_INPUT        = 1 << D3DSP_REGTYPE_SHIFT,
-  D3DSPR_CONST        = 2 << D3DSP_REGTYPE_SHIFT,
-  D3DSPR_ADDR         = 3 << D3DSP_REGTYPE_SHIFT,
-  D3DSPR_TEXTURE      = 3 << D3DSP_REGTYPE_SHIFT,
-  D3DSPR_RASTOUT      = 4 << D3DSP_REGTYPE_SHIFT,
-  D3DSPR_ATTROUT      = 5 << D3DSP_REGTYPE_SHIFT,
-  D3DSPR_TEXCRDOUT    = 6 << D3DSP_REGTYPE_SHIFT,
-  D3DSPR_FORCE_DWORD  = 0x7FFFFFFF
-} D3DSHADER_PARAM_REGISTER_TYPE;
-
-typedef enum _D3DVS_RASTOUT_OFFSETS {
-  D3DSRO_POSITION     = 0,
-  D3DSRO_FOG          = 1,
-  D3DSRO_POINT_SIZE   = 2,
-  D3DSRO_FORCE_DWORD  = 0x7FFFFFFF
-} D3DVS_RASTOUT_OFFSETS;
-
-#define D3DVS_ADDRESSMODE_SHIFT  13
-#define D3DVS_ADDRESSMODE_MASK   (0x1 << D3DVS_ADDRESSMODE_SHIFT)
-
-typedef enum _D3DVS_ADDRESSMODE_TYPE {
-  D3DVS_ADDRMODE_ABSOLUTE     = 0 << D3DVS_ADDRESSMODE_SHIFT,
-  D3DVS_ADDRMODE_RELATIVE     = 1 << D3DVS_ADDRESSMODE_SHIFT,
-  D3DVS_ADDRMODE_FORCE_DWORD  = 0x7FFFFFFF
-} D3DVS_ADDRESSMODE_TYPE;
-
-#define D3DVS_SWIZZLE_SHIFT      16
-#define D3DVS_SWIZZLE_MASK       (0xFF << D3DVS_SWIZZLE_SHIFT)
-
-#define D3DSP_SWIZZLE_SHIFT      16
-#define D3DSP_SWIZZLE_MASK       (0xFF << D3DSP_SWIZZLE_SHIFT)
-
-#define D3DVS_X_X       (0 << D3DVS_SWIZZLE_SHIFT)
-#define D3DVS_X_Y       (1 << D3DVS_SWIZZLE_SHIFT)
-#define D3DVS_X_Z       (2 << D3DVS_SWIZZLE_SHIFT)
-#define D3DVS_X_W       (3 << D3DVS_SWIZZLE_SHIFT)
-
-#define D3DVS_Y_X       (0 << (D3DVS_SWIZZLE_SHIFT + 2))
-#define D3DVS_Y_Y       (1 << (D3DVS_SWIZZLE_SHIFT + 2))
-#define D3DVS_Y_Z       (2 << (D3DVS_SWIZZLE_SHIFT + 2))
-#define D3DVS_Y_W       (3 << (D3DVS_SWIZZLE_SHIFT + 2))
-
-#define D3DVS_Z_X       (0 << (D3DVS_SWIZZLE_SHIFT + 4))
-#define D3DVS_Z_Y       (1 << (D3DVS_SWIZZLE_SHIFT + 4))
-#define D3DVS_Z_Z       (2 << (D3DVS_SWIZZLE_SHIFT + 4))
-#define D3DVS_Z_W       (3 << (D3DVS_SWIZZLE_SHIFT + 4))
-
-#define D3DVS_W_X       (0 << (D3DVS_SWIZZLE_SHIFT + 6))
-#define D3DVS_W_Y       (1 << (D3DVS_SWIZZLE_SHIFT + 6))
-#define D3DVS_W_Z       (2 << (D3DVS_SWIZZLE_SHIFT + 6))
-#define D3DVS_W_W       (3 << (D3DVS_SWIZZLE_SHIFT + 6))
-
-#define D3DVS_NOSWIZZLE (D3DVS_X_X | D3DVS_Y_Y | D3DVS_Z_Z | D3DVS_W_W)
-
-#define D3DSP_NOSWIZZLE \
-    ((0 << (D3DSP_SWIZZLE_SHIFT + 0)) | (1 << (D3DSP_SWIZZLE_SHIFT + 2)) | (2 << (D3DSP_SWIZZLE_SHIFT + 4)) | (3 << (D3DSP_SWIZZLE_SHIFT + 6)))
-
-#define D3DSP_SRCMOD_SHIFT      24
-#define D3DSP_SRCMOD_MASK       (0xF << D3DSP_SRCMOD_SHIFT)
-
-typedef enum _D3DSHADER_PARAM_SRCMOD_TYPE {
-  D3DSPSM_NONE         =  0 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_NEG          =  1 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_BIAS         =  2 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_BIASNEG      =  3 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_SIGN         =  4 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_SIGNNEG      =  5 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_COMP         =  6 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_X2           =  7 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_X2NEG        =  8 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_DZ           =  9 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_DW           = 10 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_FORCE_DWORD  = 0x7FFFFFFF
-} D3DSHADER_PARAM_SRCMOD_TYPE;
-
-#define D3DPS_VERSION(major, minor) (0xFFFF0000 | ((major) << 8) | (minor))
-#define D3DVS_VERSION(major, minor) (0xFFFE0000 | ((major) << 8) | (minor))
-#define D3DSHADER_VERSION_MAJOR(version) (((version) >> 8) & 0xFF)
-#define D3DSHADER_VERSION_MINOR(version) (((version) >> 0) & 0xFF)
-
-#define D3DSI_COMMENTSIZE_SHIFT 16
-#define D3DSI_COMMENTSIZE_MASK (0x7FFF << D3DSI_COMMENTSIZE_SHIFT)
-
-#define D3DSHADER_COMMENT(commentSize) \
-  ((((commentSize) << D3DSI_COMMENTSIZE_SHIFT) & D3DSI_COMMENTSIZE_MASK) | D3DSIO_COMMENT)
-
-#define D3DPS_END() 0x0000FFFF
-#define D3DVS_END() 0x0000FFFF
-
-
-/*****************************************************************************
- * Direct 3D v8 enumerated types
- */
-typedef enum _D3DBACKBUFFER_TYPE {
-    D3DBACKBUFFER_TYPE_MONO         = 0,
-    D3DBACKBUFFER_TYPE_LEFT         = 1,
-    D3DBACKBUFFER_TYPE_RIGHT        = 2,
-
-    D3DBACKBUFFER_TYPE_FORCE_DWORD  = 0x7fffffff
-} D3DBACKBUFFER_TYPE;
-
-typedef enum _D3DBASISTYPE{
-   D3DBASIS_BEZIER        = 0,
-   D3DBASIS_BSPLINE       = 1,
-   D3DBASIS_INTERPOLATE   = 2,
-
-   D3DBASIS_FORCE_DWORD   = 0x7fffffff
-} D3DBASISTYPE;
-
-typedef enum _D3DBLEND {
-    D3DBLEND_ZERO               =  1,
-    D3DBLEND_ONE                =  2,
-    D3DBLEND_SRCCOLOR           =  3,
-    D3DBLEND_INVSRCCOLOR        =  4,
-    D3DBLEND_SRCALPHA           =  5,
-    D3DBLEND_INVSRCALPHA        =  6,
-    D3DBLEND_DESTALPHA          =  7,
-    D3DBLEND_INVDESTALPHA       =  8,
-    D3DBLEND_DESTCOLOR          =  9,
-    D3DBLEND_INVDESTCOLOR       = 10,
-    D3DBLEND_SRCALPHASAT        = 11,
-    D3DBLEND_BOTHSRCALPHA       = 12,
-    D3DBLEND_BOTHINVSRCALPHA    = 13,
-
-    D3DBLEND_FORCE_DWORD        = 0x7fffffff
-} D3DBLEND;
-
-typedef enum _D3DBLENDOP {
-    D3DBLENDOP_ADD              = 1,
-    D3DBLENDOP_SUBTRACT         = 2,
-    D3DBLENDOP_REVSUBTRACT      = 3,
-    D3DBLENDOP_MIN              = 4,
-    D3DBLENDOP_MAX              = 5,
-
-    D3DBLENDOP_FORCE_DWORD      = 0x7fffffff
-} D3DBLENDOP;
-
-typedef enum _D3DCMPFUNC {
-    D3DCMP_NEVER                = 1,
-    D3DCMP_LESS                 = 2,
-    D3DCMP_EQUAL                = 3,
-    D3DCMP_LESSEQUAL            = 4,
-    D3DCMP_GREATER              = 5,
-    D3DCMP_NOTEQUAL             = 6,
-    D3DCMP_GREATEREQUAL         = 7,
-    D3DCMP_ALWAYS               = 8,
-
-    D3DCMP_FORCE_DWORD          = 0x7fffffff
-} D3DCMPFUNC;
-
-typedef enum _D3DCUBEMAP_FACES {
-    D3DCUBEMAP_FACE_POSITIVE_X     = 0,
-    D3DCUBEMAP_FACE_NEGATIVE_X     = 1,
-    D3DCUBEMAP_FACE_POSITIVE_Y     = 2,
-    D3DCUBEMAP_FACE_NEGATIVE_Y     = 3,
-    D3DCUBEMAP_FACE_POSITIVE_Z     = 4,
-    D3DCUBEMAP_FACE_NEGATIVE_Z     = 5,
-
-    D3DCUBEMAP_FACE_FORCE_DWORD    = 0xffffffff
-} D3DCUBEMAP_FACES;
-
-typedef enum _D3DCULL {
-    D3DCULL_NONE                = 1,
-    D3DCULL_CW                  = 2,
-    D3DCULL_CCW                 = 3,
-
-    D3DCULL_FORCE_DWORD         = 0x7fffffff
-} D3DCULL;
-
-typedef enum _D3DDEBUGMONITORTOKENS {
-    D3DDMT_ENABLE          = 0,
-    D3DDMT_DISABLE         = 1,
-
-    D3DDMT_FORCE_DWORD     = 0x7fffffff
-} D3DDEBUGMONITORTOKENS;
-
-typedef enum _D3DDEVTYPE {
-    D3DDEVTYPE_HAL         = 1,
-    D3DDEVTYPE_REF         = 2,
-    D3DDEVTYPE_SW          = 3,
-
-    D3DDEVTYPE_FORCE_DWORD = 0xffffffff
-} D3DDEVTYPE;
-
-typedef enum _D3DFILLMODE {
-    D3DFILL_POINT               = 1,
-    D3DFILL_WIREFRAME           = 2,
-    D3DFILL_SOLID               = 3,
-
-    D3DFILL_FORCE_DWORD         = 0x7fffffff
-} D3DFILLMODE;
-
-typedef enum _D3DFOGMODE {
-    D3DFOG_NONE                 = 0,
-    D3DFOG_EXP                  = 1,
-    D3DFOG_EXP2                 = 2,
-    D3DFOG_LINEAR               = 3,
-
-    D3DFOG_FORCE_DWORD          = 0x7fffffff
-} D3DFOGMODE;
-
-typedef enum _D3DFORMAT {
-    D3DFMT_UNKNOWN              =   0,
-
-    D3DFMT_R8G8B8               =  20,
-    D3DFMT_A8R8G8B8             =  21,
-    D3DFMT_X8R8G8B8             =  22,
-    D3DFMT_R5G6B5               =  23,
-    D3DFMT_X1R5G5B5             =  24,
-    D3DFMT_A1R5G5B5             =  25,
-    D3DFMT_A4R4G4B4             =  26,
-    D3DFMT_R3G3B2               =  27,
-    D3DFMT_A8                   =  28,
-    D3DFMT_A8R3G3B2             =  29,
-    D3DFMT_X4R4G4B4             =  30,
-    D3DFMT_A2B10G10R10          =  31,
-    D3DFMT_G16R16               =  34,
-
-    D3DFMT_A8P8                 =  40,
-    D3DFMT_P8                   =  41,
-
-    D3DFMT_L8                   =  50,
-    D3DFMT_A8L8                 =  51,
-    D3DFMT_A4L4                 =  52,
-
-    D3DFMT_V8U8                 =  60,
-    D3DFMT_L6V5U5               =  61,
-    D3DFMT_X8L8V8U8             =  62,
-    D3DFMT_Q8W8V8U8             =  63,
-    D3DFMT_V16U16               =  64,
-    D3DFMT_W11V11U10            =  65,
-    D3DFMT_A2W10V10U10          =  67,
-
-    D3DFMT_UYVY                 =  MAKEFOURCC('U', 'Y', 'V', 'Y'),
-    D3DFMT_YUY2                 =  MAKEFOURCC('Y', 'U', 'Y', '2'),
-    D3DFMT_DXT1                 =  MAKEFOURCC('D', 'X', 'T', '1'),
-    D3DFMT_DXT2                 =  MAKEFOURCC('D', 'X', 'T', '2'),
-    D3DFMT_DXT3                 =  MAKEFOURCC('D', 'X', 'T', '3'),
-    D3DFMT_DXT4                 =  MAKEFOURCC('D', 'X', 'T', '4'),
-    D3DFMT_DXT5                 =  MAKEFOURCC('D', 'X', 'T', '5'),
-
-    D3DFMT_D16_LOCKABLE         =  70,
-    D3DFMT_D32                  =  71,
-    D3DFMT_D15S1                =  73,
-    D3DFMT_D24S8                =  75,
-    D3DFMT_D16                  =  80,
-    D3DFMT_D24X8                =  77,
-    D3DFMT_D24X4S4              =  79,
-
-    D3DFMT_VERTEXDATA           = 100,
-    D3DFMT_INDEX16              = 101,
-    D3DFMT_INDEX32              = 102,
-
-    D3DFMT_FORCE_DWORD          = 0xFFFFFFFF
-} D3DFORMAT;
-
-typedef enum _D3DLIGHTTYPE {
-    D3DLIGHT_POINT          = 1,
-    D3DLIGHT_SPOT           = 2,
-    D3DLIGHT_DIRECTIONAL    = 3,
-
-    D3DLIGHT_FORCE_DWORD    = 0x7fffffff
-} D3DLIGHTTYPE;
-
-typedef enum _D3DMATERIALCOLORSOURCE {
-    D3DMCS_MATERIAL         = 0,
-    D3DMCS_COLOR1           = 1,
-    D3DMCS_COLOR2           = 2,
-
-    D3DMCS_FORCE_DWORD      = 0x7fffffff
-} D3DMATERIALCOLORSOURCE;
-
-typedef enum _D3DMULTISAMPLE_TYPE {
-    D3DMULTISAMPLE_NONE            =  0,
-    D3DMULTISAMPLE_2_SAMPLES       =  2,
-    D3DMULTISAMPLE_3_SAMPLES       =  3,
-    D3DMULTISAMPLE_4_SAMPLES       =  4,
-    D3DMULTISAMPLE_5_SAMPLES       =  5,
-    D3DMULTISAMPLE_6_SAMPLES       =  6,
-    D3DMULTISAMPLE_7_SAMPLES       =  7,
-    D3DMULTISAMPLE_8_SAMPLES       =  8,
-    D3DMULTISAMPLE_9_SAMPLES       =  9,
-    D3DMULTISAMPLE_10_SAMPLES      = 10,
-    D3DMULTISAMPLE_11_SAMPLES      = 11,
-    D3DMULTISAMPLE_12_SAMPLES      = 12,
-    D3DMULTISAMPLE_13_SAMPLES      = 13,
-    D3DMULTISAMPLE_14_SAMPLES      = 14,
-    D3DMULTISAMPLE_15_SAMPLES      = 15,
-    D3DMULTISAMPLE_16_SAMPLES      = 16,
-
-    D3DMULTISAMPLE_FORCE_DWORD     = 0x7fffffff
-} D3DMULTISAMPLE_TYPE;
-
-typedef enum _D3DORDERTYPE {
-   D3DORDER_LINEAR      = 1,
-   D3DORDER_QUADRATIC   = 2,
-   D3DORDER_CUBIC       = 3,
-   D3DORDER_QUINTIC     = 5,
-
-   D3DORDER_FORCE_DWORD = 0x7fffffff
-} D3DORDERTYPE;
-
-typedef enum _D3DPATCHEDGESTYLE {
-   D3DPATCHEDGE_DISCRETE    = 0,
-   D3DPATCHEDGE_CONTINUOUS  = 1,
-
-   D3DPATCHEDGE_FORCE_DWORD = 0x7fffffff,
-} D3DPATCHEDGESTYLE;
-
-typedef enum _D3DPOOL {
-    D3DPOOL_DEFAULT                 = 0,
-    D3DPOOL_MANAGED                 = 1,
-    D3DPOOL_SYSTEMMEM               = 2,
-    D3DPOOL_SCRATCH                 = 3,
-
-    D3DPOOL_FORCE_DWORD             = 0x7fffffff
-} D3DPOOL;
-
-typedef enum _D3DPRIMITIVETYPE {
-    D3DPT_POINTLIST             = 1,
-    D3DPT_LINELIST              = 2,
-    D3DPT_LINESTRIP             = 3,
-    D3DPT_TRIANGLELIST          = 4,
-    D3DPT_TRIANGLESTRIP         = 5,
-    D3DPT_TRIANGLEFAN           = 6,
-
-    D3DPT_FORCE_DWORD           = 0x7fffffff
-} D3DPRIMITIVETYPE;
-
-typedef enum _D3DRENDERSTATETYPE {
-    D3DRS_ZENABLE                   =   7,
-    D3DRS_FILLMODE                  =   8,
-    D3DRS_SHADEMODE                 =   9,
-    D3DRS_LINEPATTERN               =  10,
-    D3DRS_ZWRITEENABLE              =  14,
-    D3DRS_ALPHATESTENABLE           =  15,
-    D3DRS_LASTPIXEL                 =  16,
-    D3DRS_SRCBLEND                  =  19,
-    D3DRS_DESTBLEND                 =  20,
-    D3DRS_CULLMODE                  =  22,
-    D3DRS_ZFUNC                     =  23,
-    D3DRS_ALPHAREF                  =  24,
-    D3DRS_ALPHAFUNC                 =  25,
-    D3DRS_DITHERENABLE              =  26,
-    D3DRS_ALPHABLENDENABLE          =  27,
-    D3DRS_FOGENABLE                 =  28,
-    D3DRS_SPECULARENABLE            =  29,
-    D3DRS_ZVISIBLE                  =  30,
-    D3DRS_FOGCOLOR                  =  34,
-    D3DRS_FOGTABLEMODE              =  35,
-    D3DRS_FOGSTART                  =  36,
-    D3DRS_FOGEND                    =  37,
-    D3DRS_FOGDENSITY                =  38,
-    D3DRS_EDGEANTIALIAS             =  40,
-    D3DRS_ZBIAS                     =  47,
-    D3DRS_RANGEFOGENABLE            =  48,
-    D3DRS_STENCILENABLE             =  52,
-    D3DRS_STENCILFAIL               =  53,
-    D3DRS_STENCILZFAIL              =  54,
-    D3DRS_STENCILPASS               =  55,
-    D3DRS_STENCILFUNC               =  56,
-    D3DRS_STENCILREF                =  57,
-    D3DRS_STENCILMASK               =  58,
-    D3DRS_STENCILWRITEMASK          =  59,
-    D3DRS_TEXTUREFACTOR             =  60,
-    D3DRS_WRAP0                     = 128,
-    D3DRS_WRAP1                     = 129,
-    D3DRS_WRAP2                     = 130,
-    D3DRS_WRAP3                     = 131,
-    D3DRS_WRAP4                     = 132,
-    D3DRS_WRAP5                     = 133,
-    D3DRS_WRAP6                     = 134,
-    D3DRS_WRAP7                     = 135,
-    D3DRS_CLIPPING                  = 136,
-    D3DRS_LIGHTING                  = 137,
-    D3DRS_AMBIENT                   = 139,
-    D3DRS_FOGVERTEXMODE             = 140,
-    D3DRS_COLORVERTEX               = 141,
-    D3DRS_LOCALVIEWER               = 142,
-    D3DRS_NORMALIZENORMALS          = 143,
-    D3DRS_DIFFUSEMATERIALSOURCE     = 145,
-    D3DRS_SPECULARMATERIALSOURCE    = 146,
-    D3DRS_AMBIENTMATERIALSOURCE     = 147,
-    D3DRS_EMISSIVEMATERIALSOURCE    = 148,
-    D3DRS_VERTEXBLEND               = 151,
-    D3DRS_CLIPPLANEENABLE           = 152,
-    D3DRS_SOFTWAREVERTEXPROCESSING  = 153,
-    D3DRS_POINTSIZE                 = 154,
-    D3DRS_POINTSIZE_MIN             = 155,
-    D3DRS_POINTSPRITEENABLE         = 156,
-    D3DRS_POINTSCALEENABLE          = 157,
-    D3DRS_POINTSCALE_A              = 158,
-    D3DRS_POINTSCALE_B              = 159,
-    D3DRS_POINTSCALE_C              = 160,
-    D3DRS_MULTISAMPLEANTIALIAS      = 161,
-    D3DRS_MULTISAMPLEMASK           = 162,
-    D3DRS_PATCHEDGESTYLE            = 163,
-    D3DRS_PATCHSEGMENTS             = 164,
-    D3DRS_DEBUGMONITORTOKEN         = 165,
-    D3DRS_POINTSIZE_MAX             = 166,
-    D3DRS_INDEXEDVERTEXBLENDENABLE  = 167,
-    D3DRS_COLORWRITEENABLE          = 168,
-    D3DRS_TWEENFACTOR               = 170,
-    D3DRS_BLENDOP                   = 171,
-    D3DRS_POSITIONORDER             = 172,
-    D3DRS_NORMALORDER               = 173,
-
-    D3DRS_FORCE_DWORD               = 0x7fffffff
-} D3DRENDERSTATETYPE;
-
-typedef enum _D3DRESOURCETYPE {
-    D3DRTYPE_SURFACE                =  1,
-    D3DRTYPE_VOLUME                 =  2,
-    D3DRTYPE_TEXTURE                =  3,
-    D3DRTYPE_VOLUMETEXTURE          =  4,
-    D3DRTYPE_CUBETEXTURE            =  5,
-    D3DRTYPE_VERTEXBUFFER           =  6,
-    D3DRTYPE_INDEXBUFFER            =  7,
-
-    D3DRTYPE_FORCE_DWORD            = 0x7fffffff
-} D3DRESOURCETYPE;
-
-typedef enum _D3DSHADEMODE {
-    D3DSHADE_FLAT               = 1,
-    D3DSHADE_GOURAUD            = 2,
-    D3DSHADE_PHONG              = 3,
-
-    D3DSHADE_FORCE_DWORD        = 0x7fffffff
-} D3DSHADEMODE;
-
-typedef enum _D3DSTATEBLOCKTYPE {
-    D3DSBT_ALL           = 1,
-    D3DSBT_PIXELSTATE    = 2,
-    D3DSBT_VERTEXSTATE   = 3,
-
-    D3DSBT_FORCE_DWORD   = 0xffffffff
-} D3DSTATEBLOCKTYPE;
-
-typedef enum _D3DSTENCILOP {
-    D3DSTENCILOP_KEEP           = 1,
-    D3DSTENCILOP_ZERO           = 2,
-    D3DSTENCILOP_REPLACE        = 3,
-    D3DSTENCILOP_INCRSAT        = 4,
-    D3DSTENCILOP_DECRSAT        = 5,
-    D3DSTENCILOP_INVERT         = 6,
-    D3DSTENCILOP_INCR           = 7,
-    D3DSTENCILOP_DECR           = 8,
-
-    D3DSTENCILOP_FORCE_DWORD    = 0x7fffffff
-} D3DSTENCILOP;
-
-typedef enum _D3DSWAPEFFECT {
-    D3DSWAPEFFECT_DISCARD         = 1,
-    D3DSWAPEFFECT_FLIP            = 2,
-    D3DSWAPEFFECT_COPY            = 3,
-    D3DSWAPEFFECT_COPY_VSYNC      = 4,
-
-    D3DSWAPEFFECT_FORCE_DWORD     = 0xFFFFFFFF
-} D3DSWAPEFFECT;
-
-typedef enum _D3DTEXTUREADDRESS {
-    D3DTADDRESS_WRAP            = 1,
-    D3DTADDRESS_MIRROR          = 2,
-    D3DTADDRESS_CLAMP           = 3,
-    D3DTADDRESS_BORDER          = 4,
-    D3DTADDRESS_MIRRORONCE      = 5,
-
-    D3DTADDRESS_FORCE_DWORD     = 0x7fffffff
-} D3DTEXTUREADDRESS;
-
-typedef enum _D3DTEXTUREFILTERTYPE {
-    D3DTEXF_NONE            = 0,
-    D3DTEXF_POINT           = 1,
-    D3DTEXF_LINEAR          = 2,
-    D3DTEXF_ANISOTROPIC     = 3,
-    D3DTEXF_FLATCUBIC       = 4,
-    D3DTEXF_GAUSSIANCUBIC   = 5,
-
-    D3DTEXF_FORCE_DWORD     = 0x7fffffff
-} D3DTEXTUREFILTERTYPE;
-
-typedef enum _D3DTEXTUREOP {
-    D3DTOP_DISABLE                   =  1,
-    D3DTOP_SELECTARG1                =  2,
-    D3DTOP_SELECTARG2                =  3,
-    D3DTOP_MODULATE                  =  4,
-    D3DTOP_MODULATE2X                =  5,
-    D3DTOP_MODULATE4X                =  6,
-    D3DTOP_ADD                       =  7,
-    D3DTOP_ADDSIGNED                 =  8,
-    D3DTOP_ADDSIGNED2X               =  9,
-    D3DTOP_SUBTRACT                  = 10,
-    D3DTOP_ADDSMOOTH                 = 11,
-    D3DTOP_BLENDDIFFUSEALPHA         = 12,
-    D3DTOP_BLENDTEXTUREALPHA         = 13,
-    D3DTOP_BLENDFACTORALPHA          = 14,
-    D3DTOP_BLENDTEXTUREALPHAPM       = 15,
-    D3DTOP_BLENDCURRENTALPHA         = 16,
-    D3DTOP_PREMODULATE               = 17,
-    D3DTOP_MODULATEALPHA_ADDCOLOR    = 18,
-    D3DTOP_MODULATECOLOR_ADDALPHA    = 19,
-    D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20,
-    D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21,
-    D3DTOP_BUMPENVMAP                = 22,
-    D3DTOP_BUMPENVMAPLUMINANCE       = 23,
-    D3DTOP_DOTPRODUCT3               = 24,
-    D3DTOP_MULTIPLYADD               = 25,
-    D3DTOP_LERP                      = 26,
-
-    D3DTOP_FORCE_DWORD               = 0x7fffffff,
-} D3DTEXTUREOP;
-
-typedef enum _D3DTEXTURESTAGESTATETYPE {
-    D3DTSS_COLOROP               =  1,
-    D3DTSS_COLORARG1             =  2,
-    D3DTSS_COLORARG2             =  3,
-    D3DTSS_ALPHAOP               =  4,
-    D3DTSS_ALPHAARG1             =  5,
-    D3DTSS_ALPHAARG2             =  6,
-    D3DTSS_BUMPENVMAT00          =  7,
-    D3DTSS_BUMPENVMAT01          =  8,
-    D3DTSS_BUMPENVMAT10          =  9,
-    D3DTSS_BUMPENVMAT11          = 10,
-    D3DTSS_TEXCOORDINDEX         = 11,
-    D3DTSS_ADDRESSU              = 13,
-    D3DTSS_ADDRESSV              = 14,
-    D3DTSS_BORDERCOLOR           = 15,
-    D3DTSS_MAGFILTER             = 16,
-    D3DTSS_MINFILTER             = 17,
-    D3DTSS_MIPFILTER             = 18,
-    D3DTSS_MIPMAPLODBIAS         = 19,
-    D3DTSS_MAXMIPLEVEL           = 20,
-    D3DTSS_MAXANISOTROPY         = 21,
-    D3DTSS_BUMPENVLSCALE         = 22,
-    D3DTSS_BUMPENVLOFFSET        = 23,
-    D3DTSS_TEXTURETRANSFORMFLAGS = 24,
-    D3DTSS_ADDRESSW              = 25,
-    D3DTSS_COLORARG0             = 26,
-    D3DTSS_ALPHAARG0             = 27,
-    D3DTSS_RESULTARG             = 28,
-
-    D3DTSS_FORCE_DWORD           = 0x7fffffff
-} D3DTEXTURESTAGESTATETYPE;
-
-typedef enum _D3DTEXTURETRANSFORMFLAGS {
-    D3DTTFF_DISABLE         =   0,
-    D3DTTFF_COUNT1          =   1,
-    D3DTTFF_COUNT2          =   2,
-    D3DTTFF_COUNT3          =   3,
-    D3DTTFF_COUNT4          =   4,
-    D3DTTFF_PROJECTED       = 256,
-
-    D3DTTFF_FORCE_DWORD     = 0x7fffffff
-} D3DTEXTURETRANSFORMFLAGS;
-
-typedef enum _D3DTRANSFORMSTATETYPE {
-    D3DTS_VIEW            =  2,
-    D3DTS_PROJECTION      =  3,
-    D3DTS_TEXTURE0        = 16,
-    D3DTS_TEXTURE1        = 17,
-    D3DTS_TEXTURE2        = 18,
-    D3DTS_TEXTURE3        = 19,
-    D3DTS_TEXTURE4        = 20,
-    D3DTS_TEXTURE5        = 21,
-    D3DTS_TEXTURE6        = 22,
-    D3DTS_TEXTURE7        = 23,
-
-    D3DTS_FORCE_DWORD     = 0x7fffffff
-} D3DTRANSFORMSTATETYPE;
-
-typedef enum _D3DVERTEXBLENDFLAGS {
-    D3DVBF_DISABLE  =   0,
-    D3DVBF_1WEIGHTS =   1,
-    D3DVBF_2WEIGHTS =   2,
-    D3DVBF_3WEIGHTS =   3,
-    D3DVBF_TWEENING = 255,
-    D3DVBF_0WEIGHTS = 256
-} D3DVERTEXBLENDFLAGS;
-
-typedef enum _D3DZBUFFERTYPE {
-    D3DZB_FALSE                 = 0,
-    D3DZB_TRUE                  = 1,
-    D3DZB_USEW                  = 2,
-
-    D3DZB_FORCE_DWORD           = 0x7fffffff
-} D3DZBUFFERTYPE;
-
-
-/*****************************************************************************
- * Direct 3D v8 typedefs
- */
-typedef DWORD D3DCOLOR;
-
-/*****************************************************************************
- * Direct 3D v8 structures
- */
-typedef struct _D3DADAPTER_IDENTIFIER8 {
-    char            Driver[MAX_DEVICE_IDENTIFIER_STRING];
-    char            Description[MAX_DEVICE_IDENTIFIER_STRING];
-
-    LARGE_INTEGER   DriverVersion;
-    DWORD           VendorId;
-    DWORD           DeviceId;
-    DWORD           SubSysId;
-    DWORD           Revision;
-
-    GUID            DeviceIdentifier;
-
-    DWORD           WHQLLevel;
-} D3DADAPTER_IDENTIFIER8;
-
-typedef struct _D3DBOX {
-    UINT                Left;
-    UINT                Top;
-    UINT                Right;
-    UINT                Bottom;
-    UINT                Front;
-    UINT                Back;
-} D3DBOX;
-
-typedef struct _D3DCLIPSTATUS8 {
-   DWORD ClipUnion;
-   DWORD ClipIntersection;
-} D3DCLIPSTATUS8;
-
-typedef struct _D3DCOLORVALUE {
-    float r;
-    float g;
-    float b;
-    float a;
-} D3DCOLORVALUE;
-
-typedef struct _D3DDEVICE_CREATION_PARAMETERS {
-    UINT          AdapterOrdinal;
-    D3DDEVTYPE    DeviceType;
-    HWND          hFocusWindow;
-    DWORD         BehaviorFlags;
-} D3DDEVICE_CREATION_PARAMETERS;
-
-typedef struct _D3DDISPLAYMODE {
-    UINT            Width;
-    UINT            Height;
-    UINT            RefreshRate;
-    D3DFORMAT       Format;
-} D3DDISPLAYMODE;
-
-typedef struct _D3DGAMMARAMP {
-    WORD                red  [256];
-    WORD                green[256];
-    WORD                blue [256];
-} D3DGAMMARAMP;
-
-typedef struct _D3DINDEXBUFFER_DESC {
-    D3DFORMAT           Format;
-    D3DRESOURCETYPE     Type;
-    DWORD               Usage;
-    D3DPOOL             Pool;
-    UINT                Size;
-} D3DINDEXBUFFER_DESC;
-
-#ifndef D3DVECTOR_DEFINED
-typedef struct _D3DVECTOR {
-    float x;
-    float y;
-    float z;
-} D3DVECTOR;
-#define D3DVECTOR_DEFINED
-#endif
-
-typedef struct _D3DLIGHT8 {
-    D3DLIGHTTYPE    Type;
-    D3DCOLORVALUE   Diffuse;
-    D3DCOLORVALUE   Specular;
-    D3DCOLORVALUE   Ambient;
-    D3DVECTOR       Position;
-    D3DVECTOR       Direction;
-    float           Range;
-    float           Falloff;
-    float           Attenuation0;
-    float           Attenuation1;
-    float           Attenuation2;
-    float           Theta;
-    float           Phi;
-} D3DLIGHT8;
-
-typedef struct _D3DLINEPATTERN {
-    WORD    wRepeatFactor;
-    WORD    wLinePattern;
-} D3DLINEPATTERN;
-
-typedef struct _D3DLOCKED_BOX {
-    INT                 RowPitch;
-    INT                 SlicePitch;
-    void*               pBits;
-} D3DLOCKED_BOX;
-
-typedef struct _D3DLOCKED_RECT {
-    INT                 Pitch;
-    void*               pBits;
-} D3DLOCKED_RECT;
-
-typedef struct _D3DMATERIAL8 {
-    D3DCOLORVALUE   Diffuse;
-    D3DCOLORVALUE   Ambient;
-    D3DCOLORVALUE   Specular;
-    D3DCOLORVALUE   Emissive;
-    float           Power;
-} D3DMATERIAL8;
-
-typedef struct _D3DMATRIX {
-    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;
-} D3DMATRIX;
-
-typedef struct _D3DPRESENT_PARAMETERS_ {
-    UINT                    BackBufferWidth;
-    UINT                    BackBufferHeight;
-    D3DFORMAT               BackBufferFormat;
-    UINT                    BackBufferCount;
-
-    D3DMULTISAMPLE_TYPE     MultiSampleType;
-
-    D3DSWAPEFFECT           SwapEffect;
-    HWND                    hDeviceWindow;
-    BOOL                    Windowed;
-    BOOL                    EnableAutoDepthStencil;
-    D3DFORMAT               AutoDepthStencilFormat;
-    DWORD                   Flags;
-
-    UINT                    FullScreen_RefreshRateInHz;
-    UINT                    FullScreen_PresentationInterval;
-
-} D3DPRESENT_PARAMETERS;
-
-#define D3DPRESENTFLAG_LOCKABLE_BACKBUFFER  0x00000001
-
-typedef struct _D3DRANGE {
-    UINT                Offset;
-    UINT                Size;
-} D3DRANGE;
-
-typedef struct _D3DRASTER_STATUS {
-    BOOL            InVBlank;
-    UINT            ScanLine;
-} D3DRASTER_STATUS;
-
-typedef struct _D3DRECT {
-    LONG x1;
-    LONG y1;
-    LONG x2;
-    LONG y2;
-} D3DRECT;
-
-typedef struct _D3DRECTPATCH_INFO {
-    UINT                StartVertexOffsetWidth;
-    UINT                StartVertexOffsetHeight;
-    UINT                Width;
-    UINT                Height;
-    UINT                Stride;
-    D3DBASISTYPE        Basis;
-    D3DORDERTYPE        Order;
-} D3DRECTPATCH_INFO;
-
-typedef struct _D3DSURFACE_DESC {
-    D3DFORMAT           Format;
-    D3DRESOURCETYPE     Type;
-    DWORD               Usage;
-    D3DPOOL             Pool;
-    UINT                Size;
-    D3DMULTISAMPLE_TYPE MultiSampleType;
-    UINT                Width;
-    UINT                Height;
-} D3DSURFACE_DESC;
-
-typedef struct _D3DTRIPATCH_INFO {
-    UINT                StartVertexOffset;
-    UINT                NumVertices;
-    D3DBASISTYPE        Basis;
-    D3DORDERTYPE        Order;
-} D3DTRIPATCH_INFO;
-
-typedef struct _D3DVERTEXBUFFER_DESC {
-    D3DFORMAT           Format;
-    D3DRESOURCETYPE     Type;
-    DWORD               Usage;
-    D3DPOOL             Pool;
-    UINT                Size;
-    DWORD               FVF;
-} D3DVERTEXBUFFER_DESC;
-
-typedef struct _D3DVIEWPORT8 {
-    DWORD       X;
-    DWORD       Y;
-    DWORD       Width;
-    DWORD       Height;
-    float       MinZ;
-    float       MaxZ;
-} D3DVIEWPORT8;
-
-typedef struct _D3DVOLUME_DESC {
-    D3DFORMAT           Format;
-    D3DRESOURCETYPE     Type;
-    DWORD               Usage;
-    D3DPOOL             Pool;
-    UINT                Size;
-    UINT                Width;
-    UINT                Height;
-    UINT                Depth;
-} D3DVOLUME_DESC;
-
-#endif  /* __WINE_D3D8TYPES_H */
diff --git a/misc/builddeps/win32/dx/include/d3d9.h b/misc/builddeps/win32/dx/include/d3d9.h
deleted file mode 100644 (file)
index 3f9ebf2..0000000
+++ /dev/null
@@ -1,2031 +0,0 @@
-/*
- * Copyright (C) 2002-2003 Jason Edmeades
- *                         Raphael Junqueira
- *
- * 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_D3D9_H
-#define __WINE_D3D9_H
-
-#ifndef DIRECT3D_VERSION
-#define DIRECT3D_VERSION  0x0900
-#endif
-
-#include <stdlib.h>
-
-#define COM_NO_WINDOWS_H
-#include <objbase.h>
-
-#ifndef __WINESRC__
-# include <windows.h>
-#endif
-
-#include <d3d9types.h>
-#include <d3d9caps.h>
-
-/*****************************************************************************
- * Behavior Flags for IDirect3D8::CreateDevice
- */
-#define D3DCREATE_FPU_PRESERVE                  0x00000002L
-#define D3DCREATE_MULTITHREADED                 0x00000004L
-#define D3DCREATE_PUREDEVICE                    0x00000010L
-#define D3DCREATE_SOFTWARE_VERTEXPROCESSING     0x00000020L
-#define D3DCREATE_HARDWARE_VERTEXPROCESSING     0x00000040L
-#define D3DCREATE_MIXED_VERTEXPROCESSING        0x00000080L
-#define D3DCREATE_DISABLE_DRIVER_MANAGEMENT     0x00000100L
-#define D3DCREATE_ADAPTERGROUP_DEVICE           0x00000200L
-
-/*****************************************************************************
- * Flags for SetPrivateData
- */
-#define D3DSPD_IUNKNOWN                         0x00000001L
-
-
-/*****************************************************************************
- * #defines and error codes
- */
-#define D3D_SDK_VERSION                         32
-#define D3DADAPTER_DEFAULT                      0
-#define D3DENUM_NO_WHQL_LEVEL                   0x00000002L
-#define D3DPRESENT_BACK_BUFFERS_MAX             3L
-#define D3DSGR_NO_CALIBRATION                   0x00000000L
-#define D3DSGR_CALIBRATE                        0x00000001L
-
-#define _FACD3D  0x876
-#define MAKE_D3DHRESULT( code )                 MAKE_HRESULT( 1, _FACD3D, code )
-#define MAKE_D3DSTATUS( code )                  MAKE_HRESULT( 0, _FACD3D, code )
-
-/*****************************************************************************
- * Direct3D Errors
- */
-#define D3D_OK                                  S_OK
-#define D3DERR_WRONGTEXTUREFORMAT               MAKE_D3DHRESULT(2072)
-#define D3DERR_UNSUPPORTEDCOLOROPERATION        MAKE_D3DHRESULT(2073)
-#define D3DERR_UNSUPPORTEDCOLORARG              MAKE_D3DHRESULT(2074)
-#define D3DERR_UNSUPPORTEDALPHAOPERATION        MAKE_D3DHRESULT(2075)
-#define D3DERR_UNSUPPORTEDALPHAARG              MAKE_D3DHRESULT(2076)
-#define D3DERR_TOOMANYOPERATIONS                MAKE_D3DHRESULT(2077)
-#define D3DERR_CONFLICTINGTEXTUREFILTER         MAKE_D3DHRESULT(2078)
-#define D3DERR_UNSUPPORTEDFACTORVALUE           MAKE_D3DHRESULT(2079)
-#define D3DERR_CONFLICTINGRENDERSTATE           MAKE_D3DHRESULT(2081)
-#define D3DERR_UNSUPPORTEDTEXTUREFILTER         MAKE_D3DHRESULT(2082)
-#define D3DERR_CONFLICTINGTEXTUREPALETTE        MAKE_D3DHRESULT(2086)
-#define D3DERR_DRIVERINTERNALERROR              MAKE_D3DHRESULT(2087)
-#define D3DERR_NOTFOUND                         MAKE_D3DHRESULT(2150)
-#define D3DERR_MOREDATA                         MAKE_D3DHRESULT(2151)
-#define D3DERR_DEVICELOST                       MAKE_D3DHRESULT(2152)
-#define D3DERR_DEVICENOTRESET                   MAKE_D3DHRESULT(2153)
-#define D3DERR_NOTAVAILABLE                     MAKE_D3DHRESULT(2154)
-#define D3DERR_OUTOFVIDEOMEMORY                 MAKE_D3DHRESULT(380)
-#define D3DERR_INVALIDDEVICE                    MAKE_D3DHRESULT(2155)
-#define D3DERR_INVALIDCALL                      MAKE_D3DHRESULT(2156)
-#define D3DERR_DRIVERINVALIDCALL                MAKE_D3DHRESULT(2157)
-#define D3DERR_WASSTILLDRAWING                  MAKE_D3DHRESULT(540)
-#define D3DOK_NOAUTOGEN                         MAKE_D3DSTATUS(2159)
-
-
-/*****************************************************************************
- * Predeclare the interfaces
- */
-DEFINE_GUID(IID_IDirect3D9,                   0x81BDCBCA, 0x64D4, 0x426D, 0xAE, 0x8D, 0xAD, 0x1, 0x47, 0xF4, 0x27, 0x5C);
-typedef struct IDirect3D9 *LPDIRECT3D9, *PDIRECT3D9;
-
-DEFINE_GUID(IID_IDirect3D9Ex,                 0x02177241, 0x69FC, 0x400C, 0x8F, 0xF1, 0x93, 0xA4, 0x4D, 0xF6, 0x86, 0x1D);
-typedef struct IDirect3D9Ex *LPDIRECT3D9EX, *PDIRECT3D9EX;
-
-DEFINE_GUID(IID_IDirect3DDevice9,             0xd0223b96, 0xbf7a, 0x43fd, 0x92, 0xbd, 0xa4, 0x3b, 0xd, 0x82, 0xb9, 0xeb);
-typedef struct IDirect3DDevice9 *LPDIRECT3DDEVICE9;
-
-DEFINE_GUID(IID_IDirect3DDevice9Ex,           0xb18b10ce, 0x2649, 0x405a, 0x87, 0xf, 0x95, 0xf7, 0x77, 0xd4, 0x31, 0x3a);
-typedef struct IDirect3DDevice9Ex *LPDIRECT3DDEVICE9EX, *PDIRECT3DDEVICE9EX;
-
-DEFINE_GUID(IID_IDirect3DResource9,           0x5eec05d, 0x8f7d, 0x4362, 0xb9, 0x99, 0xd1, 0xba, 0xf3, 0x57, 0xc7, 0x4);
-typedef struct IDirect3DResource9 *LPDIRECT3DRESOURCE9, *PDIRECT3DRESOURCE9;
-
-DEFINE_GUID(IID_IDirect3DVertexBuffer9,       0xb64bb1b5, 0xfd70, 0x4df6, 0xbf, 0x91, 0x19, 0xd0, 0xa1, 0x24, 0x55, 0xe3);
-typedef struct IDirect3DVertexBuffer9 *LPDIRECT3DVERTEXBUFFER9, *PDIRECT3DVERTEXBUFFER9;
-
-DEFINE_GUID(IID_IDirect3DVolume9,             0x24f416e6, 0x1f67, 0x4aa7, 0xb8, 0x8e, 0xd3, 0x3f, 0x6f, 0x31, 0x28, 0xa1);
-typedef struct IDirect3DVolume9 *LPDIRECT3DVOLUME9, *PDIRECT3DVOLUME9;
-
-DEFINE_GUID(IID_IDirect3DSwapChain9,          0x794950f2, 0xadfc, 0x458a, 0x90, 0x5e, 0x10, 0xa1, 0xb, 0xb, 0x50, 0x3b);
-typedef struct IDirect3DSwapChain9 *LPDIRECT3DSWAPCHAIN9, *PDIRECT3DSWAPCHAIN9;
-
-DEFINE_GUID(IID_IDirect3DSwapChain9Ex,        0x91886caf, 0x1c3d, 0x4d2e, 0xa0, 0xab, 0x3e, 0x4c, 0x7d, 0x8d, 0x33, 0x3);
-typedef struct IDirect3DSwapChain9Ex *LPDIRECT3DSWAPCHAIN9EX, *PDIRECT3DSWAPCHAIN9EX;
-
-DEFINE_GUID(IID_IDirect3DSurface9,            0xcfbaf3a, 0x9ff6, 0x429a, 0x99, 0xb3, 0xa2, 0x79, 0x6a, 0xf8, 0xb8, 0x9b);
-typedef struct IDirect3DSurface9 *LPDIRECT3DSURFACE9, *PDIRECT3DSURFACE9;
-
-DEFINE_GUID(IID_IDirect3DIndexBuffer9,        0x7c9dd65e, 0xd3f7, 0x4529, 0xac, 0xee, 0x78, 0x58, 0x30, 0xac, 0xde, 0x35);
-typedef struct IDirect3DIndexBuffer9 *LPDIRECT3DINDEXBUFFER9, *PDIRECT3DINDEXBUFFER9;
-
-DEFINE_GUID(IID_IDirect3DBaseTexture9,        0x580ca87e, 0x1d3c, 0x4d54, 0x99, 0x1d, 0xb7, 0xd3, 0xe3, 0xc2, 0x98, 0xce);
-typedef struct IDirect3DBaseTexture9 *LPDIRECT3DBASETEXTURE9, *PDIRECT3DBASETEXTURE9;
-
-DEFINE_GUID(IID_IDirect3DTexture9,            0x85c31227, 0x3de5, 0x4f00, 0x9b, 0x3a, 0xf1, 0x1a, 0xc3, 0x8c, 0x18, 0xb5);
-typedef struct IDirect3DTexture9 *LPDIRECT3DTEXTURE9, *PDIRECT3DTEXTURE9;
-
-DEFINE_GUID(IID_IDirect3DCubeTexture9,        0xfff32f81, 0xd953, 0x473a, 0x92, 0x23, 0x93, 0xd6, 0x52, 0xab, 0xa9, 0x3f);
-typedef struct IDirect3DCubeTexture9 *LPDIRECT3DCUBETEXTURE9, *PDIRECT3DCUBETEXTURE9;
-
-DEFINE_GUID(IID_IDirect3DVolumeTexture9,      0x2518526c, 0xe789, 0x4111, 0xa7, 0xb9, 0x47, 0xef, 0x32, 0x8d, 0x13, 0xe6);
-typedef struct IDirect3DVolumeTexture9 *LPDIRECT3DVOLUMETEXTURE9, *PDIRECT3DVOLUMETEXTURE9;
-
-DEFINE_GUID(IID_IDirect3DVertexDeclaration9,  0xdd13c59c, 0x36fa, 0x4098, 0xa8, 0xfb, 0xc7, 0xed, 0x39, 0xdc, 0x85, 0x46);
-typedef struct IDirect3DVertexDeclaration9 *LPDIRECT3DVERTEXDECLARATION9;
-
-DEFINE_GUID(IID_IDirect3DVertexShader9,       0xefc5557e, 0x6265, 0x4613, 0x8a, 0x94, 0x43, 0x85, 0x78, 0x89, 0xeb, 0x36);
-typedef struct IDirect3DVertexShader9 *LPDIRECT3DVERTEXSHADER9;
-
-DEFINE_GUID(IID_IDirect3DPixelShader9,        0x6d3bdbdc, 0x5b02, 0x4415, 0xb8, 0x52, 0xce, 0x5e, 0x8b, 0xcc, 0xb2, 0x89);
-typedef struct IDirect3DPixelShader9 *LPDIRECT3DPIXELSHADER9;
-
-DEFINE_GUID(IID_IDirect3DStateBlock9,         0xb07c4fe5, 0x310d, 0x4ba8, 0xa2, 0x3c, 0x4f, 0xf, 0x20, 0x6f, 0x21, 0x8b);
-typedef struct IDirect3DStateBlock9 *LPDIRECT3DSTATEBLOCK9;
-
-DEFINE_GUID(IID_IDirect3DQuery9,              0xd9771460, 0xa695, 0x4f26, 0xbb, 0xd3, 0x27, 0xb8, 0x40, 0xb5, 0x41, 0xcc);
-typedef struct IDirect3DQuery9 *LPDIRECT3DQUERY9, *PDIRECT3DQUERY9;
-
-/*****************************************************************************
- * IDirect3D9 interface
- */
-#undef INTERFACE
-#define INTERFACE IDirect3D9
-DECLARE_INTERFACE_(IDirect3D9,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3D9 methods ***/
-    STDMETHOD(RegisterSoftwareDevice)(THIS_ void* pInitializeFunction) PURE;
-    STDMETHOD_(UINT, GetAdapterCount)(THIS) PURE;
-    STDMETHOD(GetAdapterIdentifier)(THIS_ UINT Adapter, DWORD Flags, D3DADAPTER_IDENTIFIER9* pIdentifier) PURE;
-    STDMETHOD_(UINT, GetAdapterModeCount)(THIS_ UINT Adapter, D3DFORMAT Format) PURE;
-    STDMETHOD(EnumAdapterModes)(THIS_ UINT Adapter, D3DFORMAT Format, UINT Mode, D3DDISPLAYMODE* pMode) PURE;
-    STDMETHOD(GetAdapterDisplayMode)(THIS_ UINT Adapter, D3DDISPLAYMODE* pMode) PURE;
-    STDMETHOD(CheckDeviceType)(THIS_ UINT iAdapter, D3DDEVTYPE DevType, D3DFORMAT DisplayFormat, D3DFORMAT BackBufferFormat, BOOL bWindowed) PURE;
-    STDMETHOD(CheckDeviceFormat)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, DWORD Usage, D3DRESOURCETYPE RType, D3DFORMAT CheckFormat) PURE;
-    STDMETHOD(CheckDeviceMultiSampleType)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT SurfaceFormat, BOOL Windowed, D3DMULTISAMPLE_TYPE MultiSampleType, DWORD* pQualityLevels) PURE;
-    STDMETHOD(CheckDepthStencilMatch)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, D3DFORMAT RenderTargetFormat, D3DFORMAT DepthStencilFormat) PURE;
-    STDMETHOD(CheckDeviceFormatConversion)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT SourceFormat, D3DFORMAT TargetFormat) PURE;
-    STDMETHOD(GetDeviceCaps)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DCAPS9* pCaps) PURE;
-    STDMETHOD_(HMONITOR, GetAdapterMonitor)(THIS_ UINT Adapter) PURE;
-    STDMETHOD(CreateDevice)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* pPresentationParameters, struct IDirect3DDevice9** ppReturnedDeviceInterface) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3D9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3D9_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3D9_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3D9 methods ***/
-#define IDirect3D9_RegisterSoftwareDevice(p,a)                (p)->lpVtbl->RegisterSoftwareDevice(p,a)
-#define IDirect3D9_GetAdapterCount(p)                         (p)->lpVtbl->GetAdapterCount(p)
-#define IDirect3D9_GetAdapterIdentifier(p,a,b,c)              (p)->lpVtbl->GetAdapterIdentifier(p,a,b,c)
-#define IDirect3D9_GetAdapterModeCount(p,a,b)                 (p)->lpVtbl->GetAdapterModeCount(p,a,b)
-#define IDirect3D9_EnumAdapterModes(p,a,b,c,d)                (p)->lpVtbl->EnumAdapterModes(p,a,b,c,d)
-#define IDirect3D9_GetAdapterDisplayMode(p,a,b)               (p)->lpVtbl->GetAdapterDisplayMode(p,a,b)
-#define IDirect3D9_CheckDeviceType(p,a,b,c,d,e)               (p)->lpVtbl->CheckDeviceType(p,a,b,c,d,e)
-#define IDirect3D9_CheckDeviceFormat(p,a,b,c,d,e,f)           (p)->lpVtbl->CheckDeviceFormat(p,a,b,c,d,e,f)
-#define IDirect3D9_CheckDeviceMultiSampleType(p,a,b,c,d,e,f)  (p)->lpVtbl->CheckDeviceMultiSampleType(p,a,b,c,d,e,f)
-#define IDirect3D9_CheckDepthStencilMatch(p,a,b,c,d,e)        (p)->lpVtbl->CheckDepthStencilMatch(p,a,b,c,d,e)
-#define IDirect3D9_CheckDeviceFormatConversion(p,a,b,c,d)     (p)->lpVtbl->CheckDeviceFormatConversion(p,a,b,c,d)
-#define IDirect3D9_GetDeviceCaps(p,a,b,c)                     (p)->lpVtbl->GetDeviceCaps(p,a,b,c)
-#define IDirect3D9_GetAdapterMonitor(p,a)                     (p)->lpVtbl->GetAdapterMonitor(p,a)
-#define IDirect3D9_CreateDevice(p,a,b,c,d,e,f)                (p)->lpVtbl->CreateDevice(p,a,b,c,d,e,f)
-#else
-/*** IUnknown methods ***/
-#define IDirect3D9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3D9_AddRef(p)             (p)->AddRef()
-#define IDirect3D9_Release(p)            (p)->Release()
-/*** IDirect3D9 methods ***/
-#define IDirect3D9_RegisterSoftwareDevice(p,a)                (p)->RegisterSoftwareDevice(a)
-#define IDirect3D9_GetAdapterCount(p)                         (p)->GetAdapterCount()
-#define IDirect3D9_GetAdapterIdentifier(p,a,b,c)              (p)->GetAdapterIdentifier(a,b,c)
-#define IDirect3D9_GetAdapterModeCount(p,a,b)                 (p)->GetAdapterModeCount(a,b)
-#define IDirect3D9_EnumAdapterModes(p,a,b,c,d)                (p)->EnumAdapterModes(a,b,c,d)
-#define IDirect3D9_GetAdapterDisplayMode(p,a,b)               (p)->GetAdapterDisplayMode(a,b)
-#define IDirect3D9_CheckDeviceType(p,a,b,c,d,e)               (p)->CheckDeviceType(a,b,c,d,e)
-#define IDirect3D9_CheckDeviceFormat(p,a,b,c,d,e,f)           (p)->CheckDeviceFormat(a,b,c,d,e,f)
-#define IDirect3D9_CheckDeviceMultiSampleType(p,a,b,c,d,e,f)  (p)->CheckDeviceMultiSampleType(a,b,c,d,e,f)
-#define IDirect3D9_CheckDepthStencilMatch(p,a,b,c,d,e)        (p)->CheckDepthStencilMatch(a,b,c,d,e)
-#define IDirect3D9_CheckDeviceFormatConversion(p,a,b,c,d)     (p)->CheckDeviceFormatConversion(a,b,c,d)
-#define IDirect3D9_GetDeviceCaps(p,a,b,c)                     (p)->GetDeviceCaps(a,b,c)
-#define IDirect3D9_GetAdapterMonitor(p,a)                     (p)->GetAdapterMonitor(a)
-#define IDirect3D9_CreateDevice(p,a,b,c,d,e,f)                (p)->CreateDevice(a,b,c,d,e,f)
-#endif
-
-/*****************************************************************************
- * IDirect3D9Ex interface
- */
-#define INTERFACE IDirect3D9Ex
-DECLARE_INTERFACE_(IDirect3D9Ex,IDirect3D9)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3D9 methods ***/
-
-    /* Note: Microsoft's d3d9.h does not declare IDirect3D9Ex::RegisterSoftwareDevice . This would mean that
-     * the offsets of the other methods in the Vtable change too. This is wrong. In Microsoft's
-     * d3d9.dll, the offsets for the other functions are still compatible with IDirect3D9.
-     * This is probably because even in MS's header IDirect3D9Ex inherits from IDirect3D9, which makes the
-     * C++ inferface compatible, and nobody uses the C interface in Windows world.
-     */
-    STDMETHOD(RegisterSoftwareDevice)(THIS_ void* pInitializeFunction) PURE;
-
-    STDMETHOD_(UINT, GetAdapterCount)(THIS) PURE;
-    STDMETHOD(GetAdapterIdentifier)(THIS_ UINT Adapter, DWORD Flags, D3DADAPTER_IDENTIFIER9* pIdentifier) PURE;
-    STDMETHOD_(UINT, GetAdapterModeCount)(THIS_ UINT Adapter, D3DFORMAT Format) PURE;
-    STDMETHOD(EnumAdapterModes)(THIS_ UINT Adapter, D3DFORMAT Format, UINT Mode, D3DDISPLAYMODE* pMode) PURE;
-    STDMETHOD(GetAdapterDisplayMode)(THIS_ UINT Adapter, D3DDISPLAYMODE* pMode) PURE;
-    STDMETHOD(CheckDeviceType)(THIS_ UINT iAdapter, D3DDEVTYPE DevType, D3DFORMAT DisplayFormat, D3DFORMAT BackBufferFormat, BOOL bWindowed) PURE;
-    STDMETHOD(CheckDeviceFormat)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, DWORD Usage, D3DRESOURCETYPE RType, D3DFORMAT CheckFormat) PURE;
-    STDMETHOD(CheckDeviceMultiSampleType)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT SurfaceFormat, BOOL Windowed, D3DMULTISAMPLE_TYPE MultiSampleType, DWORD* pQualityLevels) PURE;
-    STDMETHOD(CheckDepthStencilMatch)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, D3DFORMAT RenderTargetFormat, D3DFORMAT DepthStencilFormat) PURE;
-    STDMETHOD(CheckDeviceFormatConversion)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT SourceFormat, D3DFORMAT TargetFormat) PURE;
-    STDMETHOD(GetDeviceCaps)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DCAPS9* pCaps) PURE;
-    STDMETHOD_(HMONITOR, GetAdapterMonitor)(THIS_ UINT Adapter) PURE;
-    STDMETHOD(CreateDevice)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* pPresentationParameters, struct IDirect3DDevice9** ppReturnedDeviceInterface) PURE;
-    /*** IDirect3D9Ex methods ***/
-    STDMETHOD_(UINT, GetAdapterModeCountEx)(THIS_ UINT Adapter, CONST D3DDISPLAYMODEFILTER *pFilter) PURE;
-    STDMETHOD(EnumAdapterModesEx)(THIS_ UINT Adapter, CONST D3DDISPLAYMODEFILTER *pFilter, UINT Mode, D3DDISPLAYMODEEX* pMode) PURE;
-    STDMETHOD(GetAdapterDisplayModeEx)(THIS_ UINT Adapter, D3DDISPLAYMODEEX *pMode, D3DDISPLAYROTATION *pRotation);
-    STDMETHOD(CreateDeviceEx)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* pPresentationParameters, D3DDISPLAYMODEEX* pFullscreenDisplayMode, struct IDirect3DDevice9Ex **ppReturnedDeviceInterface) PURE;
-    STDMETHOD(GetAdapterLUID)(THIS_ UINT Adatper, LUID *pLUID) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3D9Ex_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3D9Ex_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3D9Ex_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3D9 methods ***/
-#define IDirect3D9Ex_RegisterSoftwareDevice(p,a)                (p)->lpVtbl->RegisterSoftwareDevice(p,a)
-#define IDirect3D9Ex_GetAdapterCount(p)                         (p)->lpVtbl->GetAdapterCount(p)
-#define IDirect3D9Ex_GetAdapterIdentifier(p,a,b,c)              (p)->lpVtbl->GetAdapterIdentifier(p,a,b,c)
-#define IDirect3D9Ex_GetAdapterModeCount(p,a,b)                 (p)->lpVtbl->GetAdapterModeCount(p,a,b)
-#define IDirect3D9Ex_EnumAdapterModes(p,a,b,c,d)                (p)->lpVtbl->EnumAdapterModes(p,a,b,c,d)
-#define IDirect3D9Ex_GetAdapterDisplayMode(p,a,b)               (p)->lpVtbl->GetAdapterDisplayMode(p,a,b)
-#define IDirect3D9Ex_CheckDeviceType(p,a,b,c,d,e)               (p)->lpVtbl->CheckDeviceType(p,a,b,c,d,e)
-#define IDirect3D9Ex_CheckDeviceFormat(p,a,b,c,d,e,f)           (p)->lpVtbl->CheckDeviceFormat(p,a,b,c,d,e,f)
-#define IDirect3D9Ex_CheckDeviceMultiSampleType(p,a,b,c,d,e,f)  (p)->lpVtbl->CheckDeviceMultiSampleType(p,a,b,c,d,e,f)
-#define IDirect3D9Ex_CheckDepthStencilMatch(p,a,b,c,d,e)        (p)->lpVtbl->CheckDepthStencilMatch(p,a,b,c,d,e)
-#define IDirect3D9Ex_CheckDeviceFormatConversion(p,a,b,c,d)     (p)->lpVtbl->CheckDeviceFormatConversion(p,a,b,c,d)
-#define IDirect3D9Ex_GetDeviceCaps(p,a,b,c)                     (p)->lpVtbl->GetDeviceCaps(p,a,b,c)
-#define IDirect3D9Ex_GetAdapterMonitor(p,a)                     (p)->lpVtbl->GetAdapterMonitor(p,a)
-#define IDirect3D9Ex_CreateDevice(p,a,b,c,d,e,f)                (p)->lpVtbl->CreateDevice(p,a,b,c,d,e,f)
-/*** IDirect3D9Ex methods ***/
-#define IDirect3D9Ex_GetAdapterModeCountEx(p,a,b)               (p)->lpVtbl->GetAdapterModeCountEx(p,a,b)
-#define IDirect3D9Ex_EnumAdapterModesEx(p,a,b,c,d)              (p)->lpVtbl->EnumAdapterModesEx(p,a,b,c,d)
-#define IDirect3D9Ex_GetAdapterDisplayModeEx(p,a,b,c)           (p)->lpVtbl->GetAdapterDisplayModeEx(p,a,b,c)
-#define IDirect3D9Ex_CreateDeviceEx(p,a,b,c,d,e,f,g)            (p)->lpVtbl->CreateDeviceEx(p,a,b,c,d,e,f,g)
-#define IDirect3D9Ex_GetAdapterLUID(p,a,b)                      (p)->lpVtbl->GetAdapterLUID(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3D9Ex_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3D9Ex_AddRef(p)             (p)->AddRef()
-#define IDirect3D9Ex_Release(p)            (p)->Release()
-/*** IDirect3D9 methods ***/
-#define IDirect3D9Ex_RegisterSoftwareDevice(p,a)                (p)->RegisterSoftwareDevice(a)
-#define IDirect3D9Ex_GetAdapterCount(p)                         (p)->GetAdapterCount()
-#define IDirect3D9Ex_GetAdapterIdentifier(p,a,b,c)              (p)->GetAdapterIdentifier(a,b,c)
-#define IDirect3D9Ex_GetAdapterModeCount(p,a,b)                 (p)->GetAdapterModeCount(a,b)
-#define IDirect3D9Ex_EnumAdapterModes(p,a,b,c,d)                (p)->EnumAdapterModes(a,b,c,d)
-#define IDirect3D9Ex_GetAdapterDisplayMode(p,a,b)               (p)->GetAdapterDisplayMode(a,b)
-#define IDirect3D9Ex_CheckDeviceType(p,a,b,c,d,e)               (p)->CheckDeviceType(a,b,c,d,e)
-#define IDirect3D9Ex_CheckDeviceFormat(p,a,b,c,d,e,f)           (p)->CheckDeviceFormat(a,b,c,d,e,f)
-#define IDirect3D9Ex_CheckDeviceMultiSampleType(p,a,b,c,d,e,f)  (p)->CheckDeviceMultiSampleType(a,b,c,d,e,f)
-#define IDirect3D9Ex_CheckDepthStencilMatch(p,a,b,c,d,e)        (p)->CheckDepthStencilMatch(a,b,c,d,e)
-#define IDirect3D9Ex_CheckDeviceFormatConversion(p,a,b,c,d)     (p)->CheckDeviceFormatConversion(a,b,c,d)
-#define IDirect3D9Ex_GetDeviceCaps(p,a,b,c)                     (p)->GetDeviceCaps(a,b,c)
-#define IDirect3D9Ex_GetAdapterMonitor(p,a)                     (p)->GetAdapterMonitor(a)
-#define IDirect3D9Ex_CreateDevice(p,a,b,c,d,e,f)                (p)->CreateDevice(a,b,c,d,e,f)
-#endif
-
-/*****************************************************************************
- * IDirect3DVolume9 interface
- */
-#define INTERFACE IDirect3DVolume9
-DECLARE_INTERFACE_(IDirect3DVolume9,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DVolume9 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** 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(GetContainer)(THIS_ REFIID riid, void** ppContainer) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3DVOLUME_DESC* pDesc) PURE;
-    STDMETHOD(LockBox)(THIS_ D3DLOCKED_BOX* pLockedVolume, CONST D3DBOX* pBox, DWORD Flags) PURE;
-    STDMETHOD(UnlockBox)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DVolume9_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DVolume9_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DVolume9_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DVolume9 methods ***/
-#define IDirect3DVolume9_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DVolume9_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DVolume9_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DVolume9_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DVolume9_GetContainer(p,a,b)          (p)->lpVtbl->GetContainer(p,a,b)
-#define IDirect3DVolume9_GetDesc(p,a)                 (p)->lpVtbl->GetDesc(p,a)
-#define IDirect3DVolume9_LockBox(p,a,b,c)             (p)->lpVtbl->LockBox(p,a,b,c)
-#define IDirect3DVolume9_UnlockBox(p)                 (p)->lpVtbl->UnlockBox(p)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DVolume9_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DVolume9_AddRef(p)                    (p)->AddRef()
-#define IDirect3DVolume9_Release(p)                   (p)->Release()
-/*** IDirect3DVolume9 methods ***/
-#define IDirect3DVolume9_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DVolume9_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DVolume9_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
-#define IDirect3DVolume9_FreePrivateData(p,a)         (p)->FreePrivateData(a)
-#define IDirect3DVolume9_GetContainer(p,a,b)          (p)->GetContainer(a,b)
-#define IDirect3DVolume9_GetDesc(p,a)                 (p)->GetDesc(a)
-#define IDirect3DVolume9_LockBox(p,a,b,c)             (p)->LockBox(a,b,c)
-#define IDirect3DVolume9_UnlockBox(p)                 (p)->UnlockBox()
-#endif
-
-/*****************************************************************************
- * IDirect3DSwapChain9 interface
- */
-#define INTERFACE IDirect3DSwapChain9
-DECLARE_INTERFACE_(IDirect3DSwapChain9,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DSwapChain9 methods ***/
-    STDMETHOD(Present)(THIS_ CONST RECT* pSourceRect, CONST RECT* pDestRect, HWND hDestWindowOverride, CONST RGNDATA* pDirtyRegion, DWORD dwFlags) PURE;
-    STDMETHOD(GetFrontBufferData)(THIS_ struct IDirect3DSurface9* pDestSurface) PURE;
-    STDMETHOD(GetBackBuffer)(THIS_ UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, struct IDirect3DSurface9** ppBackBuffer) PURE;
-    STDMETHOD(GetRasterStatus)(THIS_ D3DRASTER_STATUS* pRasterStatus) PURE;
-    STDMETHOD(GetDisplayMode)(THIS_ D3DDISPLAYMODE* pMode) PURE;
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
-    STDMETHOD(GetPresentParameters)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DSwapChain9_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DSwapChain9_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DSwapChain9_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DSwapChain9 methods ***/
-#define IDirect3DSwapChain9_Present(p,a,b,c,d,e)         (p)->lpVtbl->Present(p,a,b,c,d,e)
-#define IDirect3DSwapChain9_GetFrontBufferData(p,a)      (p)->lpVtbl->GetFrontBufferData(p,a)
-#define IDirect3DSwapChain9_GetBackBuffer(p,a,b,c)       (p)->lpVtbl->GetBackBuffer(p,a,b,c)
-#define IDirect3DSwapChain9_GetRasterStatus(p,a)         (p)->lpVtbl->GetRasterStatus(p,a)
-#define IDirect3DSwapChain9_GetDisplayMode(p,a)          (p)->lpVtbl->GetDisplayMode(p,a)
-#define IDirect3DSwapChain9_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DSwapChain9_GetPresentParameters(p,a)    (p)->lpVtbl->GetPresentParameters(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DSwapChain9_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DSwapChain9_AddRef(p)                    (p)->AddRef()
-#define IDirect3DSwapChain9_Release(p)                   (p)->Release()
-/*** IDirect3DSwapChain9 methods ***/
-#define IDirect3DSwapChain9_Present(p,a,b,c,d,e)         (p)->Present(a,b,c,d,e)
-#define IDirect3DSwapChain9_GetFrontBufferData(p,a)      (p)->GetFrontBufferData(a)
-#define IDirect3DSwapChain9_GetBackBuffer(p,a,b,c)       (p)->GetBackBuffer(a,b,c)
-#define IDirect3DSwapChain9_GetRasterStatus(p,a)         (p)->GetRasterStatus(a)
-#define IDirect3DSwapChain9_GetDisplayMode(p,a)          (p)->GetDisplayMode(a)
-#define IDirect3DSwapChain9_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DSwapChain9_GetPresentParameters(p,a)    (p)->GetPresentParameters(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DResource9 interface
- */
-#define INTERFACE IDirect3DResource9
-DECLARE_INTERFACE_(IDirect3DResource9,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource9 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** 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_(D3DRESOURCETYPE, GetType)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DResource9_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DResource9_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DResource9_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DResource9 methods ***/
-#define IDirect3DResource9_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DResource9_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DResource9_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DResource9_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DResource9_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DResource9_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
-#define IDirect3DResource9_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
-#define IDirect3DResource9_GetType(p)                   (p)->lpVtbl->GetType(p)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DResource9_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DResource9_AddRef(p)                    (p)->AddRef()
-#define IDirect3DResource9_Release(p)                   (p)->Release()
-/*** IDirect3DResource9 methods ***/
-#define IDirect3DResource9_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DResource9_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DResource9_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
-#define IDirect3DResource9_FreePrivateData(p,a)         (p)->FreePrivateData(a)
-#define IDirect3DResource9_SetPriority(p,a)             (p)->SetPriority(a)
-#define IDirect3DResource9_GetPriority(p)               (p)->GetPriority()
-#define IDirect3DResource9_PreLoad(p)                   (p)->PreLoad()
-#define IDirect3DResource9_GetType(p)                   (p)->GetType()
-#endif
-
-/*****************************************************************************
- * IDirect3DSurface9 interface
- */
-#define INTERFACE IDirect3DSurface9
-DECLARE_INTERFACE_(IDirect3DSurface9,IDirect3DResource9)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource9 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** 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_(D3DRESOURCETYPE, GetType)(THIS) PURE;
-    /*** IDirect3DSurface9 methods ***/
-    STDMETHOD(GetContainer)(THIS_ REFIID riid, void** ppContainer) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3DSURFACE_DESC* pDesc) PURE;
-    STDMETHOD(LockRect)(THIS_ D3DLOCKED_RECT* pLockedRect, CONST RECT* pRect, DWORD Flags) PURE;
-    STDMETHOD(UnlockRect)(THIS) PURE;
-    STDMETHOD(GetDC)(THIS_ HDC* phdc) PURE;
-    STDMETHOD(ReleaseDC)(THIS_ HDC hdc) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DSurface9_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DSurface9_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DSurface9_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DSurface9 methods: IDirect3DResource9 ***/
-#define IDirect3DSurface9_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DSurface9_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DSurface9_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DSurface9_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DSurface9_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DSurface9_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
-#define IDirect3DSurface9_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
-#define IDirect3DSurface9_GetType(p)                   (p)->lpVtbl->GetType(p)
-/*** IDirect3DSurface9 methods ***/
-#define IDirect3DSurface9_GetContainer(p,a,b)          (p)->lpVtbl->GetContainer(p,a,b)
-#define IDirect3DSurface9_GetDesc(p,a)                 (p)->lpVtbl->GetDesc(p,a)
-#define IDirect3DSurface9_LockRect(p,a,b,c)            (p)->lpVtbl->LockRect(p,a,b,c)
-#define IDirect3DSurface9_UnlockRect(p)                (p)->lpVtbl->UnlockRect(p)
-#define IDirect3DSurface9_GetDC(p,a)                   (p)->lpVtbl->GetDC(p,a)
-#define IDirect3DSurface9_ReleaseDC(p,a)               (p)->lpVtbl->ReleaseDC(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DSurface9_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DSurface9_AddRef(p)                    (p)->AddRef()
-#define IDirect3DSurface9_Release(p)                   (p)->Release()
-/*** IDirect3DSurface9 methods: IDirect3DResource9 ***/
-#define IDirect3DSurface9_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DSurface9_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DSurface9_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
-#define IDirect3DSurface9_FreePrivateData(p,a)         (p)->FreePrivateData(a)
-#define IDirect3DSurface9_SetPriority(p,a)             (p)->SetPriority(a)
-#define IDirect3DSurface9_GetPriority(p)               (p)->GetPriority()
-#define IDirect3DSurface9_PreLoad(p)                   (p)->PreLoad()
-#define IDirect3DSurface9_GetType(p)                   (p)->GetType()
-/*** IDirect3DSurface9 methods ***/
-#define IDirect3DSurface9_GetContainer(p,a,b)          (p)->GetContainer(a,b)
-#define IDirect3DSurface9_GetDesc(p,a)                 (p)->GetDesc(a)
-#define IDirect3DSurface9_LockRect(p,a,b,c)            (p)->LockRect(a,b,c)
-#define IDirect3DSurface9_UnlockRect(p)                (p)->UnlockRect()
-#define IDirect3DSurface9_GetDC(p,a)                   (p)->GetDC(a)
-#define IDirect3DSurface9_ReleaseDC(p,a)               (p)->ReleaseDC(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DVertexBuffer9 interface
- */
-#define INTERFACE IDirect3DVertexBuffer9
-DECLARE_INTERFACE_(IDirect3DVertexBuffer9,IDirect3DResource9)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource9 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** 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_(D3DRESOURCETYPE, GetType)(THIS) PURE;
-    /*** IDirect3DVertexBuffer9 methods ***/
-    STDMETHOD(Lock)(THIS_ UINT OffsetToLock, UINT SizeToLock, void** ppbData, DWORD Flags) PURE;
-    STDMETHOD(Unlock)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3DVERTEXBUFFER_DESC* pDesc) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DVertexBuffer9_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DVertexBuffer9_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DVertexBuffer9_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DVertexBuffer9 methods: IDirect3DResource9 ***/
-#define IDirect3DVertexBuffer9_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DVertexBuffer9_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DVertexBuffer9_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DVertexBuffer9_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DVertexBuffer9_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DVertexBuffer9_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
-#define IDirect3DVertexBuffer9_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
-#define IDirect3DVertexBuffer9_GetType(p)                   (p)->lpVtbl->GetType(p)
-/*** IDirect3DVertexBuffer9 methods ***/
-#define IDirect3DVertexBuffer9_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
-#define IDirect3DVertexBuffer9_Unlock(p)                    (p)->lpVtbl->Unlock(p)
-#define IDirect3DVertexBuffer9_GetDesc(p,a)                 (p)->lpVtbl->GetDesc(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DVertexBuffer9_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DVertexBuffer9_AddRef(p)                    (p)->AddRef()
-#define IDirect3DVertexBuffer9_Release(p)                   (p)->Release()
-/*** IDirect3DVertexBuffer9 methods: IDirect3DResource9 ***/
-#define IDirect3DVertexBuffer9_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DVertexBuffer9_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DVertexBuffer9_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
-#define IDirect3DVertexBuffer9_FreePrivateData(p,a)         (p)->FreePrivateData(a)
-#define IDirect3DVertexBuffer9_SetPriority(p,a)             (p)->SetPriority(a)
-#define IDirect3DVertexBuffer9_GetPriority(p)               (p)->GetPriority()
-#define IDirect3DVertexBuffer9_PreLoad(p)                   (p)->PreLoad()
-#define IDirect3DVertexBuffer9_GetType(p)                   (p)->GetType()
-/*** IDirect3DVertexBuffer9 methods ***/
-#define IDirect3DVertexBuffer9_Lock(p,a,b,c,d)              (p)->Lock(a,b,c,d)
-#define IDirect3DVertexBuffer9_Unlock(p)                    (p)->Unlock()
-#define IDirect3DVertexBuffer9_GetDesc(p,a)                 (p)->GetDesc(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DIndexBuffer9 interface
- */
-#define INTERFACE IDirect3DIndexBuffer9
-DECLARE_INTERFACE_(IDirect3DIndexBuffer9,IDirect3DResource9)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource9 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** 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_(D3DRESOURCETYPE, GetType)(THIS) PURE;
-    /*** IDirect3DIndexBuffer9 methods ***/
-    STDMETHOD(Lock)(THIS_ UINT OffsetToLock, UINT SizeToLock, void** ppbData, DWORD Flags) PURE;
-    STDMETHOD(Unlock)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3DINDEXBUFFER_DESC* pDesc) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DIndexBuffer9_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DIndexBuffer9_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DIndexBuffer9_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DIndexBuffer9 methods: IDirect3DResource9 ***/
-#define IDirect3DIndexBuffer9_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DIndexBuffer9_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DIndexBuffer9_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DIndexBuffer9_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DIndexBuffer9_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DIndexBuffer9_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
-#define IDirect3DIndexBuffer9_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
-#define IDirect3DIndexBuffer9_GetType(p)                   (p)->lpVtbl->GetType(p)
-/*** IDirect3DIndexBuffer9 methods ***/
-#define IDirect3DIndexBuffer9_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
-#define IDirect3DIndexBuffer9_Unlock(p)                    (p)->lpVtbl->Unlock(p)
-#define IDirect3DIndexBuffer9_GetDesc(p,a)                 (p)->lpVtbl->GetDesc(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DIndexBuffer9_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DIndexBuffer9_AddRef(p)                    (p)->AddRef()
-#define IDirect3DIndexBuffer9_Release(p)                   (p)->Release()
-/*** IDirect3DIndexBuffer9 methods: IDirect3DResource9 ***/
-#define IDirect3DIndexBuffer9_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DIndexBuffer9_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DIndexBuffer9_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
-#define IDirect3DIndexBuffer9_FreePrivateData(p,a)         (p)->FreePrivateData(a)
-#define IDirect3DIndexBuffer9_SetPriority(p,a)             (p)->SetPriority(a)
-#define IDirect3DIndexBuffer9_GetPriority(p)               (p)->GetPriority()
-#define IDirect3DIndexBuffer9_PreLoad(p)                   (p)->PreLoad()
-#define IDirect3DIndexBuffer9_GetType(p)                   (p)->GetType()
-/*** IDirect3DIndexBuffer9 methods ***/
-#define IDirect3DIndexBuffer9_Lock(p,a,b,c,d)              (p)->Lock(a,b,c,d)
-#define IDirect3DIndexBuffer9_Unlock(p)                    (p)->Unlock()
-#define IDirect3DIndexBuffer9_GetDesc(p,a)                 (p)->GetDesc(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DBaseTexture9 interface
- */
-#define INTERFACE IDirect3DBaseTexture9
-DECLARE_INTERFACE_(IDirect3DBaseTexture9,IDirect3DResource9)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource9 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** 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_(D3DRESOURCETYPE, GetType)(THIS) PURE;
-    /*** IDirect3DBaseTexture9 methods ***/
-    STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
-    STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
-    STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
-    STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE FilterType) PURE;
-    STDMETHOD_(D3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE;
-    STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DBaseTexture9_QueryInterface(p,a,b)  (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DBaseTexture9_AddRef(p)              (p)->lpVtbl->AddRef(p)
-#define IDirect3DBaseTexture9_Release(p)             (p)->lpVtbl->Release(p)
-/*** IDirect3DBaseTexture9 methods: IDirect3DResource9 ***/
-#define IDirect3DBaseTexture9_GetDevice(p,a)             (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DBaseTexture9_SetPrivateData(p,a,b,c,d)  (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DBaseTexture9_GetPrivateData(p,a,b,c)    (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DBaseTexture9_FreePrivateData(p,a)       (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DBaseTexture9_SetPriority(p,a)           (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DBaseTexture9_GetPriority(p)             (p)->lpVtbl->GetPriority(p)
-#define IDirect3DBaseTexture9_PreLoad(p)                 (p)->lpVtbl->PreLoad(p)
-#define IDirect3DBaseTexture9_GetType(p)                 (p)->lpVtbl->GetType(p)
-/*** IDirect3DBaseTexture9 methods ***/
-#define IDirect3DBaseTexture9_SetLOD(p,a)                (p)->lpVtbl->SetLOD(p,a)
-#define IDirect3DBaseTexture9_GetLOD(p)                  (p)->lpVtbl->GetLOD(p)
-#define IDirect3DBaseTexture9_GetLevelCount(p)           (p)->lpVtbl->GetLevelCount(p)
-#define IDirect3DBaseTexture9_SetAutoGenFilterType(p,a)  (p)->lpVtbl->SetAutoGenFilterType(p,a)
-#define IDirect3DBaseTexture9_GetAutoGenFilterType(p)    (p)->lpVtbl->GetAutoGenFilterType(p)
-#define IDirect3DBaseTexture9_GenerateMipSubLevels(p)    (p)->lpVtbl->GenerateMipSubLevels(p)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DBaseTexture9_QueryInterface(p,a,b)  (p)->QueryInterface(a,b)
-#define IDirect3DBaseTexture9_AddRef(p)              (p)->AddRef()
-#define IDirect3DBaseTexture9_Release(p)             (p)->Release()
-/*** IDirect3DBaseTexture9 methods: IDirect3DResource9 ***/
-#define IDirect3DBaseTexture9_GetDevice(p,a)             (p)->GetDevice(a)
-#define IDirect3DBaseTexture9_SetPrivateData(p,a,b,c,d)  (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DBaseTexture9_GetPrivateData(p,a,b,c)    (p)->GetPrivateData(a,b,c)
-#define IDirect3DBaseTexture9_FreePrivateData(p,a)       (p)->FreePrivateData(a)
-#define IDirect3DBaseTexture9_SetPriority(p,a)           (p)->SetPriority(a)
-#define IDirect3DBaseTexture9_GetPriority(p)             (p)->GetPriority()
-#define IDirect3DBaseTexture9_PreLoad(p)                 (p)->PreLoad()
-#define IDirect3DBaseTexture9_GetType(p)                 (p)->GetType()
-/*** IDirect3DBaseTexture9 methods ***/
-#define IDirect3DBaseTexture9_SetLOD(p,a)                (p)->SetLOD(a)
-#define IDirect3DBaseTexture9_GetLOD(p)                  (p)->GetLOD()
-#define IDirect3DBaseTexture9_GetLevelCount(p)           (p)->GetLevelCount()
-#define IDirect3DBaseTexture9_SetAutoGenFilterType(p,a)  (p)->SetAutoGenFilterType(a)
-#define IDirect3DBaseTexture9_GetAutoGenFilterType(p)    (p)->GetAutoGenFilterType()
-#define IDirect3DBaseTexture9_GenerateMipSubLevels(p)    (p)->GenerateMipSubLevels()
-#endif
-
-/*****************************************************************************
- * IDirect3DCubeTexture9 interface
- */
-#define INTERFACE IDirect3DCubeTexture9
-DECLARE_INTERFACE_(IDirect3DCubeTexture9,IDirect3DBaseTexture9)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource9 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** 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_(D3DRESOURCETYPE, GetType)(THIS) PURE;
-    /*** IDirect3DBaseTexture9 methods ***/
-    STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
-    STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
-    STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
-    STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE FilterType) PURE;
-    STDMETHOD_(D3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE;
-    STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE;
-    /*** IDirect3DCubeTexture9 methods ***/
-    STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3DSURFACE_DESC* pDesc) PURE;
-    STDMETHOD(GetCubeMapSurface)(THIS_ D3DCUBEMAP_FACES FaceType, UINT Level, IDirect3DSurface9** ppCubeMapSurface) PURE;
-    STDMETHOD(LockRect)(THIS_ D3DCUBEMAP_FACES FaceType, UINT Level, D3DLOCKED_RECT* pLockedRect, CONST RECT* pRect, DWORD Flags) PURE;
-    STDMETHOD(UnlockRect)(THIS_ D3DCUBEMAP_FACES FaceType, UINT Level) PURE;
-    STDMETHOD(AddDirtyRect)(THIS_ D3DCUBEMAP_FACES FaceType, CONST RECT* pDirtyRect) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DCubeTexture9_QueryInterface(p,a,b)       (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DCubeTexture9_AddRef(p)                   (p)->lpVtbl->AddRef(p)
-#define IDirect3DCubeTexture9_Release(p)                  (p)->lpVtbl->Release(p)
-/*** IDirect3DCubeTexture9 methods: IDirect3DResource9 ***/
-#define IDirect3DCubeTexture9_GetDevice(p,a)              (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DCubeTexture9_SetPrivateData(p,a,b,c,d)   (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DCubeTexture9_GetPrivateData(p,a,b,c)     (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DCubeTexture9_FreePrivateData(p,a)        (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DCubeTexture9_SetPriority(p,a)            (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DCubeTexture9_GetPriority(p)              (p)->lpVtbl->GetPriority(p)
-#define IDirect3DCubeTexture9_PreLoad(p)                  (p)->lpVtbl->PreLoad(p)
-#define IDirect3DCubeTexture9_GetType(p)                  (p)->lpVtbl->GetType(p)
-/*** IDirect3DCubeTexture9 methods: IDirect3DBaseTexture9 ***/
-#define IDirect3DCubeTexture9_SetLOD(p,a)                 (p)->lpVtbl->SetLOD(p,a)
-#define IDirect3DCubeTexture9_GetLOD(p)                   (p)->lpVtbl->GetLOD(p)
-#define IDirect3DCubeTexture9_GetLevelCount(p)            (p)->lpVtbl->GetLevelCount(p)
-#define IDirect3DCubeTexture9_SetAutoGenFilterType(p,a)   (p)->lpVtbl->SetAutoGenFilterType(p,a)
-#define IDirect3DCubeTexture9_GetAutoGenFilterType(p)     (p)->lpVtbl->GetAutoGenFilterType(p)
-#define IDirect3DCubeTexture9_GenerateMipSubLevels(p)     (p)->lpVtbl->GenerateMipSubLevels(p)
-/*** IDirect3DCubeTexture9 methods ***/
-#define IDirect3DCubeTexture9_GetLevelDesc(p,a,b)         (p)->lpVtbl->GetLevelDesc(p,a,b)
-#define IDirect3DCubeTexture9_GetCubeMapSurface(p,a,b,c)  (p)->lpVtbl->GetCubeMapSurface(p,a,b,c)
-#define IDirect3DCubeTexture9_LockRect(p,a,b,c,d,e)       (p)->lpVtbl->LockRect(p,a,b,c,d,e)
-#define IDirect3DCubeTexture9_UnlockRect(p,a,b)           (p)->lpVtbl->UnlockRect(p,a,b)
-#define IDirect3DCubeTexture9_AddDirtyRect(p,a,b)         (p)->lpVtbl->AddDirtyRect(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DCubeTexture9_QueryInterface(p,a,b)       (p)->QueryInterface(a,b)
-#define IDirect3DCubeTexture9_AddRef(p)                   (p)->AddRef()
-#define IDirect3DCubeTexture9_Release(p)                  (p)->Release()
-/*** IDirect3DCubeTexture9 methods: IDirect3DResource9 ***/
-#define IDirect3DCubeTexture9_GetDevice(p,a)              (p)->GetDevice(a)
-#define IDirect3DCubeTexture9_SetPrivateData(p,a,b,c,d)   (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DCubeTexture9_GetPrivateData(p,a,b,c)     (p)->GetPrivateData(a,b,c)
-#define IDirect3DCubeTexture9_FreePrivateData(p,a)        (p)->FreePrivateData(a)
-#define IDirect3DCubeTexture9_SetPriority(p,a)            (p)->SetPriority(a)
-#define IDirect3DCubeTexture9_GetPriority(p)              (p)->GetPriority()
-#define IDirect3DCubeTexture9_PreLoad(p)                  (p)->PreLoad()
-#define IDirect3DCubeTexture9_GetType(p)                  (p)->GetType()
-/*** IDirect3DCubeTexture9 methods: IDirect3DBaseTexture9 ***/
-#define IDirect3DCubeTexture9_SetLOD(p,a)                 (p)->SetLOD(a)
-#define IDirect3DCubeTexture9_GetLOD(p)                   (p)->GetLOD()
-#define IDirect3DCubeTexture9_GetLevelCount(p)            (p)->GetLevelCount()
-#define IDirect3DCubeTexture9_SetAutoGenFilterType(p,a)   (p)->SetAutoGenFilterType(a)
-#define IDirect3DCubeTexture9_GetAutoGenFilterType(p)     (p)->GetAutoGenFilterType()
-#define IDirect3DCubeTexture9_GenerateMipSubLevels(p)     (p)->GenerateMipSubLevels()
-/*** IDirect3DCubeTexture9 methods ***/
-#define IDirect3DCubeTexture9_GetLevelDesc(p,a,b)         (p)->GetLevelDesc(a,b)
-#define IDirect3DCubeTexture9_GetCubeMapSurface(p,a,b,c)  (p)->GetCubeMapSurface(a,b,c)
-#define IDirect3DCubeTexture9_LockRect(p,a,b,c,d,e)       (p)->LockRect(a,b,c,d,e)
-#define IDirect3DCubeTexture9_UnlockRect(p,a,b)           (p)->UnlockRect(a,b)
-#define IDirect3DCubeTexture9_AddDirtyRect(p,a,b)         (p)->AddDirtyRect(a,b)
-#endif
-
-/*****************************************************************************
- * IDirect3DTexture9 interface
- */
-#define INTERFACE IDirect3DTexture9
-DECLARE_INTERFACE_(IDirect3DTexture9,IDirect3DBaseTexture9)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource9 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** 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_(D3DRESOURCETYPE, GetType)(THIS) PURE;
-    /*** IDirect3DBaseTexture9 methods ***/
-    STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
-    STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
-    STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
-    STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE FilterType) PURE;
-    STDMETHOD_(D3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE;
-    STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE;
-    /*** IDirect3DTexture9 methods ***/
-    STDMETHOD(GetLevelDesc)(THIS_ UINT Level, D3DSURFACE_DESC* pDesc) PURE;
-    STDMETHOD(GetSurfaceLevel)(THIS_ UINT Level, IDirect3DSurface9** ppSurfaceLevel) PURE;
-    STDMETHOD(LockRect)(THIS_ UINT Level, D3DLOCKED_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 IDirect3DTexture9_QueryInterface(p,a,b)      (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DTexture9_AddRef(p)                  (p)->lpVtbl->AddRef(p)
-#define IDirect3DTexture9_Release(p)                 (p)->lpVtbl->Release(p)
-/*** IDirect3DTexture9 methods: IDirect3DResource9 ***/
-#define IDirect3DTexture9_GetDevice(p,a)             (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DTexture9_SetPrivateData(p,a,b,c,d)  (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DTexture9_GetPrivateData(p,a,b,c)    (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DTexture9_FreePrivateData(p,a)       (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DTexture9_SetPriority(p,a)           (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DTexture9_GetPriority(p)             (p)->lpVtbl->GetPriority(p)
-#define IDirect3DTexture9_PreLoad(p)                 (p)->lpVtbl->PreLoad(p)
-#define IDirect3DTexture9_GetType(p)                 (p)->lpVtbl->GetType(p)
-/*** IDirect3DTexture9 methods: IDirect3DBaseTexture9 ***/
-#define IDirect3DTexture9_SetLOD(p,a)                (p)->lpVtbl->SetLOD(p,a)
-#define IDirect3DTexture9_GetLOD(p)                  (p)->lpVtbl->GetLOD(p)
-#define IDirect3DTexture9_GetLevelCount(p)           (p)->lpVtbl->GetLevelCount(p)
-#define IDirect3DTexture9_SetAutoGenFilterType(p,a)  (p)->lpVtbl->SetAutoGenFilterType(p,a)
-#define IDirect3DTexture9_GetAutoGenFilterType(p)    (p)->lpVtbl->GetAutoGenFilterType(p)
-#define IDirect3DTexture9_GenerateMipSubLevels(p)    (p)->lpVtbl->GenerateMipSubLevels(p)
-/*** IDirect3DTexture9 methods ***/
-#define IDirect3DTexture9_GetLevelDesc(p,a,b)        (p)->lpVtbl->GetLevelDesc(p,a,b)
-#define IDirect3DTexture9_GetSurfaceLevel(p,a,b)     (p)->lpVtbl->GetSurfaceLevel(p,a,b)
-#define IDirect3DTexture9_LockRect(p,a,b,c,d)        (p)->lpVtbl->LockRect(p,a,b,c,d)
-#define IDirect3DTexture9_UnlockRect(p,a)            (p)->lpVtbl->UnlockRect(p,a)
-#define IDirect3DTexture9_AddDirtyRect(p,a)          (p)->lpVtbl->AddDirtyRect(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DTexture9_QueryInterface(p,a,b)      (p)->QueryInterface(a,b)
-#define IDirect3DTexture9_AddRef(p)                  (p)->AddRef()
-#define IDirect3DTexture9_Release(p)                 (p)->Release()
-/*** IDirect3DTexture9 methods: IDirect3DResource9 ***/
-#define IDirect3DTexture9_GetDevice(p,a)             (p)->GetDevice(a)
-#define IDirect3DTexture9_SetPrivateData(p,a,b,c,d)  (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DTexture9_GetPrivateData(p,a,b,c)    (p)->GetPrivateData(a,b,c)
-#define IDirect3DTexture9_FreePrivateData(p,a)       (p)->FreePrivateData(a)
-#define IDirect3DTexture9_SetPriority(p,a)           (p)->SetPriority(a)
-#define IDirect3DTexture9_GetPriority(p)             (p)->GetPriority()
-#define IDirect3DTexture9_PreLoad(p)                 (p)->PreLoad()
-#define IDirect3DTexture9_GetType(p)                 (p)->GetType()
-/*** IDirect3DTexture9 methods: IDirect3DBaseTexture9 ***/
-#define IDirect3DTexture9_SetLOD(p,a)                (p)->SetLOD(a)
-#define IDirect3DTexture9_GetLOD(p)                  (p)->GetLOD()
-#define IDirect3DTexture9_GetLevelCount(p)           (p)->GetLevelCount()
-#define IDirect3DTexture9_SetAutoGenFilterType(p,a)  (p)->SetAutoGenFilterType(a)
-#define IDirect3DTexture9_GetAutoGenFilterType(p)    (p)->GetAutoGenFilterType()
-#define IDirect3DTexture9_GenerateMipSubLevels(p)    (p)->GenerateMipSubLevels()
-/*** IDirect3DTexture9 methods ***/
-#define IDirect3DTexture9_GetLevelDesc(p,a,b)        (p)->GetLevelDesc(a,b)
-#define IDirect3DTexture9_GetSurfaceLevel(p,a,b)     (p)->GetSurfaceLevel(a,b)
-#define IDirect3DTexture9_LockRect(p,a,b,c,d)        (p)->LockRect(a,b,c,d)
-#define IDirect3DTexture9_UnlockRect(p,a)            (p)->UnlockRect(a)
-#define IDirect3DTexture9_AddDirtyRect(p,a)          (p)->AddDirtyRect(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DVolumeTexture9 interface
- */
-#define INTERFACE IDirect3DVolumeTexture9
-DECLARE_INTERFACE_(IDirect3DVolumeTexture9,IDirect3DBaseTexture9)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource9 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** 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_(D3DRESOURCETYPE, GetType)(THIS) PURE;
-    /*** IDirect3DBaseTexture9 methods ***/
-    STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
-    STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
-    STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
-    STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE FilterType) PURE;
-    STDMETHOD_(D3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE;
-    STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE;
-    /*** IDirect3DVolumeTexture9 methods ***/
-    STDMETHOD(GetLevelDesc)(THIS_ UINT Level, D3DVOLUME_DESC *pDesc) PURE;
-    STDMETHOD(GetVolumeLevel)(THIS_ UINT Level, IDirect3DVolume9** ppVolumeLevel) PURE;
-    STDMETHOD(LockBox)(THIS_ UINT Level, D3DLOCKED_BOX* pLockedVolume, CONST D3DBOX* pBox, DWORD Flags) PURE;
-    STDMETHOD(UnlockBox)(THIS_ UINT Level) PURE;
-    STDMETHOD(AddDirtyBox)(THIS_ CONST D3DBOX* pDirtyBox) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DVolumeTexture9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DVolumeTexture9_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IDirect3DVolumeTexture9_Release(p) (p)->lpVtbl->Release(p)
-/*** IDirect3DVolumeTexture9 methods: IDirect3DResource9 ***/
-#define IDirect3DVolumeTexture9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DVolumeTexture9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DVolumeTexture9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DVolumeTexture9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DVolumeTexture9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DVolumeTexture9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
-#define IDirect3DVolumeTexture9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
-#define IDirect3DVolumeTexture9_GetType(p) (p)->lpVtbl->GetType(p)
-/*** IDirect3DVolumeTexture9 methods: IDirect3DBaseTexture9 ***/
-#define IDirect3DVolumeTexture9_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
-#define IDirect3DVolumeTexture9_GetLOD(p) (p)->lpVtbl->GetLOD(p)
-#define IDirect3DVolumeTexture9_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
-#define IDirect3DVolumeTexture9_SetAutoGenFilterType(p,a) (p)->lpVtbl->SetAutoGenFilterType(p,a)
-#define IDirect3DVolumeTexture9_GetAutoGenFilterType(p) (p)->lpVtbl->GetAutoGenFilterType(p)
-#define IDirect3DVolumeTexture9_GenerateMipSubLevels(p) (p)->lpVtbl->GenerateMipSubLevels(p)
-/*** IDirect3DVolumeTexture9 methods ***/
-#define IDirect3DVolumeTexture9_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b)
-#define IDirect3DVolumeTexture9_GetVolumeLevel(p,a,b) (p)->lpVtbl->GetVolumeLevel(p,a,b)
-#define IDirect3DVolumeTexture9_LockBox(p,a,b,c,d) (p)->lpVtbl->LockBox(p,a,b,c,d)
-#define IDirect3DVolumeTexture9_UnlockBox(p,a) (p)->lpVtbl->UnlockBox(p,a)
-#define IDirect3DVolumeTexture9_AddDirtyBox(p,a) (p)->lpVtbl->AddDirtyBox(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DVolumeTexture9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DVolumeTexture9_AddRef(p) (p)->AddRef()
-#define IDirect3DVolumeTexture9_Release(p) (p)->Release()
-/*** IDirect3DVolumeTexture9 methods: IDirect3DResource9 ***/
-#define IDirect3DVolumeTexture9_GetDevice(p,a) (p)->GetDevice(a)
-#define IDirect3DVolumeTexture9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DVolumeTexture9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
-#define IDirect3DVolumeTexture9_FreePrivateData(p,a) (p)->FreePrivateData(a)
-#define IDirect3DVolumeTexture9_SetPriority(p,a) (p)->SetPriority(a)
-#define IDirect3DVolumeTexture9_GetPriority(p) (p)->GetPriority()
-#define IDirect3DVolumeTexture9_PreLoad(p) (p)->PreLoad()
-#define IDirect3DVolumeTexture9_GetType(p) (p)->GetType()
-/*** IDirect3DVolumeTexture9 methods: IDirect3DBaseTexture9 ***/
-#define IDirect3DVolumeTexture9_SetLOD(p,a) (p)->SetLOD(a)
-#define IDirect3DVolumeTexture9_GetLOD(p) (p)->GetLOD()
-#define IDirect3DVolumeTexture9_GetLevelCount(p) (p)->GetLevelCount()
-#define IDirect3DVolumeTexture9_SetAutoGenFilterType(p,a) (p)->SetAutoGenFilterType(a)
-#define IDirect3DVolumeTexture9_GetAutoGenFilterType(p) (p)->GetAutoGenFilterType()
-#define IDirect3DVolumeTexture9_GenerateMipSubLevels(p) (p)->GenerateMipSubLevels()
-/*** IDirect3DVolumeTexture9 methods ***/
-#define IDirect3DVolumeTexture9_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b)
-#define IDirect3DVolumeTexture9_GetVolumeLevel(p,a,b) (p)->GetVolumeLevel(a,b)
-#define IDirect3DVolumeTexture9_LockBox(p,a,b,c,d) (p)->LockBox(a,b,c,d)
-#define IDirect3DVolumeTexture9_UnlockBox(p,a) (p)->UnlockBox(a)
-#define IDirect3DVolumeTexture9_AddDirtyBox(p,a) (p)->AddDirtyBox(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DVertexDeclaration9 interface
- */
-#define INTERFACE IDirect3DVertexDeclaration9
-DECLARE_INTERFACE_(IDirect3DVertexDeclaration9,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DVertexDeclaration9 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
-    STDMETHOD(GetDeclaration)(THIS_ D3DVERTEXELEMENT9*, UINT* pNumElements) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DVertexDeclaration9_QueryInterface(p,a,b)  (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DVertexDeclaration9_AddRef(p)              (p)->lpVtbl->AddRef(p)
-#define IDirect3DVertexDeclaration9_Release(p)             (p)->lpVtbl->Release(p)
-/*** IDirect3DVertexShader9 methods ***/
-#define IDirect3DVertexDeclaration9_GetDevice(p,a)         (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DVertexDeclaration9_GetDeclaration(p,a,b)  (p)->lpVtbl->GetDeclaration(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DVertexDeclaration9_QueryInterface(p,a,b)  (p)->QueryInterface(a,b)
-#define IDirect3DVertexDeclaration9_AddRef(p)              (p)->AddRef()
-#define IDirect3DVertexDeclaration9_Release(p)             (p)->Release()
-/*** IDirect3DVertexShader9 methods ***/
-#define IDirect3DVertexDeclaration9_GetDevice(p,a)         (p)->GetDevice(a)
-#define IDirect3DVertexDeclaration9_GetDeclaration(p,a,b)  (p)->GetDeclaration(a,b)
-#endif
-
-/*****************************************************************************
- * IDirect3DVertexShader9 interface
- */
-#define INTERFACE IDirect3DVertexShader9
-DECLARE_INTERFACE_(IDirect3DVertexShader9,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DVertexShader9 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
-    STDMETHOD(GetFunction)(THIS_ void*, UINT* pSizeOfData) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DVertexShader9_QueryInterface(p,a,b)  (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DVertexShader9_AddRef(p)              (p)->lpVtbl->AddRef(p)
-#define IDirect3DVertexShader9_Release(p)             (p)->lpVtbl->Release(p)
-/*** IDirect3DVertexShader9 methods ***/
-#define IDirect3DVertexShader9_GetDevice(p,a)         (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DVertexShader9_GetFunction(p,a,b)     (p)->lpVtbl->GetFunction(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DVertexShader9_QueryInterface(p,a,b)  (p)->QueryInterface(a,b)
-#define IDirect3DVertexShader9_AddRef(p)              (p)->AddRef()
-#define IDirect3DVertexShader9_Release(p)             (p)->Release()
-/*** IDirect3DVertexShader9 methods ***/
-#define IDirect3DVertexShader9_GetDevice(p,a)         (p)->GetDevice(a)
-#define IDirect3DVertexShader9_GetFunction(p,a,b)     (p)->GetFunction(a,b)
-#endif
-
-/*****************************************************************************
- * IDirect3DPixelShader9 interface
- */
-#define INTERFACE IDirect3DPixelShader9
-DECLARE_INTERFACE_(IDirect3DPixelShader9,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DPixelShader9 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
-    STDMETHOD(GetFunction)(THIS_ void*, UINT* pSizeOfData) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DPixelShader9_QueryInterface(p,a,b)  (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DPixelShader9_AddRef(p)              (p)->lpVtbl->AddRef(p)
-#define IDirect3DPixelShader9_Release(p)             (p)->lpVtbl->Release(p)
-/*** IDirect3DPixelShader9 methods ***/
-#define IDirect3DPixelShader9_GetDevice(p,a)         (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DPixelShader9_GetFunction(p,a,b)     (p)->lpVtbl->GetFunction(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DPixelShader9_QueryInterface(p,a,b)  (p)->QueryInterface(a,b)
-#define IDirect3DPixelShader9_AddRef(p)              (p)->AddRef()
-#define IDirect3DPixelShader9_Release(p)             (p)->Release()
-/*** IDirect3DPixelShader9 methods ***/
-#define IDirect3DPixelShader9_GetDevice(p,a)         (p)->GetDevice(a)
-#define IDirect3DPixelShader9_GetFunction(p,a,b)     (p)->GetFunction(a,b)
-#endif
-
-/*****************************************************************************
- * IDirect3DStateBlock9 interface
- */
-#define INTERFACE IDirect3DStateBlock9
-DECLARE_INTERFACE_(IDirect3DStateBlock9,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DStateBlock9 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
-    STDMETHOD(Capture)(THIS) PURE;
-    STDMETHOD(Apply)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DStateBlock9_QueryInterface(p,a,b)  (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DStateBlock9_AddRef(p)              (p)->lpVtbl->AddRef(p)
-#define IDirect3DStateBlock9_Release(p)             (p)->lpVtbl->Release(p)
-/*** IDirect3DStateBlock9 methods ***/
-#define IDirect3DStateBlock9_GetDevice(p,a)         (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DStateBlock9_Capture(p)             (p)->lpVtbl->Capture(p)
-#define IDirect3DStateBlock9_Apply(p)               (p)->lpVtbl->Apply(p)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DStateBlock9_QueryInterface(p,a,b)  (p)->QueryInterface(a,b)
-#define IDirect3DStateBlock9_AddRef(p)              (p)->AddRef()
-#define IDirect3DStateBlock9_Release(p)             (p)->Release()
-/*** IDirect3DStateBlock9 methods ***/
-#define IDirect3DStateBlock9_GetDevice(p,a)         (p)->GetDevice(a)
-#define IDirect3DStateBlock9_Capture(p)             (p)->Capture()
-#define IDirect3DStateBlock9_Apply(p)               (p)->Apply()
-#endif
-
-/*****************************************************************************
- * IDirect3DQuery9 interface
- */
-#define INTERFACE IDirect3DQuery9
-DECLARE_INTERFACE_(IDirect3DQuery9,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DQuery9 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
-    STDMETHOD_(D3DQUERYTYPE, GetType)(THIS) PURE;
-    STDMETHOD_(DWORD, GetDataSize)(THIS) PURE;
-    STDMETHOD(Issue)(THIS_ DWORD dwIssueFlags) PURE;
-    STDMETHOD(GetData)(THIS_ void* pData, DWORD dwSize, DWORD dwGetDataFlags) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DQuery9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DQuery9_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IDirect3DQuery9_Release(p) (p)->lpVtbl->Release(p)
-/*** IDirect3DQuery9 ***/
-#define IDirect3DQuery9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DQuery9_GetType(p) (p)->lpVtbl->GetType(p)
-#define IDirect3DQuery9_GetDataSize(p) (p)->lpVtbl->GetDataSize(p)
-#define IDirect3DQuery9_Issue(p,a) (p)->lpVtbl->Issue(p,a)
-#define IDirect3DQuery9_GetData(p,a,b,c) (p)->lpVtbl->GetData(p,a,b,c)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DQuery9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DQuery9_AddRef(p) (p)->AddRef()
-#define IDirect3DQuery9_Release(p) (p)->Release()
-/*** IDirect3DQuery9 ***/
-#define IDirect3DQuery9_GetDevice(p,a) (p)->GetDevice(a)
-#define IDirect3DQuery9_GetType(p) (p)->GetType()
-#define IDirect3DQuery9_GetDataSize(p) (p)->GetDataSize()
-#define IDirect3DQuery9_Issue(p,a) (p)->Issue(a)
-#define IDirect3DQuery9_GetData(p,a,b,c) (p)->GetData(a,b,c)
-#endif
-
-/*****************************************************************************
- * IDirect3DDevice9 interface
- */
-#define INTERFACE IDirect3DDevice9
-DECLARE_INTERFACE_(IDirect3DDevice9,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DDevice9 methods ***/
-    STDMETHOD(TestCooperativeLevel)(THIS) PURE;
-    STDMETHOD_(UINT, GetAvailableTextureMem)(THIS) PURE;
-    STDMETHOD(EvictManagedResources)(THIS) PURE;
-    STDMETHOD(GetDirect3D)(THIS_ IDirect3D9** ppD3D9) PURE;
-    STDMETHOD(GetDeviceCaps)(THIS_ D3DCAPS9* pCaps) PURE;
-    STDMETHOD(GetDisplayMode)(THIS_ UINT iSwapChain, D3DDISPLAYMODE* pMode) PURE;
-    STDMETHOD(GetCreationParameters)(THIS_ D3DDEVICE_CREATION_PARAMETERS *pParameters) PURE;
-    STDMETHOD(SetCursorProperties)(THIS_ UINT XHotSpot, UINT YHotSpot, IDirect3DSurface9* pCursorBitmap) PURE;
-    STDMETHOD_(void, SetCursorPosition)(THIS_ int X,int Y, DWORD Flags) PURE;
-    STDMETHOD_(BOOL, ShowCursor)(THIS_ BOOL bShow) PURE;
-    STDMETHOD(CreateAdditionalSwapChain)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters, IDirect3DSwapChain9** pSwapChain) PURE;
-    STDMETHOD(GetSwapChain)(THIS_ UINT iSwapChain, IDirect3DSwapChain9** pSwapChain) PURE;
-    STDMETHOD_(UINT, GetNumberOfSwapChains)(THIS) PURE;
-    STDMETHOD(Reset)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters) PURE;
-    STDMETHOD(Present)(THIS_ CONST RECT* pSourceRect, CONST RECT* pDestRect, HWND hDestWindowOverride, CONST RGNDATA* pDirtyRegion) PURE;
-    STDMETHOD(GetBackBuffer)(THIS_ UINT iSwapChain, UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, IDirect3DSurface9** ppBackBuffer) PURE;
-    STDMETHOD(GetRasterStatus)(THIS_ UINT iSwapChain, D3DRASTER_STATUS* pRasterStatus) PURE;
-    STDMETHOD(SetDialogBoxMode)(THIS_ BOOL bEnableDialogs) PURE;
-    STDMETHOD_(void, SetGammaRamp)(THIS_ UINT iSwapChain, DWORD Flags, CONST D3DGAMMARAMP* pRamp) PURE;
-    STDMETHOD_(void, GetGammaRamp)(THIS_ UINT iSwapChain, D3DGAMMARAMP* pRamp) PURE;
-    STDMETHOD(CreateTexture)(THIS_ UINT Width, UINT Height, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DTexture9** ppTexture, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(CreateVolumeTexture)(THIS_ UINT Width, UINT Height, UINT Depth, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DVolumeTexture9** ppVolumeTexture, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(CreateCubeTexture)(THIS_ UINT EdgeLength, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DCubeTexture9** ppCubeTexture, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(CreateVertexBuffer)(THIS_ UINT Length, DWORD Usage, DWORD FVF, D3DPOOL Pool, IDirect3DVertexBuffer9** ppVertexBuffer, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(CreateIndexBuffer)(THIS_ UINT Length, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DIndexBuffer9** ppIndexBuffer, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(CreateRenderTarget)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Lockable, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(CreateDepthStencilSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Discard, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(UpdateSurface)(THIS_ IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestinationSurface, CONST POINT* pDestPoint) PURE;
-    STDMETHOD(UpdateTexture)(THIS_ IDirect3DBaseTexture9* pSourceTexture, IDirect3DBaseTexture9* pDestinationTexture) PURE;
-    STDMETHOD(GetRenderTargetData)(THIS_ IDirect3DSurface9* pRenderTarget, IDirect3DSurface9* pDestSurface) PURE;
-    STDMETHOD(GetFrontBufferData)(THIS_ UINT iSwapChain, IDirect3DSurface9* pDestSurface) PURE;
-    STDMETHOD(StretchRect)(THIS_ IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestSurface, CONST RECT* pDestRect, D3DTEXTUREFILTERTYPE Filter) PURE;
-    STDMETHOD(ColorFill)(THIS_ IDirect3DSurface9* pSurface, CONST RECT* pRect, D3DCOLOR color) PURE;
-    STDMETHOD(CreateOffscreenPlainSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DPOOL Pool, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(SetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9* pRenderTarget) PURE;
-    STDMETHOD(GetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9** ppRenderTarget) PURE;
-    STDMETHOD(SetDepthStencilSurface)(THIS_ IDirect3DSurface9* pNewZStencil) PURE;
-    STDMETHOD(GetDepthStencilSurface)(THIS_ IDirect3DSurface9** ppZStencilSurface) PURE;
-    STDMETHOD(BeginScene)(THIS) PURE;
-    STDMETHOD(EndScene)(THIS) PURE;
-    STDMETHOD(Clear)(THIS_ DWORD Count, CONST D3DRECT* pRects, DWORD Flags, D3DCOLOR Color, float Z, DWORD Stencil) PURE;
-    STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX* pMatrix) PURE;
-    STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE State, D3DMATRIX* pMatrix) PURE;
-    STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE, CONST D3DMATRIX*) PURE;
-    STDMETHOD(SetViewport)(THIS_ CONST D3DVIEWPORT9* pViewport) PURE;
-    STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT9* pViewport) PURE;
-    STDMETHOD(SetMaterial)(THIS_ CONST D3DMATERIAL9* pMaterial) PURE;
-    STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL9* pMaterial) PURE;
-    STDMETHOD(SetLight)(THIS_ DWORD Index, CONST D3DLIGHT9*) PURE;
-    STDMETHOD(GetLight)(THIS_ DWORD Index, D3DLIGHT9*) PURE;
-    STDMETHOD(LightEnable)(THIS_ DWORD Index, BOOL Enable) PURE;
-    STDMETHOD(GetLightEnable)(THIS_ DWORD Index, BOOL* pEnable) PURE;
-    STDMETHOD(SetClipPlane)(THIS_ DWORD Index, CONST float* pPlane) PURE;
-    STDMETHOD(GetClipPlane)(THIS_ DWORD Index, float* pPlane) PURE;
-    STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE State, DWORD Value) PURE;
-    STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE State, DWORD* pValue) PURE;
-    STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE Type, IDirect3DStateBlock9** ppSB) PURE;
-    STDMETHOD(BeginStateBlock)(THIS) PURE;
-    STDMETHOD(EndStateBlock)(THIS_ IDirect3DStateBlock9** ppSB) PURE;
-    STDMETHOD(SetClipStatus)(THIS_ CONST D3DCLIPSTATUS9* pClipStatus) PURE;
-    STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS9* pClipStatus) PURE;
-    STDMETHOD(GetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9** ppTexture) PURE;
-    STDMETHOD(SetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9* pTexture) PURE;
-    STDMETHOD(GetTextureStageState)(THIS_ DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD* pValue) PURE;
-    STDMETHOD(SetTextureStageState)(THIS_ DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value) PURE;
-    STDMETHOD(GetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD* pValue) PURE;
-    STDMETHOD(SetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value) PURE;
-    STDMETHOD(ValidateDevice)(THIS_ DWORD* pNumPasses) PURE;
-    STDMETHOD(SetPaletteEntries)(THIS_ UINT PaletteNumber, CONST PALETTEENTRY* pEntries) PURE;
-    STDMETHOD(GetPaletteEntries)(THIS_ UINT PaletteNumber,PALETTEENTRY* pEntries) PURE;
-    STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT PaletteNumber) PURE;
-    STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT *PaletteNumber) 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(SetNPatchMode)(THIS_ float nSegments) PURE;
-    STDMETHOD_(float, GetNPatchMode)(THIS) PURE;
-    STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT StartVertex, UINT PrimitiveCount) PURE;
-    STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount) PURE;
-    STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) PURE;
-    STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT MinVertexIndex, UINT NumVertices, UINT PrimitiveCount, CONST void* pIndexData, D3DFORMAT IndexDataFormat, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) PURE;
-    STDMETHOD(ProcessVertices)(THIS_ UINT SrcStartIndex, UINT DestIndex, UINT VertexCount, IDirect3DVertexBuffer9* pDestBuffer, IDirect3DVertexDeclaration9* pVertexDecl, DWORD Flags) PURE;
-    STDMETHOD(CreateVertexDeclaration)(THIS_ CONST D3DVERTEXELEMENT9* pVertexElements, IDirect3DVertexDeclaration9** ppDecl) PURE;
-    STDMETHOD(SetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9* pDecl) PURE;
-    STDMETHOD(GetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9** ppDecl) PURE;
-    STDMETHOD(SetFVF)(THIS_ DWORD FVF) PURE;
-    STDMETHOD(GetFVF)(THIS_ DWORD* pFVF) PURE;
-    STDMETHOD(CreateVertexShader)(THIS_ CONST DWORD* pFunction, IDirect3DVertexShader9** ppShader) PURE;
-    STDMETHOD(SetVertexShader)(THIS_ IDirect3DVertexShader9* pShader) PURE;
-    STDMETHOD(GetVertexShader)(THIS_ IDirect3DVertexShader9** ppShader) PURE;
-    STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) PURE;
-    STDMETHOD(GetVertexShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE;
-    STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) PURE;
-    STDMETHOD(GetVertexShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE;
-    STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT StartRegister, CONST BOOL* pConstantData, UINT  BoolCount) PURE;
-    STDMETHOD(GetVertexShaderConstantB)(THIS_ UINT StartRegister, BOOL* pConstantData, UINT BoolCount) PURE;
-    STDMETHOD(SetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9* pStreamData, UINT OffsetInBytes, UINT Stride) PURE;
-    STDMETHOD(GetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9** ppStreamData, UINT* OffsetInBytes, UINT* pStride) PURE;
-    STDMETHOD(SetStreamSourceFreq)(THIS_ UINT StreamNumber, UINT Divider) PURE;
-    STDMETHOD(GetStreamSourceFreq)(THIS_ UINT StreamNumber, UINT* Divider) PURE;
-    STDMETHOD(SetIndices)(THIS_ IDirect3DIndexBuffer9* pIndexData) PURE;
-    STDMETHOD(GetIndices)(THIS_ IDirect3DIndexBuffer9** ppIndexData) PURE;
-    STDMETHOD(CreatePixelShader)(THIS_ CONST DWORD* pFunction, IDirect3DPixelShader9** ppShader) PURE;
-    STDMETHOD(SetPixelShader)(THIS_ IDirect3DPixelShader9* pShader) PURE;
-    STDMETHOD(GetPixelShader)(THIS_ IDirect3DPixelShader9** ppShader) PURE;
-    STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) PURE;
-    STDMETHOD(GetPixelShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE;
-    STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) PURE;
-    STDMETHOD(GetPixelShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE;
-    STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT StartRegister, CONST BOOL* pConstantData, UINT  BoolCount) PURE;
-    STDMETHOD(GetPixelShaderConstantB)(THIS_ UINT StartRegister, BOOL* pConstantData, UINT BoolCount) PURE;
-    STDMETHOD(DrawRectPatch)(THIS_ UINT Handle, CONST float* pNumSegs, CONST D3DRECTPATCH_INFO* pRectPatchInfo) PURE;
-    STDMETHOD(DrawTriPatch)(THIS_ UINT Handle, CONST float* pNumSegs, CONST D3DTRIPATCH_INFO* pTriPatchInfo) PURE;
-    STDMETHOD(DeletePatch)(THIS_ UINT Handle) PURE;
-    STDMETHOD(CreateQuery)(THIS_ D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DDevice9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DDevice9_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DDevice9_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3DDevice9 methods ***/
-#define IDirect3DDevice9_TestCooperativeLevel(p)                       (p)->lpVtbl->TestCooperativeLevel(p)
-#define IDirect3DDevice9_GetAvailableTextureMem(p)                     (p)->lpVtbl->GetAvailableTextureMem(p)
-#define IDirect3DDevice9_EvictManagedResources(p)                      (p)->lpVtbl->EvictManagedResources(p)
-#define IDirect3DDevice9_GetDirect3D(p,a)                              (p)->lpVtbl->GetDirect3D(p,a)
-#define IDirect3DDevice9_GetDeviceCaps(p,a)                            (p)->lpVtbl->GetDeviceCaps(p,a)
-#define IDirect3DDevice9_GetDisplayMode(p,a,b)                         (p)->lpVtbl->GetDisplayMode(p,a,b)
-#define IDirect3DDevice9_GetCreationParameters(p,a)                    (p)->lpVtbl->GetCreationParameters(p,a)
-#define IDirect3DDevice9_SetCursorProperties(p,a,b,c)                  (p)->lpVtbl->SetCursorProperties(p,a,b,c)
-#define IDirect3DDevice9_SetCursorPosition(p,a,b,c)                    (p)->lpVtbl->SetCursorPosition(p,a,b,c)
-#define IDirect3DDevice9_ShowCursor(p,a)                               (p)->lpVtbl->ShowCursor(p,a)
-#define IDirect3DDevice9_CreateAdditionalSwapChain(p,a,b)              (p)->lpVtbl->CreateAdditionalSwapChain(p,a,b)
-#define IDirect3DDevice9_GetSwapChain(p,a,b)                           (p)->lpVtbl->GetSwapChain(p,a,b)
-#define IDirect3DDevice9_GetNumberOfSwapChains(p)                      (p)->lpVtbl->GetNumberOfSwapChains(p)
-#define IDirect3DDevice9_Reset(p,a)                                    (p)->lpVtbl->Reset(p,a)
-#define IDirect3DDevice9_Present(p,a,b,c,d)                            (p)->lpVtbl->Present(p,a,b,c,d)
-#define IDirect3DDevice9_GetBackBuffer(p,a,b,c,d)                      (p)->lpVtbl->GetBackBuffer(p,a,b,c,d)
-#define IDirect3DDevice9_GetRasterStatus(p,a,b)                        (p)->lpVtbl->GetRasterStatus(p,a,b)
-#define IDirect3DDevice9_SetDialogBoxMode(p,a)                         (p)->lpVtbl->SetDialogBoxMode(p,a)
-#define IDirect3DDevice9_SetGammaRamp(p,a,b,c)                         (p)->lpVtbl->SetGammaRamp(p,a,b,c)
-#define IDirect3DDevice9_GetGammaRamp(p,a,b)                           (p)->lpVtbl->GetGammaRamp(p,a,b)
-#define IDirect3DDevice9_CreateTexture(p,a,b,c,d,e,f,g,h)              (p)->lpVtbl->CreateTexture(p,a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9_CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i)      (p)->lpVtbl->CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i)
-#define IDirect3DDevice9_CreateCubeTexture(p,a,b,c,d,e,f,g)            (p)->lpVtbl->CreateCubeTexture(p,a,b,c,d,e,f,g)
-#define IDirect3DDevice9_CreateVertexBuffer(p,a,b,c,d,e,f)             (p)->lpVtbl->CreateVertexBuffer(p,a,b,c,d,e,f)
-#define IDirect3DDevice9_CreateIndexBuffer(p,a,b,c,d,e,f)              (p)->lpVtbl->CreateIndexBuffer(p,a,b,c,d,e,f)
-#define IDirect3DDevice9_CreateRenderTarget(p,a,b,c,d,e,f,g,h)         (p)->lpVtbl->CreateRenderTarget(p,a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9_CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h)  (p)->lpVtbl->CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9_UpdateSurface(p,a,b,c,d)                      (p)->lpVtbl->UpdateSurface(p,a,b,c,d)
-#define IDirect3DDevice9_UpdateTexture(p,a,b)                          (p)->lpVtbl->UpdateTexture(p,a,b)
-#define IDirect3DDevice9_GetRenderTargetData(p,a,b)                    (p)->lpVtbl->GetRenderTargetData(p,a,b)
-#define IDirect3DDevice9_GetFrontBufferData(p,a,b)                     (p)->lpVtbl->GetFrontBufferData(p,a,b)
-#define IDirect3DDevice9_StretchRect(p,a,b,c,d,e)                      (p)->lpVtbl->StretchRect(p,a,b,c,d,e)
-#define IDirect3DDevice9_ColorFill(p,a,b,c)                            (p)->lpVtbl->ColorFill(p,a,b,c)
-#define IDirect3DDevice9_CreateOffscreenPlainSurface(p,a,b,c,d,e,f)    (p)->lpVtbl->CreateOffscreenPlainSurface(p,a,b,c,d,e,f)
-#define IDirect3DDevice9_SetRenderTarget(p,a,b)                        (p)->lpVtbl->SetRenderTarget(p,a,b)
-#define IDirect3DDevice9_GetRenderTarget(p,a,b)                        (p)->lpVtbl->GetRenderTarget(p,a,b)
-#define IDirect3DDevice9_SetDepthStencilSurface(p,a)                   (p)->lpVtbl->SetDepthStencilSurface(p,a)
-#define IDirect3DDevice9_GetDepthStencilSurface(p,a)                   (p)->lpVtbl->GetDepthStencilSurface(p,a)
-#define IDirect3DDevice9_BeginScene(p)                                 (p)->lpVtbl->BeginScene(p)
-#define IDirect3DDevice9_EndScene(p)                                   (p)->lpVtbl->EndScene(p)
-#define IDirect3DDevice9_Clear(p,a,b,c,d,e,f)                          (p)->lpVtbl->Clear(p,a,b,c,d,e,f)
-#define IDirect3DDevice9_SetTransform(p,a,b)                           (p)->lpVtbl->SetTransform(p,a,b)
-#define IDirect3DDevice9_GetTransform(p,a,b)                           (p)->lpVtbl->GetTransform(p,a,b)
-#define IDirect3DDevice9_MultiplyTransform(p,a,b)                      (p)->lpVtbl->MultiplyTransform(p,a,b)
-#define IDirect3DDevice9_SetViewport(p,a)                              (p)->lpVtbl->SetViewport(p,a)
-#define IDirect3DDevice9_GetViewport(p,a)                              (p)->lpVtbl->GetViewport(p,a)
-#define IDirect3DDevice9_SetMaterial(p,a)                              (p)->lpVtbl->SetMaterial(p,a)
-#define IDirect3DDevice9_GetMaterial(p,a)                              (p)->lpVtbl->GetMaterial(p,a)
-#define IDirect3DDevice9_SetLight(p,a,b)                               (p)->lpVtbl->SetLight(p,a,b)
-#define IDirect3DDevice9_GetLight(p,a,b)                               (p)->lpVtbl->GetLight(p,a,b)
-#define IDirect3DDevice9_LightEnable(p,a,b)                            (p)->lpVtbl->LightEnable(p,a,b)
-#define IDirect3DDevice9_GetLightEnable(p,a,b)                         (p)->lpVtbl->GetLightEnable(p,a,b)
-#define IDirect3DDevice9_SetClipPlane(p,a,b)                           (p)->lpVtbl->SetClipPlane(p,a,b)
-#define IDirect3DDevice9_GetClipPlane(p,a,b)                           (p)->lpVtbl->GetClipPlane(p,a,b)
-#define IDirect3DDevice9_SetRenderState(p,a,b)                         (p)->lpVtbl->SetRenderState(p,a,b)
-#define IDirect3DDevice9_GetRenderState(p,a,b)                         (p)->lpVtbl->GetRenderState(p,a,b)
-#define IDirect3DDevice9_CreateStateBlock(p,a,b)                       (p)->lpVtbl->CreateStateBlock(p,a,b)
-#define IDirect3DDevice9_BeginStateBlock(p)                            (p)->lpVtbl->BeginStateBlock(p)
-#define IDirect3DDevice9_EndStateBlock(p,a)                            (p)->lpVtbl->EndStateBlock(p,a)
-#define IDirect3DDevice9_SetClipStatus(p,a)                            (p)->lpVtbl->SetClipStatus(p,a)
-#define IDirect3DDevice9_GetClipStatus(p,a)                            (p)->lpVtbl->GetClipStatus(p,a)
-#define IDirect3DDevice9_GetTexture(p,a,b)                             (p)->lpVtbl->GetTexture(p,a,b)
-#define IDirect3DDevice9_SetTexture(p,a,b)                             (p)->lpVtbl->SetTexture(p,a,b)
-#define IDirect3DDevice9_GetTextureStageState(p,a,b,c)                 (p)->lpVtbl->GetTextureStageState(p,a,b,c)
-#define IDirect3DDevice9_SetTextureStageState(p,a,b,c)                 (p)->lpVtbl->SetTextureStageState(p,a,b,c)
-#define IDirect3DDevice9_GetSamplerState(p,a,b,c)                      (p)->lpVtbl->GetSamplerState(p,a,b,c)
-#define IDirect3DDevice9_SetSamplerState(p,a,b,c)                      (p)->lpVtbl->SetSamplerState(p,a,b,c)
-#define IDirect3DDevice9_ValidateDevice(p,a)                           (p)->lpVtbl->ValidateDevice(p,a)
-#define IDirect3DDevice9_SetPaletteEntries(p,a,b)                      (p)->lpVtbl->SetPaletteEntries(p,a,b)
-#define IDirect3DDevice9_GetPaletteEntries(p,a,b)                      (p)->lpVtbl->GetPaletteEntries(p,a,b)
-#define IDirect3DDevice9_SetCurrentTexturePalette(p,a)                 (p)->lpVtbl->SetCurrentTexturePalette(p,a)
-#define IDirect3DDevice9_GetCurrentTexturePalette(p,a)                 (p)->lpVtbl->GetCurrentTexturePalette(p,a)
-#define IDirect3DDevice9_SetScissorRect(p,a)                           (p)->lpVtbl->SetScissorRect(p,a)
-#define IDirect3DDevice9_GetScissorRect(p,a)                           (p)->lpVtbl->GetScissorRect(p,a)
-#define IDirect3DDevice9_SetSoftwareVertexProcessing(p,a)              (p)->lpVtbl->SetSoftwareVertexProcessing(p,a)
-#define IDirect3DDevice9_GetSoftwareVertexProcessing(p)                (p)->lpVtbl->GetSoftwareVertexProcessing(p)
-#define IDirect3DDevice9_SetNPatchMode(p,a)                            (p)->lpVtbl->SetNPatchMode(p,a)
-#define IDirect3DDevice9_GetNPatchMode(p)                              (p)->lpVtbl->GetNPatchMode(p)
-#define IDirect3DDevice9_DrawPrimitive(p,a,b,c)                        (p)->lpVtbl->DrawPrimitive(p,a,b,c)
-#define IDirect3DDevice9_DrawIndexedPrimitive(p,a,b,c,d,e,f)           (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f)
-#define IDirect3DDevice9_DrawPrimitiveUP(p,a,b,c,d)                    (p)->lpVtbl->DrawPrimitiveUP(p,a,b,c,d)
-#define IDirect3DDevice9_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h)     (p)->lpVtbl->DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9_ProcessVertices(p,a,b,c,d,e,f)                (p)->lpVtbl->ProcessVertices(p,a,b,c,d,e,f)
-#define IDirect3DDevice9_CreateVertexDeclaration(p,a,b)                (p)->lpVtbl->CreateVertexDeclaration(p,a,b)
-#define IDirect3DDevice9_SetVertexDeclaration(p,a)                     (p)->lpVtbl->SetVertexDeclaration(p,a)
-#define IDirect3DDevice9_GetVertexDeclaration(p,a)                     (p)->lpVtbl->GetVertexDeclaration(p,a)
-#define IDirect3DDevice9_SetFVF(p,a)                                   (p)->lpVtbl->SetFVF(p,a)
-#define IDirect3DDevice9_GetFVF(p,a)                                   (p)->lpVtbl->GetFVF(p,a)
-#define IDirect3DDevice9_CreateVertexShader(p,a,b)                     (p)->lpVtbl->CreateVertexShader(p,a,b)
-#define IDirect3DDevice9_SetVertexShader(p,a)                          (p)->lpVtbl->SetVertexShader(p,a)
-#define IDirect3DDevice9_GetVertexShader(p,a)                          (p)->lpVtbl->GetVertexShader(p,a)
-#define IDirect3DDevice9_SetVertexShaderConstantF(p,a,b,c)             (p)->lpVtbl->SetVertexShaderConstantF(p,a,b,c)
-#define IDirect3DDevice9_GetVertexShaderConstantF(p,a,b,c)             (p)->lpVtbl->GetVertexShaderConstantF(p,a,b,c)
-#define IDirect3DDevice9_SetVertexShaderConstantI(p,a,b,c)             (p)->lpVtbl->SetVertexShaderConstantI(p,a,b,c)
-#define IDirect3DDevice9_GetVertexShaderConstantI(p,a,b,c)             (p)->lpVtbl->GetVertexShaderConstantI(p,a,b,c)
-#define IDirect3DDevice9_SetVertexShaderConstantB(p,a,b,c)             (p)->lpVtbl->SetVertexShaderConstantB(p,a,b,c)
-#define IDirect3DDevice9_GetVertexShaderConstantB(p,a,b,c)             (p)->lpVtbl->GetVertexShaderConstantB(p,a,b,c)
-#define IDirect3DDevice9_SetStreamSource(p,a,b,c,d)                    (p)->lpVtbl->SetStreamSource(p,a,b,c,d)
-#define IDirect3DDevice9_GetStreamSource(p,a,b,c,d)                    (p)->lpVtbl->GetStreamSource(p,a,b,c,d)
-#define IDirect3DDevice9_SetStreamSourceFreq(p,a,b)                    (p)->lpVtbl->SetStreamSourceFreq(p,a,b)
-#define IDirect3DDevice9_GetStreamSourceFreq(p,a,b)                    (p)->lpVtbl->GetStreamSourceFreq(p,a,b)
-#define IDirect3DDevice9_SetIndices(p,a)                               (p)->lpVtbl->SetIndices(p,a)
-#define IDirect3DDevice9_GetIndices(p,a)                               (p)->lpVtbl->GetIndices(p,a)
-#define IDirect3DDevice9_CreatePixelShader(p,a,b)                      (p)->lpVtbl->CreatePixelShader(p,a,b)
-#define IDirect3DDevice9_SetPixelShader(p,a)                           (p)->lpVtbl->SetPixelShader(p,a)
-#define IDirect3DDevice9_GetPixelShader(p,a)                           (p)->lpVtbl->GetPixelShader(p,a)
-#define IDirect3DDevice9_SetPixelShaderConstantF(p,a,b,c)              (p)->lpVtbl->SetPixelShaderConstantF(p,a,b,c)
-#define IDirect3DDevice9_GetPixelShaderConstantF(p,a,b,c)              (p)->lpVtbl->GetPixelShaderConstantF(p,a,b,c)
-#define IDirect3DDevice9_SetPixelShaderConstantI(p,a,b,c)              (p)->lpVtbl->SetPixelShaderConstantI(p,a,b,c)
-#define IDirect3DDevice9_GetPixelShaderConstantI(p,a,b,c)              (p)->lpVtbl->GetPixelShaderConstantI(p,a,b,c)
-#define IDirect3DDevice9_SetPixelShaderConstantB(p,a,b,c)              (p)->lpVtbl->SetPixelShaderConstantB(p,a,b,c)
-#define IDirect3DDevice9_GetPixelShaderConstantB(p,a,b,c)              (p)->lpVtbl->GetPixelShaderConstantB(p,a,b,c)
-#define IDirect3DDevice9_DrawRectPatch(p,a,b,c)                        (p)->lpVtbl->DrawRectPatch(p,a,b,c)
-#define IDirect3DDevice9_DrawTriPatch(p,a,b,c)                         (p)->lpVtbl->DrawTriPatch(p,a,b,c)
-#define IDirect3DDevice9_DeletePatch(p,a)                              (p)->lpVtbl->DeletePatch(p,a)
-#define IDirect3DDevice9_CreateQuery(p,a,b)                            (p)->lpVtbl->CreateQuery(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DDevice9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DDevice9_AddRef(p)             (p)->AddRef()
-#define IDirect3DDevice9_Release(p)            (p)->Release()
-/*** IDirect3DDevice9 methods ***/
-#define IDirect3DDevice9_TestCooperativeLevel(p)                       (p)->TestCooperativeLevel()
-#define IDirect3DDevice9_GetAvailableTextureMem(p)                     (p)->GetAvailableTextureMem()
-#define IDirect3DDevice9_EvictManagedResources(p)                      (p)->EvictManagedResources()
-#define IDirect3DDevice9_GetDirect3D(p,a)                              (p)->GetDirect3D(a)
-#define IDirect3DDevice9_GetDeviceCaps(p,a)                            (p)->GetDeviceCaps(a)
-#define IDirect3DDevice9_GetDisplayMode(p,a,b)                         (p)->GetDisplayMode(a,b)
-#define IDirect3DDevice9_GetCreationParameters(p,a)                    (p)->GetCreationParameters(a)
-#define IDirect3DDevice9_SetCursorProperties(p,a,b,c)                  (p)->SetCursorProperties(a,b,c)
-#define IDirect3DDevice9_SetCursorPosition(p,a,b,c)                    (p)->SetCursorPosition(a,b,c)
-#define IDirect3DDevice9_ShowCursor(p,a)                               (p)->ShowCursor(a)
-#define IDirect3DDevice9_CreateAdditionalSwapChain(p,a,b)              (p)->CreateAdditionalSwapChain(a,b)
-#define IDirect3DDevice9_GetSwapChain(p,a,b)                           (p)->GetSwapChain(a,b)
-#define IDirect3DDevice9_GetNumberOfSwapChains(p)                      (p)->GetNumberOfSwapChains()
-#define IDirect3DDevice9_Reset(p,a)                                    (p)->Reset(a)
-#define IDirect3DDevice9_Present(p,a,b,c,d)                            (p)->Present(a,b,c,d)
-#define IDirect3DDevice9_GetBackBuffer(p,a,b,c,d)                      (p)->GetBackBuffer(a,b,c,d)
-#define IDirect3DDevice9_GetRasterStatus(p,a,b)                        (p)->GetRasterStatus(a,b)
-#define IDirect3DDevice9_SetDialogBoxMode(p,a)                         (p)->SetDialogBoxMode(a)
-#define IDirect3DDevice9_SetGammaRamp(p,a,b,c)                         (p)->SetGammaRamp(a,b,c)
-#define IDirect3DDevice9_GetGammaRamp(p,a,b)                           (p)->GetGammaRamp(a,b)
-#define IDirect3DDevice9_CreateTexture(p,a,b,c,d,e,f,g,h)              (p)->CreateTexture(a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9_CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i)      (p)->CreateVolumeTexture(a,b,c,d,e,f,g,h,i)
-#define IDirect3DDevice9_CreateCubeTexture(p,a,b,c,d,e,f,g)            (p)->CreateCubeTexture(a,b,c,d,e,f,g)
-#define IDirect3DDevice9_CreateVertexBuffer(p,a,b,c,d,e,f)             (p)->CreateVertexBuffer(a,b,c,d,e,f)
-#define IDirect3DDevice9_CreateIndexBuffer(p,a,b,c,d,e,f)              (p)->CreateIndexBuffer(a,b,c,d,e,f)
-#define IDirect3DDevice9_CreateRenderTarget(p,a,b,c,d,e,f,g,h)         (p)->CreateRenderTarget(a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9_CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h)  (p)->CreateDepthStencilSurface(a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9_UpdateSurface(p,a,b,c,d)                      (p)->UpdateSurface(a,b,c,d)
-#define IDirect3DDevice9_UpdateTexture(p,a,b)                          (p)->UpdateTexture(a,b)
-#define IDirect3DDevice9_GetRenderTargetData(p,a,b)                    (p)->GetRenderTargetData(a,b)
-#define IDirect3DDevice9_GetFrontBufferData(p,a,b)                     (p)->GetFrontBufferData(a,b)
-#define IDirect3DDevice9_StretchRect(p,a,b,c,d,e)                      (p)->StretchRect(a,b,c,d,e)
-#define IDirect3DDevice9_ColorFill(p,a,b,c)                            (p)->ColorFill(a,b,c)
-#define IDirect3DDevice9_CreateOffscreenPlainSurface(p,a,b,c,d,e,f)    (p)->CreateOffscreenPlainSurface(a,b,c,d,e,f)
-#define IDirect3DDevice9_SetRenderTarget(p,a,b)                        (p)->SetRenderTarget(a,b)
-#define IDirect3DDevice9_GetRenderTarget(p,a,b)                        (p)->GetRenderTarget(a,b)
-#define IDirect3DDevice9_SetDepthStencilSurface(p,a)                   (p)->SetDepthStencilSurface(a)
-#define IDirect3DDevice9_GetDepthStencilSurface(p,a)                   (p)->GetDepthStencilSurface(a)
-#define IDirect3DDevice9_BeginScene(p)                                 (p)->BeginScene()
-#define IDirect3DDevice9_EndScene(p)                                   (p)->EndScene()
-#define IDirect3DDevice9_Clear(p,a,b,c,d,e,f)                          (p)->Clear(a,b,c,d,e,f)
-#define IDirect3DDevice9_SetTransform(p,a,b)                           (p)->SetTransform(a,b)
-#define IDirect3DDevice9_GetTransform(p,a,b)                           (p)->GetTransform(a,b)
-#define IDirect3DDevice9_MultiplyTransform(p,a,b)                      (p)->MultiplyTransform(a,b)
-#define IDirect3DDevice9_SetViewport(p,a)                              (p)->SetViewport(a)
-#define IDirect3DDevice9_GetViewport(p,a)                              (p)->GetViewport(a)
-#define IDirect3DDevice9_SetMaterial(p,a)                              (p)->SetMaterial(a)
-#define IDirect3DDevice9_GetMaterial(p,a)                              (p)->GetMaterial(a)
-#define IDirect3DDevice9_SetLight(p,a,b)                               (p)->SetLight(a,b)
-#define IDirect3DDevice9_GetLight(p,a,b)                               (p)->GetLight(a,b)
-#define IDirect3DDevice9_LightEnable(p,a,b)                            (p)->LightEnable(a,b)
-#define IDirect3DDevice9_GetLightEnable(p,a,b)                         (p)->GetLightEnable(a,b)
-#define IDirect3DDevice9_SetClipPlane(p,a,b)                           (p)->SetClipPlane(a,b)
-#define IDirect3DDevice9_GetClipPlane(p,a,b)                           (p)->GetClipPlane(a,b)
-#define IDirect3DDevice9_SetRenderState(p,a,b)                         (p)->SetRenderState(a,b)
-#define IDirect3DDevice9_GetRenderState(p,a,b)                         (p)->GetRenderState(a,b)
-#define IDirect3DDevice9_CreateStateBlock(p,a,b)                       (p)->CreateStateBlock(a,b)
-#define IDirect3DDevice9_BeginStateBlock(p)                            (p)->BeginStateBlock()
-#define IDirect3DDevice9_EndStateBlock(p,a)                            (p)->EndStateBlock(a)
-#define IDirect3DDevice9_SetClipStatus(p,a)                            (p)->SetClipStatus(a)
-#define IDirect3DDevice9_GetClipStatus(p,a)                            (p)->GetClipStatus(a)
-#define IDirect3DDevice9_GetTexture(p,a,b)                             (p)->GetTexture(a,b)
-#define IDirect3DDevice9_SetTexture(p,a,b)                             (p)->SetTexture(a,b)
-#define IDirect3DDevice9_GetTextureStageState(p,a,b,c)                 (p)->GetTextureStageState(a,b,c)
-#define IDirect3DDevice9_SetTextureStageState(p,a,b,c)                 (p)->SetTextureStageState(a,b,c)
-#define IDirect3DDevice9_GetSamplerState(p,a,b,c)                      (p)->GetSamplerState(a,b,c)
-#define IDirect3DDevice9_SetSamplerState(p,a,b,c)                      (p)->SetSamplerState(a,b,c)
-#define IDirect3DDevice9_ValidateDevice(p,a)                           (p)->ValidateDevice(a)
-#define IDirect3DDevice9_SetPaletteEntries(p,a,b)                      (p)->SetPaletteEntries(a,b)
-#define IDirect3DDevice9_GetPaletteEntries(p,a,b)                      (p)->GetPaletteEntries(a,b)
-#define IDirect3DDevice9_SetCurrentTexturePalette(p,a)                 (p)->SetCurrentTexturePalette(a)
-#define IDirect3DDevice9_GetCurrentTexturePalette(p,a)                 (p)->GetCurrentTexturePalette(a)
-#define IDirect3DDevice9_SetScissorRect(p,a)                           (p)->SetScissorRect(a)
-#define IDirect3DDevice9_GetScissorRect(p,a)                           (p)->GetScissorRect(a)
-#define IDirect3DDevice9_SetSoftwareVertexProcessing(p,a)              (p)->SetSoftwareVertexProcessing(a)
-#define IDirect3DDevice9_GetSoftwareVertexProcessing(p)                (p)->GetSoftwareVertexProcessing()
-#define IDirect3DDevice9_SetNPatchMode(p,a)                            (p)->SetNPatchMode(a)
-#define IDirect3DDevice9_GetNPatchMode(p)                              (p)->GetNPatchMode()
-#define IDirect3DDevice9_DrawPrimitive(p,a,b,c)                        (p)->DrawPrimitive(a,b,c)
-#define IDirect3DDevice9_DrawIndexedPrimitive(p,a,b,c,d,e,f)           (p)->DrawIndexedPrimitive(a,b,c,d,e,f)
-#define IDirect3DDevice9_DrawPrimitiveUP(p,a,b,c,d)                    (p)->DrawPrimitiveUP(a,b,c,d)
-#define IDirect3DDevice9_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h)     (p)->DrawIndexedPrimitiveUP(a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9_ProcessVertices(p,a,b,c,d,e,f)                (p)->ProcessVertices(a,b,c,d,e,f)
-#define IDirect3DDevice9_CreateVertexDeclaration(p,a,b)                (p)->CreateVertexDeclaration(a,b)
-#define IDirect3DDevice9_SetVertexDeclaration(p,a)                     (p)->SetVertexDeclaration(a)
-#define IDirect3DDevice9_GetVertexDeclaration(p,a)                     (p)->GetVertexDeclaration(a)
-#define IDirect3DDevice9_SetFVF(p,a)                                   (p)->SetFVF(a)
-#define IDirect3DDevice9_GetFVF(p,a)                                   (p)->GetFVF(a)
-#define IDirect3DDevice9_CreateVertexShader(p,a,b)                     (p)->CreateVertexShader(a,b)
-#define IDirect3DDevice9_SetVertexShader(p,a)                          (p)->SetVertexShader(a)
-#define IDirect3DDevice9_GetVertexShader(p,a)                          (p)->GetVertexShader(a)
-#define IDirect3DDevice9_SetVertexShaderConstantF(p,a,b,c)             (p)->SetVertexShaderConstantF(a,b,c)
-#define IDirect3DDevice9_GetVertexShaderConstantF(p,a,b,c)             (p)->GetVertexShaderConstantF(a,b,c)
-#define IDirect3DDevice9_SetVertexShaderConstantI(p,a,b,c)             (p)->SetVertexShaderConstantI(a,b,c)
-#define IDirect3DDevice9_GetVertexShaderConstantI(p,a,b,c)             (p)->GetVertexShaderConstantI(a,b,c)
-#define IDirect3DDevice9_SetVertexShaderConstantB(p,a,b,c)             (p)->SetVertexShaderConstantB(a,b,c)
-#define IDirect3DDevice9_GetVertexShaderConstantB(p,a,b,c)             (p)->GetVertexShaderConstantB(a,b,c)
-#define IDirect3DDevice9_SetStreamSource(p,a,b,c,d)                    (p)->SetStreamSource(a,b,c,d)
-#define IDirect3DDevice9_GetStreamSource(p,a,b,c,d)                    (p)->GetStreamSource(a,b,c,d)
-#define IDirect3DDevice9_SetStreamSourceFreq(p,a,b)                    (p)->SetStreamSourceFreq(a,b)
-#define IDirect3DDevice9_GetStreamSourceFreq(p,a,b)                    (p)->GetStreamSourceFreq(a,b)
-#define IDirect3DDevice9_SetIndices(p,a)                               (p)->SetIndices(a)
-#define IDirect3DDevice9_GetIndices(p,a)                               (p)->GetIndices(a)
-#define IDirect3DDevice9_CreatePixelShader(p,a,b)                      (p)->CreatePixelShader(a,b)
-#define IDirect3DDevice9_SetPixelShader(p,a)                           (p)->SetPixelShader(a)
-#define IDirect3DDevice9_GetPixelShader(p,a)                           (p)->GetPixelShader(a)
-#define IDirect3DDevice9_SetPixelShaderConstantF(p,a,b,c)              (p)->SetPixelShaderConstantF(a,b,c)
-#define IDirect3DDevice9_GetPixelShaderConstantF(p,a,b,c)              (p)->GetPixelShaderConstantF(a,b,c)
-#define IDirect3DDevice9_SetPixelShaderConstantI(p,a,b,c)              (p)->SetPixelShaderConstantI(a,b,c)
-#define IDirect3DDevice9_GetPixelShaderConstantI(p,a,b,c)              (p)->GetPixelShaderConstantI(a,b,c)
-#define IDirect3DDevice9_SetPixelShaderConstantB(p,a,b,c)              (p)->SetPixelShaderConstantB(a,b,c)
-#define IDirect3DDevice9_GetPixelShaderConstantB(p,a,b,c)              (p)->GetPixelShaderConstantB(a,b,c)
-#define IDirect3DDevice9_DrawRectPatch(p,a,b,c)                        (p)->DrawRectPatch(a,b,c)
-#define IDirect3DDevice9_DrawTriPatch(p,a,b,c)                         (p)->DrawTriPatch(a,b,c)
-#define IDirect3DDevice9_DeletePatch(p,a)                              (p)->DeletePatch(a)
-#define IDirect3DDevice9_CreateQuery(p,a,b)                            (p)->CreateQuery(a,b)
-#endif
-
-
-/*****************************************************************************
- * IDirect3DDevice9Ex interface
- */
-#define INTERFACE IDirect3DDevice9Ex
-DECLARE_INTERFACE_(IDirect3DDevice9Ex,IDirect3DDevice9)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DDevice9 methods ***/
-    STDMETHOD(TestCooperativeLevel)(THIS) PURE;
-    STDMETHOD_(UINT, GetAvailableTextureMem)(THIS) PURE;
-    STDMETHOD(EvictManagedResources)(THIS) PURE;
-    STDMETHOD(GetDirect3D)(THIS_ IDirect3D9** ppD3D9) PURE;
-    STDMETHOD(GetDeviceCaps)(THIS_ D3DCAPS9* pCaps) PURE;
-    STDMETHOD(GetDisplayMode)(THIS_ UINT iSwapChain, D3DDISPLAYMODE* pMode) PURE;
-    STDMETHOD(GetCreationParameters)(THIS_ D3DDEVICE_CREATION_PARAMETERS *pParameters) PURE;
-    STDMETHOD(SetCursorProperties)(THIS_ UINT XHotSpot, UINT YHotSpot, IDirect3DSurface9* pCursorBitmap) PURE;
-    STDMETHOD_(void, SetCursorPosition)(THIS_ int X,int Y, DWORD Flags) PURE;
-    STDMETHOD_(BOOL, ShowCursor)(THIS_ BOOL bShow) PURE;
-    STDMETHOD(CreateAdditionalSwapChain)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters, IDirect3DSwapChain9** pSwapChain) PURE;
-    STDMETHOD(GetSwapChain)(THIS_ UINT iSwapChain, IDirect3DSwapChain9** pSwapChain) PURE;
-    STDMETHOD_(UINT, GetNumberOfSwapChains)(THIS) PURE;
-    STDMETHOD(Reset)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters) PURE;
-    STDMETHOD(Present)(THIS_ CONST RECT* pSourceRect, CONST RECT* pDestRect, HWND hDestWindowOverride, CONST RGNDATA* pDirtyRegion) PURE;
-    STDMETHOD(GetBackBuffer)(THIS_ UINT iSwapChain, UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, IDirect3DSurface9** ppBackBuffer) PURE;
-    STDMETHOD(GetRasterStatus)(THIS_ UINT iSwapChain, D3DRASTER_STATUS* pRasterStatus) PURE;
-    STDMETHOD(SetDialogBoxMode)(THIS_ BOOL bEnableDialogs) PURE;
-    STDMETHOD_(void, SetGammaRamp)(THIS_ UINT iSwapChain, DWORD Flags, CONST D3DGAMMARAMP* pRamp) PURE;
-    STDMETHOD_(void, GetGammaRamp)(THIS_ UINT iSwapChain, D3DGAMMARAMP* pRamp) PURE;
-    STDMETHOD(CreateTexture)(THIS_ UINT Width, UINT Height, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DTexture9** ppTexture, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(CreateVolumeTexture)(THIS_ UINT Width, UINT Height, UINT Depth, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DVolumeTexture9** ppVolumeTexture, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(CreateCubeTexture)(THIS_ UINT EdgeLength, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DCubeTexture9** ppCubeTexture, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(CreateVertexBuffer)(THIS_ UINT Length, DWORD Usage, DWORD FVF, D3DPOOL Pool, IDirect3DVertexBuffer9** ppVertexBuffer, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(CreateIndexBuffer)(THIS_ UINT Length, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DIndexBuffer9** ppIndexBuffer, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(CreateRenderTarget)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Lockable, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(CreateDepthStencilSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Discard, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(UpdateSurface)(THIS_ IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestinationSurface, CONST POINT* pDestPoint) PURE;
-    STDMETHOD(UpdateTexture)(THIS_ IDirect3DBaseTexture9* pSourceTexture, IDirect3DBaseTexture9* pDestinationTexture) PURE;
-    STDMETHOD(GetRenderTargetData)(THIS_ IDirect3DSurface9* pRenderTarget, IDirect3DSurface9* pDestSurface) PURE;
-    STDMETHOD(GetFrontBufferData)(THIS_ UINT iSwapChain, IDirect3DSurface9* pDestSurface) PURE;
-    STDMETHOD(StretchRect)(THIS_ IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestSurface, CONST RECT* pDestRect, D3DTEXTUREFILTERTYPE Filter) PURE;
-    STDMETHOD(ColorFill)(THIS_ IDirect3DSurface9* pSurface, CONST RECT* pRect, D3DCOLOR color) PURE;
-    STDMETHOD(CreateOffscreenPlainSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DPOOL Pool, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(SetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9* pRenderTarget) PURE;
-    STDMETHOD(GetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9** ppRenderTarget) PURE;
-    STDMETHOD(SetDepthStencilSurface)(THIS_ IDirect3DSurface9* pNewZStencil) PURE;
-    STDMETHOD(GetDepthStencilSurface)(THIS_ IDirect3DSurface9** ppZStencilSurface) PURE;
-    STDMETHOD(BeginScene)(THIS) PURE;
-    STDMETHOD(EndScene)(THIS) PURE;
-    STDMETHOD(Clear)(THIS_ DWORD Count, CONST D3DRECT* pRects, DWORD Flags, D3DCOLOR Color, float Z, DWORD Stencil) PURE;
-    STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX* pMatrix) PURE;
-    STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE State, D3DMATRIX* pMatrix) PURE;
-    STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE, CONST D3DMATRIX*) PURE;
-    STDMETHOD(SetViewport)(THIS_ CONST D3DVIEWPORT9* pViewport) PURE;
-    STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT9* pViewport) PURE;
-    STDMETHOD(SetMaterial)(THIS_ CONST D3DMATERIAL9* pMaterial) PURE;
-    STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL9* pMaterial) PURE;
-    STDMETHOD(SetLight)(THIS_ DWORD Index, CONST D3DLIGHT9*) PURE;
-    STDMETHOD(GetLight)(THIS_ DWORD Index, D3DLIGHT9*) PURE;
-    STDMETHOD(LightEnable)(THIS_ DWORD Index, BOOL Enable) PURE;
-    STDMETHOD(GetLightEnable)(THIS_ DWORD Index, BOOL* pEnable) PURE;
-    STDMETHOD(SetClipPlane)(THIS_ DWORD Index, CONST float* pPlane) PURE;
-    STDMETHOD(GetClipPlane)(THIS_ DWORD Index, float* pPlane) PURE;
-    STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE State, DWORD Value) PURE;
-    STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE State, DWORD* pValue) PURE;
-    STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE Type, IDirect3DStateBlock9** ppSB) PURE;
-    STDMETHOD(BeginStateBlock)(THIS) PURE;
-    STDMETHOD(EndStateBlock)(THIS_ IDirect3DStateBlock9** ppSB) PURE;
-    STDMETHOD(SetClipStatus)(THIS_ CONST D3DCLIPSTATUS9* pClipStatus) PURE;
-    STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS9* pClipStatus) PURE;
-    STDMETHOD(GetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9** ppTexture) PURE;
-    STDMETHOD(SetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9* pTexture) PURE;
-    STDMETHOD(GetTextureStageState)(THIS_ DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD* pValue) PURE;
-    STDMETHOD(SetTextureStageState)(THIS_ DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value) PURE;
-    STDMETHOD(GetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD* pValue) PURE;
-    STDMETHOD(SetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value) PURE;
-    STDMETHOD(ValidateDevice)(THIS_ DWORD* pNumPasses) PURE;
-    STDMETHOD(SetPaletteEntries)(THIS_ UINT PaletteNumber, CONST PALETTEENTRY* pEntries) PURE;
-    STDMETHOD(GetPaletteEntries)(THIS_ UINT PaletteNumber,PALETTEENTRY* pEntries) PURE;
-    STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT PaletteNumber) PURE;
-    STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT *PaletteNumber) 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(SetNPatchMode)(THIS_ float nSegments) PURE;
-    STDMETHOD_(float, GetNPatchMode)(THIS) PURE;
-    STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT StartVertex, UINT PrimitiveCount) PURE;
-    STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount) PURE;
-    STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) PURE;
-    STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT MinVertexIndex, UINT NumVertices, UINT PrimitiveCount, CONST void* pIndexData, D3DFORMAT IndexDataFormat, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) PURE;
-    STDMETHOD(ProcessVertices)(THIS_ UINT SrcStartIndex, UINT DestIndex, UINT VertexCount, IDirect3DVertexBuffer9* pDestBuffer, IDirect3DVertexDeclaration9* pVertexDecl, DWORD Flags) PURE;
-    STDMETHOD(CreateVertexDeclaration)(THIS_ CONST D3DVERTEXELEMENT9* pVertexElements, IDirect3DVertexDeclaration9** ppDecl) PURE;
-    STDMETHOD(SetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9* pDecl) PURE;
-    STDMETHOD(GetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9** ppDecl) PURE;
-    STDMETHOD(SetFVF)(THIS_ DWORD FVF) PURE;
-    STDMETHOD(GetFVF)(THIS_ DWORD* pFVF) PURE;
-    STDMETHOD(CreateVertexShader)(THIS_ CONST DWORD* pFunction, IDirect3DVertexShader9** ppShader) PURE;
-    STDMETHOD(SetVertexShader)(THIS_ IDirect3DVertexShader9* pShader) PURE;
-    STDMETHOD(GetVertexShader)(THIS_ IDirect3DVertexShader9** ppShader) PURE;
-    STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) PURE;
-    STDMETHOD(GetVertexShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE;
-    STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) PURE;
-    STDMETHOD(GetVertexShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE;
-    STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT StartRegister, CONST BOOL* pConstantData, UINT  BoolCount) PURE;
-    STDMETHOD(GetVertexShaderConstantB)(THIS_ UINT StartRegister, BOOL* pConstantData, UINT BoolCount) PURE;
-    STDMETHOD(SetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9* pStreamData, UINT OffsetInBytes, UINT Stride) PURE;
-    STDMETHOD(GetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9** ppStreamData, UINT* OffsetInBytes, UINT* pStride) PURE;
-    STDMETHOD(SetStreamSourceFreq)(THIS_ UINT StreamNumber, UINT Divider) PURE;
-    STDMETHOD(GetStreamSourceFreq)(THIS_ UINT StreamNumber, UINT* Divider) PURE;
-    STDMETHOD(SetIndices)(THIS_ IDirect3DIndexBuffer9* pIndexData) PURE;
-    STDMETHOD(GetIndices)(THIS_ IDirect3DIndexBuffer9** ppIndexData) PURE;
-    STDMETHOD(CreatePixelShader)(THIS_ CONST DWORD* pFunction, IDirect3DPixelShader9** ppShader) PURE;
-    STDMETHOD(SetPixelShader)(THIS_ IDirect3DPixelShader9* pShader) PURE;
-    STDMETHOD(GetPixelShader)(THIS_ IDirect3DPixelShader9** ppShader) PURE;
-    STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) PURE;
-    STDMETHOD(GetPixelShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE;
-    STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) PURE;
-    STDMETHOD(GetPixelShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE;
-    STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT StartRegister, CONST BOOL* pConstantData, UINT  BoolCount) PURE;
-    STDMETHOD(GetPixelShaderConstantB)(THIS_ UINT StartRegister, BOOL* pConstantData, UINT BoolCount) PURE;
-    STDMETHOD(DrawRectPatch)(THIS_ UINT Handle, CONST float* pNumSegs, CONST D3DRECTPATCH_INFO* pRectPatchInfo) PURE;
-    STDMETHOD(DrawTriPatch)(THIS_ UINT Handle, CONST float* pNumSegs, CONST D3DTRIPATCH_INFO* pTriPatchInfo) PURE;
-    STDMETHOD(DeletePatch)(THIS_ UINT Handle) PURE;
-    STDMETHOD(CreateQuery)(THIS_ D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery) PURE;
-    /* IDirect3DDevice9Ex methods */
-    STDMETHOD(SetConvolutionMonoKernel)(THIS_ UINT width, UINT height, float *rows, float *columns) PURE;
-    STDMETHOD(ComposeRects)(THIS_ IDirect3DSurface9 *src_surface, IDirect3DSurface9 *dst_surface,
-            IDirect3DVertexBuffer9 *src_descs, UINT rect_count, IDirect3DVertexBuffer9 *dst_descs,
-            D3DCOMPOSERECTSOP operation, INT offset_x, INT offset_y) PURE;
-    STDMETHOD(PresentEx)(THIS_ CONST RECT *pSourceRect, CONST RECT *pDestRect, HWND hDestWindowOverride, CONST RGNDATA *pDirtyRegion, DWORD dwFlags) PURE;
-    STDMETHOD(GetGPUThreadPriority)(THIS_ INT *pPriority) PURE;
-    STDMETHOD(SetGPUThreadPriority)(THIS_ INT Priority) PURE;
-    STDMETHOD(WaitForVBlank)(THIS_ UINT iSwapChain) PURE;
-    STDMETHOD(CheckResourceResidency)(THIS_ IDirect3DResource9 **resources, UINT32 resource_count) PURE;
-    STDMETHOD(SetMaximumFrameLatency)(THIS_ UINT MaxLatency) PURE;
-    STDMETHOD(GetMaximumFrameLatency)(THIS_ UINT *pMaxLatenxy) PURE;
-    STDMETHOD(CheckDeviceState)(THIS_ HWND dst_window) PURE;
-    STDMETHOD(CreateRenderTargetEx)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultiSampleQuality, BOOL Lockable, IDirect3DSurface9 ** ppSurface, HANDLE *pSharedHandle, DWORD Usage) PURE;
-    STDMETHOD(CreateOffscreenPlainSurfaceEx)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DPOOL Pool, IDirect3DSurface9 **ppSurface, HANDLE *pSharedHandle, DWORD Usage) PURE;
-    STDMETHOD(CreateDepthStencilSurfaceEx)(THIS_ UINT width, UINT height, D3DFORMAT format,
-            D3DMULTISAMPLE_TYPE multisample_type, DWORD multisample_quality, BOOL discard,
-            IDirect3DSurface9 **surface, HANDLE *shared_handle, DWORD usage) PURE;
-    STDMETHOD(ResetEx)(THIS_ D3DPRESENT_PARAMETERS *pPresentationParameters, D3DDISPLAYMODEEX *pFullscreenDisplayMode) PURE;
-    STDMETHOD(GetDisplayModeEx)(THIS_ UINT iSwapChain, D3DDISPLAYMODEEX *pMode, D3DDISPLAYROTATION *pRotation) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DDevice9Ex_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DDevice9Ex_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DDevice9Ex_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3DDevice9 methods ***/
-#define IDirect3DDevice9Ex_TestCooperativeLevel(p)                       (p)->lpVtbl->TestCooperativeLevel(p)
-#define IDirect3DDevice9Ex_GetAvailableTextureMem(p)                     (p)->lpVtbl->GetAvailableTextureMem(p)
-#define IDirect3DDevice9Ex_EvictManagedResources(p)                      (p)->lpVtbl->EvictManagedResources(p)
-#define IDirect3DDevice9Ex_GetDirect3D(p,a)                              (p)->lpVtbl->GetDirect3D(p,a)
-#define IDirect3DDevice9Ex_GetDeviceCaps(p,a)                            (p)->lpVtbl->GetDeviceCaps(p,a)
-#define IDirect3DDevice9Ex_GetDisplayMode(p,a,b)                         (p)->lpVtbl->GetDisplayMode(p,a,b)
-#define IDirect3DDevice9Ex_GetCreationParameters(p,a)                    (p)->lpVtbl->GetCreationParameters(p,a)
-#define IDirect3DDevice9Ex_SetCursorProperties(p,a,b,c)                  (p)->lpVtbl->SetCursorProperties(p,a,b,c)
-#define IDirect3DDevice9Ex_SetCursorPosition(p,a,b,c)                    (p)->lpVtbl->SetCursorPosition(p,a,b,c)
-#define IDirect3DDevice9Ex_ShowCursor(p,a)                               (p)->lpVtbl->ShowCursor(p,a)
-#define IDirect3DDevice9Ex_CreateAdditionalSwapChain(p,a,b)              (p)->lpVtbl->CreateAdditionalSwapChain(p,a,b)
-#define IDirect3DDevice9Ex_GetSwapChain(p,a,b)                           (p)->lpVtbl->GetSwapChain(p,a,b)
-#define IDirect3DDevice9Ex_GetNumberOfSwapChains(p)                      (p)->lpVtbl->GetNumberOfSwapChains(p)
-#define IDirect3DDevice9Ex_Reset(p,a)                                    (p)->lpVtbl->Reset(p,a)
-#define IDirect3DDevice9Ex_Present(p,a,b,c,d)                            (p)->lpVtbl->Present(p,a,b,c,d)
-#define IDirect3DDevice9Ex_GetBackBuffer(p,a,b,c,d)                      (p)->lpVtbl->GetBackBuffer(p,a,b,c,d)
-#define IDirect3DDevice9Ex_GetRasterStatus(p,a,b)                        (p)->lpVtbl->GetRasterStatus(p,a,b)
-#define IDirect3DDevice9Ex_SetDialogBoxMode(p,a)                         (p)->lpVtbl->SetDialogBoxMode(p,a)
-#define IDirect3DDevice9Ex_SetGammaRamp(p,a,b,c)                         (p)->lpVtbl->SetGammaRamp(p,a,b,c)
-#define IDirect3DDevice9Ex_GetGammaRamp(p,a,b)                           (p)->lpVtbl->GetGammaRamp(p,a,b)
-#define IDirect3DDevice9Ex_CreateTexture(p,a,b,c,d,e,f,g,h)              (p)->lpVtbl->CreateTexture(p,a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9Ex_CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i)      (p)->lpVtbl->CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i)
-#define IDirect3DDevice9Ex_CreateCubeTexture(p,a,b,c,d,e,f,g)            (p)->lpVtbl->CreateCubeTexture(p,a,b,c,d,e,f,g)
-#define IDirect3DDevice9Ex_CreateVertexBuffer(p,a,b,c,d,e,f)             (p)->lpVtbl->CreateVertexBuffer(p,a,b,c,d,e,f)
-#define IDirect3DDevice9Ex_CreateIndexBuffer(p,a,b,c,d,e,f)              (p)->lpVtbl->CreateIndexBuffer(p,a,b,c,d,e,f)
-#define IDirect3DDevice9Ex_CreateRenderTarget(p,a,b,c,d,e,f,g,h)         (p)->lpVtbl->CreateRenderTarget(p,a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9Ex_CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h)  (p)->lpVtbl->CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9Ex_UpdateSurface(p,a,b,c,d)                      (p)->lpVtbl->UpdateSurface(p,a,b,c,d)
-#define IDirect3DDevice9Ex_UpdateTexture(p,a,b)                          (p)->lpVtbl->UpdateTexture(p,a,b)
-#define IDirect3DDevice9Ex_GetRenderTargetData(p,a,b)                    (p)->lpVtbl->GetRenderTargetData(p,a,b)
-#define IDirect3DDevice9Ex_GetFrontBufferData(p,a,b)                     (p)->lpVtbl->GetFrontBufferData(p,a,b)
-#define IDirect3DDevice9Ex_StretchRect(p,a,b,c,d,e)                      (p)->lpVtbl->StretchRect(p,a,b,c,d,e)
-#define IDirect3DDevice9Ex_ColorFill(p,a,b,c)                            (p)->lpVtbl->ColorFill(p,a,b,c)
-#define IDirect3DDevice9Ex_CreateOffscreenPlainSurface(p,a,b,c,d,e,f)    (p)->lpVtbl->CreateOffscreenPlainSurface(p,a,b,c,d,e,f)
-#define IDirect3DDevice9Ex_SetRenderTarget(p,a,b)                        (p)->lpVtbl->SetRenderTarget(p,a,b)
-#define IDirect3DDevice9Ex_GetRenderTarget(p,a,b)                        (p)->lpVtbl->GetRenderTarget(p,a,b)
-#define IDirect3DDevice9Ex_SetDepthStencilSurface(p,a)                   (p)->lpVtbl->SetDepthStencilSurface(p,a)
-#define IDirect3DDevice9Ex_GetDepthStencilSurface(p,a)                   (p)->lpVtbl->GetDepthStencilSurface(p,a)
-#define IDirect3DDevice9Ex_BeginScene(p)                                 (p)->lpVtbl->BeginScene(p)
-#define IDirect3DDevice9Ex_EndScene(p)                                   (p)->lpVtbl->EndScene(p)
-#define IDirect3DDevice9Ex_Clear(p,a,b,c,d,e,f)                          (p)->lpVtbl->Clear(p,a,b,c,d,e,f)
-#define IDirect3DDevice9Ex_SetTransform(p,a,b)                           (p)->lpVtbl->SetTransform(p,a,b)
-#define IDirect3DDevice9Ex_GetTransform(p,a,b)                           (p)->lpVtbl->GetTransform(p,a,b)
-#define IDirect3DDevice9Ex_MultiplyTransform(p,a,b)                      (p)->lpVtbl->MultiplyTransform(p,a,b)
-#define IDirect3DDevice9Ex_SetViewport(p,a)                              (p)->lpVtbl->SetViewport(p,a)
-#define IDirect3DDevice9Ex_GetViewport(p,a)                              (p)->lpVtbl->GetViewport(p,a)
-#define IDirect3DDevice9Ex_SetMaterial(p,a)                              (p)->lpVtbl->SetMaterial(p,a)
-#define IDirect3DDevice9Ex_GetMaterial(p,a)                              (p)->lpVtbl->GetMaterial(p,a)
-#define IDirect3DDevice9Ex_SetLight(p,a,b)                               (p)->lpVtbl->SetLight(p,a,b)
-#define IDirect3DDevice9Ex_GetLight(p,a,b)                               (p)->lpVtbl->GetLight(p,a,b)
-#define IDirect3DDevice9Ex_LightEnable(p,a,b)                            (p)->lpVtbl->LightEnable(p,a,b)
-#define IDirect3DDevice9Ex_GetLightEnable(p,a,b)                         (p)->lpVtbl->GetLightEnable(p,a,b)
-#define IDirect3DDevice9Ex_SetClipPlane(p,a,b)                           (p)->lpVtbl->SetClipPlane(p,a,b)
-#define IDirect3DDevice9Ex_GetClipPlane(p,a,b)                           (p)->lpVtbl->GetClipPlane(p,a,b)
-#define IDirect3DDevice9Ex_SetRenderState(p,a,b)                         (p)->lpVtbl->SetRenderState(p,a,b)
-#define IDirect3DDevice9Ex_GetRenderState(p,a,b)                         (p)->lpVtbl->GetRenderState(p,a,b)
-#define IDirect3DDevice9Ex_CreateStateBlock(p,a,b)                       (p)->lpVtbl->CreateStateBlock(p,a,b)
-#define IDirect3DDevice9Ex_BeginStateBlock(p)                            (p)->lpVtbl->BeginStateBlock(p)
-#define IDirect3DDevice9Ex_EndStateBlock(p,a)                            (p)->lpVtbl->EndStateBlock(p,a)
-#define IDirect3DDevice9Ex_SetClipStatus(p,a)                            (p)->lpVtbl->SetClipStatus(p,a)
-#define IDirect3DDevice9Ex_GetClipStatus(p,a)                            (p)->lpVtbl->GetClipStatus(p,a)
-#define IDirect3DDevice9Ex_GetTexture(p,a,b)                             (p)->lpVtbl->GetTexture(p,a,b)
-#define IDirect3DDevice9Ex_SetTexture(p,a,b)                             (p)->lpVtbl->SetTexture(p,a,b)
-#define IDirect3DDevice9Ex_GetTextureStageState(p,a,b,c)                 (p)->lpVtbl->GetTextureStageState(p,a,b,c)
-#define IDirect3DDevice9Ex_SetTextureStageState(p,a,b,c)                 (p)->lpVtbl->SetTextureStageState(p,a,b,c)
-#define IDirect3DDevice9Ex_GetSamplerState(p,a,b,c)                      (p)->lpVtbl->GetSamplerState(p,a,b,c)
-#define IDirect3DDevice9Ex_SetSamplerState(p,a,b,c)                      (p)->lpVtbl->SetSamplerState(p,a,b,c)
-#define IDirect3DDevice9Ex_ValidateDevice(p,a)                           (p)->lpVtbl->ValidateDevice(p,a)
-#define IDirect3DDevice9Ex_SetPaletteEntries(p,a,b)                      (p)->lpVtbl->SetPaletteEntries(p,a,b)
-#define IDirect3DDevice9Ex_GetPaletteEntries(p,a,b)                      (p)->lpVtbl->GetPaletteEntries(p,a,b)
-#define IDirect3DDevice9Ex_SetCurrentTexturePalette(p,a)                 (p)->lpVtbl->SetCurrentTexturePalette(p,a)
-#define IDirect3DDevice9Ex_GetCurrentTexturePalette(p,a)                 (p)->lpVtbl->GetCurrentTexturePalette(p,a)
-#define IDirect3DDevice9Ex_SetScissorRect(p,a)                           (p)->lpVtbl->SetScissorRect(p,a)
-#define IDirect3DDevice9Ex_GetScissorRect(p,a)                           (p)->lpVtbl->GetScissorRect(p,a)
-#define IDirect3DDevice9Ex_SetSoftwareVertexProcessing(p,a)              (p)->lpVtbl->SetSoftwareVertexProcessing(p,a)
-#define IDirect3DDevice9Ex_GetSoftwareVertexProcessing(p)                (p)->lpVtbl->GetSoftwareVertexProcessing(p)
-#define IDirect3DDevice9Ex_SetNPatchMode(p,a)                            (p)->lpVtbl->SetNPatchMode(p,a)
-#define IDirect3DDevice9Ex_GetNPatchMode(p)                              (p)->lpVtbl->GetNPatchMode(p)
-#define IDirect3DDevice9Ex_DrawPrimitive(p,a,b,c)                        (p)->lpVtbl->DrawPrimitive(p,a,b,c)
-#define IDirect3DDevice9Ex_DrawIndexedPrimitive(p,a,b,c,d,e,f)           (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f)
-#define IDirect3DDevice9Ex_DrawPrimitiveUP(p,a,b,c,d)                    (p)->lpVtbl->DrawPrimitiveUP(p,a,b,c,d)
-#define IDirect3DDevice9Ex_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h)     (p)->lpVtbl->DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9Ex_ProcessVertices(p,a,b,c,d,e,f)                (p)->lpVtbl->ProcessVertices(p,a,b,c,d,e,f)
-#define IDirect3DDevice9Ex_CreateVertexDeclaration(p,a,b)                (p)->lpVtbl->CreateVertexDeclaration(p,a,b)
-#define IDirect3DDevice9Ex_SetVertexDeclaration(p,a)                     (p)->lpVtbl->SetVertexDeclaration(p,a)
-#define IDirect3DDevice9Ex_GetVertexDeclaration(p,a)                     (p)->lpVtbl->GetVertexDeclaration(p,a)
-#define IDirect3DDevice9Ex_SetFVF(p,a)                                   (p)->lpVtbl->SetFVF(p,a)
-#define IDirect3DDevice9Ex_GetFVF(p,a)                                   (p)->lpVtbl->GetFVF(p,a)
-#define IDirect3DDevice9Ex_CreateVertexShader(p,a,b)                     (p)->lpVtbl->CreateVertexShader(p,a,b)
-#define IDirect3DDevice9Ex_SetVertexShader(p,a)                          (p)->lpVtbl->SetVertexShader(p,a)
-#define IDirect3DDevice9Ex_GetVertexShader(p,a)                          (p)->lpVtbl->GetVertexShader(p,a)
-#define IDirect3DDevice9Ex_SetVertexShaderConstantF(p,a,b,c)             (p)->lpVtbl->SetVertexShaderConstantF(p,a,b,c)
-#define IDirect3DDevice9Ex_GetVertexShaderConstantF(p,a,b,c)             (p)->lpVtbl->GetVertexShaderConstantF(p,a,b,c)
-#define IDirect3DDevice9Ex_SetVertexShaderConstantI(p,a,b,c)             (p)->lpVtbl->SetVertexShaderConstantI(p,a,b,c)
-#define IDirect3DDevice9Ex_GetVertexShaderConstantI(p,a,b,c)             (p)->lpVtbl->GetVertexShaderConstantI(p,a,b,c)
-#define IDirect3DDevice9Ex_SetVertexShaderConstantB(p,a,b,c)             (p)->lpVtbl->SetVertexShaderConstantB(p,a,b,c)
-#define IDirect3DDevice9Ex_GetVertexShaderConstantB(p,a,b,c)             (p)->lpVtbl->GetVertexShaderConstantB(p,a,b,c)
-#define IDirect3DDevice9Ex_SetStreamSource(p,a,b,c,d)                    (p)->lpVtbl->SetStreamSource(p,a,b,c,d)
-#define IDirect3DDevice9Ex_GetStreamSource(p,a,b,c,d)                    (p)->lpVtbl->GetStreamSource(p,a,b,c,d)
-#define IDirect3DDevice9Ex_SetStreamSourceFreq(p,a,b)                    (p)->lpVtbl->SetStreamSourceFreq(p,a,b)
-#define IDirect3DDevice9Ex_GetStreamSourceFreq(p,a,b)                    (p)->lpVtbl->GetStreamSourceFreq(p,a,b)
-#define IDirect3DDevice9Ex_SetIndices(p,a)                               (p)->lpVtbl->SetIndices(p,a)
-#define IDirect3DDevice9Ex_GetIndices(p,a)                               (p)->lpVtbl->GetIndices(p,a)
-#define IDirect3DDevice9Ex_CreatePixelShader(p,a,b)                      (p)->lpVtbl->CreatePixelShader(p,a,b)
-#define IDirect3DDevice9Ex_SetPixelShader(p,a)                           (p)->lpVtbl->SetPixelShader(p,a)
-#define IDirect3DDevice9Ex_GetPixelShader(p,a)                           (p)->lpVtbl->GetPixelShader(p,a)
-#define IDirect3DDevice9Ex_SetPixelShaderConstantF(p,a,b,c)              (p)->lpVtbl->SetPixelShaderConstantF(p,a,b,c)
-#define IDirect3DDevice9Ex_GetPixelShaderConstantF(p,a,b,c)              (p)->lpVtbl->GetPixelShaderConstantF(p,a,b,c)
-#define IDirect3DDevice9Ex_SetPixelShaderConstantI(p,a,b,c)              (p)->lpVtbl->SetPixelShaderConstantI(p,a,b,c)
-#define IDirect3DDevice9Ex_GetPixelShaderConstantI(p,a,b,c)              (p)->lpVtbl->GetPixelShaderConstantI(p,a,b,c)
-#define IDirect3DDevice9Ex_SetPixelShaderConstantB(p,a,b,c)              (p)->lpVtbl->SetPixelShaderConstantB(p,a,b,c)
-#define IDirect3DDevice9Ex_GetPixelShaderConstantB(p,a,b,c)              (p)->lpVtbl->GetPixelShaderConstantB(p,a,b,c)
-#define IDirect3DDevice9Ex_DrawRectPatch(p,a,b,c)                        (p)->lpVtbl->DrawRectPatch(p,a,b,c)
-#define IDirect3DDevice9Ex_DrawTriPatch(p,a,b,c)                         (p)->lpVtbl->DrawTriPatch(p,a,b,c)
-#define IDirect3DDevice9Ex_DeletePatch(p,a)                              (p)->lpVtbl->DeletePatch(p,a)
-#define IDirect3DDevice9Ex_CreateQuery(p,a,b)                            (p)->lpVtbl->CreateQuery(p,a,b)
-/* IDirect3DDevice9Ex */
-#define IDirect3DDevice9Ex_SetConvolutionMonoKernel(p,a,b,c,d)           (p)->lpVtbl->SetConvolutionMonoKernel(p,a,b,c,d)
-#define IDirect3DDevice9Ex_ComposeRects(p,a,b,c,d,e,f,g,h)               (p)->lpVtbl->ComposeRects(p,a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9Ex_PresentEx(p,a,b,c,d,e)                        (p)->lpVtbl->PresentEx(p,a,b,c,d,e)
-#define IDirect3DDevice9Ex_GetGPUThreadPriority(p,a)                     (p)->lpVtbl->GetGPUThreadPriority(p,a)
-#define IDirect3DDevice9Ex_SetGPUThreadPriority(p,a)                     (p)->lpVtbl->SetGPUThreadPriority(p,a)
-#define IDirect3DDevice9Ex_WaitForVBlank(p,a)                            (p)->lpVtbl->WaitForVBlank(p,a)
-#define IDirect3DDevice9Ex_CheckResourceResidency(p,a,b)                 (p)->lpVtbl->CheckResourceResidency(p,a,b)
-#define IDirect3DDevice9Ex_SetMaximumFrameLatency(p,a)                   (p)->lpVtbl->SetMaximumFrameLatency(p,a)
-#define IDirect3DDevice9Ex_GetMaximumFrameLatency(p,a)                   (p)->lpVtbl->GetMaximumFrameLatency(p,a)
-#define IDirect3DDevice9Ex_CheckDeviceState(p,a)                         (p)->lpVtbl->CheckDeviceState(p,a)
-#define IDirect3DDevice9Ex_CreateRenderTargetEx(p,a,b,c,d,e,f,g,h,i)     (p)->lpVtbl->CreateRenderTargetEx(p,a,b,c,d,e,f,g,h,i)
-#define IDirect3DDevice9Ex_CreateOffscreenPlainSurfaceEx(p,a,b,c,d,e,f,g)(p)->lpVtbl->CreateOffscreenPlainSurfaceEx(p,a,b,c,d,e,f,g)
-#define IDirect3DDevice9Ex_CreateDepthStencilSurfaceEx(p,a,b,c,d,e,f,g,h,i)(p)->lpVtbl->CreateDepthStencilSurfaceEx(p,a,b,c,d,e,f,g,h,i)
-#define IDirect3DDevice9Ex_ResetEx(p,a,b)                                 (p)->lpVtbl->ResetEx(p,a,b)
-#define IDirect3DDevice9Ex_GetDisplayModeEx(p,a,b,c)                     (p)->lpVtbl->GetDisplayModeEx(p,a,b,c)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DDevice9Ex_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DDevice9Ex_AddRef(p)             (p)->AddRef()
-#define IDirect3DDevice9Ex_Release(p)            (p)->Release()
-/*** IDirect3DDevice9 methods ***/
-#define IDirect3DDevice9Ex_TestCooperativeLevel(p)                       (p)->TestCooperativeLevel()
-#define IDirect3DDevice9Ex_GetAvailableTextureMem(p)                     (p)->GetAvailableTextureMem()
-#define IDirect3DDevice9Ex_EvictManagedResources(p)                      (p)->EvictManagedResources()
-#define IDirect3DDevice9Ex_GetDirect3D(p,a)                              (p)->GetDirect3D(a)
-#define IDirect3DDevice9Ex_GetDeviceCaps(p,a)                            (p)->GetDeviceCaps(a)
-#define IDirect3DDevice9Ex_GetDisplayMode(p,a,b)                         (p)->GetDisplayMode(a,b)
-#define IDirect3DDevice9Ex_GetCreationParameters(p,a)                    (p)->GetCreationParameters(a)
-#define IDirect3DDevice9Ex_SetCursorProperties(p,a,b,c)                  (p)->SetCursorProperties(a,b,c)
-#define IDirect3DDevice9Ex_SetCursorPosition(p,a,b,c)                    (p)->SetCursorPosition(a,b,c)
-#define IDirect3DDevice9Ex_ShowCursor(p,a)                               (p)->ShowCursor(a)
-#define IDirect3DDevice9Ex_CreateAdditionalSwapChain(p,a,b)              (p)->CreateAdditionalSwapChain(a,b)
-#define IDirect3DDevice9Ex_GetSwapChain(p,a,b)                           (p)->GetSwapChain(a,b)
-#define IDirect3DDevice9Ex_GetNumberOfSwapChains(p)                      (p)->GetNumberOfSwapChains()
-#define IDirect3DDevice9Ex_Reset(p,a)                                    (p)->Reset(a)
-#define IDirect3DDevice9Ex_Present(p,a,b,c,d)                            (p)->Present(a,b,c,d)
-#define IDirect3DDevice9Ex_GetBackBuffer(p,a,b,c,d)                      (p)->GetBackBuffer(a,b,c,d)
-#define IDirect3DDevice9Ex_GetRasterStatus(p,a,b)                        (p)->GetRasterStatus(a,b)
-#define IDirect3DDevice9Ex_SetDialogBoxMode(p,a)                         (p)->SetDialogBoxMode(a)
-#define IDirect3DDevice9Ex_SetGammaRamp(p,a,b,c)                         (p)->SetGammaRamp(a,b,c)
-#define IDirect3DDevice9Ex_GetGammaRamp(p,a,b)                           (p)->GetGammaRamp(a,b)
-#define IDirect3DDevice9Ex_CreateTexture(p,a,b,c,d,e,f,g,h)              (p)->CreateTexture(a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9Ex_CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i)      (p)->CreateVolumeTexture(a,b,c,d,e,f,g,h,i)
-#define IDirect3DDevice9Ex_CreateCubeTexture(p,a,b,c,d,e,f,g)            (p)->CreateCubeTexture(a,b,c,d,e,f,g)
-#define IDirect3DDevice9Ex_CreateVertexBuffer(p,a,b,c,d,e,f)             (p)->CreateVertexBuffer(a,b,c,d,e,f)
-#define IDirect3DDevice9Ex_CreateIndexBuffer(p,a,b,c,d,e,f)              (p)->CreateIndexBuffer(a,b,c,d,e,f)
-#define IDirect3DDevice9Ex_CreateRenderTarget(p,a,b,c,d,e,f,g,h)         (p)->CreateRenderTarget(a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9Ex_CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h)  (p)->CreateDepthStencilSurface(a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9Ex_UpdateSurface(p,a,b,c,d)                      (p)->UpdateSurface(a,b,c,d)
-#define IDirect3DDevice9Ex_UpdateTexture(p,a,b)                          (p)->UpdateTexture(a,b)
-#define IDirect3DDevice9Ex_GetRenderTargetData(p,a,b)                    (p)->GetRenderTargetData(a,b)
-#define IDirect3DDevice9Ex_GetFrontBufferData(p,a,b)                     (p)->GetFrontBufferData(a,b)
-#define IDirect3DDevice9Ex_StretchRect(p,a,b,c,d,e)                      (p)->StretchRect(a,b,c,d,e)
-#define IDirect3DDevice9Ex_ColorFill(p,a,b,c)                            (p)->ColorFill(a,b,c)
-#define IDirect3DDevice9Ex_CreateOffscreenPlainSurface(p,a,b,c,d,e,f)    (p)->CreateOffscreenPlainSurface(a,b,c,d,e,f)
-#define IDirect3DDevice9Ex_SetRenderTarget(p,a,b)                        (p)->SetRenderTarget(a,b)
-#define IDirect3DDevice9Ex_GetRenderTarget(p,a,b)                        (p)->GetRenderTarget(a,b)
-#define IDirect3DDevice9Ex_SetDepthStencilSurface(p,a)                   (p)->SetDepthStencilSurface(a)
-#define IDirect3DDevice9Ex_GetDepthStencilSurface(p,a)                   (p)->GetDepthStencilSurface(a)
-#define IDirect3DDevice9Ex_BeginScene(p)                                 (p)->BeginScene()
-#define IDirect3DDevice9Ex_EndScene(p)                                   (p)->EndScene()
-#define IDirect3DDevice9Ex_Clear(p,a,b,c,d,e,f)                          (p)->Clear(a,b,c,d,e,f)
-#define IDirect3DDevice9Ex_SetTransform(p,a,b)                           (p)->SetTransform(a,b)
-#define IDirect3DDevice9Ex_GetTransform(p,a,b)                           (p)->GetTransform(a,b)
-#define IDirect3DDevice9Ex_MultiplyTransform(p,a,b)                      (p)->MultiplyTransform(a,b)
-#define IDirect3DDevice9Ex_SetViewport(p,a)                              (p)->SetViewport(a)
-#define IDirect3DDevice9Ex_GetViewport(p,a)                              (p)->GetViewport(a)
-#define IDirect3DDevice9Ex_SetMaterial(p,a)                              (p)->SetMaterial(a)
-#define IDirect3DDevice9Ex_GetMaterial(p,a)                              (p)->GetMaterial(a)
-#define IDirect3DDevice9Ex_SetLight(p,a,b)                               (p)->SetLight(a,b)
-#define IDirect3DDevice9Ex_GetLight(p,a,b)                               (p)->GetLight(a,b)
-#define IDirect3DDevice9Ex_LightEnable(p,a,b)                            (p)->LightEnable(a,b)
-#define IDirect3DDevice9Ex_GetLightEnable(p,a,b)                         (p)->GetLightEnable(a,b)
-#define IDirect3DDevice9Ex_SetClipPlane(p,a,b)                           (p)->SetClipPlane(a,b)
-#define IDirect3DDevice9Ex_GetClipPlane(p,a,b)                           (p)->GetClipPlane(a,b)
-#define IDirect3DDevice9Ex_SetRenderState(p,a,b)                         (p)->SetRenderState(a,b)
-#define IDirect3DDevice9Ex_GetRenderState(p,a,b)                         (p)->GetRenderState(a,b)
-#define IDirect3DDevice9Ex_CreateStateBlock(p,a,b)                       (p)->CreateStateBlock(a,b)
-#define IDirect3DDevice9Ex_BeginStateBlock(p)                            (p)->BeginStateBlock()
-#define IDirect3DDevice9Ex_EndStateBlock(p,a)                            (p)->EndStateBlock(a)
-#define IDirect3DDevice9Ex_SetClipStatus(p,a)                            (p)->SetClipStatus(a)
-#define IDirect3DDevice9Ex_GetClipStatus(p,a)                            (p)->GetClipStatus(a)
-#define IDirect3DDevice9Ex_GetTexture(p,a,b)                             (p)->GetTexture(a,b)
-#define IDirect3DDevice9Ex_SetTexture(p,a,b)                             (p)->SetTexture(a,b)
-#define IDirect3DDevice9Ex_GetTextureStageState(p,a,b,c)                 (p)->GetTextureStageState(a,b,c)
-#define IDirect3DDevice9Ex_SetTextureStageState(p,a,b,c)                 (p)->SetTextureStageState(a,b,c)
-#define IDirect3DDevice9Ex_GetSamplerState(p,a,b,c)                      (p)->GetSamplerState(a,b,c)
-#define IDirect3DDevice9Ex_SetSamplerState(p,a,b,c)                      (p)->SetSamplerState(a,b,c)
-#define IDirect3DDevice9Ex_ValidateDevice(p,a)                           (p)->ValidateDevice(a)
-#define IDirect3DDevice9Ex_SetPaletteEntries(p,a,b)                      (p)->SetPaletteEntries(a,b)
-#define IDirect3DDevice9Ex_GetPaletteEntries(p,a,b)                      (p)->GetPaletteEntries(a,b)
-#define IDirect3DDevice9Ex_SetCurrentTexturePalette(p,a)                 (p)->SetCurrentTexturePalette(a)
-#define IDirect3DDevice9Ex_GetCurrentTexturePalette(p,a)                 (p)->GetCurrentTexturePalette(a)
-#define IDirect3DDevice9Ex_SetScissorRect(p,a)                           (p)->SetScissorRect(a)
-#define IDirect3DDevice9Ex_GetScissorRect(p,a)                           (p)->GetScissorRect(a)
-#define IDirect3DDevice9Ex_SetSoftwareVertexProcessing(p,a)              (p)->SetSoftwareVertexProcessing(a)
-#define IDirect3DDevice9Ex_GetSoftwareVertexProcessing(p)                (p)->GetSoftwareVertexProcessing()
-#define IDirect3DDevice9Ex_SetNPatchMode(p,a)                            (p)->SetNPatchMode(a)
-#define IDirect3DDevice9Ex_GetNPatchMode(p)                              (p)->GetNPatchMode()
-#define IDirect3DDevice9Ex_DrawPrimitive(p,a,b,c)                        (p)->DrawPrimitive(a,b,c)
-#define IDirect3DDevice9Ex_DrawIndexedPrimitive(p,a,b,c,d,e,f)           (p)->DrawIndexedPrimitive(a,b,c,d,e,f)
-#define IDirect3DDevice9Ex_DrawPrimitiveUP(p,a,b,c,d)                    (p)->DrawPrimitiveUP(a,b,c,d)
-#define IDirect3DDevice9Ex_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h)     (p)->DrawIndexedPrimitiveUP(a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9Ex_ProcessVertices(p,a,b,c,d,e,f)                (p)->ProcessVertices(a,b,c,d,e,f)
-#define IDirect3DDevice9Ex_CreateVertexDeclaration(p,a,b)                (p)->CreateVertexDeclaration(a,b)
-#define IDirect3DDevice9Ex_SetVertexDeclaration(p,a)                     (p)->SetVertexDeclaration(a)
-#define IDirect3DDevice9Ex_GetVertexDeclaration(p,a)                     (p)->GetVertexDeclaration(a)
-#define IDirect3DDevice9Ex_SetFVF(p,a)                                   (p)->SetFVF(a)
-#define IDirect3DDevice9Ex_GetFVF(p,a)                                   (p)->GetFVF(a)
-#define IDirect3DDevice9Ex_CreateVertexShader(p,a,b)                     (p)->CreateVertexShader(a,b)
-#define IDirect3DDevice9Ex_SetVertexShader(p,a)                          (p)->SetVertexShader(a)
-#define IDirect3DDevice9Ex_GetVertexShader(p,a)                          (p)->GetVertexShader(a)
-#define IDirect3DDevice9Ex_SetVertexShaderConstantF(p,a,b,c)             (p)->SetVertexShaderConstantF(a,b,c)
-#define IDirect3DDevice9Ex_GetVertexShaderConstantF(p,a,b,c)             (p)->GetVertexShaderConstantF(a,b,c)
-#define IDirect3DDevice9Ex_SetVertexShaderConstantI(p,a,b,c)             (p)->SetVertexShaderConstantI(a,b,c)
-#define IDirect3DDevice9Ex_GetVertexShaderConstantI(p,a,b,c)             (p)->GetVertexShaderConstantI(a,b,c)
-#define IDirect3DDevice9Ex_SetVertexShaderConstantB(p,a,b,c)             (p)->SetVertexShaderConstantB(a,b,c)
-#define IDirect3DDevice9Ex_GetVertexShaderConstantB(p,a,b,c)             (p)->GetVertexShaderConstantB(a,b,c)
-#define IDirect3DDevice9Ex_SetStreamSource(p,a,b,c,d)                    (p)->SetStreamSource(a,b,c,d)
-#define IDirect3DDevice9Ex_GetStreamSource(p,a,b,c,d)                    (p)->GetStreamSource(a,b,c,d)
-#define IDirect3DDevice9Ex_SetStreamSourceFreq(p,a,b)                    (p)->SetStreamSourceFreq(a,b)
-#define IDirect3DDevice9Ex_GetStreamSourceFreq(p,a,b)                    (p)->GetStreamSourceFreq(a,b)
-#define IDirect3DDevice9Ex_SetIndices(p,a)                               (p)->SetIndices(a)
-#define IDirect3DDevice9Ex_GetIndices(p,a)                               (p)->GetIndices(a)
-#define IDirect3DDevice9Ex_CreatePixelShader(p,a,b)                      (p)->CreatePixelShader(a,b)
-#define IDirect3DDevice9Ex_SetPixelShader(p,a)                           (p)->SetPixelShader(a)
-#define IDirect3DDevice9Ex_GetPixelShader(p,a)                           (p)->GetPixelShader(a)
-#define IDirect3DDevice9Ex_SetPixelShaderConstantF(p,a,b,c)              (p)->SetPixelShaderConstantF(a,b,c)
-#define IDirect3DDevice9Ex_GetPixelShaderConstantF(p,a,b,c)              (p)->GetPixelShaderConstantF(a,b,c)
-#define IDirect3DDevice9Ex_SetPixelShaderConstantI(p,a,b,c)              (p)->SetPixelShaderConstantI(a,b,c)
-#define IDirect3DDevice9Ex_GetPixelShaderConstantI(p,a,b,c)              (p)->GetPixelShaderConstantI(a,b,c)
-#define IDirect3DDevice9Ex_SetPixelShaderConstantB(p,a,b,c)              (p)->SetPixelShaderConstantB(a,b,c)
-#define IDirect3DDevice9Ex_GetPixelShaderConstantB(p,a,b,c)              (p)->GetPixelShaderConstantB(a,b,c)
-#define IDirect3DDevice9Ex_DrawRectPatch(p,a,b,c)                        (p)->DrawRectPatch(a,b,c)
-#define IDirect3DDevice9Ex_DrawTriPatch(p,a,b,c)                         (p)->DrawTriPatch(a,b,c)
-#define IDirect3DDevice9Ex_DeletePatch(p,a)                              (p)->DeletePatch(a)
-#define IDirect3DDevice9Ex_CreateQuery(p,a,b)                            (p)->CreateQuery(a,b)
-/* IDirect3DDevice9Ex */
-#define IDirect3DDevice9Ex_SetConvolutionMonoKernel(p,a,b,c,d)           (p)->SetConvolutionMonoKernel(a,b,c,d)
-#define IDirect3DDevice9Ex_ComposeRects(p,a,b,c,d,e,f,g,h)               (p)->ComposeRects(a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9Ex_PresentEx(p,a,b,c,d,e)                        (p)->PresentEx(a,b,c,d,e)
-#define IDirect3DDevice9Ex_GetGPUThreadPriority(p,a)                     (p)->GetGPUThreadPriority(a)
-#define IDirect3DDevice9Ex_SetGPUThreadPriority(p,a)                     (p)->SetGPUThreadPriority(a)
-#define IDirect3DDevice9Ex_WaitForVBlank(p,a)                            (p)->WaitForVBlank(a)
-#define IDirect3DDevice9Ex_CheckResourceResidency(p,a,b)                 (p)->CheckResourceResidency(a,b)
-#define IDirect3DDevice9Ex_SetMaximumFrameLatency(p,a)                   (p)->SetMaximumFrameLatency(a)
-#define IDirect3DDevice9Ex_GetMaximumFrameLatency(p,a)                   (p)->GetMaximumFrameLatency(a)
-#define IDirect3DDevice9Ex_CheckDeviceState(p,a)                         (p)->CheckDeviceState(a)
-#define IDirect3DDevice9Ex_CreateRenderTargetEx(p,a,b,c,d,e,f,g,h,i)     (p)->CreateRenderTargetEx(a,b,c,d,e,f,g,h,i)
-#define IDirect3DDevice9Ex_CreateOffscreenPlainSurfaceEx(p,a,b,c,d,e,f,g)(p)->CreateOffscreenPlainSurfaceEx(a,b,c,d,e,f,g)
-#define IDirect3DDevice9Ex_CreateDepthStencilSurfaceEx(p,a,b,c,d,e,f,g,h,i)(p)->CreateDepthStencilSurfaceEx(a,b,c,d,e,f,g,h,i)
-#define IDirect3DDevice9Ex_ResetEx(p,a,b)                                (p)->ResetEx(a,b)
-#define IDirect3DDevice9Ex_GetDisplayModeEx(p,a,b,c)                     (p)->GetDisplayModeEx(a,b,c)
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif  /* defined(__cplusplus) */
-
-int         WINAPI D3DPERF_BeginEvent(D3DCOLOR,LPCWSTR);
-int         WINAPI D3DPERF_EndEvent(void);
-DWORD       WINAPI D3DPERF_GetStatus(void);
-BOOL        WINAPI D3DPERF_QueryRepeatFrame(void);
-void        WINAPI D3DPERF_SetMarker(D3DCOLOR,LPCWSTR);
-void        WINAPI D3DPERF_SetOptions(DWORD);
-void        WINAPI D3DPERF_SetRegion(D3DCOLOR,LPCWSTR);
-
-/* Define the main entrypoint as well */
-IDirect3D9* WINAPI Direct3DCreate9(UINT SDKVersion);
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif /* defined(__cplusplus) */
-
-
-#endif /* __WINE_D3D9_H */
diff --git a/misc/builddeps/win32/dx/include/d3d9caps.h b/misc/builddeps/win32/dx/include/d3d9caps.h
deleted file mode 100644 (file)
index 8ed6598..0000000
+++ /dev/null
@@ -1,395 +0,0 @@
-/*
- * Copyright (C) 2002-2003 Jason Edmeades
- *                         Raphael Junqueira
- *
- * 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_D3D9CAPS_H
-#define __WINE_D3D9CAPS_H
-
-/*
- * Definitions
- */
-#define D3DCAPS_READ_SCANLINE 0x20000
-
-#define D3DCURSORCAPS_COLOR   1
-#define D3DCURSORCAPS_LOWRES  2
-
-
-#define D3DDEVCAPS2_STREAMOFFSET                        0x00000001L
-#define D3DDEVCAPS2_DMAPNPATCH                          0x00000002L
-#define D3DDEVCAPS2_ADAPTIVETESSRTPATCH                 0x00000004L
-#define D3DDEVCAPS2_ADAPTIVETESSNPATCH                  0x00000008L
-#define D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES       0x00000010L
-#define D3DDEVCAPS2_PRESAMPLEDDMAPNPATCH                0x00000020L
-#define D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET  0x00000040L
-
-#define D3DDEVCAPS_EXECUTESYSTEMMEMORY     0x0000010
-#define D3DDEVCAPS_EXECUTEVIDEOMEMORY      0x0000020
-#define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY    0x0000040
-#define D3DDEVCAPS_TLVERTEXVIDEOMEMORY     0x0000080
-#define D3DDEVCAPS_TEXTURESYSTEMMEMORY     0x0000100
-#define D3DDEVCAPS_TEXTUREVIDEOMEMORY      0x0000200
-#define D3DDEVCAPS_DRAWPRIMTLVERTEX        0x0000400
-#define D3DDEVCAPS_CANRENDERAFTERFLIP      0x0000800
-#define D3DDEVCAPS_TEXTURENONLOCALVIDMEM   0x0001000
-#define D3DDEVCAPS_DRAWPRIMITIVES2         0x0002000
-#define D3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x0004000
-#define D3DDEVCAPS_DRAWPRIMITIVES2EX       0x0008000
-#define D3DDEVCAPS_HWTRANSFORMANDLIGHT     0x0010000
-#define D3DDEVCAPS_CANBLTSYSTONONLOCAL     0x0020000
-#define D3DDEVCAPS_HWRASTERIZATION         0x0080000
-#define D3DDEVCAPS_PUREDEVICE              0x0100000
-#define D3DDEVCAPS_QUINTICRTPATCHES        0x0200000
-#define D3DDEVCAPS_RTPATCHES               0x0400000
-#define D3DDEVCAPS_RTPATCHHANDLEZERO       0x0800000
-#define D3DDEVCAPS_NPATCHES                0x1000000
-
-#define D3DFVFCAPS_TEXCOORDCOUNTMASK  0x00FFFF
-#define D3DFVFCAPS_DONOTSTRIPELEMENTS 0x080000
-#define D3DFVFCAPS_PSIZE              0x100000
-
-#define D3DLINECAPS_TEXTURE           0x01
-#define D3DLINECAPS_ZTEST             0x02
-#define D3DLINECAPS_BLEND             0x04
-#define D3DLINECAPS_ALPHACMP          0x08
-#define D3DLINECAPS_FOG               0x10
-#define D3DLINECAPS_ANTIALIAS         0x20
-
-#define D3DPBLENDCAPS_ZERO            0x00000001
-#define D3DPBLENDCAPS_ONE             0x00000002
-#define D3DPBLENDCAPS_SRCCOLOR        0x00000004
-#define D3DPBLENDCAPS_INVSRCCOLOR     0x00000008
-#define D3DPBLENDCAPS_SRCALPHA        0x00000010
-#define D3DPBLENDCAPS_INVSRCALPHA     0x00000020
-#define D3DPBLENDCAPS_DESTALPHA       0x00000040
-#define D3DPBLENDCAPS_INVDESTALPHA    0x00000080
-#define D3DPBLENDCAPS_DESTCOLOR       0x00000100
-#define D3DPBLENDCAPS_INVDESTCOLOR    0x00000200
-#define D3DPBLENDCAPS_SRCALPHASAT     0x00000400
-#define D3DPBLENDCAPS_BOTHSRCALPHA    0x00000800
-#define D3DPBLENDCAPS_BOTHINVSRCALPHA 0x00001000
-#define D3DPBLENDCAPS_BLENDFACTOR     0x00002000
-
-#define D3DPCMPCAPS_NEVER        0x01
-#define D3DPCMPCAPS_LESS         0x02
-#define D3DPCMPCAPS_EQUAL        0x04
-#define D3DPCMPCAPS_LESSEQUAL    0x08
-#define D3DPCMPCAPS_GREATER      0x10
-#define D3DPCMPCAPS_NOTEQUAL     0x20
-#define D3DPCMPCAPS_GREATEREQUAL 0x40
-#define D3DPCMPCAPS_ALWAYS       0x80
-
-#define D3DPMISCCAPS_MASKZ                      0x00000002L
-#define D3DPMISCCAPS_LINEPATTERNREP             0x00000004L
-#define D3DPMISCCAPS_CULLNONE                   0x00000010L
-#define D3DPMISCCAPS_CULLCW                     0x00000020L
-#define D3DPMISCCAPS_CULLCCW                    0x00000040L
-#define D3DPMISCCAPS_COLORWRITEENABLE           0x00000080L
-#define D3DPMISCCAPS_CLIPPLANESCALEDPOINTS      0x00000100L
-#define D3DPMISCCAPS_CLIPTLVERTS                0x00000200L
-#define D3DPMISCCAPS_TSSARGTEMP                 0x00000400L
-#define D3DPMISCCAPS_BLENDOP                    0x00000800L
-#define D3DPMISCCAPS_NULLREFERENCE              0x00001000L
-#define D3DPMISCCAPS_INDEPENDENTWRITEMASKS      0x00004000L
-#define D3DPMISCCAPS_PERSTAGECONSTANT           0x00008000L
-#define D3DPMISCCAPS_FOGANDSPECULARALPHA        0x00010000L
-#define D3DPMISCCAPS_SEPARATEALPHABLEND         0x00020000L
-#define D3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS    0x00040000L
-#define D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING 0x00080000L
-#define D3DPMISCCAPS_FOGVERTEXCLAMPED           0x00100000L
-
-
-#define D3DPRASTERCAPS_DITHER                     0x00000001L
-#define D3DPRASTERCAPS_PAT                        0x00000008L
-#define D3DPRASTERCAPS_ZTEST                      0x00000010L
-#define D3DPRASTERCAPS_FOGVERTEX                  0x00000080L
-#define D3DPRASTERCAPS_FOGTABLE                   0x00000100L
-#define D3DPRASTERCAPS_ANTIALIASEDGES             0x00001000L
-#define D3DPRASTERCAPS_MIPMAPLODBIAS              0x00002000L
-#define D3DPRASTERCAPS_ZBIAS                      0x00004000L
-#define D3DPRASTERCAPS_ZBUFFERLESSHSR             0x00008000L
-#define D3DPRASTERCAPS_FOGRANGE                   0x00010000L
-#define D3DPRASTERCAPS_ANISOTROPY                 0x00020000L
-#define D3DPRASTERCAPS_WBUFFER                    0x00040000L
-#define D3DPRASTERCAPS_WFOG                       0x00100000L
-#define D3DPRASTERCAPS_ZFOG                       0x00200000L
-#define D3DPRASTERCAPS_COLORPERSPECTIVE           0x00400000L
-#define D3DPRASTERCAPS_SCISSORTEST                0x01000000L
-#define D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS        0x02000000L
-#define D3DPRASTERCAPS_DEPTHBIAS                  0x04000000L 
-#define D3DPRASTERCAPS_MULTISAMPLE_TOGGLE         0x08000000L
-
-#define D3DPRESENT_INTERVAL_DEFAULT               0x00000000
-#define D3DPRESENT_INTERVAL_ONE                   0x00000001
-#define D3DPRESENT_INTERVAL_TWO                   0x00000002
-#define D3DPRESENT_INTERVAL_THREE                 0x00000004
-#define D3DPRESENT_INTERVAL_FOUR                  0x00000008
-#define D3DPRESENT_INTERVAL_IMMEDIATE             0x80000000
-
-#define D3DPSHADECAPS_COLORGOURAUDRGB             0x00008
-#define D3DPSHADECAPS_SPECULARGOURAUDRGB          0x00200
-#define D3DPSHADECAPS_ALPHAGOURAUDBLEND           0x04000
-#define D3DPSHADECAPS_FOGGOURAUD                  0x80000
-
-#define D3DPTADDRESSCAPS_WRAP                     0x01
-#define D3DPTADDRESSCAPS_MIRROR                   0x02
-#define D3DPTADDRESSCAPS_CLAMP                    0x04
-#define D3DPTADDRESSCAPS_BORDER                   0x08
-#define D3DPTADDRESSCAPS_INDEPENDENTUV            0x10
-#define D3DPTADDRESSCAPS_MIRRORONCE               0x20
-
-#define D3DPTEXTURECAPS_PERSPECTIVE              0x00000001L
-#define D3DPTEXTURECAPS_POW2                     0x00000002L
-#define D3DPTEXTURECAPS_ALPHA                    0x00000004L
-#define D3DPTEXTURECAPS_SQUAREONLY               0x00000020L
-#define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 0x00000040L
-#define D3DPTEXTURECAPS_ALPHAPALETTE             0x00000080L
-#define D3DPTEXTURECAPS_NONPOW2CONDITIONAL       0x00000100L
-#define D3DPTEXTURECAPS_PROJECTED                0x00000400L
-#define D3DPTEXTURECAPS_CUBEMAP                  0x00000800L
-#define D3DPTEXTURECAPS_VOLUMEMAP                0x00002000L
-#define D3DPTEXTURECAPS_MIPMAP                   0x00004000L
-#define D3DPTEXTURECAPS_MIPVOLUMEMAP             0x00008000L
-#define D3DPTEXTURECAPS_MIPCUBEMAP               0x00010000L
-#define D3DPTEXTURECAPS_CUBEMAP_POW2             0x00020000L
-#define D3DPTEXTURECAPS_VOLUMEMAP_POW2           0x00040000L
-#define D3DPTEXTURECAPS_NOPROJECTEDBUMPENV       0x00200000L
-
-#define D3DPTFILTERCAPS_MINFPOINT                0x00000100
-#define D3DPTFILTERCAPS_MINFLINEAR               0x00000200
-#define D3DPTFILTERCAPS_MINFANISOTROPIC          0x00000400
-#define D3DPTFILTERCAPS_MINFPYRAMIDALQUAD        0x00000800
-#define D3DPTFILTERCAPS_MINFGAUSSIANQUAD         0x00001000
-#define D3DPTFILTERCAPS_MIPFPOINT                0x00010000
-#define D3DPTFILTERCAPS_MIPFLINEAR               0x00020000
-#define D3DPTFILTERCAPS_MAGFPOINT                0x01000000
-#define D3DPTFILTERCAPS_MAGFLINEAR               0x02000000
-#define D3DPTFILTERCAPS_MAGFANISOTROPIC          0x04000000
-#define D3DPTFILTERCAPS_MAGFPYRAMIDALQUAD        0x08000000
-#define D3DPTFILTERCAPS_MAGFGAUSSIANQUAD         0x10000000
-
-#define D3DSTENCILCAPS_KEEP                      0x01
-#define D3DSTENCILCAPS_ZERO                      0x02
-#define D3DSTENCILCAPS_REPLACE                   0x04
-#define D3DSTENCILCAPS_INCRSAT                   0x08
-#define D3DSTENCILCAPS_DECRSAT                   0x10
-#define D3DSTENCILCAPS_INVERT                    0x20
-#define D3DSTENCILCAPS_INCR                      0x40
-#define D3DSTENCILCAPS_DECR                      0x80
-#define D3DSTENCILCAPS_TWOSIDED                  0x100
-
-#define D3DTEXOPCAPS_DISABLE                     0x0000001
-#define D3DTEXOPCAPS_SELECTARG1                  0x0000002
-#define D3DTEXOPCAPS_SELECTARG2                  0x0000004
-#define D3DTEXOPCAPS_MODULATE                    0x0000008
-#define D3DTEXOPCAPS_MODULATE2X                  0x0000010
-#define D3DTEXOPCAPS_MODULATE4X                  0x0000020
-#define D3DTEXOPCAPS_ADD                         0x0000040
-#define D3DTEXOPCAPS_ADDSIGNED                   0x0000080
-#define D3DTEXOPCAPS_ADDSIGNED2X                 0x0000100
-#define D3DTEXOPCAPS_SUBTRACT                    0x0000200
-#define D3DTEXOPCAPS_ADDSMOOTH                   0x0000400
-#define D3DTEXOPCAPS_BLENDDIFFUSEALPHA           0x0000800
-#define D3DTEXOPCAPS_BLENDTEXTUREALPHA           0x0001000
-#define D3DTEXOPCAPS_BLENDFACTORALPHA            0x0002000
-#define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM         0x0004000
-#define D3DTEXOPCAPS_BLENDCURRENTALPHA           0x0008000
-#define D3DTEXOPCAPS_PREMODULATE                 0x0010000
-#define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR      0x0020000
-#define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA      0x0040000
-#define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR   0x0080000
-#define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA   0x0100000
-#define D3DTEXOPCAPS_BUMPENVMAP                  0x0200000
-#define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE         0x0400000
-#define D3DTEXOPCAPS_DOTPRODUCT3                 0x0800000
-#define D3DTEXOPCAPS_MULTIPLYADD                 0x1000000
-#define D3DTEXOPCAPS_LERP                        0x2000000
-
-#define D3DVTXPCAPS_TEXGEN                         0x00000001L
-#define D3DVTXPCAPS_MATERIALSOURCE7                0x00000002L
-#define D3DVTXPCAPS_DIRECTIONALLIGHTS              0x00000008L
-#define D3DVTXPCAPS_POSITIONALLIGHTS               0x00000010L
-#define D3DVTXPCAPS_LOCALVIEWER                    0x00000020L
-#define D3DVTXPCAPS_TWEENING                       0x00000040L
-#define D3DVTXPCAPS_TEXGEN_SPHEREMAP               0x00000100L
-#define D3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER       0x00000200L
-
-#define D3DDTCAPS_UBYTE4                           0x00000001L
-#define D3DDTCAPS_UBYTE4N                          0x00000002L
-#define D3DDTCAPS_SHORT2N                          0x00000004L
-#define D3DDTCAPS_SHORT4N                          0x00000008L
-#define D3DDTCAPS_USHORT2N                         0x00000010L
-#define D3DDTCAPS_USHORT4N                         0x00000020L
-#define D3DDTCAPS_UDEC3                            0x00000040L
-#define D3DDTCAPS_DEC3N                            0x00000080L
-#define D3DDTCAPS_FLOAT16_2                        0x00000100L
-#define D3DDTCAPS_FLOAT16_4                        0x00000200L
-
-#define D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD  0x00000020L
-#define D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION       0x00000080L
-#define D3DCAPS3_COPY_TO_VIDMEM                    0x00000100L 
-#define D3DCAPS3_COPY_TO_SYSTEMMEM                 0x00000200L
-#define D3DCAPS3_RESERVED                          0x8000001FL
-
-#define D3DCAPS2_NO2DDURING3DSCENE                 0x00000002L
-#define D3DCAPS2_FULLSCREENGAMMA                   0x00020000L
-#define D3DCAPS2_CANRENDERWINDOWED                 0x00080000L
-#define D3DCAPS2_CANCALIBRATEGAMMA                 0x00100000L
-#define D3DCAPS2_RESERVED                          0x02000000L
-#define D3DCAPS2_CANMANAGERESOURCE                 0x10000000L
-#define D3DCAPS2_DYNAMICTEXTURES                   0x20000000L
-#define D3DCAPS2_CANAUTOGENMIPMAP                  0x40000000L
-
-
-#define D3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH  24
-#define D3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH  0
-#define D3DVS20_MAX_NUMTEMPS                 32
-#define D3DVS20_MIN_NUMTEMPS                 12
-#define D3DVS20_MAX_STATICFLOWCONTROLDEPTH   4
-#define D3DVS20_MIN_STATICFLOWCONTROLDEPTH   1
-
-#define D3DVS20CAPS_PREDICATION              (1 << 0)
-
-#define D3DPS20CAPS_ARBITRARYSWIZZLE         (1 << 0)
-#define D3DPS20CAPS_GRADIENTINSTRUCTIONS     (1 << 1)
-#define D3DPS20CAPS_PREDICATION              (1 << 2)
-#define D3DPS20CAPS_NODEPENDENTREADLIMIT     (1 << 3)
-#define D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT    (1 << 4)
-
-#define D3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH  24
-#define D3DPS20_MIN_DYNAMICFLOWCONTROLDEPTH  0
-#define D3DPS20_MAX_NUMTEMPS                 32
-#define D3DPS20_MIN_NUMTEMPS                 12
-#define D3DPS20_MAX_STATICFLOWCONTROLDEPTH   4
-#define D3DPS20_MIN_STATICFLOWCONTROLDEPTH   0
-#define D3DPS20_MAX_NUMINSTRUCTIONSLOTS      512
-#define D3DPS20_MIN_NUMINSTRUCTIONSLOTS      96
-
-#define D3DMIN30SHADERINSTRUCTIONS          512
-#define D3DMAX30SHADERINSTRUCTIONS          32768
-
-
-typedef struct _D3DVSHADERCAPS2_0 {
-  DWORD  Caps;
-  INT    DynamicFlowControlDepth;
-  INT    NumTemps;
-  INT    StaticFlowControlDepth;
-} D3DVSHADERCAPS2_0;
-
-typedef struct _D3DPSHADERCAPS2_0 {
-  DWORD  Caps;
-  INT    DynamicFlowControlDepth;
-  INT    NumTemps;
-  INT    StaticFlowControlDepth;
-  INT    NumInstructionSlots;
-} D3DPSHADERCAPS2_0;
-
-/*
- * The d3dcaps9 structure
- */
-typedef struct _D3DCAPS9 {
-  D3DDEVTYPE          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, 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;
-
-  UINT                MasterAdapterOrdinal;   
-  UINT                AdapterOrdinalInGroup;  
-  UINT                NumberOfAdaptersInGroup;
-  DWORD               DeclTypes;              
-  DWORD               NumSimultaneousRTs;     
-  DWORD               StretchRectFilterCaps;  
-  D3DVSHADERCAPS2_0   VS20Caps;
-  D3DPSHADERCAPS2_0   PS20Caps;
-  DWORD               VertexTextureFilterCaps;
-  DWORD               MaxVShaderInstructionsExecuted;
-  DWORD               MaxPShaderInstructionsExecuted;
-  DWORD               MaxVertexShader30InstructionSlots; 
-  DWORD               MaxPixelShader30InstructionSlots;
-
-} D3DCAPS9;
-
-#endif
diff --git a/misc/builddeps/win32/dx/include/d3d9types.h b/misc/builddeps/win32/dx/include/d3d9types.h
deleted file mode 100644 (file)
index e0e11df..0000000
+++ /dev/null
@@ -1,1582 +0,0 @@
-/*
- * Copyright (C) 2002-2003 Jason Edmeades 
- * Copyright (C) 2002-2003 Raphael Junqueira
- * Copyright (C) 2005 Oliver Stieber
- *
- * 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_D3D9TYPES_H
-#define __WINE_D3D9TYPES_H
-
-#include <_mingw_dxhelper.h>
-
-/*****************************************************************************
- * Direct 3D v9 #defines
- */
-#ifndef D3DCLEAR_TARGET
-#define D3DCLEAR_TARGET   0x00000001L
-#endif
-#ifndef D3DCLEAR_ZBUFFER
-#define D3DCLEAR_ZBUFFER  0x00000002L
-#endif
-#ifndef D3DCLEAR_STENCIL
-#define D3DCLEAR_STENCIL  0x00000004L
-#endif
-
-#define D3DCLIPPLANE0 (1 << 0)
-#define D3DCLIPPLANE1 (1 << 1)
-#define D3DCLIPPLANE2 (1 << 2)
-#define D3DCLIPPLANE3 (1 << 3)
-#define D3DCLIPPLANE4 (1 << 4)
-#define D3DCLIPPLANE5 (1 << 5)
-
-#define D3DCOLOR_ARGB(a,r,g,b)       ((D3DCOLOR)((((a)&0xff)<<24)|(((r)&0xff)<<16)|(((g)&0xff)<<8)|((b)&0xff)))
-#define D3DCOLOR_COLORVALUE(r,g,b,a) D3DCOLOR_RGBA((DWORD)((r)*255.f),(DWORD)((g)*255.f),(DWORD)((b)*255.f),(DWORD)((a)*255.f))
-#define D3DCOLOR_RGBA(r,g,b,a)       D3DCOLOR_ARGB(a,r,g,b)
-#define D3DCOLOR_XRGB(r,g,b)         D3DCOLOR_ARGB(0xff,r,g,b)
-#define D3DCOLOR_XYUV(y,u,v)         D3DCOLOR_ARGB(0xFF,y,u,v)
-#define D3DCOLOR_AYUV(a,y,u,v)       D3DCOLOR_ARGB(a,y,u,v)
-
-#define D3DCS_LEFT                   0x001L
-#define D3DCS_RIGHT                  0x002L
-#define D3DCS_TOP                    0x004L
-#define D3DCS_BOTTOM                 0x008L
-#define D3DCS_FRONT                  0x010L
-#define D3DCS_BACK                   0x020L
-#define D3DCS_PLANE0                 0x040L
-#define D3DCS_PLANE1                 0x080L
-#define D3DCS_PLANE2                 0x100L
-#define D3DCS_PLANE3                 0x200L
-#define D3DCS_PLANE4                 0x400L
-#define D3DCS_PLANE5                 0x800L
-#define D3DCS_ALL                    0xFFFL
-
-#define D3DFVF_TEXTUREFORMAT1 3
-#define D3DFVF_TEXTUREFORMAT2 0
-#define D3DFVF_TEXTUREFORMAT3 1
-#define D3DFVF_TEXTUREFORMAT4 2
-#define D3DFVF_TEXCOORDSIZE1(CoordIndex) (D3DFVF_TEXTUREFORMAT1 << (CoordIndex*2 + 16))
-#define D3DFVF_TEXCOORDSIZE2(CoordIndex) (D3DFVF_TEXTUREFORMAT2)
-#define D3DFVF_TEXCOORDSIZE3(CoordIndex) (D3DFVF_TEXTUREFORMAT3 << (CoordIndex*2 + 16))
-#define D3DFVF_TEXCOORDSIZE4(CoordIndex) (D3DFVF_TEXTUREFORMAT4 << (CoordIndex*2 + 16))
-
-#define D3DLOCK_READONLY           0x0010
-#define D3DLOCK_NOSYSLOCK          0x0800
-#define D3DLOCK_NOOVERWRITE        0x1000
-#define D3DLOCK_DISCARD            0x2000
-#define D3DLOCK_DONOTWAIT          0x4000
-#define D3DLOCK_NO_DIRTY_UPDATE    0x8000
-
-#define D3DMAXUSERCLIPPLANES       32
-#define D3DCLIPPLANE0              (1 << 0)
-#define D3DCLIPPLANE1              (1 << 1)
-#define D3DCLIPPLANE2              (1 << 2)
-#define D3DCLIPPLANE3              (1 << 3)
-#define D3DCLIPPLANE4              (1 << 4)
-#define D3DCLIPPLANE5              (1 << 5)
-
-
-#define D3DRENDERSTATE_WRAPBIAS    128UL
-
-/* MSDN has this in d3d9caps.h, but it should be here */
-#define D3DTSS_TCI_PASSTHRU                       0x00000
-#define D3DTSS_TCI_CAMERASPACENORMAL              0x10000
-#define D3DTSS_TCI_CAMERASPACEPOSITION            0x20000
-#define D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR    0x30000
-#define D3DTSS_TCI_SPHEREMAP                      0x40000
-
-
-#define D3DTS_WORLD  D3DTS_WORLDMATRIX(0)
-#define D3DTS_WORLD1 D3DTS_WORLDMATRIX(1)
-#define D3DTS_WORLD2 D3DTS_WORLDMATRIX(2)
-#define D3DTS_WORLD3 D3DTS_WORLDMATRIX(3)
-#define D3DTS_WORLDMATRIX(index) (D3DTRANSFORMSTATETYPE)(index + 256)
-
-#define D3DUSAGE_RENDERTARGET       0x00000001L
-#define D3DUSAGE_DEPTHSTENCIL       0x00000002L
-#define D3DUSAGE_WRITEONLY          0x00000008L
-#define D3DUSAGE_SOFTWAREPROCESSING 0x00000010L
-#define D3DUSAGE_DONOTCLIP          0x00000020L
-#define D3DUSAGE_POINTS             0x00000040L
-#define D3DUSAGE_RTPATCHES          0x00000080L
-#define D3DUSAGE_NPATCHES           0x00000100L
-#define D3DUSAGE_DYNAMIC            0x00000200L
-#define D3DUSAGE_AUTOGENMIPMAP      0x00000400L 
-#define D3DUSAGE_DMAP               0x00004000L
-
-#define D3DUSAGE_QUERY_FILTER                   0x00020000L
-#define D3DUSAGE_QUERY_LEGACYBUMPMAP            0x00008000L
-#define D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING 0x00080000L
-#define D3DUSAGE_QUERY_SRGBREAD                 0x00010000L
-#define D3DUSAGE_QUERY_SRGBWRITE                0x00040000L
-#define D3DUSAGE_QUERY_VERTEXTEXTURE            0x00100000L
-#define D3DUSAGE_QUERY_WRAPANDMIP               0x00200000L
-
-#define D3DWRAP_U        1
-#define D3DWRAP_V        2
-#define D3DWRAP_W        4
-#define D3DWRAPCOORD_0   1
-#define D3DWRAPCOORD_1   2
-#define D3DWRAPCOORD_2   4
-#define D3DWRAPCOORD_3   8
-
-#define MAX_DEVICE_IDENTIFIER_STRING        512
-
-#define D3DFVF_RESERVED0           0x0001
-#define D3DFVF_POSITION_MASK       0x400E
-#define D3DFVF_XYZ                 0x0002
-#define D3DFVF_XYZRHW              0x0004
-#define D3DFVF_XYZB1               0x0006
-#define D3DFVF_XYZB2               0x0008
-#define D3DFVF_XYZB3               0x000a
-#define D3DFVF_XYZB4               0x000c
-#define D3DFVF_XYZB5               0x000e
-#define D3DFVF_XYZW                0x4002
-#define D3DFVF_NORMAL              0x0010
-#define D3DFVF_PSIZE               0x0020
-#define D3DFVF_DIFFUSE             0x0040
-#define D3DFVF_SPECULAR            0x0080
-#define D3DFVF_TEXCOUNT_MASK       0x0f00
-#define D3DFVF_TEXCOUNT_SHIFT           8
-#define D3DFVF_TEX0                0x0000
-#define D3DFVF_TEX1                0x0100
-#define D3DFVF_TEX2                0x0200
-#define D3DFVF_TEX3                0x0300
-#define D3DFVF_TEX4                0x0400
-#define D3DFVF_TEX5                0x0500
-#define D3DFVF_TEX6                0x0600
-#define D3DFVF_TEX7                0x0700
-#define D3DFVF_TEX8                0x0800
-#define D3DFVF_LASTBETA_UBYTE4     0x1000
-#define D3DFVF_LASTBETA_D3DCOLOR   0x8000
-#define D3DFVF_RESERVED2           0x6000
-
-#define D3DTA_SELECTMASK        0x0000000f
-#define D3DTA_DIFFUSE           0x00000000
-#define D3DTA_CURRENT           0x00000001
-#define D3DTA_TEXTURE           0x00000002
-#define D3DTA_TFACTOR           0x00000003
-#define D3DTA_SPECULAR          0x00000004
-#define D3DTA_TEMP              0x00000005
-#define D3DTA_CONSTANT          0x00000006
-#define D3DTA_COMPLEMENT        0x00000010
-#define D3DTA_ALPHAREPLICATE    0x00000020
-
-#define D3DCOLORWRITEENABLE_RED   (1L<<0)   
-#define D3DCOLORWRITEENABLE_GREEN (1L<<1)
-#define D3DCOLORWRITEENABLE_BLUE  (1L<<2)
-#define D3DCOLORWRITEENABLE_ALPHA (1L<<3)
-
-#define D3DPV_DONOTCOPYDATA         (1 << 0)
-
-#define D3DSTREAMSOURCE_INDEXEDDATA  (1 << 30)
-#define D3DSTREAMSOURCE_INSTANCEDATA (2 << 30)
-
-#define D3D_MAX_SIMULTANEOUS_RENDERTARGETS 4
-
-#define MAXD3DDECLLENGTH         64 /* +end marker */
-#define MAXD3DDECLMETHOD         D3DDECLMETHOD_LOOKUPPRESAMPLED
-#define MAXD3DDECLTYPE           D3DDECLTYPE_UNUSED
-#define MAXD3DDECLUSAGE          D3DDECLUSAGE_SAMPLE
-#define MAXD3DDECLUSAGEINDEX     15
-
-#define D3DDMAPSAMPLER 256
-#define D3DVERTEXTEXTURESAMPLER0 (D3DDMAPSAMPLER+1)
-#define D3DVERTEXTEXTURESAMPLER1 (D3DDMAPSAMPLER+2)
-#define D3DVERTEXTEXTURESAMPLER2 (D3DDMAPSAMPLER+3)
-#define D3DVERTEXTEXTURESAMPLER3 (D3DDMAPSAMPLER+4)
-
-#ifndef MAKEFOURCC
-#define MAKEFOURCC(ch0, ch1, ch2, ch3)  \
-    ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) |  \
-    ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 ))
-#endif /* MAKEFOURCC */
-
-/* Constants used by D3DPRESENT_PARAMETERS. when creating a device or swapchain */
-
-#define D3DPRESENTFLAG_LOCKABLE_BACKBUFFER  0x00000001 /* Create a lockable backbuffer */
-#define D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL 0x00000002 /* Discard Z buffer */
-#define D3DPRESENTFLAG_DEVICECLIP           0x00000004 /* Clip the window blited into the client area 2k + xp only */
-#define D3DPRESENTFLAG_VIDEO                0x00000010 /* backbuffer 'may' contain video data */
-#define D3DPRESENTFLAG_NOAUTOROTATE         0x00000020 /* d3d9ex, ignore display rotation */
-#define D3DPRESENTFLAG_UNPRUNEDMODE         0x00000040 /* d3d9ex, specify invalid display modes */
-
-#define D3DPRESENT_BACK_BUFFERS_MAX         3L
-#define D3DPRESENT_RATE_DEFAULT             0x00000000
-
-/**************************** 
- * Vertex Shaders Declaration
- */
-
-typedef enum _D3DDECLUSAGE {
-  D3DDECLUSAGE_POSITION     = 0,
-  D3DDECLUSAGE_BLENDWEIGHT  = 1,
-  D3DDECLUSAGE_BLENDINDICES = 2,
-  D3DDECLUSAGE_NORMAL       = 3,      
-  D3DDECLUSAGE_PSIZE        = 4,       
-  D3DDECLUSAGE_TEXCOORD     = 5,    
-  D3DDECLUSAGE_TANGENT      = 6,     
-  D3DDECLUSAGE_BINORMAL     = 7,    
-  D3DDECLUSAGE_TESSFACTOR   = 8,  
-  D3DDECLUSAGE_POSITIONT    = 9,   
-  D3DDECLUSAGE_COLOR        = 10,       
-  D3DDECLUSAGE_FOG          = 11,        
-  D3DDECLUSAGE_DEPTH        = 12,      
-  D3DDECLUSAGE_SAMPLE       = 13     
-} D3DDECLUSAGE;
-
-#define D3DMAXDECLUSAGE         D3DDECLUSAGE_SAMPLE
-#define D3DMAXDECLUSAGEINDEX    15
-#define D3DMAXDECLLENGTH        18
-#define D3DMAXDECLUSAGE_DX8     D3DDECLUSAGE_TEXCOORD
-
-typedef enum _D3DDECLMETHOD {
-  D3DDECLMETHOD_DEFAULT          = 0,
-  D3DDECLMETHOD_PARTIALU         = 1,
-  D3DDECLMETHOD_PARTIALV         = 2,
-  D3DDECLMETHOD_CROSSUV          = 3,
-  D3DDECLMETHOD_UV               = 4,
-  D3DDECLMETHOD_LOOKUP           = 5,
-  D3DDECLMETHOD_LOOKUPPRESAMPLED = 6
-} D3DDECLMETHOD;
-
-
-#define D3DMAXDECLMETHOD        D3DDECLMETHOD_LOOKUPPRESAMPLED
-
-typedef enum _D3DDECLTYPE {
-  D3DDECLTYPE_FLOAT1    =  0,
-  D3DDECLTYPE_FLOAT2    =  1,
-  D3DDECLTYPE_FLOAT3    =  2,
-  D3DDECLTYPE_FLOAT4    =  3,
-  D3DDECLTYPE_D3DCOLOR  =  4,
-  D3DDECLTYPE_UBYTE4    =  5,
-  D3DDECLTYPE_SHORT2    =  6,
-  D3DDECLTYPE_SHORT4    =  7,
-  /* VS 2.0 */
-  D3DDECLTYPE_UBYTE4N   =  8,
-  D3DDECLTYPE_SHORT2N   =  9,
-  D3DDECLTYPE_SHORT4N   = 10,
-  D3DDECLTYPE_USHORT2N  = 11,
-  D3DDECLTYPE_USHORT4N  = 12,
-  D3DDECLTYPE_UDEC3     = 13,
-  D3DDECLTYPE_DEC3N     = 14,
-  D3DDECLTYPE_FLOAT16_2 = 15,
-  D3DDECLTYPE_FLOAT16_4 = 16,
-  D3DDECLTYPE_UNUSED    = 17,
-} D3DDECLTYPE;
-
-#define D3DMAXDECLTYPE          D3DDECLTYPE_UNUSED
-
-typedef struct _D3DVERTEXELEMENT9 {
-  WORD    Stream;
-  WORD    Offset;
-  BYTE    Type;
-  BYTE    Method;
-  BYTE    Usage;
-  BYTE    UsageIndex;
-} D3DVERTEXELEMENT9, *LPD3DVERTEXELEMENT9;
-
-
-typedef enum _D3DQUERYTYPE {
-    D3DQUERYTYPE_VCACHE = 4,
-    D3DQUERYTYPE_RESOURCEMANAGER = 5,
-    D3DQUERYTYPE_VERTEXSTATS = 6,
-    D3DQUERYTYPE_EVENT = 8,
-    D3DQUERYTYPE_OCCLUSION = 9,
-    D3DQUERYTYPE_TIMESTAMP = 10,
-    D3DQUERYTYPE_TIMESTAMPDISJOINT = 11,
-    D3DQUERYTYPE_TIMESTAMPFREQ = 12,
-    D3DQUERYTYPE_PIPELINETIMINGS = 13,
-    D3DQUERYTYPE_INTERFACETIMINGS = 14,
-    D3DQUERYTYPE_VERTEXTIMINGS = 15,
-    D3DQUERYTYPE_PIXELTIMINGS = 16,
-    D3DQUERYTYPE_BANDWIDTHTIMINGS = 17,
-    D3DQUERYTYPE_CACHEUTILIZATION = 18
-} D3DQUERYTYPE;
-
-#define D3DISSUE_BEGIN   (1 << 1)
-#define D3DISSUE_END     (1 << 0)
-#define D3DGETDATA_FLUSH (1 << 0)
-
-
-#define D3DDECL_END() {0xFF,0,D3DDECLTYPE_UNUSED,0,0,0}
-#define D3DDP_MAXTEXCOORD   8
-
-
-#define D3DVSD_MAKETOKENTYPE(TokenType) \
-  ((TokenType << D3DVSD_TOKENTYPESHIFT) & D3DVSD_TOKENTYPEMASK)
-
-#define D3DVSD_CONST(ConstantAddress, Count) \
-  (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_CONSTMEM) | ((Count) << D3DVSD_CONSTCOUNTSHIFT) | (ConstantAddress))
-
-#define D3DVSD_END() 0xFFFFFFFF
-
-#define D3DVSD_NOP() 0x00000000
-
-#define D3DVSD_REG(VertexRegister, Type) \
-  (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAMDATA) | ((Type) << D3DVSD_DATATYPESHIFT) | (VertexRegister))
-
-#define D3DVSD_SKIP(Count) \
-  (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAMDATA) | 0x10000000 | ((Count) << D3DVSD_SKIPCOUNTSHIFT))
-
-#define D3DVSD_STREAM(StreamNumber) \
-  (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAM) | (StreamNumber))
-
-#define D3DVSD_STREAM_TESS() \
-  (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAM) | (D3DVSD_STREAMTESSMASK))
-
-#define D3DVSD_TESSNORMAL(RegisterIn, RegisterOut) \
-  (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_TESSELLATOR) | ((RegisterIn) << D3DVSD_VERTEXREGINSHIFT) | ((0x02) << D3DVSD_DATATYPESHIFT) | (RegisterOut))
-
-#define D3DVSD_TESSUV(Register) \
-  (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_TESSELLATOR) | 0x10000000 | ((0x01) << D3DVSD_DATATYPESHIFT) | (Register))
-
-
-/********************************
- * Pixel/Vertex Shaders Functions
- */
-
-/** Maximum number of supported texture coordinates sets operation */
-#define D3DDP_MAXTEXCOORD   8
-
-/** opcode token mask */
-#define D3DSI_OPCODE_MASK       0x0000FFFF
-#define D3DSI_INSTLENGTH_MASK   0x0F000000
-#define D3DSI_INSTLENGTH_SHIFT  24
-
-/** opcodes types for PS and VS */
-typedef enum _D3DSHADER_INSTRUCTION_OPCODE_TYPE {
-  D3DSIO_NOP          =  0,
-  D3DSIO_MOV          =  1,
-  D3DSIO_ADD          =  2,
-  D3DSIO_SUB          =  3,
-  D3DSIO_MAD          =  4,
-  D3DSIO_MUL          =  5,
-  D3DSIO_RCP          =  6,
-  D3DSIO_RSQ          =  7,
-  D3DSIO_DP3          =  8,
-  D3DSIO_DP4          =  9,
-  D3DSIO_MIN          = 10,
-  D3DSIO_MAX          = 11,
-  D3DSIO_SLT          = 12,
-  D3DSIO_SGE          = 13,
-  D3DSIO_EXP          = 14,
-  D3DSIO_LOG          = 15,
-  D3DSIO_LIT          = 16,
-  D3DSIO_DST          = 17,
-  D3DSIO_LRP          = 18,
-  D3DSIO_FRC          = 19,
-  D3DSIO_M4x4         = 20,
-  D3DSIO_M4x3         = 21,
-  D3DSIO_M3x4         = 22,
-  D3DSIO_M3x3         = 23,
-  D3DSIO_M3x2         = 24,
-  D3DSIO_CALL         = 25,
-  D3DSIO_CALLNZ       = 26,
-  D3DSIO_LOOP         = 27,
-  D3DSIO_RET          = 28,
-  D3DSIO_ENDLOOP      = 29,
-  D3DSIO_LABEL        = 30,
-  D3DSIO_DCL          = 31,
-  D3DSIO_POW          = 32,
-  D3DSIO_CRS          = 33,
-  D3DSIO_SGN          = 34,
-  D3DSIO_ABS          = 35,
-  D3DSIO_NRM          = 36,
-  D3DSIO_SINCOS       = 37,
-  D3DSIO_REP          = 38,
-  D3DSIO_ENDREP       = 39,
-  D3DSIO_IF           = 40,
-  D3DSIO_IFC          = 41,
-  D3DSIO_ELSE         = 42,
-  D3DSIO_ENDIF        = 43,
-  D3DSIO_BREAK        = 44,
-  D3DSIO_BREAKC       = 45,
-  D3DSIO_MOVA         = 46,
-  D3DSIO_DEFB         = 47,
-  D3DSIO_DEFI         = 48,
-
-  D3DSIO_TEXCOORD     = 64,
-  D3DSIO_TEXKILL      = 65,
-  D3DSIO_TEX          = 66,
-  D3DSIO_TEXBEM       = 67,
-  D3DSIO_TEXBEML      = 68,
-  D3DSIO_TEXREG2AR    = 69,
-  D3DSIO_TEXREG2GB    = 70,
-  D3DSIO_TEXM3x2PAD   = 71,
-  D3DSIO_TEXM3x2TEX   = 72,
-  D3DSIO_TEXM3x3PAD   = 73,
-  D3DSIO_TEXM3x3TEX   = 74,
-  D3DSIO_TEXM3x3DIFF  = 75,
-  D3DSIO_TEXM3x3SPEC  = 76,
-  D3DSIO_TEXM3x3VSPEC = 77,
-  D3DSIO_EXPP         = 78,
-  D3DSIO_LOGP         = 79,
-  D3DSIO_CND          = 80,
-  D3DSIO_DEF          = 81,
-  D3DSIO_TEXREG2RGB   = 82,
-  D3DSIO_TEXDP3TEX    = 83,
-  D3DSIO_TEXM3x2DEPTH = 84,
-  D3DSIO_TEXDP3       = 85,
-  D3DSIO_TEXM3x3      = 86,
-  D3DSIO_TEXDEPTH     = 87,
-  D3DSIO_CMP          = 88,
-  D3DSIO_BEM          = 89,
-  D3DSIO_DP2ADD       = 90,
-  D3DSIO_DSX          = 91,
-  D3DSIO_DSY          = 92,
-  D3DSIO_TEXLDD       = 93,
-  D3DSIO_SETP         = 94,
-  D3DSIO_TEXLDL       = 95,
-  D3DSIO_BREAKP       = 96,
-  
-  D3DSIO_PHASE        = 0xFFFD,
-  D3DSIO_COMMENT      = 0xFFFE,
-  D3DSIO_END          = 0XFFFF,
-
-  D3DSIO_FORCE_DWORD  = 0X7FFFFFFF /** for 32-bit alignment */
-} D3DSHADER_INSTRUCTION_OPCODE_TYPE;
-
-#define D3DSINCOSCONST1   -1.5500992e-006f, -2.1701389e-005f,  0.0026041667f, 0.00026041668f
-#define D3DSINCOSCONST2   -0.020833334f,    -0.12500000f,      1.0f,          0.50000000f
-
-#define D3DSHADER_INSTRUCTION_PREDICATED    (1 << 28)
-
-#define D3DSI_TEXLD_PROJECT 0x00010000
-#define D3DSI_TEXLD_BIAS    0x00020000
-
-/** for parallelism */
-#define D3DSI_COISSUE 0x40000000
-
-#define D3DSP_DCL_USAGE_SHIFT 0
-#define D3DSP_DCL_USAGE_MASK  0x0000000f
-
-#define D3DSP_DCL_USAGEINDEX_SHIFT 16
-#define D3DSP_DCL_USAGEINDEX_MASK  0x000f0000
-
-#define D3DSP_TEXTURETYPE_SHIFT 27
-#define D3DSP_TEXTURETYPE_MASK  0x78000000
-
-typedef enum _D3DSAMPLER_TEXTURE_TYPE {
-  D3DSTT_UNKNOWN      = 0 << D3DSP_TEXTURETYPE_SHIFT,
-  D3DSTT_1D           = 1 << D3DSP_TEXTURETYPE_SHIFT,
-  D3DSTT_2D           = 2 << D3DSP_TEXTURETYPE_SHIFT,
-  D3DSTT_CUBE         = 3 << D3DSP_TEXTURETYPE_SHIFT,
-  D3DSTT_VOLUME       = 4 << D3DSP_TEXTURETYPE_SHIFT,
-
-  D3DSTT_FORCE_DWORD  = 0x7FFFFFFF
-} D3DSAMPLER_TEXTURE_TYPE;
-
-#define D3DSP_REGNUM_MASK       0x000007FF
-
-/** destination parameter modifiers (.xyzw) */
-#define D3DSP_WRITEMASK_0       0x00010000 /* .x r */
-#define D3DSP_WRITEMASK_1       0x00020000 /* .y g */
-#define D3DSP_WRITEMASK_2       0x00040000 /* .z b */
-#define D3DSP_WRITEMASK_3       0x00080000 /* .w a */
-#define D3DSP_WRITEMASK_ALL     0x000F0000 /* all */
-
-#define D3DSP_DSTMOD_SHIFT      20
-#define D3DSP_DSTMOD_MASK       (0xF << D3DSP_DSTMOD_SHIFT)
-
-typedef enum _D3DSHADER_PARAM_DSTMOD_TYPE {
-  D3DSPDM_NONE             = 0 << D3DSP_DSTMOD_SHIFT,
-  D3DSPDM_SATURATE         = 1 << D3DSP_DSTMOD_SHIFT,
-  D3DSPDM_PARTIALPRECISION = 2 << D3DSP_DSTMOD_SHIFT,
-  D3DSPDM_MSAMPCENTROID    = 4 << D3DSP_DSTMOD_SHIFT,
-
-  D3DSPDM_FORCE_DWORD  = 0x7FFFFFFF
-} D3DSHADER_PARAM_DSTMOD_TYPE;
-
-/** destination param */
-#define D3DSP_DSTSHIFT_SHIFT     24
-#define D3DSP_DSTSHIFT_MASK      (0xF << D3DSP_DSTSHIFT_SHIFT)
-
-/** destination/source reg type */
-#define D3DSP_REGTYPE_SHIFT      28
-#define D3DSP_REGTYPE_SHIFT2     8
-#define D3DSP_REGTYPE_MASK       (0x7 << D3DSP_REGTYPE_SHIFT)
-#define D3DSP_REGTYPE_MASK2      0x00001800
-
-typedef enum _D3DSHADER_PARAM_REGISTER_TYPE {
-  D3DSPR_TEMP         =  0, 
-  D3DSPR_INPUT        =  1,
-  D3DSPR_CONST        =  2,
-  D3DSPR_ADDR         =  3,
-  D3DSPR_TEXTURE      =  3,
-  D3DSPR_RASTOUT      =  4,
-  D3DSPR_ATTROUT      =  5,
-  D3DSPR_TEXCRDOUT    =  6,
-  D3DSPR_OUTPUT       =  6,
-  D3DSPR_CONSTINT     =  7,
-  D3DSPR_COLOROUT     =  8,
-  D3DSPR_DEPTHOUT     =  9,
-  D3DSPR_SAMPLER      = 10,
-  D3DSPR_CONST2       = 11,
-  D3DSPR_CONST3       = 12,
-  D3DSPR_CONST4       = 13,
-  D3DSPR_CONSTBOOL    = 14,
-  D3DSPR_LOOP         = 15,
-  D3DSPR_TEMPFLOAT16  = 16,
-  D3DSPR_MISCTYPE     = 17,
-  D3DSPR_LABEL        = 18,
-  D3DSPR_PREDICATE    = 19,
-
-  D3DSPR_FORCE_DWORD  = 0x7FFFFFFF
-} D3DSHADER_PARAM_REGISTER_TYPE;
-
-typedef enum _D3DSHADER_MISCTYPE_OFFSETS {
-    D3DSMO_POSITION  = 0,
-    D3DSMO_FACE      = 1
-} D3DSHADER_MISCTYPE_OFFSETS;
-
-typedef enum _D3DVS_RASTOUT_OFFSETS {
-  D3DSRO_POSITION     = 0,
-  D3DSRO_FOG          = 1,
-  D3DSRO_POINT_SIZE   = 2,
-
-  D3DSRO_FORCE_DWORD  = 0x7FFFFFFF
-} D3DVS_RASTOUT_OFFSETS;
-
-#define D3DVS_ADDRESSMODE_SHIFT  13
-#define D3DVS_ADDRESSMODE_MASK   (0x1 << D3DVS_ADDRESSMODE_SHIFT)
-
-typedef enum _D3DVS_ADDRESSMODE_TYPE {
-  D3DVS_ADDRMODE_ABSOLUTE     = 0 << D3DVS_ADDRESSMODE_SHIFT,
-  D3DVS_ADDRMODE_RELATIVE     = 1 << D3DVS_ADDRESSMODE_SHIFT,
-
-  D3DVS_ADDRMODE_FORCE_DWORD  = 0x7FFFFFFF
-} D3DVS_ADDRESSMODE_TYPE;
-
-#define D3DSHADER_ADDRESSMODE_SHIFT 13
-#define D3DSHADER_ADDRESSMODE_MASK  (1 << D3DSHADER_ADDRESSMODE_SHIFT)
-
-typedef enum _D3DSHADER_ADDRESSMODE_TYPE {
-  D3DSHADER_ADDRMODE_ABSOLUTE    = 0 << D3DSHADER_ADDRESSMODE_SHIFT,
-  D3DSHADER_ADDRMODE_RELATIVE    = 1 << D3DSHADER_ADDRESSMODE_SHIFT,
-
-  D3DSHADER_ADDRMODE_FORCE_DWORD = 0x7FFFFFFF
-} D3DSHADER_ADDRESSMODE_TYPE;
-
-
-#define D3DVS_SWIZZLE_SHIFT      16
-#define D3DVS_SWIZZLE_MASK       (0xFF << D3DVS_SWIZZLE_SHIFT)
-
-#define D3DSP_SWIZZLE_SHIFT      16
-#define D3DSP_SWIZZLE_MASK       (0xFF << D3DSP_SWIZZLE_SHIFT)
-
-#define D3DVS_X_X       (0 << D3DVS_SWIZZLE_SHIFT)
-#define D3DVS_X_Y       (1 << D3DVS_SWIZZLE_SHIFT)
-#define D3DVS_X_Z       (2 << D3DVS_SWIZZLE_SHIFT)
-#define D3DVS_X_W       (3 << D3DVS_SWIZZLE_SHIFT)
-
-#define D3DVS_Y_X       (0 << (D3DVS_SWIZZLE_SHIFT + 2))
-#define D3DVS_Y_Y       (1 << (D3DVS_SWIZZLE_SHIFT + 2))
-#define D3DVS_Y_Z       (2 << (D3DVS_SWIZZLE_SHIFT + 2))
-#define D3DVS_Y_W       (3 << (D3DVS_SWIZZLE_SHIFT + 2))
-
-#define D3DVS_Z_X       (0 << (D3DVS_SWIZZLE_SHIFT + 4))
-#define D3DVS_Z_Y       (1 << (D3DVS_SWIZZLE_SHIFT + 4))
-#define D3DVS_Z_Z       (2 << (D3DVS_SWIZZLE_SHIFT + 4))
-#define D3DVS_Z_W       (3 << (D3DVS_SWIZZLE_SHIFT + 4))
-
-#define D3DVS_W_X       (0 << (D3DVS_SWIZZLE_SHIFT + 6))
-#define D3DVS_W_Y       (1 << (D3DVS_SWIZZLE_SHIFT + 6))
-#define D3DVS_W_Z       (2 << (D3DVS_SWIZZLE_SHIFT + 6))
-#define D3DVS_W_W       (3 << (D3DVS_SWIZZLE_SHIFT + 6))
-
-#define D3DVS_NOSWIZZLE (D3DVS_X_X | D3DVS_Y_Y | D3DVS_Z_Z | D3DVS_W_W)
-
-#define D3DSP_NOSWIZZLE \
-    ((0 << (D3DSP_SWIZZLE_SHIFT + 0)) | (1 << (D3DSP_SWIZZLE_SHIFT + 2)) | (2 << (D3DSP_SWIZZLE_SHIFT + 4)) | (3 << (D3DSP_SWIZZLE_SHIFT + 6)))
-
-#define D3DSP_SRCMOD_SHIFT      24
-#define D3DSP_SRCMOD_MASK       (0xF << D3DSP_SRCMOD_SHIFT)
-
-typedef enum _D3DSHADER_PARAM_SRCMOD_TYPE {
-  D3DSPSM_NONE         =  0 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_NEG          =  1 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_BIAS         =  2 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_BIASNEG      =  3 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_SIGN         =  4 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_SIGNNEG      =  5 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_COMP         =  6 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_X2           =  7 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_X2NEG        =  8 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_DZ           =  9 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_DW           = 10 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_ABS          = 11 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_ABSNEG       = 12 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_NOT          = 13 << D3DSP_SRCMOD_SHIFT,
-
-  D3DSPSM_FORCE_DWORD  = 0x7FFFFFFF
-} D3DSHADER_PARAM_SRCMOD_TYPE;
-
-#define D3DPS_VERSION(major, minor) (0xFFFF0000 | ((major) << 8) | (minor))
-#define D3DVS_VERSION(major, minor) (0xFFFE0000 | ((major) << 8) | (minor))
-#define D3DSHADER_VERSION_MAJOR(version) (((version) >> 8) & 0xFF)
-#define D3DSHADER_VERSION_MINOR(version) (((version) >> 0) & 0xFF)
-
-#define D3DSI_COMMENTSIZE_SHIFT 16
-#define D3DSI_COMMENTSIZE_MASK (0x7FFF << D3DSI_COMMENTSIZE_SHIFT)
-
-#define D3DSHADER_COMMENT(commentSize) \
-  ((((commentSize) << D3DSI_COMMENTSIZE_SHIFT) & D3DSI_COMMENTSIZE_MASK) | D3DSIO_COMMENT)
-
-#define D3DPS_END() 0x0000FFFF
-#define D3DVS_END() 0x0000FFFF
-
-
-/*****************************************************************************
- * Direct 3D v8 enumerated types
- */
-typedef enum _D3DBACKBUFFER_TYPE {
-    D3DBACKBUFFER_TYPE_MONO         = 0,
-    D3DBACKBUFFER_TYPE_LEFT         = 1,
-    D3DBACKBUFFER_TYPE_RIGHT        = 2,
-
-    D3DBACKBUFFER_TYPE_FORCE_DWORD  = 0x7fffffff
-} D3DBACKBUFFER_TYPE;
-
-#define D3DPRESENT_BACK_BUFFER_MAX 3L
-
-typedef enum _D3DBASISTYPE {
-   D3DBASIS_BEZIER        = 0,
-   D3DBASIS_BSPLINE       = 1,
-   D3DBASIS_INTERPOLATE   = 2,
-
-   D3DBASIS_FORCE_DWORD   = 0x7fffffff
-} D3DBASISTYPE;
-
-typedef enum _D3DBLEND {
-    D3DBLEND_ZERO               =  1,
-    D3DBLEND_ONE                =  2,
-    D3DBLEND_SRCCOLOR           =  3,
-    D3DBLEND_INVSRCCOLOR        =  4,
-    D3DBLEND_SRCALPHA           =  5,
-    D3DBLEND_INVSRCALPHA        =  6,
-    D3DBLEND_DESTALPHA          =  7,
-    D3DBLEND_INVDESTALPHA       =  8,
-    D3DBLEND_DESTCOLOR          =  9,
-    D3DBLEND_INVDESTCOLOR       = 10,
-    D3DBLEND_SRCALPHASAT        = 11,
-    D3DBLEND_BOTHSRCALPHA       = 12,
-    D3DBLEND_BOTHINVSRCALPHA    = 13,
-    D3DBLEND_BLENDFACTOR        = 14,
-    D3DBLEND_INVBLENDFACTOR     = 15,
-    D3DBLEND_FORCE_DWORD        = 0x7fffffff
-} D3DBLEND;
-
-typedef enum _D3DBLENDOP {
-    D3DBLENDOP_ADD              = 1,
-    D3DBLENDOP_SUBTRACT         = 2,
-    D3DBLENDOP_REVSUBTRACT      = 3,
-    D3DBLENDOP_MIN              = 4,
-    D3DBLENDOP_MAX              = 5,
-
-    D3DBLENDOP_FORCE_DWORD      = 0x7fffffff
-} D3DBLENDOP;
-
-typedef enum _D3DCMPFUNC {
-    D3DCMP_NEVER                = 1,
-    D3DCMP_LESS                 = 2,
-    D3DCMP_EQUAL                = 3,
-    D3DCMP_LESSEQUAL            = 4,
-    D3DCMP_GREATER              = 5,
-    D3DCMP_NOTEQUAL             = 6,
-    D3DCMP_GREATEREQUAL         = 7,
-    D3DCMP_ALWAYS               = 8,
-
-    D3DCMP_FORCE_DWORD          = 0x7fffffff
-} D3DCMPFUNC;
-
-typedef enum _D3DCUBEMAP_FACES {
-    D3DCUBEMAP_FACE_POSITIVE_X     = 0,
-    D3DCUBEMAP_FACE_NEGATIVE_X     = 1,
-    D3DCUBEMAP_FACE_POSITIVE_Y     = 2,
-    D3DCUBEMAP_FACE_NEGATIVE_Y     = 3,
-    D3DCUBEMAP_FACE_POSITIVE_Z     = 4,
-    D3DCUBEMAP_FACE_NEGATIVE_Z     = 5,
-
-    D3DCUBEMAP_FACE_FORCE_DWORD    = 0xffffffff
-} D3DCUBEMAP_FACES;
-
-typedef enum _D3DCULL {
-    D3DCULL_NONE                = 1,
-    D3DCULL_CW                  = 2,
-    D3DCULL_CCW                 = 3,
-
-    D3DCULL_FORCE_DWORD         = 0x7fffffff
-} D3DCULL;
-
-typedef enum _D3DDEBUGMONITORTOKENS {
-    D3DDMT_ENABLE          = 0,
-    D3DDMT_DISABLE         = 1,
-
-    D3DDMT_FORCE_DWORD     = 0x7fffffff
-} D3DDEBUGMONITORTOKENS;
-
-typedef enum _D3DDEGREETYPE {
-    D3DDEGREE_LINEAR      = 1,
-    D3DDEGREE_QUADRATIC   = 2,
-    D3DDEGREE_CUBIC       = 3,
-    D3DDEGREE_QUINTIC     = 5,
-    
-    D3DDEGREE_FORCE_DWORD   = 0x7fffffff
-} D3DDEGREETYPE;
-
-typedef enum _D3DDEVTYPE {
-    D3DDEVTYPE_HAL         = 1,
-    D3DDEVTYPE_REF         = 2,
-    D3DDEVTYPE_SW          = 3,
-    D3DDEVTYPE_NULLREF     = 4,
-
-    D3DDEVTYPE_FORCE_DWORD = 0xffffffff
-} D3DDEVTYPE;
-
-typedef enum _D3DFILLMODE {
-    D3DFILL_POINT               = 1,
-    D3DFILL_WIREFRAME           = 2,
-    D3DFILL_SOLID               = 3,
-
-    D3DFILL_FORCE_DWORD         = 0x7fffffff
-} D3DFILLMODE;
-
-typedef enum _D3DFOGMODE {
-    D3DFOG_NONE                 = 0,
-    D3DFOG_EXP                  = 1,
-    D3DFOG_EXP2                 = 2,
-    D3DFOG_LINEAR               = 3,
-
-    D3DFOG_FORCE_DWORD          = 0x7fffffff
-} D3DFOGMODE;
-
-typedef enum _D3DFORMAT {
-    D3DFMT_UNKNOWN              =   0,
-
-    D3DFMT_R8G8B8               =  20,
-    D3DFMT_A8R8G8B8             =  21,
-    D3DFMT_X8R8G8B8             =  22,
-    D3DFMT_R5G6B5               =  23,
-    D3DFMT_X1R5G5B5             =  24,
-    D3DFMT_A1R5G5B5             =  25,
-    D3DFMT_A4R4G4B4             =  26,
-    D3DFMT_R3G3B2               =  27,
-    D3DFMT_A8                   =  28,
-    D3DFMT_A8R3G3B2             =  29,
-    D3DFMT_X4R4G4B4             =  30,
-    D3DFMT_A2B10G10R10          =  31,
-    D3DFMT_A8B8G8R8             =  32,
-    D3DFMT_X8B8G8R8             =  33,
-    D3DFMT_G16R16               =  34,
-    D3DFMT_A2R10G10B10          =  35,
-    D3DFMT_A16B16G16R16         =  36,
-  
-
-    D3DFMT_A8P8                 =  40,
-    D3DFMT_P8                   =  41,
-
-    D3DFMT_L8                   =  50,
-    D3DFMT_A8L8                 =  51,
-    D3DFMT_A4L4                 =  52,
-
-    D3DFMT_V8U8                 =  60,
-    D3DFMT_L6V5U5               =  61,
-    D3DFMT_X8L8V8U8             =  62,
-    D3DFMT_Q8W8V8U8             =  63,
-    D3DFMT_V16U16               =  64,
-    D3DFMT_A2W10V10U10          =  67,
-
-    D3DFMT_UYVY                 =  MAKEFOURCC('U', 'Y', 'V', 'Y'),
-    D3DFMT_YUY2                 =  MAKEFOURCC('Y', 'U', 'Y', '2'),
-    D3DFMT_DXT1                 =  MAKEFOURCC('D', 'X', 'T', '1'),
-    D3DFMT_DXT2                 =  MAKEFOURCC('D', 'X', 'T', '2'),
-    D3DFMT_DXT3                 =  MAKEFOURCC('D', 'X', 'T', '3'),
-    D3DFMT_DXT4                 =  MAKEFOURCC('D', 'X', 'T', '4'),
-    D3DFMT_DXT5                 =  MAKEFOURCC('D', 'X', 'T', '5'),
-    D3DFMT_MULTI2_ARGB8         =  MAKEFOURCC('M', 'E', 'T', '1'),
-    D3DFMT_G8R8_G8B8            =  MAKEFOURCC('G', 'R', 'G', 'B'),
-    D3DFMT_R8G8_B8G8            =  MAKEFOURCC('R', 'G', 'B', 'G'),
-
-    D3DFMT_D16_LOCKABLE         =  70,
-    D3DFMT_D32                  =  71,
-    D3DFMT_D15S1                =  73,
-    D3DFMT_D24S8                =  75,
-    D3DFMT_D24X8                =  77,
-    D3DFMT_D24X4S4              =  79,
-    D3DFMT_D16                  =  80,
-    D3DFMT_L16                  =  81,
-    D3DFMT_D32F_LOCKABLE        =  82,
-    D3DFMT_D24FS8               =  83,
-
-    D3DFMT_VERTEXDATA           = 100,
-    D3DFMT_INDEX16              = 101,
-    D3DFMT_INDEX32              = 102,
-    D3DFMT_Q16W16V16U16         = 110,
-    /* Floating point formats */
-    D3DFMT_R16F                 = 111,
-    D3DFMT_G16R16F              = 112,
-    D3DFMT_A16B16G16R16F        = 113,
-    
-    /* IEEE formats */
-    D3DFMT_R32F                 = 114,
-    D3DFMT_G32R32F              = 115,
-    D3DFMT_A32B32G32R32F        = 116,
-    
-    D3DFMT_CxV8U8               = 117,
-
-
-    D3DFMT_FORCE_DWORD          = 0xFFFFFFFF
-} D3DFORMAT;
-
-typedef enum _D3DLIGHTTYPE {
-    D3DLIGHT_POINT          = 1,
-    D3DLIGHT_SPOT           = 2,
-    D3DLIGHT_DIRECTIONAL    = 3,
-
-    D3DLIGHT_FORCE_DWORD    = 0x7fffffff
-} D3DLIGHTTYPE;
-
-typedef enum _D3DMATERIALCOLORSOURCE {
-    D3DMCS_MATERIAL         = 0,
-    D3DMCS_COLOR1           = 1,
-    D3DMCS_COLOR2           = 2,
-
-    D3DMCS_FORCE_DWORD      = 0x7fffffff
-} D3DMATERIALCOLORSOURCE;
-
-typedef enum _D3DMULTISAMPLE_TYPE {
-    D3DMULTISAMPLE_NONE            =  0,
-    D3DMULTISAMPLE_NONMASKABLE     =  1,
-    D3DMULTISAMPLE_2_SAMPLES       =  2,
-    D3DMULTISAMPLE_3_SAMPLES       =  3,
-    D3DMULTISAMPLE_4_SAMPLES       =  4,
-    D3DMULTISAMPLE_5_SAMPLES       =  5,
-    D3DMULTISAMPLE_6_SAMPLES       =  6,
-    D3DMULTISAMPLE_7_SAMPLES       =  7,
-    D3DMULTISAMPLE_8_SAMPLES       =  8,
-    D3DMULTISAMPLE_9_SAMPLES       =  9,
-    D3DMULTISAMPLE_10_SAMPLES      = 10,
-    D3DMULTISAMPLE_11_SAMPLES      = 11,
-    D3DMULTISAMPLE_12_SAMPLES      = 12,
-    D3DMULTISAMPLE_13_SAMPLES      = 13,
-    D3DMULTISAMPLE_14_SAMPLES      = 14,
-    D3DMULTISAMPLE_15_SAMPLES      = 15,
-    D3DMULTISAMPLE_16_SAMPLES      = 16,
-
-    D3DMULTISAMPLE_FORCE_DWORD     = 0x7fffffff
-} D3DMULTISAMPLE_TYPE;
-
-#if 0
-typedef enum _D3DORDERTYPE {
-   D3DORDER_LINEAR      = 1,
-   D3DORDER_QUADRATIC   = 2,
-   D3DORDER_CUBIC       = 3,
-   D3DORDER_QUINTIC     = 5,
-
-   D3DORDER_FORCE_DWORD = 0x7fffffff
-} D3DORDERTYPE;
-#endif
-typedef enum _D3DPATCHEDGESTYLE {
-   D3DPATCHEDGE_DISCRETE    = 0,
-   D3DPATCHEDGE_CONTINUOUS  = 1,
-
-   D3DPATCHEDGE_FORCE_DWORD = 0x7fffffff,
-} D3DPATCHEDGESTYLE;
-
-typedef enum _D3DPOOL {
-    D3DPOOL_DEFAULT                 = 0,
-    D3DPOOL_MANAGED                 = 1,
-    D3DPOOL_SYSTEMMEM               = 2,
-    D3DPOOL_SCRATCH                 = 3,
-
-    D3DPOOL_FORCE_DWORD             = 0x7fffffff
-} D3DPOOL;
-
-typedef enum _D3DPRIMITIVETYPE {
-    D3DPT_POINTLIST             = 1,
-    D3DPT_LINELIST              = 2,
-    D3DPT_LINESTRIP             = 3,
-    D3DPT_TRIANGLELIST          = 4,
-    D3DPT_TRIANGLESTRIP         = 5,
-    D3DPT_TRIANGLEFAN           = 6,
-
-    D3DPT_FORCE_DWORD           = 0x7fffffff
-} D3DPRIMITIVETYPE;
-
-typedef enum _D3DRENDERSTATETYPE {
-    D3DRS_ZENABLE                   =   7,
-    D3DRS_FILLMODE                  =   8,
-    D3DRS_SHADEMODE                 =   9,
-    D3DRS_ZWRITEENABLE              =  14,
-    D3DRS_ALPHATESTENABLE           =  15,
-    D3DRS_LASTPIXEL                 =  16,
-    D3DRS_SRCBLEND                  =  19,
-    D3DRS_DESTBLEND                 =  20,
-    D3DRS_CULLMODE                  =  22,
-    D3DRS_ZFUNC                     =  23,
-    D3DRS_ALPHAREF                  =  24,
-    D3DRS_ALPHAFUNC                 =  25,
-    D3DRS_DITHERENABLE              =  26,
-    D3DRS_ALPHABLENDENABLE          =  27,
-    D3DRS_FOGENABLE                 =  28,
-    D3DRS_SPECULARENABLE            =  29,
-    D3DRS_FOGCOLOR                  =  34,
-    D3DRS_FOGTABLEMODE              =  35,
-    D3DRS_FOGSTART                  =  36,
-    D3DRS_FOGEND                    =  37,
-    D3DRS_FOGDENSITY                =  38,
-    D3DRS_RANGEFOGENABLE            =  48,
-    D3DRS_STENCILENABLE             =  52,
-    D3DRS_STENCILFAIL               =  53,
-    D3DRS_STENCILZFAIL              =  54,
-    D3DRS_STENCILPASS               =  55,
-    D3DRS_STENCILFUNC               =  56,
-    D3DRS_STENCILREF                =  57,
-    D3DRS_STENCILMASK               =  58,
-    D3DRS_STENCILWRITEMASK          =  59,
-    D3DRS_TEXTUREFACTOR             =  60,
-    D3DRS_WRAP0                     = 128,
-    D3DRS_WRAP1                     = 129,
-    D3DRS_WRAP2                     = 130,
-    D3DRS_WRAP3                     = 131,
-    D3DRS_WRAP4                     = 132,
-    D3DRS_WRAP5                     = 133,
-    D3DRS_WRAP6                     = 134,
-    D3DRS_WRAP7                     = 135,
-    D3DRS_CLIPPING                  = 136,
-    D3DRS_LIGHTING                  = 137,
-    D3DRS_AMBIENT                   = 139,
-    D3DRS_FOGVERTEXMODE             = 140,
-    D3DRS_COLORVERTEX               = 141,
-    D3DRS_LOCALVIEWER               = 142,
-    D3DRS_NORMALIZENORMALS          = 143,
-    D3DRS_DIFFUSEMATERIALSOURCE     = 145,
-    D3DRS_SPECULARMATERIALSOURCE    = 146,
-    D3DRS_AMBIENTMATERIALSOURCE     = 147,
-    D3DRS_EMISSIVEMATERIALSOURCE    = 148,
-    D3DRS_VERTEXBLEND               = 151,
-    D3DRS_CLIPPLANEENABLE           = 152,
-    D3DRS_POINTSIZE                 = 154,
-    D3DRS_POINTSIZE_MIN             = 155,
-    D3DRS_POINTSPRITEENABLE         = 156,
-    D3DRS_POINTSCALEENABLE          = 157,
-    D3DRS_POINTSCALE_A              = 158,
-    D3DRS_POINTSCALE_B              = 159,
-    D3DRS_POINTSCALE_C              = 160,
-    D3DRS_MULTISAMPLEANTIALIAS      = 161,
-    D3DRS_MULTISAMPLEMASK           = 162,
-    D3DRS_PATCHEDGESTYLE            = 163,
-    D3DRS_DEBUGMONITORTOKEN         = 165,
-    D3DRS_POINTSIZE_MAX             = 166,
-    D3DRS_INDEXEDVERTEXBLENDENABLE  = 167,
-    D3DRS_COLORWRITEENABLE          = 168,
-    D3DRS_TWEENFACTOR               = 170,
-    D3DRS_BLENDOP                   = 171,
-    D3DRS_POSITIONDEGREE            = 172,
-    D3DRS_NORMALDEGREE              = 173,
-    D3DRS_SCISSORTESTENABLE         = 174,
-    D3DRS_SLOPESCALEDEPTHBIAS       = 175,
-    D3DRS_ANTIALIASEDLINEENABLE     = 176,
-    D3DRS_MINTESSELLATIONLEVEL      = 178,
-    D3DRS_MAXTESSELLATIONLEVEL      = 179,
-    D3DRS_ADAPTIVETESS_X            = 180,
-    D3DRS_ADAPTIVETESS_Y            = 181,
-    D3DRS_ADAPTIVETESS_Z            = 182,
-    D3DRS_ADAPTIVETESS_W            = 183,
-    D3DRS_ENABLEADAPTIVETESSELLATION= 184,
-    D3DRS_TWOSIDEDSTENCILMODE       = 185,
-    D3DRS_CCW_STENCILFAIL           = 186,
-    D3DRS_CCW_STENCILZFAIL          = 187,
-    D3DRS_CCW_STENCILPASS           = 188,
-    D3DRS_CCW_STENCILFUNC           = 189,
-    D3DRS_COLORWRITEENABLE1         = 190,
-    D3DRS_COLORWRITEENABLE2         = 191,
-    D3DRS_COLORWRITEENABLE3         = 192,
-    D3DRS_BLENDFACTOR               = 193,
-    D3DRS_SRGBWRITEENABLE           = 194,
-    D3DRS_DEPTHBIAS                 = 195,
-    D3DRS_WRAP8                     = 198,
-    D3DRS_WRAP9                     = 199,
-    D3DRS_WRAP10                    = 200,
-    D3DRS_WRAP11                    = 201,
-    D3DRS_WRAP12                    = 202,
-    D3DRS_WRAP13                    = 203,
-    D3DRS_WRAP14                    = 204,
-    D3DRS_WRAP15                    = 205,
-    D3DRS_SEPARATEALPHABLENDENABLE  = 206,
-    D3DRS_SRCBLENDALPHA             = 207,
-    D3DRS_DESTBLENDALPHA            = 208,
-    D3DRS_BLENDOPALPHA              = 209,
-
-    D3DRS_FORCE_DWORD               = 0x7fffffff
-} D3DRENDERSTATETYPE;
-
-typedef enum _D3DRESOURCETYPE {
-    D3DRTYPE_SURFACE                =  1,
-    D3DRTYPE_VOLUME                 =  2,
-    D3DRTYPE_TEXTURE                =  3,
-    D3DRTYPE_VOLUMETEXTURE          =  4,
-    D3DRTYPE_CUBETEXTURE            =  5,
-    D3DRTYPE_VERTEXBUFFER           =  6,
-    D3DRTYPE_INDEXBUFFER            =  7,
-
-    D3DRTYPE_FORCE_DWORD            = 0x7fffffff
-} D3DRESOURCETYPE;
-
-#define D3DRTYPECOUNT (D3DRTYPE_INDEXBUFFER+1)
-
-typedef enum _D3DSHADEMODE {
-    D3DSHADE_FLAT               = 1,
-    D3DSHADE_GOURAUD            = 2,
-    D3DSHADE_PHONG              = 3,
-
-    D3DSHADE_FORCE_DWORD        = 0x7fffffff
-} D3DSHADEMODE;
-
-typedef enum _D3DSTATEBLOCKTYPE {
-    D3DSBT_ALL           = 1,
-    D3DSBT_PIXELSTATE    = 2,
-    D3DSBT_VERTEXSTATE   = 3,
-
-    D3DSBT_FORCE_DWORD   = 0xffffffff
-} D3DSTATEBLOCKTYPE;
-
-typedef enum _D3DSTENCILOP {
-    D3DSTENCILOP_KEEP           = 1,
-    D3DSTENCILOP_ZERO           = 2,
-    D3DSTENCILOP_REPLACE        = 3,
-    D3DSTENCILOP_INCRSAT        = 4,
-    D3DSTENCILOP_DECRSAT        = 5,
-    D3DSTENCILOP_INVERT         = 6,
-    D3DSTENCILOP_INCR           = 7,
-    D3DSTENCILOP_DECR           = 8,
-
-    D3DSTENCILOP_FORCE_DWORD    = 0x7fffffff
-} D3DSTENCILOP;
-
-typedef enum _D3DSWAPEFFECT {
-    D3DSWAPEFFECT_DISCARD         = 1,
-    D3DSWAPEFFECT_FLIP            = 2,
-    D3DSWAPEFFECT_COPY            = 3,
-    D3DSWAPEFFECT_FORCE_DWORD     = 0xFFFFFFFF
-} D3DSWAPEFFECT;
-
-typedef enum _D3DTEXTUREADDRESS {
-    D3DTADDRESS_WRAP            = 1,
-    D3DTADDRESS_MIRROR          = 2,
-    D3DTADDRESS_CLAMP           = 3,
-    D3DTADDRESS_BORDER          = 4,
-    D3DTADDRESS_MIRRORONCE      = 5,
-
-    D3DTADDRESS_FORCE_DWORD     = 0x7fffffff
-} D3DTEXTUREADDRESS;
-
-typedef enum _D3DTEXTUREFILTERTYPE {
-    D3DTEXF_NONE            = 0,
-    D3DTEXF_POINT           = 1,
-    D3DTEXF_LINEAR          = 2,
-    D3DTEXF_ANISOTROPIC     = 3,
-    D3DTEXF_FLATCUBIC       = 4,
-    D3DTEXF_GAUSSIANCUBIC   = 5,
-    D3DTEXF_PYRAMIDALQUAD   = 6,
-    D3DTEXF_GAUSSIANQUAD    = 7,
-    D3DTEXF_FORCE_DWORD     = 0x7fffffff
-} D3DTEXTUREFILTERTYPE;
-
-typedef enum _D3DTEXTUREOP {
-    D3DTOP_DISABLE                   =  1,
-    D3DTOP_SELECTARG1                =  2,
-    D3DTOP_SELECTARG2                =  3,
-    D3DTOP_MODULATE                  =  4,
-    D3DTOP_MODULATE2X                =  5,
-    D3DTOP_MODULATE4X                =  6,
-    D3DTOP_ADD                       =  7,
-    D3DTOP_ADDSIGNED                 =  8,
-    D3DTOP_ADDSIGNED2X               =  9,
-    D3DTOP_SUBTRACT                  = 10,
-    D3DTOP_ADDSMOOTH                 = 11,
-    D3DTOP_BLENDDIFFUSEALPHA         = 12,
-    D3DTOP_BLENDTEXTUREALPHA         = 13,
-    D3DTOP_BLENDFACTORALPHA          = 14,
-    D3DTOP_BLENDTEXTUREALPHAPM       = 15,
-    D3DTOP_BLENDCURRENTALPHA         = 16,
-    D3DTOP_PREMODULATE               = 17,
-    D3DTOP_MODULATEALPHA_ADDCOLOR    = 18,
-    D3DTOP_MODULATECOLOR_ADDALPHA    = 19,
-    D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20,
-    D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21,
-    D3DTOP_BUMPENVMAP                = 22,
-    D3DTOP_BUMPENVMAPLUMINANCE       = 23,
-    D3DTOP_DOTPRODUCT3               = 24,
-    D3DTOP_MULTIPLYADD               = 25,
-    D3DTOP_LERP                      = 26,
-
-    D3DTOP_FORCE_DWORD               = 0x7fffffff,
-} D3DTEXTUREOP;
-
-typedef enum _D3DTEXTURESTAGESTATETYPE {
-    D3DTSS_COLOROP               =  1,
-    D3DTSS_COLORARG1             =  2,
-    D3DTSS_COLORARG2             =  3,
-    D3DTSS_ALPHAOP               =  4,
-    D3DTSS_ALPHAARG1             =  5,
-    D3DTSS_ALPHAARG2             =  6,
-    D3DTSS_BUMPENVMAT00          =  7,
-    D3DTSS_BUMPENVMAT01          =  8,
-    D3DTSS_BUMPENVMAT10          =  9,
-    D3DTSS_BUMPENVMAT11          = 10,
-    D3DTSS_TEXCOORDINDEX         = 11,
-    D3DTSS_BUMPENVLSCALE         = 22,
-    D3DTSS_BUMPENVLOFFSET        = 23,
-    D3DTSS_TEXTURETRANSFORMFLAGS = 24,
-    D3DTSS_COLORARG0             = 26,
-    D3DTSS_ALPHAARG0             = 27,
-    D3DTSS_RESULTARG             = 28,
-    D3DTSS_CONSTANT              = 32,
-
-    D3DTSS_FORCE_DWORD           = 0x7fffffff
-} D3DTEXTURESTAGESTATETYPE;
-
-typedef enum _D3DTEXTURETRANSFORMFLAGS {
-    D3DTTFF_DISABLE         =   0,
-    D3DTTFF_COUNT1          =   1,
-    D3DTTFF_COUNT2          =   2,
-    D3DTTFF_COUNT3          =   3,
-    D3DTTFF_COUNT4          =   4,
-    D3DTTFF_PROJECTED       = 256,
-
-    D3DTTFF_FORCE_DWORD     = 0x7fffffff
-} D3DTEXTURETRANSFORMFLAGS;
-
-typedef enum _D3DTRANSFORMSTATETYPE {
-    D3DTS_VIEW            =  2,
-    D3DTS_PROJECTION      =  3,
-    D3DTS_TEXTURE0        = 16,
-    D3DTS_TEXTURE1        = 17,
-    D3DTS_TEXTURE2        = 18,
-    D3DTS_TEXTURE3        = 19,
-    D3DTS_TEXTURE4        = 20,
-    D3DTS_TEXTURE5        = 21,
-    D3DTS_TEXTURE6        = 22,
-    D3DTS_TEXTURE7        = 23,
-
-    D3DTS_FORCE_DWORD     = 0x7fffffff
-} D3DTRANSFORMSTATETYPE;
-
-typedef enum _D3DVERTEXBLENDFLAGS {
-    D3DVBF_DISABLE  =   0,
-    D3DVBF_1WEIGHTS =   1,
-    D3DVBF_2WEIGHTS =   2,
-    D3DVBF_3WEIGHTS =   3,
-    D3DVBF_TWEENING = 255,
-    D3DVBF_0WEIGHTS = 256
-} D3DVERTEXBLENDFLAGS;
-
-typedef enum _D3DZBUFFERTYPE {
-    D3DZB_FALSE                 = 0,
-    D3DZB_TRUE                  = 1,
-    D3DZB_USEW                  = 2,
-
-    D3DZB_FORCE_DWORD           = 0x7fffffff
-} D3DZBUFFERTYPE;
-
-typedef enum _D3DSAMPLERSTATETYPE {
-    D3DSAMP_ADDRESSU       = 1,
-    D3DSAMP_ADDRESSV       = 2,
-    D3DSAMP_ADDRESSW       = 3,
-    D3DSAMP_BORDERCOLOR    = 4,
-    D3DSAMP_MAGFILTER      = 5,
-    D3DSAMP_MINFILTER      = 6,
-    D3DSAMP_MIPFILTER      = 7,
-    D3DSAMP_MIPMAPLODBIAS  = 8,
-    D3DSAMP_MAXMIPLEVEL    = 9,
-    D3DSAMP_MAXANISOTROPY  = 10,
-    D3DSAMP_SRGBTEXTURE    = 11,
-    D3DSAMP_ELEMENTINDEX   = 12,
-    D3DSAMP_DMAPOFFSET     = 13,
-                                
-    D3DSAMP_FORCE_DWORD   = 0x7fffffff,
-} D3DSAMPLERSTATETYPE;
-
-
-/*****************************************************************************
- * Direct 3D v9 typedefs
- */
-#ifndef D3DCOLOR_DEFINED
-typedef DWORD D3DCOLOR;
-#define D3DCOLOR_DEFINED
-#endif
-
-/*****************************************************************************
- * Direct 3D v9 structures
- */
-typedef struct _D3DADAPTER_IDENTIFIER9 {
-    char            Driver[MAX_DEVICE_IDENTIFIER_STRING];
-    char            Description[MAX_DEVICE_IDENTIFIER_STRING];
-    char            DeviceName[32];
-    LARGE_INTEGER   DriverVersion; 
-
-    DWORD           VendorId;
-    DWORD           DeviceId;
-    DWORD           SubSysId;
-    DWORD           Revision;
-
-    GUID            DeviceIdentifier;
-
-    DWORD           WHQLLevel;
-} D3DADAPTER_IDENTIFIER9;
-
-typedef struct _D3DBOX {
-    UINT                Left;
-    UINT                Top;
-    UINT                Right;
-    UINT                Bottom;
-    UINT                Front;
-    UINT                Back;
-} D3DBOX;
-
-typedef struct _D3DCLIPSTATUS9 {
-   DWORD ClipUnion;
-   DWORD ClipIntersection;
-} D3DCLIPSTATUS9;
-
-#ifndef D3DCOLORVALUE_DEFINED
-typedef struct _D3DCOLORVALUE {
-    float r;
-    float g;
-    float b;
-    float a;
-} D3DCOLORVALUE;
-#define D3DCOLORVALUE_DEFINED
-#endif
-
-typedef struct _D3DDEVICE_CREATION_PARAMETERS {
-    UINT          AdapterOrdinal;
-    D3DDEVTYPE    DeviceType;
-    HWND          hFocusWindow;
-    DWORD         BehaviorFlags;
-} D3DDEVICE_CREATION_PARAMETERS;
-
-typedef struct _D3DDEVINFO_D3D9BANDWIDTHTIMINGS {
-    float         MaxBandwidthUtilized;
-    float         FrontEndUploadMemoryUtilizedPercent;
-    float         VertexRateUtilizedPercent;
-    float         TriangleSetupRateUtilizedPercent;
-    float         FillRateUtilizedPercent;
-} D3DDEVINFO_D3D9BANDWIDTHTIMINGS;
-
-typedef struct _D3DDEVINFO_D3D9CACHEUTILIZATION {
-    float         TextureCacheHitRate;
-    float         PostTransformVertexCacheHitRate;
-} D3DDEVINFO_D3D9CACHEUTILIZATION;
-
-typedef struct _D3DDEVINFO_D3D9INTERFACETIMINGS {
-    float         WaitingForGPUToUseApplicationResourceTimePercent;
-    float         WaitingForGPUToAcceptMoreCommandsTimePercent;
-    float         WaitingForGPUToStayWithinLatencyTimePercent;
-    float         WaitingForGPUExclusiveResourceTimePercent;
-    float         WaitingForGPUOtherTimePercent;
-} D3DDEVINFO_D3D9INTERFACETIMINGS;
-
-typedef struct _D3DDEVINFO_D3D9PIPELINETIMINGS {
-    float         VertexProcessingTimePercent;
-    float         PixelProcessingTimePercent;
-    float         OtherGPUProcessingTimePercent;
-    float         GPUIdleTimePercent;
-} D3DDEVINFO_D3D9PIPELINETIMINGS;
-
-typedef struct _D3DDEVINFO_D3D9STAGETIMINGS {
-    float         MemoryProcessingPercent;
-    float         ComputationProcessingPercent;
-} D3DDEVINFO_D3D9STAGETIMINGS;
-
-
-/* Vertex cache optimization hints. */
-typedef struct D3DDEVINFO_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; 
-} D3DDEVINFO_VCACHE;
-
-typedef struct D3DRESOURCESTATS {
-    BOOL                bThrashing;
-    DWORD               ApproxBytesDownloaded;
-    DWORD               NumEvicts;
-    DWORD               NumVidCreates;
-    DWORD               LastPri;
-    DWORD               NumUsed;
-    DWORD               NumUsedInVidMem;
-    DWORD               WorkingSet;
-    DWORD               WorkingSetBytes;
-    DWORD               TotalManaged;
-    DWORD               TotalBytes;
-} D3DRESOURCESTATS;
-
-typedef struct _D3DDEVINFO_D3DRESOURCEMANAGER {
-    D3DRESOURCESTATS stats[D3DRTYPECOUNT];
-} D3DDEVINFO_D3DRESOURCEMANAGER;
-
-typedef struct _D3DDEVINFO_D3DVERTEXSTATS {
-    DWORD NumRenderedTriangles;
-    DWORD NumExtraClippingTriangles;
-} D3DDEVINFO_D3DVERTEXSTATS;
-
-typedef struct _D3DDISPLAYMODE {
-    UINT            Width;
-    UINT            Height;
-    UINT            RefreshRate;
-    D3DFORMAT       Format;
-} D3DDISPLAYMODE;
-
-typedef struct _D3DGAMMARAMP {
-    WORD                red  [256];
-    WORD                green[256];
-    WORD                blue [256];
-} D3DGAMMARAMP;
-
-typedef struct _D3DINDEXBUFFER_DESC {
-    D3DFORMAT           Format;
-    D3DRESOURCETYPE     Type;
-    DWORD               Usage;
-    D3DPOOL             Pool;
-    UINT                Size;
-} D3DINDEXBUFFER_DESC;
-
-#ifndef D3DVECTOR_DEFINED
-typedef struct _D3DVECTOR {
-    float x;
-    float y;
-    float z;
-} D3DVECTOR;
-#define D3DVECTOR_DEFINED
-#endif
-
-typedef struct _D3DLIGHT9 {
-    D3DLIGHTTYPE    Type;
-    D3DCOLORVALUE   Diffuse;
-    D3DCOLORVALUE   Specular;
-    D3DCOLORVALUE   Ambient;
-    D3DVECTOR       Position;
-    D3DVECTOR       Direction;
-    float           Range;
-    float           Falloff;
-    float           Attenuation0;
-    float           Attenuation1;
-    float           Attenuation2;
-    float           Theta;
-    float           Phi;
-} D3DLIGHT9;
-
-typedef struct _D3DLINEPATTERN {
-    WORD    wRepeatFactor;
-    WORD    wLinePattern;
-} D3DLINEPATTERN;
-
-typedef struct _D3DLOCKED_BOX {
-    INT                 RowPitch;
-    INT                 SlicePitch;
-    void*               pBits;
-} D3DLOCKED_BOX;
-
-typedef struct _D3DLOCKED_RECT {
-    INT                 Pitch;
-    void*               pBits;
-} D3DLOCKED_RECT;
-
-typedef struct _D3DMATERIAL9 {
-    D3DCOLORVALUE   Diffuse;
-    D3DCOLORVALUE   Ambient;
-    D3DCOLORVALUE   Specular;
-    D3DCOLORVALUE   Emissive;
-    float           Power;
-} D3DMATERIAL9;
-
-#ifndef D3DMATRIX_DEFINED
-typedef struct _D3DMATRIX {
-    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;
-} D3DMATRIX;
-#define D3DMATRIX_DEFINED
-#endif
-
-typedef struct _D3DPRESENT_PARAMETERS_ {
-    UINT                    BackBufferWidth;
-    UINT                    BackBufferHeight;
-    D3DFORMAT               BackBufferFormat;
-    UINT                    BackBufferCount;
-
-    D3DMULTISAMPLE_TYPE     MultiSampleType;
-    DWORD                   MultiSampleQuality;
-
-    D3DSWAPEFFECT           SwapEffect;
-    HWND                    hDeviceWindow;
-    BOOL                    Windowed;
-    BOOL                    EnableAutoDepthStencil;
-    D3DFORMAT               AutoDepthStencilFormat;
-    DWORD                   Flags;
-
-    UINT                    FullScreen_RefreshRateInHz;
-    UINT                    PresentationInterval;
-
-} D3DPRESENT_PARAMETERS;
-
-typedef struct _D3DRANGE {
-    UINT                Offset;
-    UINT                Size;
-} D3DRANGE;
-
-typedef struct _D3DRASTER_STATUS {
-    BOOL            InVBlank;
-    UINT            ScanLine;
-} D3DRASTER_STATUS;
-
-#ifndef D3DRECT_DEFINED
-typedef struct _D3DRECT {
-    LONG x1;
-    LONG y1;
-    LONG x2;
-    LONG y2;
-} D3DRECT;
-#define D3DRECT_DEFINED
-#endif
-
-typedef struct _D3DRECTPATCH_INFO {
-    UINT                StartVertexOffsetWidth;
-    UINT                StartVertexOffsetHeight;
-    UINT                Width;
-    UINT                Height;
-    UINT                Stride;
-    D3DBASISTYPE        Basis;
-    D3DDEGREETYPE       Degree;
-} D3DRECTPATCH_INFO;
-
-typedef struct _D3DSURFACE_DESC {
-    D3DFORMAT           Format;
-    D3DRESOURCETYPE     Type;
-    DWORD               Usage;
-    D3DPOOL             Pool;
-    D3DMULTISAMPLE_TYPE MultiSampleType;
-    DWORD               MultiSampleQuality;
-    UINT                Width;
-    UINT                Height;
-} D3DSURFACE_DESC;
-
-typedef struct _D3DTRIPATCH_INFO {
-    UINT                StartVertexOffset;
-    UINT                NumVertices;
-    D3DBASISTYPE        Basis;
-    D3DDEGREETYPE       Degree;
-} D3DTRIPATCH_INFO;
-
-typedef struct _D3DVERTEXBUFFER_DESC {
-    D3DFORMAT           Format;
-    D3DRESOURCETYPE     Type;
-    DWORD               Usage;
-    D3DPOOL             Pool;
-    UINT                Size;
-    DWORD               FVF;
-} D3DVERTEXBUFFER_DESC;
-
-typedef struct _D3DVIEWPORT9 {
-    DWORD       X;
-    DWORD       Y;
-    DWORD       Width;
-    DWORD       Height;
-    float       MinZ;
-    float       MaxZ;
-} D3DVIEWPORT9;
-
-typedef struct _D3DVOLUME_DESC {
-    D3DFORMAT           Format;
-    D3DRESOURCETYPE     Type;
-    DWORD               Usage;
-    D3DPOOL             Pool;
-
-    UINT                Width;
-    UINT                Height;
-    UINT                Depth;
-} D3DVOLUME_DESC;
-
-/* Parts added with d3d9ex */
-#if !defined(D3D_DISABLE_9EX)
-typedef enum D3DSCANLINEORDERING
-{
-    D3DSCANLINEORDERING_UNKNOWN,
-    D3DSCANLINEORDERING_PROGRESSIVE,
-    D3DSCANLINEORDERING_INTERLACED,
-} D3DSCANLINEORDERING;
-
-
-typedef struct D3DDISPLAYMODEFILTER
-{
-    UINT                Size;
-    D3DFORMAT           Format;
-    D3DSCANLINEORDERING ScanLineOrdering;
-} D3DDISPLAYMODEFILTER;
-
-typedef struct D3DDISPLAYMODEEX
-{
-    UINT                Size;
-    UINT                Width;
-    UINT                Height;
-    UINT                RefreshRate;
-    D3DFORMAT           Format;
-    D3DSCANLINEORDERING ScanLineOrdering;
-} D3DDISPLAYMODEEX;
-
-typedef enum D3DDISPLAYROTATION
-{
-    D3DDISPLAYROTATION_IDENTITY = 1,
-    D3DDISPLAYROTATION_90,
-    D3DDISPLAYROTATION_180,
-    D3DDISPLAYROTATION_270
-} D3DDISPLAYROTATION;
-
-typedef enum _D3DCOMPOSERECTSOP{
-    D3DCOMPOSERECTS_COPY        = 1,
-    D3DCOMPOSERECTS_OR,
-    D3DCOMPOSERECTS_AND,
-    D3DCOMPOSERECTS_NEG,
-    D3DCOMPOSERECTS_FORCE_DWORD = 0x7fffffff
-} D3DCOMPOSERECTSOP;
-#endif /* D3D_DISABLE_9EX */
-
-typedef enum _D3DSHADER_COMPARISON
-{
-    D3DSPC_RESERVED0 = 0,
-    D3DSPC_GT,
-    D3DSPC_EQ,
-    D3DSPC_GE,
-    D3DSPC_LT,
-    D3DSPC_NE,
-    D3DSPC_LE,
-    D3DSPC_RESERVED1,
-} D3DSHADER_COMPARISON;
-
-#endif /* __WINE_D3D9TYPES_H */
diff --git a/misc/builddeps/win32/dx/include/d3dcaps.h b/misc/builddeps/win32/dx/include/d3dcaps.h
deleted file mode 100644 (file)
index b44c49d..0000000
+++ /dev/null
@@ -1,432 +0,0 @@
-/*
- * Copyright (C) 2000 Peter Hunnisett
- *
- * 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_D3DCAPS_H
-#define __WINE_D3DCAPS_H
-
-#include <ddraw.h>
-
-typedef struct _D3DTRANSFORMCAPS {
-       DWORD dwSize;
-       DWORD dwCaps;
-} D3DTRANSFORMCAPS, *LPD3DTRANSFORMCAPS;
-
-#define D3DTRANSFORMCAPS_CLIP           0x00000001L
-
-typedef struct _D3DLIGHTINGCAPS {
-       DWORD dwSize;
-       DWORD dwCaps;
-       DWORD dwLightingModel;
-       DWORD dwNumLights;
-} D3DLIGHTINGCAPS, *LPD3DLIGHTINGCAPS;
-
-#define D3DLIGHTINGMODEL_RGB            0x00000001
-#define D3DLIGHTINGMODEL_MONO           0x00000002
-
-#define D3DLIGHTCAPS_POINT              0x00000001
-#define D3DLIGHTCAPS_SPOT               0x00000002
-#define D3DLIGHTCAPS_DIRECTIONAL        0x00000004
-#define D3DLIGHTCAPS_PARALLELPOINT      0x00000008
-#define D3DLIGHTCAPS_GLSPOT             0x00000010
-
-typedef struct _D3dPrimCaps {
-    DWORD dwSize;
-    DWORD dwMiscCaps;
-    DWORD dwRasterCaps;
-    DWORD dwZCmpCaps;
-    DWORD dwSrcBlendCaps;
-    DWORD dwDestBlendCaps;
-    DWORD dwAlphaCmpCaps;
-    DWORD dwShadeCaps;
-    DWORD dwTextureCaps;
-    DWORD dwTextureFilterCaps;
-    DWORD dwTextureBlendCaps;
-    DWORD dwTextureAddressCaps;
-    DWORD dwStippleWidth;
-    DWORD dwStippleHeight;
-} D3DPRIMCAPS, *LPD3DPRIMCAPS;
-
-#define D3DPMISCCAPS_MASKPLANES         0x00000001
-#define D3DPMISCCAPS_MASKZ              0x00000002
-#define D3DPMISCCAPS_LINEPATTERNREP     0x00000004
-#define D3DPMISCCAPS_CONFORMANT         0x00000008
-#define D3DPMISCCAPS_CULLNONE           0x00000010
-#define D3DPMISCCAPS_CULLCW             0x00000020
-#define D3DPMISCCAPS_CULLCCW            0x00000040
-
-#define D3DPRASTERCAPS_DITHER                     0x00000001
-#define D3DPRASTERCAPS_ROP2                       0x00000002
-#define D3DPRASTERCAPS_XOR                        0x00000004
-#define D3DPRASTERCAPS_PAT                        0x00000008
-#define D3DPRASTERCAPS_ZTEST                      0x00000010
-#define D3DPRASTERCAPS_SUBPIXEL                   0x00000020
-#define D3DPRASTERCAPS_SUBPIXELX                  0x00000040
-#define D3DPRASTERCAPS_FOGVERTEX                  0x00000080
-#define D3DPRASTERCAPS_FOGTABLE                   0x00000100
-#define D3DPRASTERCAPS_STIPPLE                    0x00000200
-#define D3DPRASTERCAPS_ANTIALIASSORTDEPENDENT     0x00000400
-#define D3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT   0x00000800
-#define D3DPRASTERCAPS_ANTIALIASEDGES             0x00001000
-#define D3DPRASTERCAPS_MIPMAPLODBIAS              0x00002000
-#define D3DPRASTERCAPS_ZBIAS                      0x00004000
-#define D3DPRASTERCAPS_ZBUFFERLESSHSR             0x00008000
-#define D3DPRASTERCAPS_FOGRANGE                   0x00010000
-#define D3DPRASTERCAPS_ANISOTROPY                 0x00020000
-#define D3DPRASTERCAPS_WBUFFER                    0x00040000
-#define D3DPRASTERCAPS_TRANSLUCENTSORTINDEPENDENT 0x00080000
-#define D3DPRASTERCAPS_WFOG                       0x00100000
-#define D3DPRASTERCAPS_ZFOG                       0x00200000
-
-#define D3DPCMPCAPS_NEVER               0x00000001
-#define D3DPCMPCAPS_LESS                0x00000002
-#define D3DPCMPCAPS_EQUAL               0x00000004
-#define D3DPCMPCAPS_LESSEQUAL           0x00000008
-#define D3DPCMPCAPS_GREATER             0x00000010
-#define D3DPCMPCAPS_NOTEQUAL            0x00000020
-#define D3DPCMPCAPS_GREATEREQUAL        0x00000040
-#define D3DPCMPCAPS_ALWAYS              0x00000080
-
-#define D3DPBLENDCAPS_ZERO              0x00000001
-#define D3DPBLENDCAPS_ONE               0x00000002
-#define D3DPBLENDCAPS_SRCCOLOR          0x00000004
-#define D3DPBLENDCAPS_INVSRCCOLOR       0x00000008
-#define D3DPBLENDCAPS_SRCALPHA          0x00000010
-#define D3DPBLENDCAPS_INVSRCALPHA       0x00000020
-#define D3DPBLENDCAPS_DESTALPHA         0x00000040
-#define D3DPBLENDCAPS_INVDESTALPHA      0x00000080
-#define D3DPBLENDCAPS_DESTCOLOR         0x00000100
-#define D3DPBLENDCAPS_INVDESTCOLOR      0x00000200
-#define D3DPBLENDCAPS_SRCALPHASAT       0x00000400
-#define D3DPBLENDCAPS_BOTHSRCALPHA      0x00000800
-#define D3DPBLENDCAPS_BOTHINVSRCALPHA   0x00001000
-
-#define D3DPSHADECAPS_COLORFLATMONO     0x00000001
-#define D3DPSHADECAPS_COLORFLATRGB      0x00000002
-#define D3DPSHADECAPS_COLORGOURAUDMONO  0x00000004
-#define D3DPSHADECAPS_COLORGOURAUDRGB   0x00000008
-#define D3DPSHADECAPS_COLORPHONGMONO    0x00000010
-#define D3DPSHADECAPS_COLORPHONGRGB     0x00000020
-
-#define D3DPSHADECAPS_SPECULARFLATMONO    0x00000040
-#define D3DPSHADECAPS_SPECULARFLATRGB     0x00000080
-#define D3DPSHADECAPS_SPECULARGOURAUDMONO 0x00000100
-#define D3DPSHADECAPS_SPECULARGOURAUDRGB  0x00000200
-#define D3DPSHADECAPS_SPECULARPHONGMONO   0x00000400
-#define D3DPSHADECAPS_SPECULARPHONGRGB    0x00000800
-
-#define D3DPSHADECAPS_ALPHAFLATBLEND       0x00001000
-#define D3DPSHADECAPS_ALPHAFLATSTIPPLED    0x00002000
-#define D3DPSHADECAPS_ALPHAGOURAUDBLEND    0x00004000
-#define D3DPSHADECAPS_ALPHAGOURAUDSTIPPLED 0x00008000
-#define D3DPSHADECAPS_ALPHAPHONGBLEND      0x00010000
-#define D3DPSHADECAPS_ALPHAPHONGSTIPPLED   0x00020000
-
-#define D3DPSHADECAPS_FOGFLAT           0x00040000
-#define D3DPSHADECAPS_FOGGOURAUD        0x00080000
-#define D3DPSHADECAPS_FOGPHONG          0x00100000
-
-#define D3DPTEXTURECAPS_PERSPECTIVE              0x00000001
-#define D3DPTEXTURECAPS_POW2                     0x00000002
-#define D3DPTEXTURECAPS_ALPHA                    0x00000004
-#define D3DPTEXTURECAPS_TRANSPARENCY             0x00000008
-#define D3DPTEXTURECAPS_BORDER                   0x00000010
-#define D3DPTEXTURECAPS_SQUAREONLY               0x00000020
-#define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 0x00000040
-#define D3DPTEXTURECAPS_ALPHAPALETTE             0x00000080
-#define D3DPTEXTURECAPS_NONPOW2CONDITIONAL  0x00000100L
-/* yes actually 0x00000200 is unused - or at least unreleased */
-#define D3DPTEXTURECAPS_PROJECTED                0x00000400
-#define D3DPTEXTURECAPS_CUBEMAP                  0x00000800
-#define D3DPTEXTURECAPS_COLORKEYBLEND            0x00001000
-
-#define D3DPTFILTERCAPS_NEAREST           0x00000001
-#define D3DPTFILTERCAPS_LINEAR            0x00000002
-#define D3DPTFILTERCAPS_MIPNEAREST        0x00000004
-#define D3DPTFILTERCAPS_MIPLINEAR         0x00000008
-#define D3DPTFILTERCAPS_LINEARMIPNEAREST  0x00000010
-#define D3DPTFILTERCAPS_LINEARMIPLINEAR   0x00000020
-/* yes - missing numbers */
-#define D3DPTFILTERCAPS_MINFPOINT         0x00000100
-#define D3DPTFILTERCAPS_MINFLINEAR        0x00000200
-#define D3DPTFILTERCAPS_MINFANISOTROPIC   0x00000400
-/* yes - missing numbers */
-#define D3DPTFILTERCAPS_MIPFPOINT         0x00010000
-#define D3DPTFILTERCAPS_MIPFLINEAR        0x00020000
-/* yes - missing numbers */
-#define D3DPTFILTERCAPS_MAGFPOINT         0x01000000
-#define D3DPTFILTERCAPS_MAGFLINEAR        0x02000000
-#define D3DPTFILTERCAPS_MAGFANISOTROPIC   0x04000000
-#define D3DPTFILTERCAPS_MAGFAFLATCUBIC    0x08000000
-#define D3DPTFILTERCAPS_MAGFGAUSSIANCUBIC 0x10000000
-
-#define D3DPTBLENDCAPS_DECAL            0x00000001
-#define D3DPTBLENDCAPS_MODULATE         0x00000002
-#define D3DPTBLENDCAPS_DECALALPHA       0x00000004
-#define D3DPTBLENDCAPS_MODULATEALPHA    0x00000008
-#define D3DPTBLENDCAPS_DECALMASK        0x00000010
-#define D3DPTBLENDCAPS_MODULATEMASK     0x00000020
-#define D3DPTBLENDCAPS_COPY             0x00000040
-#define D3DPTBLENDCAPS_ADD              0x00000080
-
-#define D3DPTADDRESSCAPS_WRAP           0x00000001
-#define D3DPTADDRESSCAPS_MIRROR         0x00000002
-#define D3DPTADDRESSCAPS_CLAMP          0x00000004
-#define D3DPTADDRESSCAPS_BORDER         0x00000008
-#define D3DPTADDRESSCAPS_INDEPENDENTUV  0x00000010
-
-
-typedef struct _D3DDeviceDesc {
-        DWORD           dwSize;
-        DWORD           dwFlags;
-        D3DCOLORMODEL   dcmColorModel;
-        DWORD           dwDevCaps;
-        D3DTRANSFORMCAPS dtcTransformCaps;
-        BOOL            bClipping;
-        D3DLIGHTINGCAPS dlcLightingCaps;
-        D3DPRIMCAPS     dpcLineCaps;
-        D3DPRIMCAPS     dpcTriCaps;
-        DWORD           dwDeviceRenderBitDepth;
-        DWORD           dwDeviceZBufferBitDepth;
-        DWORD           dwMaxBufferSize;
-        DWORD           dwMaxVertexCount;
-
-        DWORD           dwMinTextureWidth,dwMinTextureHeight;
-        DWORD           dwMaxTextureWidth,dwMaxTextureHeight;
-        DWORD           dwMinStippleWidth,dwMaxStippleWidth;
-        DWORD           dwMinStippleHeight,dwMaxStippleHeight;
-
-        DWORD       dwMaxTextureRepeat;
-        DWORD       dwMaxTextureAspectRatio;
-        DWORD       dwMaxAnisotropy;
-
-        D3DVALUE    dvGuardBandLeft;
-        D3DVALUE    dvGuardBandTop;
-        D3DVALUE    dvGuardBandRight;
-        D3DVALUE    dvGuardBandBottom;
-
-        D3DVALUE    dvExtentsAdjust;
-        DWORD       dwStencilCaps;
-
-        DWORD       dwFVFCaps;
-        DWORD       dwTextureOpCaps;
-        WORD        wMaxTextureBlendStages;
-        WORD        wMaxSimultaneousTextures;
-} D3DDEVICEDESC,*LPD3DDEVICEDESC;
-#define D3DDEVICEDESCSIZE (sizeof(D3DDEVICEDESC))
-
-typedef struct _D3DDeviceDesc7 {
-        DWORD            dwDevCaps;
-        D3DPRIMCAPS      dpcLineCaps;
-        D3DPRIMCAPS      dpcTriCaps;
-        DWORD            dwDeviceRenderBitDepth;
-        DWORD            dwDeviceZBufferBitDepth;
-
-        DWORD       dwMinTextureWidth, dwMinTextureHeight;
-        DWORD       dwMaxTextureWidth, dwMaxTextureHeight;
-
-        DWORD       dwMaxTextureRepeat;
-        DWORD       dwMaxTextureAspectRatio;
-        DWORD       dwMaxAnisotropy;
-
-        D3DVALUE    dvGuardBandLeft;
-        D3DVALUE    dvGuardBandTop;
-        D3DVALUE    dvGuardBandRight;
-        D3DVALUE    dvGuardBandBottom;
-
-        D3DVALUE    dvExtentsAdjust;
-        DWORD       dwStencilCaps;
-        DWORD       dwFVFCaps;
-        DWORD       dwTextureOpCaps;
-        WORD        wMaxTextureBlendStages;
-        WORD        wMaxSimultaneousTextures;
-
-        DWORD       dwMaxActiveLights;
-        D3DVALUE    dvMaxVertexW;
-        GUID        deviceGUID;
-
-        WORD        wMaxUserClipPlanes;
-        WORD        wMaxVertexBlendMatrices;
-
-        DWORD       dwVertexProcessingCaps;
-
-        DWORD       dwReserved1;
-        DWORD       dwReserved2;
-        DWORD       dwReserved3;
-        DWORD       dwReserved4;
-} D3DDEVICEDESC7, *LPD3DDEVICEDESC7;
-#define D3DDEVICEDESC7SIZE (sizeof(D3DDEVICEDESC7))
-
-#define D3DDD_COLORMODEL                0x00000001
-#define D3DDD_DEVCAPS                   0x00000002
-#define D3DDD_TRANSFORMCAPS             0x00000004
-#define D3DDD_LIGHTINGCAPS              0x00000008
-#define D3DDD_BCLIPPING                 0x00000010
-#define D3DDD_LINECAPS                  0x00000020
-#define D3DDD_TRICAPS                   0x00000040
-#define D3DDD_DEVICERENDERBITDEPTH      0x00000080
-#define D3DDD_DEVICEZBUFFERBITDEPTH     0x00000100
-#define D3DDD_MAXBUFFERSIZE             0x00000200
-#define D3DDD_MAXVERTEXCOUNT            0x00000400
-
-#define D3DDEVCAPS_FLOATTLVERTEX           0x00000001
-#define D3DDEVCAPS_SORTINCREASINGZ         0x00000002
-#define D3DDEVCAPS_SORTDECREASINGZ         0X00000004
-#define D3DDEVCAPS_SORTEXACT               0x00000008
-#define D3DDEVCAPS_EXECUTESYSTEMMEMORY     0x00000010
-#define D3DDEVCAPS_EXECUTEVIDEOMEMORY      0x00000020
-#define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY    0x00000040
-#define D3DDEVCAPS_TLVERTEXVIDEOMEMORY     0x00000080
-#define D3DDEVCAPS_TEXTURESYSTEMMEMORY     0x00000100
-#define D3DDEVCAPS_TEXTUREVIDEOMEMORY      0x00000200
-#define D3DDEVCAPS_DRAWPRIMTLVERTEX        0x00000400
-#define D3DDEVCAPS_CANRENDERAFTERFLIP      0x00000800
-#define D3DDEVCAPS_TEXTURENONLOCALVIDMEM   0x00001000
-#define D3DDEVCAPS_DRAWPRIMITIVES2         0x00002000
-#define D3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x00004000
-#define D3DDEVCAPS_DRAWPRIMITIVES2EX       0x00008000
-#define D3DDEVCAPS_HWTRANSFORMANDLIGHT     0x00010000
-#define D3DDEVCAPS_CANBLTSYSTONONLOCAL     0x00020000
-#define D3DDEVCAPS_HWRASTERIZATION         0x00080000
-
-#define D3DSTENCILCAPS_KEEP     0x00000001
-#define D3DSTENCILCAPS_ZERO     0x00000002
-#define D3DSTENCILCAPS_REPLACE  0x00000004
-#define D3DSTENCILCAPS_INCRSAT  0x00000008
-#define D3DSTENCILCAPS_DECRSAT  0x00000010
-#define D3DSTENCILCAPS_INVERT   0x00000020
-#define D3DSTENCILCAPS_INCR     0x00000040
-#define D3DSTENCILCAPS_DECR     0x00000080
-
-#define D3DTEXOPCAPS_DISABLE                    0x00000001
-#define D3DTEXOPCAPS_SELECTARG1                 0x00000002
-#define D3DTEXOPCAPS_SELECTARG2                 0x00000004
-#define D3DTEXOPCAPS_MODULATE                   0x00000008
-#define D3DTEXOPCAPS_MODULATE2X                 0x00000010
-#define D3DTEXOPCAPS_MODULATE4X                 0x00000020
-#define D3DTEXOPCAPS_ADD                        0x00000040
-#define D3DTEXOPCAPS_ADDSIGNED                  0x00000080
-#define D3DTEXOPCAPS_ADDSIGNED2X                0x00000100
-#define D3DTEXOPCAPS_SUBTRACT                   0x00000200
-#define D3DTEXOPCAPS_ADDSMOOTH                  0x00000400
-#define D3DTEXOPCAPS_BLENDDIFFUSEALPHA          0x00000800
-#define D3DTEXOPCAPS_BLENDTEXTUREALPHA          0x00001000
-#define D3DTEXOPCAPS_BLENDFACTORALPHA           0x00002000
-#define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM        0x00004000
-#define D3DTEXOPCAPS_BLENDCURRENTALPHA          0x00008000
-#define D3DTEXOPCAPS_PREMODULATE                0x00010000
-#define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR     0x00020000
-#define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA     0x00040000
-#define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR  0x00080000
-#define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA  0x00100000
-#define D3DTEXOPCAPS_BUMPENVMAP                 0x00200000
-#define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE        0x00400000
-#define D3DTEXOPCAPS_DOTPRODUCT3                0x00800000
-
-#define D3DFVFCAPS_TEXCOORDCOUNTMASK    0x0000FFFF
-#define D3DFVFCAPS_DONOTSTRIPELEMENTS   0x00080000
-
-#define D3DVTXPCAPS_TEXGEN              0x00000001
-#define D3DVTXPCAPS_MATERIALSOURCE7     0x00000002
-#define D3DVTXPCAPS_VERTEXFOG           0x00000004
-#define D3DVTXPCAPS_DIRECTIONALLIGHTS   0x00000008
-#define D3DVTXPCAPS_POSITIONALLIGHTS    0x00000010
-#define D3DVTXPCAPS_LOCALVIEWER         0x00000020
-
-typedef HRESULT (CALLBACK *LPD3DENUMDEVICESCALLBACK)(LPGUID lpGuid,LPSTR lpDeviceDescription,LPSTR lpDeviceName,LPD3DDEVICEDESC,LPD3DDEVICEDESC,LPVOID);
-typedef HRESULT (CALLBACK *LPD3DENUMDEVICESCALLBACK7)(LPSTR lpDeviceDescription, LPSTR lpDeviceName, LPD3DDEVICEDESC7, LPVOID);
-
-#define D3DFDS_COLORMODEL          0x00000001
-#define D3DFDS_GUID                0x00000002
-#define D3DFDS_HARDWARE            0x00000004
-#define D3DFDS_TRIANGLES           0x00000008
-#define D3DFDS_LINES               0x00000010
-#define D3DFDS_MISCCAPS            0x00000020
-#define D3DFDS_RASTERCAPS          0x00000040
-#define D3DFDS_ZCMPCAPS            0x00000080
-#define D3DFDS_ALPHACMPCAPS        0x00000100
-#define D3DFDS_SRCBLENDCAPS        0x00000200
-#define D3DFDS_DSTBLENDCAPS        0x00000400
-#define D3DFDS_SHADECAPS           0x00000800
-#define D3DFDS_TEXTURECAPS         0x00001000
-#define D3DFDS_TEXTUREFILTERCAPS   0x00002000
-#define D3DFDS_TEXTUREBLENDCAPS    0x00004000
-#define D3DFDS_TEXTUREADDRESSCAPS  0x00008000
-
-typedef struct _D3DFINDDEVICESEARCH {
-    DWORD               dwSize;
-    DWORD               dwFlags;
-    BOOL                bHardware;
-    D3DCOLORMODEL       dcmColorModel;
-    GUID                guid;
-    DWORD               dwCaps;
-    D3DPRIMCAPS         dpcPrimCaps;
-} D3DFINDDEVICESEARCH,*LPD3DFINDDEVICESEARCH;
-
-typedef struct _D3DFINDDEVICERESULT {
-    DWORD               dwSize;
-    GUID                guid;
-    D3DDEVICEDESC       ddHwDesc;
-    D3DDEVICEDESC       ddSwDesc;
-} D3DFINDDEVICERESULT,*LPD3DFINDDEVICERESULT;
-
-typedef struct _D3DExecuteBufferDesc {
-  DWORD  dwSize;
-  DWORD  dwFlags;
-  DWORD  dwCaps;
-  DWORD  dwBufferSize;
-  LPVOID lpData;
-} D3DEXECUTEBUFFERDESC, *LPD3DEXECUTEBUFFERDESC;
-
-#define D3DDEB_BUFSIZE          0x00000001
-#define D3DDEB_CAPS             0x00000002
-#define D3DDEB_LPDATA           0x00000004
-
-#define D3DDEBCAPS_SYSTEMMEMORY 0x00000001
-#define D3DDEBCAPS_VIDEOMEMORY  0x00000002
-#define D3DDEBCAPS_MEM          (D3DDEBCAPS_SYSTEMMEMORY|D3DDEBCAPS_VIDEOMEMORY) /* = 0x3 */
-
-typedef struct _D3DDEVINFO_TEXTUREMANAGER {
-       BOOL    bThrashing;
-       DWORD   dwApproxBytesDownloaded;
-       DWORD   dwNumEvicts;
-       DWORD   dwNumVidCreates;
-       DWORD   dwNumTexturesUsed;
-       DWORD   dwNumUsedTexInVid;
-       DWORD   dwWorkingSet;
-       DWORD   dwWorkingSetBytes;
-       DWORD   dwTotalManaged;
-       DWORD   dwTotalBytes;
-       DWORD   dwLastPri;
-} D3DDEVINFO_TEXTUREMANAGER, *LPD3DDEVINFO_TEXTUREMANAGER;
-
-typedef struct _D3DDEVINFO_TEXTURING {
-       DWORD   dwNumLoads;
-       DWORD   dwApproxBytesLoaded;
-       DWORD   dwNumPreLoads;
-       DWORD   dwNumSet;
-       DWORD   dwNumCreates;
-       DWORD   dwNumDestroys;
-       DWORD   dwNumSetPriorities;
-       DWORD   dwNumSetLODs;
-       DWORD   dwNumLocks;
-       DWORD   dwNumGetDCs;
-} D3DDEVINFO_TEXTURING, *LPD3DDEVINFO_TEXTURING;
-
-
-
-#endif
diff --git a/misc/builddeps/win32/dx/include/d3dhal.h b/misc/builddeps/win32/dx/include/d3dhal.h
deleted file mode 100644 (file)
index 806f299..0000000
+++ /dev/null
@@ -1,535 +0,0 @@
-/*
- * Direct3D driver interface
- * (DirectX 7 version)
- *
- * Copyright (C) 2001 Ove Kaaven
- *
- * 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 _D3DHAL_H_
-#define _D3DHAL_H_
-
-#include <_mingw_dxhelper.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <d3d.h>
-
-/*****************************************************************************
- * device info structures
- */
-typedef struct _D3DDeviceDesc_V1 {
-  DWORD                        dwSize;
-  DWORD                        dwFlags;
-  D3DCOLORMODEL                dcmColorModel;
-  DWORD                        dwDevCaps;
-  D3DTRANSFORMCAPS     dtcTransformCaps;
-  WINBOOL              bClipping;
-  D3DLIGHTINGCAPS      dlcLightingCaps;
-  D3DPRIMCAPS          dpcLineCaps;
-  D3DPRIMCAPS          dpcTriCaps;
-  DWORD                        dwDeviceRenderBitDepth;
-  DWORD                        dwDeviceZBufferBitDepth;
-  DWORD                        dwMaxBufferSize;
-  DWORD                        dwMaxVertexCount;
-} D3DDEVICEDESC_V1,*LPD3DDEVICEDESC_V1;
-
-/* this is to allow keeping the bulk of our OpenGL code out of x11drv */
-#define D3DDD_WINE_OPENGL_DEVICE 0x00008000
-
-typedef struct _D3DHAL_GLOBALDRIVERDATA {
-  DWORD                        dwSize;
-  D3DDEVICEDESC_V1     hwCaps;
-  DWORD                        dwNumVertices;
-  DWORD                        dwNumClipVertices;
-  DWORD                        dwNumTextureFormats;
-  LPDDSURFACEDESC      lpTextureFormats;
-} D3DHAL_GLOBALDRIVERDATA;
-
-#ifndef D3DHAL_GLOBALDRIVERDATA_DEFINED
-typedef D3DHAL_GLOBALDRIVERDATA *LPD3DHAL_GLOBALDRIVERDATA;
-#define D3DHAL_GLOBALDRIVERDATA_DEFINED
-#endif
-
-typedef struct _D3DHAL_D3DEXTENDEDCAPS {
-  DWORD                        dwSize;
-  /* DirectX 5 */
-  DWORD                        dwMinTextureWidth, dwMaxTextureWidth;
-  DWORD                        dwMinTextureHeight, dwMaxTextureHeight;
-  DWORD                        dwMinStippleWidth, dwMaxStippleWidth;
-  DWORD                        dwMinStippleHeight, dwMaxStippleHeight;
-  /* DirectX 6 */
-  DWORD                        dwMaxTextureRepeat;
-  DWORD                        dwMaxTextureAspectRatio;
-  DWORD                        dwMaxAnisotropy;
-  D3DVALUE             dvGuardBandLeft;
-  D3DVALUE             dvGuardBandTop;
-  D3DVALUE             dvGuardBandRight;
-  D3DVALUE             dvGuardBandBottom;
-  D3DVALUE             dvExtentsAdjust;
-  DWORD                        dwStencilCaps;
-  DWORD                        dwFVFCaps;
-  DWORD                        dwTextureOpCaps;
-  WORD                 wMaxTextureBlendStages;
-  WORD                 wMaxSimultaneousTextures;
-  /* DirectX 7 */
-  DWORD                        dwMaxActiveLights;
-  D3DVALUE             dvMaxVertexW;
-  WORD                 wMaxUserClipPlanes;
-  WORD                 wMaxVertexBlendMatrices;
-  DWORD                        dwVertexProcessingCaps;
-  DWORD                        dwReserved1;
-  DWORD                        dwReserved2;
-  DWORD                        dwReserved3;
-  DWORD                        dwReserved4;
-} D3DHAL_D3DEXTENDEDCAPS,*LPD3DHAL_D3DEXTENDEDCAPS;
-
-/*****************************************************************************
- * d3d->driver callbacks
- */
-typedef struct _D3DHAL_CONTEXTCREATEDATA       *LPD3DHAL_CONTEXTCREATEDATA;
-typedef struct _D3DHAL_CONTEXTDESTROYDATA      *LPD3DHAL_CONTEXTDESTROYDATA;
-typedef struct _D3DHAL_CONTEXTDESTROYALLDATA   *LPD3DHAL_CONTEXTDESTROYALLDATA;
-typedef struct _D3DHAL_SCENECAPTUREDATA                *LPD3DHAL_SCENECAPTUREDATA;
-typedef struct _D3DHAL_RENDERSTATEDATA         *LPD3DHAL_RENDERSTATEDATA;
-typedef struct _D3DHAL_RENDERPRIMITIVEDATA     *LPD3DHAL_RENDERPRIMITIVEDATA;
-typedef struct _D3DHAL_TEXTURECREATEDATA       *LPD3DHAL_TEXTURECREATEDATA;
-typedef struct _D3DHAL_TEXTUREDESTROYDATA      *LPD3DHAL_TEXTUREDESTROYDATA;
-typedef struct _D3DHAL_TEXTURESWAPDATA         *LPD3DHAL_TEXTURESWAPDATA;
-typedef struct _D3DHAL_TEXTUREGETSURFDATA      *LPD3DHAL_TEXTUREGETSURFDATA;
-typedef struct _D3DHAL_GETSTATEDATA            *LPD3DHAL_GETSTATEDATA;
-
-typedef DWORD (PASCAL *LPD3DHAL_CONTEXTCREATECB)    (LPD3DHAL_CONTEXTCREATEDATA);
-typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYCB)   (LPD3DHAL_CONTEXTDESTROYDATA);
-typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYALLCB)(LPD3DHAL_CONTEXTDESTROYALLDATA);
-typedef DWORD (PASCAL *LPD3DHAL_SCENECAPTURECB)            (LPD3DHAL_SCENECAPTUREDATA);
-typedef DWORD (PASCAL *LPD3DHAL_RENDERSTATECB)     (LPD3DHAL_RENDERSTATEDATA);
-typedef DWORD (PASCAL *LPD3DHAL_RENDERPRIMITIVECB)  (LPD3DHAL_RENDERPRIMITIVEDATA);
-typedef DWORD (PASCAL *LPD3DHAL_TEXTURECREATECB)    (LPD3DHAL_TEXTURECREATEDATA);
-typedef DWORD (PASCAL *LPD3DHAL_TEXTUREDESTROYCB)   (LPD3DHAL_TEXTUREDESTROYDATA);
-typedef DWORD (PASCAL *LPD3DHAL_TEXTURESWAPCB)     (LPD3DHAL_TEXTURESWAPDATA);
-typedef DWORD (PASCAL *LPD3DHAL_TEXTUREGETSURFCB)   (LPD3DHAL_TEXTUREGETSURFDATA);
-typedef DWORD (PASCAL *LPD3DHAL_GETSTATECB)        (LPD3DHAL_GETSTATEDATA);
-
-typedef struct _D3DHAL_CALLBACKS {
-  DWORD                                dwSize;
-  LPD3DHAL_CONTEXTCREATECB     ContextCreate;
-  LPD3DHAL_CONTEXTDESTROYCB    ContextDestroy;
-  LPD3DHAL_CONTEXTDESTROYALLCB ContextDestroyAll;
-  LPD3DHAL_SCENECAPTURECB      SceneCapture;
-  LPVOID                       lpReserved10;
-  LPVOID                       lpReserved11;
-  LPD3DHAL_RENDERSTATECB       RenderState;
-  LPD3DHAL_RENDERPRIMITIVECB   RenderPrimitive;
-  DWORD                                dwReserved;
-  LPD3DHAL_TEXTURECREATECB     TextureCreate;
-  LPD3DHAL_TEXTUREDESTROYCB    TextureDestroy;
-  LPD3DHAL_TEXTURESWAPCB       TextureSwap;
-  LPD3DHAL_TEXTUREGETSURFCB    TextureGetSurf;
-  /* now why did MS create CALLBACKS2 and CALLBACKS3 structures if
-   * all these reserved fields were available? we may never know */
-  LPVOID                       lpReserved12;
-  LPVOID                       lpReserved13;
-  LPVOID                       lpReserved14;
-  LPVOID                       lpReserved15;
-  LPVOID                       lpReserved16;
-  LPVOID                       lpReserved17;
-  LPVOID                       lpReserved18;
-  LPVOID                       lpReserved19;
-  LPVOID                       lpReserved20;
-  LPVOID                       lpReserved21;
-  LPD3DHAL_GETSTATECB          GetState;
-  DWORD                                dwReserved0;
-  DWORD                                dwReserved1;
-  DWORD                                dwReserved2;
-  DWORD                                dwReserved3;
-  DWORD                                dwReserved4;
-  DWORD                                dwReserved5;
-  DWORD                                dwReserved6;
-  DWORD                                dwReserved7;
-  DWORD                                dwReserved8;
-  DWORD                                dwReserved9;
-} D3DHAL_CALLBACKS;
-
-#ifndef D3DHAL_CALLBACKS_DEFINED
-typedef D3DHAL_CALLBACKS *LPD3DHAL_CALLBACKS;
-#define D3DHAL_CALLBACKS_DEFINED
-#endif
-
-typedef struct _D3DHAL_SETRENDERTARGETDATA             *LPD3DHAL_SETRENDERTARGETDATA;
-typedef struct _D3DHAL_CLEARDATA                       *LPD3DHAL_CLEARDATA;
-typedef struct _D3DHAL_DRAWONEPRIMITIVEDATA            *LPD3DHAL_DRAWONEPRIMITIVEDATA;
-typedef struct _D3DHAL_DRAWONEINDEXEDPRIMITIVEDATA     *LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA;
-typedef struct _D3DHAL_DRAWPRIMITIVESDATA              *LPD3DHAL_DRAWPRIMITIVESDATA;
-
-typedef DWORD (PASCAL *LPD3DHAL_SETRENDERTARGETCB)       (LPD3DHAL_SETRENDERTARGETDATA);
-typedef DWORD (PASCAL *LPD3DHAL_CLEARCB)                 (LPD3DHAL_CLEARDATA);
-typedef DWORD (PASCAL *LPD3DHAL_DRAWONEPRIMITIVECB)      (LPD3DHAL_DRAWONEPRIMITIVEDATA);
-typedef DWORD (PASCAL *LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB)(LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA);
-typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVESCB)        (LPD3DHAL_DRAWPRIMITIVESDATA);
-
-typedef struct _D3DHAL_CALLBACKS2 {
-  DWORD                                        dwSize;
-  DWORD                                        dwFlags;
-  LPD3DHAL_SETRENDERTARGETCB           SetRenderTarget;
-  LPD3DHAL_CLEARCB                     Clear;
-  LPD3DHAL_DRAWONEPRIMITIVECB          DrawOnePrimitive;
-  LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB   DrawOneIndexedPrimitive;
-  LPD3DHAL_DRAWPRIMITIVESCB            DrawPrimitives;
-} D3DHAL_CALLBACKS2,*LPD3DHAL_CALLBACKS2;
-
-typedef struct _D3DHAL_CLEAR2DATA                      *LPD3DHAL_CLEAR2DATA;
-typedef struct _D3DHAL_VALIDATETEXTURESTAGESTATEDATA   *LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA;
-typedef struct _D3DHAL_DRAWPRIMITIVES2DATA             *LPD3DHAL_DRAWPRIMITIVES2DATA;
-
-typedef DWORD (PASCAL *LPD3DHAL_CLEAR2CB)                (LPD3DHAL_CLEAR2DATA);
-typedef DWORD (PASCAL *LPD3DHAL_VALIDATETEXTURESTAGESTATECB)(LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA);
-typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVES2CB)       (LPD3DHAL_DRAWPRIMITIVES2DATA);
-
-typedef struct _D3DHAL_CALLBACKS3 {
-  DWORD                                        dwSize;
-  DWORD                                        dwFlags;
-  LPD3DHAL_CLEAR2CB                    Clear2;
-  LPVOID                               lpvReserved;
-  LPD3DHAL_VALIDATETEXTURESTAGESTATECB ValidateTextureStageState;
-  LPD3DHAL_DRAWPRIMITIVES2CB           DrawPrimitives2;
-} D3DHAL_CALLBACKS3,*LPD3DHAL_CALLBACKS3;
-
-/*****************************************************************************
- * parameter structures
- */
-typedef struct _D3DHAL_CONTEXTCREATEDATA {
-  union {
-    LPDDRAWI_DIRECTDRAW_GBL    lpDDGbl; /* pre-DirectX 7 */
-    LPDDRAWI_DIRECTDRAW_LCL    lpDDLcl; /* DirectX 7 */
-  } DUMMYUNIONNAME1;
-  union {
-    LPDIRECTDRAWSURFACE                lpDDS;
-    LPDDRAWI_DDRAWSURFACE_LCL  lpDDSLcl; /* DirectX 7 */
-  } DUMMYUNIONNAME2;
-  union {
-    LPDIRECTDRAWSURFACE                lpDDSZ;
-    LPDDRAWI_DDRAWSURFACE_LCL  lpDDSZLcl; /* DirectX 7 */
-  } DUMMYUNIONNAME3;
-  union {
-    DWORD                      dwPID;
-    ULONG_PTR                  dwrstates;
-  } DUMMYUNIONNAME4;
-  ULONG_PTR                    dwhContext;
-  HRESULT                      ddrval;
-} D3DHAL_CONTEXTCREATEDATA;
-
-typedef struct _D3DHAL_CONTEXTDESTROYDATA {
-  ULONG_PTR                    dwhContext;
-  HRESULT                      ddrval;
-} D3DHAL_CONTEXTDESTROYDATA;
-
-typedef struct _D3DHAL_CONTEXTDESTROYALLDATA {
-  DWORD                                dwPID;
-  HRESULT                      ddrval;
-} D3DHAL_CONTEXTDESTROYALLDATA;
-
-typedef struct _D3DHAL_SCENECAPTUREDATA {
-  ULONG_PTR                    dwhContext;
-  DWORD                                dwFlag;
-  HRESULT                      ddrval;
-} D3DHAL_SCENECAPTUREDATA;
-
-#define D3DHAL_SCENE_CAPTURE_START     0x00000000
-#define D3DHAL_SCENE_CAPTURE_END       0x00000001
-
-typedef struct _D3DHAL_SETRENDERTARGETDATA {
-  ULONG_PTR                    dwhContext;
-  union {
-    LPDIRECTDRAWSURFACE                lpDDS;
-    LPDDRAWI_DDRAWSURFACE_LCL  lpDDSLcl;
-  } DUMMYUNIONNAME1;
-  union {
-    LPDIRECTDRAWSURFACE                lpDDSZ;
-    LPDDRAWI_DDRAWSURFACE_LCL  lpDDSZLcl;
-  } DUMMYUNIONNAME2;
-  HRESULT                      ddrval;
-} D3DHAL_SETRENDERTARGETDATA;
-
-typedef struct _D3DHAL_DRAWPRIMITIVES2DATA {
-  ULONG_PTR                    dwhContext;
-  DWORD                                dwFlags;
-  DWORD                                dwVertexType;
-  LPDDRAWI_DDRAWSURFACE_LCL    lpDDCommands;
-  DWORD                                dwCommandOffset;
-  DWORD                                dwCommandLength;
-  union {
-    LPDDRAWI_DDRAWSURFACE_LCL  lpDDVertex;
-    LPVOID                     lpVertices;
-  } DUMMYUNIONNAME1;
-  DWORD                                dwVertexOffset;
-  DWORD                                dwVertexLength;
-  DWORD                                dwReqVertexBufSize;
-  DWORD                                dwReqCommandBufSize;
-  LPDWORD                      lpdwRStates;
-  union {
-    DWORD                      dwVertexSize;
-    HRESULT                    ddrval;
-  } DUMMYUNIONNAME2;
-  DWORD                                dwErrorOffset;
-} D3DHAL_DRAWPRIMITIVES2DATA;
-
-#define D3DHALDP2_USERMEMVERTICES      0x00000001
-#define D3DHALDP2_EXECUTEBUFFER                0x00000002
-#define D3DHALDP2_SWAPVERTEXBUFFER     0x00000004
-#define D3DHALDP2_SWAPCOMMANDBUFFER    0x00000008
-#define D3DHALDP2_REQVERTEXBUFSIZE     0x00000010
-#define D3DHALDP2_REQCOMMANDBUFSIZE    0x00000020
-#define D3DHALDP2_VIDMEMVERTEXBUF      0x00000040
-#define D3DHALDP2_VIDMEMCOMMANDBUF     0x00000080
-
-/*****************************************************************************
- * DrawPrimitives2 command structures
- */
-typedef struct _D3DHAL_DP2COMMAND {
-  BYTE bCommand;
-  BYTE bReserved;
-  union {
-    WORD wPrimitiveCount;
-    WORD wStateCount;
-  } DUMMYUNIONNAME;
-} D3DHAL_DP2COMMAND,*LPD3DHAL_DP2COMMAND;
-
-typedef enum _D3DHAL_DP2OPERATION {
-  D3DDP2OP_POINTS              = 1,
-  D3DDP2OP_INDEXEDLINELIST     = 2,
-  D3DDP2OP_INDEXEDTRIANGLELIST = 3,
-  D3DDP2OP_RENDERSTATE         = 8,
-  D3DDP2OP_LINELIST            = 15,
-  D3DDP2OP_LINESTRIP           = 16,
-  D3DDP2OP_INDEXEDLINESTRIP    = 17,
-  D3DDP2OP_TRIANGLELIST                = 18,
-  D3DDP2OP_TRIANGLESTRIP       = 19,
-  D3DDP2OP_INDEXEDTRIANGLESTRIP        = 20,
-  D3DDP2OP_TRIANGLEFAN         = 21,
-  D3DDP2OP_INDEXEDTRIANGLEFAN  = 22,
-  D3DDP2OP_TRIANGLEFAN_IMM     = 23,
-  D3DDP2OP_LINELIST_IMM                = 24,
-  D3DDP2OP_TEXTURESTAGESTATE   = 25,
-  D3DDP2OP_INDEXEDTRIANGLELIST2        = 26,
-  D3DDP2OP_INDEXEDLINELIST2    = 27,
-  D3DDP2OP_VIEWPORTINFO                = 28,
-  D3DDP2OP_WINFO               = 29,
-  /* pre-DirectX 7 interfaces */
-  D3DDP2OP_SETPALETTE          = 30,
-  D3DDP2OP_UPDATEPALETTE       = 31,
-  /* DirectX 7 interfaces */
-  D3DDP2OP_ZRANGE              = 32,
-  D3DDP2OP_SETMATERIAL         = 33,
-  D3DDP2OP_SETLIGHT            = 34,
-  D3DDP2OP_CREATELIGHT         = 35,
-  D3DDP2OP_SETTRANSFORM                = 36,
-  D3DDP2OP_TEXBLT              = 38,
-  D3DDP2OP_STATESET            = 39,
-  D3DDP2OP_SETPRIORITY         = 40,
-  /* all interfaces */
-  D3DDP2OP_SETRENDERTARGET     = 41,
-  D3DDP2OP_CLEAR               = 42,
-  /* DirectX 7 interfaces */
-  D3DDP2OP_SETTEXLOD           = 43,
-  D3DPP2OP_SETCLIPPLANE                = 44,
-} D3DHAL_DP2OPERATION;
-
-/* point primitives */
-
-typedef struct _D3DHAL_POINTS {
-  WORD wCount;
-  WORD wVStart;
-} D3DHAL_DP2POINTS,*LPD3DHAL_DP2POINTS;
-
-/* line primitives */
-
-typedef struct _D3DHAL_DP2STARTVERTEX {
-  WORD wVStart;
-} D3DHAL_DP2STARTVERTEX,*LPD3DHAL_DP2STARTVERTEX;
-
-typedef struct _D3DHAL_DP2LINELIST {
-  WORD wVStart;
-} D3DHAL_DP2LINELIST,*LPD3DHAL_DP2LINELIST;
-
-typedef struct _D3DHAL_DP2INDEXEDLINELIST {
-  WORD wV1;
-  WORD wV2;
-} D3DHAL_DP2INDEXEDLINELIST,*LPD3DHAL_DP2INDEXEDLINELIST;
-
-typedef struct _D3DHAL_DP2LINESTRIP {
-  WORD wVStart;
-} D3DHAL_DP2LINESTRIP,*LPD3DHAL_DP2LINESTRIP;
-
-typedef struct _D3DHAL_DP2INDEXEDLINESTRIP {
-  WORD wV[2];
-} D3DHAL_DP2INDEXEDLINESTRIP,*LPD3DHAL_DP2INDEXEDLINESTRIP;
-
-/* triangle primitives */
-
-typedef struct _D3DHAL_DP2TRIANGLELIST {
-  WORD wVStart;
-} D3DHAL_DP2TRIANGLELIST,*LPD3DHAL_DP2TRIANGLELIST;
-
-typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST {
-  WORD wV1;
-  WORD wV2;
-  WORD wV3;
-  WORD wFlags;
-} D3DHAL_DP2INDEXEDTRIANGLELIST,*LPD3DHAL_DP2INDEXEDTRIANGLELIST;
-
-typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST2 {
-  WORD wV1;
-  WORD wV2;
-  WORD wV3;
-} D3DHAL_DP2INDEXEDTRIANGLELIST2,*LPD3DHAL_DP2INDEXEDTRIANGLELIST2;
-
-typedef struct _D3DHAL_DP2TRIANGLESTRIP {
-  WORD wVStart;
-} D3DHAL_DP2TRIANGLESTRIP,*LPD3DHAL_DP2TRIANGLESTRIP;
-
-typedef struct _D3DHAL_DP2INDEXEDTRIANGLESTRIP {
-  WORD wV[3];
-} D3DHAL_DP2INDEXEDTRIANGLESTRIP,*LPD3DHAL_DP2INDEXEDTRIANGLESTRIP;
-
-typedef struct _D3DHAL_DP2TRIANGLEFAN {
-  WORD wVStart;
-} D3DHAL_DP2TRIANGLEFAN,*LPD3DHAL_DP2TRIANGLEFAN;
-
-typedef struct _D3DHAL_DP2INDEXEDTRIANGLEFAN {
-  WORD wV[3];
-} D3DHAL_DP2INDEXEDTRIANGLEFAN,*LPD3DHAL_DP2INDEXEDTRIANGLEFAN;
-
-typedef struct _D3DHAL_DP2TRIANGLEFAN_IMM {
-  DWORD dwEdgeFlags;
-} D3DHAL_DP2TRIANGLEFAN_IMM,*LPD3DHAL_DP2TRIANGLEFAN_IMM;
-
-/* render states */
-typedef struct _D3DHAL_DP2RENDERSTATE {
-  D3DRENDERSTATETYPE   RenderState;
-  union {
-    D3DVALUE dvState;
-    DWORD dwState;
-  } DUMMYUNIONNAME;
-} D3DHAL_DP2RENDERSTATE,*LPD3DHAL_DP2RENDERSTATE;
-
-typedef struct _D3DHAL_DP2TEXTURESTAGESTATE {
-  WORD wStage;
-  WORD TSState;
-  DWORD dwValue;
-} D3DHAL_DP2TEXTURESTAGESTATE,*LPD3DHAL_DP2TEXTURESTAGESTATE;
-
-#define D3DTSS_TEXTUREMAP 0
-
-typedef struct _D3DHAL_DP2VIEWPORTINFO {
-  DWORD dwX;
-  DWORD dwY;
-  DWORD dwWidth;
-  DWORD dwHeight;
-} D3DHAL_DP2VIEWPORTINFO,*LPD3DHAL_DP2VIEWPORTINFO;
-
-typedef struct _D3DHAL_DP2WINFO {
-  D3DVALUE dwWNear;
-  D3DVALUE dwWFar;
-} D3DHAL_DP2WINFO,*LPD3DHAL_DP2WINFO;
-
-typedef struct _D3DHAL_DP2SETPALETTE {
-  DWORD dwPaletteHandle;
-  DWORD dwPaletteFlags;
-  DWORD dwSurfaceHandle;
-} D3DHAL_DP2SETPALETTE,*LPD3DHAL_DP2SETPALETTE;
-
-typedef struct _D3DHAL_DP2UPDATEPALETTE {
-  DWORD dwPaletteHandle;
-  WORD wStartIndex;
-  WORD wNumEntries;
-} D3DHAL_DP2UPDATEPALETTE,*LPD3DHAL_DP2UPDATEPALETTE;
-
-typedef struct _D3DHAL_DP2ZRANGE {
-  D3DVALUE dvMinZ;
-  D3DVALUE dvMaxZ;
-} D3DHAL_DP2ZRANGE,*LPD3DHAL_DP2ZRANGE;
-
-typedef D3DMATERIAL7 D3DHAL_DP2SETMATERIAL,*LPD3DHAL_DP2SETMATERIAL;
-
-typedef struct _D3DHAL_DP2SETLIGHT {
-  DWORD dwIndex;
-  DWORD dwDataType;
-} D3DHAL_DP2SETLIGHT,*LPD3DHAL_DP2SETLIGHT;
-
-#define D3DHAL_SETLIGHT_ENABLE 0
-#define D3DHAL_SETLIGHT_DISABLE        1
-#define D3DHAL_SETLIGHT_DATA   2
-
-typedef struct _D3DHAL_DP2CREATELIGHT {
-  DWORD dwIndex;
-} D3DHAL_DP2CREATELIGHT,*LPD3DHAL_DP2CREATELIGHT;
-
-typedef struct _D3DHAL_DP2SETTRANSFORM {
-  D3DTRANSFORMSTATETYPE        xfrmType;
-  D3DMATRIX            matrix;
-} D3DHAL_DP2SETTRANSFORM,*LPD3DHAL_DP2SETTRANSFORM;
-
-typedef struct _D3DHAL_DP2TEXBLT {
-  DWORD dwDDDestSurface;
-  DWORD dwDDSrcSurface;
-  POINT pDest;
-  RECTL rSrc;
-  DWORD dwFlags;
-} D3DHAL_DP2TEXBLT,*LPD3DHAL_DP2TEXBLT;
-
-typedef struct _D3DHAL_DP2STATESET {
-  DWORD               dwOperation;
-  DWORD               dwParam;
-  D3DSTATEBLOCKTYPE   sbType;
-} D3DHAL_DP2STATESET,*LPD3DHAL_DP2STATESET;
-
-#define D3DHAL_STATESETBEGIN   0
-#define D3DHAL_STATESETEND     1
-#define D3DHAL_STATESETDELETE  2
-#define D3DHAL_STATESETEXECUTE 3
-#define D3DHAL_STATESETCAPTURE 4
-
-typedef struct _D3DHAL_DP2SETPRIORITY {
-  DWORD dwDDSurface;
-  DWORD dwPriority;
-} D3DHAL_DP2SETPRIORITY,*LPD3DHAL_DP2SETPRIORITY;
-
-typedef struct _D3DHAL_DP2SETRENDERTARGET {
-  DWORD hRenderTarget;
-  DWORD hZBuffer;
-} D3DHAL_DP2SETRENDERTARGET,*LPD3DHAL_DP2SETRENDERTARGET;
-
-typedef struct _D3DHAL_DP2CLEAR {
-  DWORD                dwFlags;
-  DWORD                dwFillColor;
-  D3DVALUE     dvFillDepth;
-  DWORD                dwFillStencil;
-  RECT         Rects[1];
-} D3DHAL_DP2CLEAR,*LPD3DHAL_DP2CLEAR;
-
-typedef struct _D3DHAL_DP2SETTEXLOD {
-  DWORD dwDDSurface;
-  DWORD dwLOD;
-} D3DHAL_DP2SETTEXLOD,*LPD3DHAL_DP2SETTEXLOD;
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* _D3DHAL_H_ */
diff --git a/misc/builddeps/win32/dx/include/d3drm.h b/misc/builddeps/win32/dx/include/d3drm.h
deleted file mode 100644 (file)
index 240014e..0000000
+++ /dev/null
@@ -1,497 +0,0 @@
-/*
- * Copyright (C) 2005 Peter Berg Larsen
- * Copyright (C) 2010 Christian Costa
- *
- * 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 __D3DRM_H__
-#define __D3DRM_H__
-
-#include <ddraw.h>
-
-typedef struct IDirect3DRM *LPDIRECT3DRM;
-
-#include <d3drmobj.h>
-
-
-/* Direct3DRM Object CLSID */
-DEFINE_GUID(CLSID_CDirect3DRM,              0x4516ec41, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
-
-/* Direct3DRM Interface GUIDs */
-DEFINE_GUID(IID_IDirect3DRM,                0x2bc49361, 0x8327, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRM2,               0x4516ecc8, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
-DEFINE_GUID(IID_IDirect3DRM3,               0x4516ec83, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
-
-HRESULT WINAPI Direct3DRMCreate(LPDIRECT3DRM* ppDirect3DRM);
-
-/*****************************************************************************
- * IDirect3DRMObject interface
- */
-#ifdef WINE_NO_UNICODE_MACROS
-#undef GetClassName
-#endif
-#define INTERFACE IDirect3DRM
-DECLARE_INTERFACE_(IDirect3DRM,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRM methods ***/
-    STDMETHOD(CreateObject)(THIS_ REFCLSID rclsid, LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(CreateFrame)(THIS_ LPDIRECT3DRMFRAME, LPDIRECT3DRMFRAME *) PURE;
-    STDMETHOD(CreateMesh)(THIS_ LPDIRECT3DRMMESH *) PURE;
-    STDMETHOD(CreateMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER *) PURE;
-    STDMETHOD(CreateFace)(THIS_ LPDIRECT3DRMFACE *) PURE;
-    STDMETHOD(CreateAnimation)(THIS_ LPDIRECT3DRMANIMATION *) PURE;
-    STDMETHOD(CreateAnimationSet)(THIS_ LPDIRECT3DRMANIMATIONSET *) PURE;
-    STDMETHOD(CreateTexture)(THIS_ LPD3DRMIMAGE, LPDIRECT3DRMTEXTURE *) PURE;
-    STDMETHOD(CreateLight)(THIS_ D3DRMLIGHTTYPE, D3DCOLOR, LPDIRECT3DRMLIGHT *) PURE;
-    STDMETHOD(CreateLightRGB)(THIS_ D3DRMLIGHTTYPE, D3DVALUE, D3DVALUE, D3DVALUE, LPDIRECT3DRMLIGHT *) PURE;
-    STDMETHOD(CreateMaterial)(THIS_ D3DVALUE, LPDIRECT3DRMMATERIAL *) PURE;
-    STDMETHOD(CreateDevice)(THIS_ DWORD, DWORD, LPDIRECT3DRMDEVICE *) PURE;
-    STDMETHOD(CreateDeviceFromSurface)(THIS_ LPGUID pGUID, LPDIRECTDRAW pDD, LPDIRECTDRAWSURFACE pDDSBack,
-        LPDIRECT3DRMDEVICE *) PURE;
-    STDMETHOD(CreateDeviceFromD3D)(THIS_ LPDIRECT3D pD3D, LPDIRECT3DDEVICE pD3DDev, LPDIRECT3DRMDEVICE *) PURE;
-    STDMETHOD(CreateDeviceFromClipper)(THIS_ LPDIRECTDRAWCLIPPER pDDClipper, LPGUID pGUID, int width, int height,
-        LPDIRECT3DRMDEVICE *) PURE;
-    STDMETHOD(CreateShadow)(THIS_ LPDIRECT3DRMVISUAL, LPDIRECT3DRMLIGHT, D3DVALUE px, D3DVALUE py, D3DVALUE pz,
-        D3DVALUE nx, D3DVALUE ny, D3DVALUE nz, LPDIRECT3DRMVISUAL *) PURE;
-    STDMETHOD(CreateTextureFromSurface)(THIS_ LPDIRECTDRAWSURFACE pDDS, LPDIRECT3DRMTEXTURE *) PURE;
-    STDMETHOD(CreateViewport)(THIS_ LPDIRECT3DRMDEVICE, LPDIRECT3DRMFRAME, DWORD, DWORD, DWORD, DWORD,
-        LPDIRECT3DRMVIEWPORT *) PURE;
-    STDMETHOD(CreateWrap)(THIS_ D3DRMWRAPTYPE, LPDIRECT3DRMFRAME, D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
-        D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz, D3DVALUE ou, D3DVALUE ov,
-        D3DVALUE su, D3DVALUE sv, LPDIRECT3DRMWRAP *) PURE;
-    STDMETHOD(CreateUserVisual)(THIS_ D3DRMUSERVISUALCALLBACK, LPVOID pArg, LPDIRECT3DRMUSERVISUAL *) PURE;
-    STDMETHOD(LoadTexture)(THIS_ const char *, LPDIRECT3DRMTEXTURE *) PURE;
-    STDMETHOD(LoadTextureFromResource)(THIS_ HRSRC rs, LPDIRECT3DRMTEXTURE *) PURE;
-    STDMETHOD(SetSearchPath)(THIS_ LPCSTR) PURE;
-    STDMETHOD(AddSearchPath)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetSearchPath)(THIS_ DWORD *size_return, LPSTR path_return) PURE;
-    STDMETHOD(SetDefaultTextureColors)(THIS_ DWORD) PURE;
-    STDMETHOD(SetDefaultTextureShades)(THIS_ DWORD) PURE;
-    STDMETHOD(GetDevices)(THIS_ LPDIRECT3DRMDEVICEARRAY *) PURE;
-    STDMETHOD(GetNamedObject)(THIS_ const char *, LPDIRECT3DRMOBJECT *) PURE;
-    STDMETHOD(EnumerateObjects)(THIS_ D3DRMOBJECTCALLBACK, LPVOID) PURE;
-    STDMETHOD(Load)(THIS_ LPVOID, LPVOID, LPIID *, DWORD, D3DRMLOADOPTIONS, D3DRMLOADCALLBACK, LPVOID,
-        D3DRMLOADTEXTURECALLBACK, LPVOID, LPDIRECT3DRMFRAME) PURE;
-    STDMETHOD(Tick)(THIS_ D3DVALUE) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRM_QueryInterface(p,a,b)                         (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRM_AddRef(p)                                     (p)->lpVtbl->AddRef(p)
-#define IDirect3DRM_Release(p)                                    (p)->lpVtbl->Release(p)
-/*** IDirect3DRM methods ***/
-#define IDirect3DRM_CreateObject(p,a,b,c,d)                       (p)->lpVtbl->CreateObject(p,a,b,d)
-#define IDirect3DRM_CreateFrame(p,a,b)                            (p)->lpVtbl->CreateFrame(p,a,b)
-#define IDirect3DRM_CreateMesh(p,a)                               (p)->lpVtbl->CreateMesh(p,a)
-#define IDirect3DRM_CreateMeshBuilder(p,a)                        (p)->lpVtbl->CreateMeshBuilder(p,a)
-#define IDirect3DRM_CreateFace(p,a)                               (p)->lpVtbl->CreateFace(p,a)
-#define IDirect3DRM_CreateAnimation(p,a)                          (p)->lpVtbl->CreateAnimation(p,a)
-#define IDirect3DRM_CreateAnimationSet(p,a)                       (p)->lpVtbl->CreateAnimationSet(p,a)
-#define IDirect3DRM_CreateTexture(p,a,b)                          (p)->lpVtbl->CreateTexture(p,a,b)
-#define IDirect3DRM_CreateLight(p,a,b,c)                          (p)->lpVtbl->CreateLight(p,a,b,c)
-#define IDirect3DRM_CreateLightRGB(p,a,b,c,d,e)                   (p)->lpVtbl->CreateLightRGB(p,a,b,c,d,e)
-#define IDirect3DRM_CreateMaterial(p,a,b)                         (p)->lpVtbl->CreateMaterial(p,a,b)
-#define IDirect3DRM_CreateDevice(p,a,b,c)                         (p)->lpVtbl->CreateDevice(p,a,b,c)
-#define IDirect3DRM_CreateDeviceFromSurface(p,a,b,c,d)            (p)->lpVtbl->CreateDeviceFromSurface(p,a,b,c,d)
-#define IDirect3DRM_CreateDeviceFromD3D(p,a,b,c)                  (p)->lpVtbl->CreateDeviceFromD3D(p,a,b,c)
-#define IDirect3DRM_CreateDeviceFromClipper(p,a,b,c,d,e)          (p)->lpVtbl->CreateDeviceFromClipper(p,a,b,c,d,e)
-#define IDirect3DRM_CreateTextureFromSurface(p,a,b)               (p)->lpVtbl->CreateTextureFromSurface(p,a,b)
-#define IDirect3DRM_CreateShadow(p,a,b,c,d,e,f,g,h,i)             (p)->lpVtbl->CreateShadow(p,a,b,c,d,e,f,g,h,i)
-#define IDirect3DRM_CreateViewport(p,a,b,c,d,e,f,g)               (p)->lpVtbl->CreateViewport(p,a,b,c,d,e,f,g)
-#define IDirect3DRM_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q) (p)->lpVtbl->CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q)
-#define IDirect3DRM_CreateUserVisual(p,a,b,c)                     (p)->lpVtbl->CreateUserVisual(p,a,b,c)
-#define IDirect3DRM_LoadTexture(p,a,b)                            (p)->lpVtbl->LoadTexture(p,a,b)
-#define IDirect3DRM_LoadTextureFromResource(p,a,b)                (p)->lpVtbl->LoadTextureFromResource(p,a,b)
-#define IDirect3DRM_SetSearchPath(p,a)                            (p)->lpVtbl->SetSearchPath(p,a)
-#define IDirect3DRM_AddSearchPath(p,a)                            (p)->lpVtbl->AddSearchPath(p,a)
-#define IDirect3DRM_GetSearchPath(p,a,b)                          (p)->lpVtbl->GetSearchPath(p,a,b)
-#define IDirect3DRM_SetDefaultTextureColors(p,a)                  (p)->lpVtbl->SetDefaultTextureColors(p,a)
-#define IDirect3DRM_SetDefaultTextureShades(p,a)                  (p)->lpVtbl->SetDefaultTextureShades(p,a)
-#define IDirect3DRM_GetDevices(p,a)                               (p)->lpVtbl->GetDevices(p,a)
-#define IDirect3DRM_GetNamedObject(p,a,b)                         (p)->lpVtbl->GetNamedObject(p,a,b)
-#define IDirect3DRM_EnumerateObjects(p,a,b)                       (p)->lpVtbl->EnumerateObjects(p,a,b)
-#define IDirect3DRM_Load(p,a,b,c,d,e,f,g,h,i,j)                   (p)->lpVtbl->Load(p,a,b,c,d,e,f,g,h,i,j)
-#define IDirect3DRM_Tick(p,a)                                     (p)->lpVtbl->Tick(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRM_QueryInterface(p,a,b)                         (p)->QueryInterface(a,b)
-#define IDirect3DRM_AddRef(p)                                     (p)->AddRef()
-#define IDirect3DRM_Release(p)                                    (p)->Release()
-/*** IDirect3DRM methods ***/
-#define IDirect3DRM_CreateObject(p,a,b,c,d)                       (p)->CreateObject(a,b,d)
-#define IDirect3DRM_CreateFrame(p,a,b)                            (p)->CreateFrame(a,b)
-#define IDirect3DRM_CreateMesh(p,a)                               (p)->CreateMesh(a)
-#define IDirect3DRM_CreateMeshBuilder(p,a)                        (p)->CreateMeshBuilder(a)
-#define IDirect3DRM_CreateFace(p,a)                               (p)->CreateFace(a)
-#define IDirect3DRM_CreateAnimation(p,a)                          (p)->CreateAnimation(a)
-#define IDirect3DRM_CreateAnimationSet(p,a)                       (p)->CreateAnimationSet(a)
-#define IDirect3DRM_CreateTexture(p,a,b)                          (p)->CreateTexture(a,b)
-#define IDirect3DRM_CreateLight(p,a,b,c)                          (p)->CreateLight(a,b,c)
-#define IDirect3DRM_CreateLightRGB(p,a,b,c,d,e)                   (p)->CreateLightRGB(a,b,c,d,e)
-#define IDirect3DRM_CreateMaterial(p,a,b)                         (p)->CreateMaterial(a,b)
-#define IDirect3DRM_CreateDevice(p,a,b,c)                         (p)->CreateDevice(a,b,c)
-#define IDirect3DRM_CreateDeviceFromSurface(p,a,b,c,d)            (p)->CreateDeviceFromSurface(a,b,c,d)
-#define IDirect3DRM_CreateDeviceFromD3D(p,a,b,c)                  (p)->CreateDeviceFromD3D(a,b,c)
-#define IDirect3DRM_CreateDeviceFromClipper(p,a,b,c,d,e)          (p)->CreateDeviceFromClipper(a,b,c,d,e)
-#define IDirect3DRM_CreateTextureFromSurface(p,a,b)               (p)->CreateTextureFromSurface(a,b)
-#define IDirect3DRM_CreateShadow(p,a,b,c,d,e,f,g,h,i)             (p)->CreateShadow(a,b,c,d,e,f,g,h,i)
-#define IDirect3DRM_CreateViewport(p,a,b,c,d,e,f,g)               (p)->CreateViewport(a,b,c,d,e,f,g)
-#define IDirect3DRM_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) (p)->CreateWrap(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p)
-#define IDirect3DRM_CreateUserVisual(p,a,b,c)                     (p)->CreateUserVisual(a,b,c)
-#define IDirect3DRM_LoadTexture(p,a,b)                            (p)->LoadTexture(a,b)
-#define IDirect3DRM_LoadTextureFromResource(p,a,b)                (p)->LoadTextureFromResource(a,b)
-#define IDirect3DRM_SetSearchPath(p,a)                            (p)->SetSearchPath(a)
-#define IDirect3DRM_AddSearchPath(p,a)                            (p)->AddSearchPath(a)
-#define IDirect3DRM_GetSearchPath(p,a,b)                          (p)->GetSearchPath(a,b)
-#define IDirect3DRM_SetDefaultTextureColors(p,a)                  (p)->SetDefaultTextureColors(a)
-#define IDirect3DRM_SetDefaultTextureShades(p,a)                  (p)->SetDefaultTextureShades(a)
-#define IDirect3DRM_GetDevices(p,a)                               (p)->GetDevices(a)
-#define IDirect3DRM_GetNamedObject(p,a,b)                         (p)->GetNamedObject(a,b)
-#define IDirect3DRM_EnumerateObjects(p,a,b)                       (p)->EnumerateObjects(a,b)
-#define IDirect3DRM_Load(p,a,b,c,d,e,f,g,h,i,j)                   (p)->Load(a,b,c,d,e,f,g,h,i,j)
-#define IDirect3DRM_Tick(p,a)                                     (p)->Tick(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DRM2 interface
- */
-#ifdef WINE_NO_UNICODE_MACROS
-#undef GetClassName
-#endif
-#define INTERFACE IDirect3DRM2
-DECLARE_INTERFACE_(IDirect3DRM2,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRM2 methods ***/
-    STDMETHOD(CreateObject)(THIS_ REFCLSID rclsid, LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(CreateFrame)(THIS_ LPDIRECT3DRMFRAME, LPDIRECT3DRMFRAME2 *) PURE;
-    STDMETHOD(CreateMesh)(THIS_ LPDIRECT3DRMMESH *) PURE;
-    STDMETHOD(CreateMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER2 *) PURE;
-    STDMETHOD(CreateFace)(THIS_ LPDIRECT3DRMFACE *) PURE;
-    STDMETHOD(CreateAnimation)(THIS_ LPDIRECT3DRMANIMATION *) PURE;
-    STDMETHOD(CreateAnimationSet)(THIS_ LPDIRECT3DRMANIMATIONSET *) PURE;
-    STDMETHOD(CreateTexture)(THIS_ LPD3DRMIMAGE, LPDIRECT3DRMTEXTURE2 *) PURE;
-    STDMETHOD(CreateLight)(THIS_ D3DRMLIGHTTYPE, D3DCOLOR, LPDIRECT3DRMLIGHT *) PURE;
-    STDMETHOD(CreateLightRGB)(THIS_ D3DRMLIGHTTYPE, D3DVALUE, D3DVALUE, D3DVALUE, LPDIRECT3DRMLIGHT *) PURE;
-    STDMETHOD(CreateMaterial)(THIS_ D3DVALUE, LPDIRECT3DRMMATERIAL *) PURE;
-    STDMETHOD(CreateDevice)(THIS_ DWORD, DWORD, LPDIRECT3DRMDEVICE2 *) PURE;
-    STDMETHOD(CreateDeviceFromSurface)(THIS_ LPGUID pGUID, LPDIRECTDRAW pDD, LPDIRECTDRAWSURFACE pDDSBack,
-        LPDIRECT3DRMDEVICE2 *) PURE;
-    STDMETHOD(CreateDeviceFromD3D)(THIS_ LPDIRECT3D2 pD3D, LPDIRECT3DDEVICE2 pD3DDev, LPDIRECT3DRMDEVICE2 *) PURE;
-    STDMETHOD(CreateDeviceFromClipper)(THIS_ LPDIRECTDRAWCLIPPER pDDClipper, LPGUID pGUID, int width, int height,
-        LPDIRECT3DRMDEVICE2 *) PURE;
-    STDMETHOD(CreateTextureFromSurface)(THIS_ LPDIRECTDRAWSURFACE pDDS, LPDIRECT3DRMTEXTURE2 *) PURE;
-    STDMETHOD(CreateShadow)(THIS_ LPDIRECT3DRMVISUAL, LPDIRECT3DRMLIGHT, D3DVALUE px, D3DVALUE py, D3DVALUE pz,
-        D3DVALUE nx, D3DVALUE ny, D3DVALUE nz, LPDIRECT3DRMVISUAL *) PURE;
-    STDMETHOD(CreateViewport)(THIS_ LPDIRECT3DRMDEVICE, LPDIRECT3DRMFRAME, DWORD, DWORD, DWORD, DWORD,
-        LPDIRECT3DRMVIEWPORT *) PURE;
-    STDMETHOD(CreateWrap)(THIS_ D3DRMWRAPTYPE, LPDIRECT3DRMFRAME, D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
-        D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz, D3DVALUE ou, D3DVALUE ov,
-        D3DVALUE su, D3DVALUE sv, LPDIRECT3DRMWRAP *) PURE;
-    STDMETHOD(CreateUserVisual)(THIS_ D3DRMUSERVISUALCALLBACK, LPVOID pArg, LPDIRECT3DRMUSERVISUAL *) PURE;
-    STDMETHOD(LoadTexture)(THIS_ const char *, LPDIRECT3DRMTEXTURE2 *) PURE;
-    STDMETHOD(LoadTextureFromResource)(THIS_ HMODULE hModule, LPCSTR /* LPCTSTR */ strName, LPCSTR /* LPCTSTR */ strType, LPDIRECT3DRMTEXTURE2 *) PURE;
-    STDMETHOD(SetSearchPath)(THIS_ LPCSTR) PURE;
-    STDMETHOD(AddSearchPath)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetSearchPath)(THIS_ DWORD *size_return, LPSTR path_return) PURE;
-    STDMETHOD(SetDefaultTextureColors)(THIS_ DWORD) PURE;
-    STDMETHOD(SetDefaultTextureShades)(THIS_ DWORD) PURE;
-    STDMETHOD(GetDevices)(THIS_ LPDIRECT3DRMDEVICEARRAY *) PURE;
-    STDMETHOD(GetNamedObject)(THIS_ const char *, LPDIRECT3DRMOBJECT *) PURE;
-    STDMETHOD(EnumerateObjects)(THIS_ D3DRMOBJECTCALLBACK, LPVOID) PURE;
-    STDMETHOD(Load)(THIS_ LPVOID, LPVOID, LPIID *, DWORD, D3DRMLOADOPTIONS, D3DRMLOADCALLBACK, LPVOID,
-        D3DRMLOADTEXTURECALLBACK, LPVOID, LPDIRECT3DRMFRAME) PURE;
-    STDMETHOD(Tick)(THIS_ D3DVALUE) PURE;
-    STDMETHOD(CreateProgressiveMesh)(THIS_ LPDIRECT3DRMPROGRESSIVEMESH) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRM2_QueryInterface(p,a,b)                         (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRM2_AddRef(p)                                     (p)->lpVtbl->AddRef(p)
-#define IDirect3DRM2_Release(p)                                    (p)->lpVtbl->Release(p)
-/*** IDirect3DRM2 methods ***/
-#define IDirect3DRM2_CreateObject(p,a,b,c,d)                       (p)->lpVtbl->CreateObject(p,a,b,d)
-#define IDirect3DRM2_CreateFrame(p,a,b)                            (p)->lpVtbl->CreateFrame(p,a,b)
-#define IDirect3DRM2_CreateMesh(p,a)                               (p)->lpVtbl->CreateMesh(p,a)
-#define IDirect3DRM2_CreateMeshBuilder(p,a)                        (p)->lpVtbl->CreateMeshBuilder(p,a)
-#define IDirect3DRM2_CreateFace(p,a)                               (p)->lpVtbl->CreateFace(p,a)
-#define IDirect3DRM2_CreateAnimation(p,a)                          (p)->lpVtbl->CreateAnimation(p,a)
-#define IDirect3DRM2_CreateAnimationSet(p,a)                       (p)->lpVtbl->CreateAnimationSet(p,a)
-#define IDirect3DRM2_CreateTexture(p,a,b)                          (p)->lpVtbl->CreateTexture(p,a,b)
-#define IDirect3DRM2_CreateLight(p,a,b,c)                          (p)->lpVtbl->CreateLight(p,a,b,c)
-#define IDirect3DRM2_CreateLightRGB(p,a,b,c,d,e)                   (p)->lpVtbl->CreateLightRGB(p,a,b,c,d,e)
-#define IDirect3DRM2_CreateMaterial(p,a,b)                         (p)->lpVtbl->CreateMaterial(p,a,b)
-#define IDirect3DRM2_CreateDevice(p,a,b,c)                         (p)->lpVtbl->CreateDevice(p,a,b,c)
-#define IDirect3DRM2_CreateDeviceFromSurface(p,a,b,c,d)            (p)->lpVtbl->CreateDeviceFromSurface(p,a,b,c,d)
-#define IDirect3DRM2_CreateDeviceFromD3D(p,a,b,c)                  (p)->lpVtbl->CreateDeviceFromD3D(p,a,b,c)
-#define IDirect3DRM2_CreateDeviceFromClipper(p,a,b,c,d,e)          (p)->lpVtbl->CreateDeviceFromClipper(p,a,b,c,d,e)
-#define IDirect3DRM2_CreateTextureFromSurface(p,a,b)               (p)->lpVtbl->CreateTextureFromSurface(p,a,b)
-#define IDirect3DRM2_CreateShadow(p,a,b,c,d,e,f,g,h,i)             (p)->lpVtbl->CreateShadow(p,a,b,c,d,e,f,g,h,i)
-#define IDirect3DRM2_CreateViewport(p,a,b,c,d,e,f,g)               (p)->lpVtbl->CreateViewport(p,a,b,c,d,e,f,g)
-#define IDirect3DRM2_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q) (p)->lpVtbl->CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q)
-#define IDirect3DRM2_CreateUserVisual(p,a,b,c)                     (p)->lpVtbl->CreateUserVisual(p,a,b,c)
-#define IDirect3DRM2_LoadTexture(p,a,b)                            (p)->lpVtbl->LoadTexture(p,a,b)
-#define IDirect3DRM2_LoadTextureFromResource(p,a,b,c,d)            (p)->lpVtbl->LoadTextureFromResource(p,a,b,c,d)
-#define IDirect3DRM2_SetSearchPath(p,a)                            (p)->lpVtbl->SetSearchPath(p,a)
-#define IDirect3DRM2_AddSearchPath(p,a)                            (p)->lpVtbl->AddSearchPath(p,a)
-#define IDirect3DRM2_GetSearchPath(p,a,b)                          (p)->lpVtbl->GetSearchPath(p,a,b)
-#define IDirect3DRM2_SetDefaultTextureColors(p,a)                  (p)->lpVtbl->SetDefaultTextureColors(p,a)
-#define IDirect3DRM2_SetDefaultTextureShades(p,a)                  (p)->lpVtbl->SetDefaultTextureShades(p,a)
-#define IDirect3DRM2_GetDevices(p,a)                               (p)->lpVtbl->GetDevices(p,a)
-#define IDirect3DRM2_GetNamedObject(p,a,b)                         (p)->lpVtbl->GetNamedObject(p,a,b)
-#define IDirect3DRM2_EnumerateObjects(p,a,b)                       (p)->lpVtbl->EnumerateObjects(p,a,b)
-#define IDirect3DRM2_Load(p,a,b,c,d,e,f,g,h,i,j)                   (p)->lpVtbl->Load(p,a,b,c,d,e,f,g,h,i,j)
-#define IDirect3DRM2_Tick(p,a)                                     (p)->lpVtbl->Tick(p,a)
-#define IDirect3DRM2_CreateProgressiveMesh(p,a)                    (p)->lpVtbl->CreateProgressiveMesh(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRM2_QueryInterface(p,a,b)                         (p)->QueryInterface(a,b)
-#define IDirect3DRM2_AddRef(p)                                     (p)->AddRef()
-#define IDirect3DRM2_Release(p)                                    (p)->Release()
-/*** IDirect3DRM2 methods ***/
-#define IDirect3DRM2_CreateObject(p,a,b,c,d)                       (p)->CreateObject(a,b,d)
-#define IDirect3DRM2_CreateFrame(p,a,b)                            (p)->CreateFrame(a,b)
-#define IDirect3DRM2_CreateMesh(p,a)                               (p)->CreateMesh(a)
-#define IDirect3DRM2_CreateMeshBuilder(p,a)                        (p)->CreateMeshBuilder(a)
-#define IDirect3DRM2_CreateFace(p,a)                               (p)->CreateFace(a)
-#define IDirect3DRM2_CreateAnimation(p,a)                          (p)->CreateAnimation(a)
-#define IDirect3DRM2_CreateAnimationSet(p,a)                       (p)->CreateAnimationSet(a)
-#define IDirect3DRM2_CreateTexture(p,a,b)                          (p)->CreateTexture(a,b)
-#define IDirect3DRM2_CreateLight(p,a,b,c)                          (p)->CreateLight(a,b,c)
-#define IDirect3DRM2_CreateLightRGB(p,a,b,c,d,e)                   (p)->CreateLightRGB(a,b,c,d,e)
-#define IDirect3DRM2_CreateMaterial(p,a,b)                         (p)->CreateMaterial(a,b)
-#define IDirect3DRM2_CreateDevice(p,a,b,c)                         (p)->CreateDevice(a,b,c)
-#define IDirect3DRM2_CreateDeviceFromSurface(p,a,b,c,d)            (p)->CreateDeviceFromSurface(a,b,c,d)
-#define IDirect3DRM2_CreateDeviceFromD3D(p,a,b,c)                  (p)->CreateDeviceFromD3D(a,b,c)
-#define IDirect3DRM2_CreateDeviceFromClipper(p,a,b,c,d,e)          (p)->CreateDeviceFromClipper(a,b,c,d,e)
-#define IDirect3DRM2_CreateTextureFromSurface(p,a,b)               (p)->CreateTextureFromSurface(a,b)
-#define IDirect3DRM2_CreateShadow(p,a,b,c,d,e,f,g,h,i)             (p)->CreateShadow(a,b,c,d,e,f,g,h,i)
-#define IDirect3DRM2_CreateViewport(p,a,b,c,d,e,f,g)               (p)->CreateViewport(a,b,c,d,e,f,g)
-#define IDirect3DRM2_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) (p)->CreateWrap(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p)
-#define IDirect3DRM2_CreateUserVisual(p,a,b,c)                     (p)->CreateUserVisual(a,b,c)
-#define IDirect3DRM2_LoadTexture(p,a,b)                            (p)->LoadTexture(a,b)
-#define IDirect3DRM2_LoadTextureFromResource(p,a,b)                (p)->LoadTextureFromResource(a,b)
-#define IDirect3DRM2_SetSearchPath(p,a)                            (p)->SetSearchPath(a)
-#define IDirect3DRM2_AddSearchPath(p,a)                            (p)->AddSearchPath(a)
-#define IDirect3DRM2_GetSearchPath(p,a,b)                          (p)->GetSearchPath(a,b)
-#define IDirect3DRM2_SetDefaultTextureColors(p,a)                  (p)->SetDefaultTextureColors(a)
-#define IDirect3DRM2_SetDefaultTextureShades(p,a)                  (p)->SetDefaultTextureShades(a)
-#define IDirect3DRM2_GetDevices(p,a)                               (p)->GetDevices(a)
-#define IDirect3DRM2_GetNamedObject(p,a,b)                         (p)->GetNamedObject(a,b)
-#define IDirect3DRM2_EnumerateObjects(p,a,b)                       (p)->EnumerateObjects(a,b)
-#define IDirect3DRM2_Load(p,a,b,c,d,e,f,g,h,i,j)                   (p)->Load(a,b,c,d,e,f,g,h,i,j)
-#define IDirect3DRM2_Tick(p,a)                                     (p)->Tick(a)
-#define IDirect3DRM2_CreateProgressiveMesh(p,a)                    (p)->CreateProgressiveMesh(p,a)
-#endif
-
-/*****************************************************************************
- * IDirect3DRM3 interface
- */
-#ifdef WINE_NO_UNICODE_MACROS
-#undef GetClassName
-#endif
-#define INTERFACE IDirect3DRM3
-DECLARE_INTERFACE_(IDirect3DRM3,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRM2 methods ***/
-    STDMETHOD(CreateObject)(THIS_ REFCLSID rclsid, LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(CreateFrame)(THIS_ LPDIRECT3DRMFRAME3, LPDIRECT3DRMFRAME3 *) PURE;
-    STDMETHOD(CreateMesh)(THIS_ LPDIRECT3DRMMESH *) PURE;
-    STDMETHOD(CreateMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER3 *) PURE;
-    STDMETHOD(CreateFace)(THIS_ LPDIRECT3DRMFACE2 *) PURE;
-    STDMETHOD(CreateAnimation)(THIS_ LPDIRECT3DRMANIMATION2 *) PURE;
-    STDMETHOD(CreateAnimationSet)(THIS_ LPDIRECT3DRMANIMATIONSET2 *) PURE;
-    STDMETHOD(CreateTexture)(THIS_ LPD3DRMIMAGE, LPDIRECT3DRMTEXTURE3 *) PURE;
-    STDMETHOD(CreateLight)(THIS_ D3DRMLIGHTTYPE, D3DCOLOR, LPDIRECT3DRMLIGHT *) PURE;
-    STDMETHOD(CreateLightRGB)(THIS_ D3DRMLIGHTTYPE, D3DVALUE, D3DVALUE, D3DVALUE, LPDIRECT3DRMLIGHT *) PURE;
-    STDMETHOD(CreateMaterial)(THIS_ D3DVALUE, LPDIRECT3DRMMATERIAL2 *) PURE;
-    STDMETHOD(CreateDevice)(THIS_ DWORD, DWORD, LPDIRECT3DRMDEVICE3 *) PURE;
-    STDMETHOD(CreateDeviceFromSurface)(THIS_ LPGUID pGUID, LPDIRECTDRAW pDD, LPDIRECTDRAWSURFACE pDDSBack,
-        LPDIRECT3DRMDEVICE3 *) PURE;
-    STDMETHOD(CreateDeviceFromD3D)(THIS_ LPDIRECT3D2 pD3D, LPDIRECT3DDEVICE2 pD3DDev, LPDIRECT3DRMDEVICE3 *) PURE;
-    STDMETHOD(CreateDeviceFromClipper)(THIS_ LPDIRECTDRAWCLIPPER pDDClipper, LPGUID pGUID, int width, int height,
-        LPDIRECT3DRMDEVICE3 *) PURE;
-    STDMETHOD(CreateTextureFromSurface)(THIS_ LPDIRECTDRAWSURFACE pDDS, LPDIRECT3DRMTEXTURE3 *) PURE;
-    STDMETHOD(CreateShadow)(THIS_ LPUNKNOWN, LPDIRECT3DRMLIGHT, D3DVALUE px, D3DVALUE py, D3DVALUE pz,
-        D3DVALUE nx, D3DVALUE ny, D3DVALUE nz, LPDIRECT3DRMSHADOW2 *) PURE;
-    STDMETHOD(CreateViewport)(THIS_ LPDIRECT3DRMDEVICE3, LPDIRECT3DRMFRAME3, DWORD, DWORD, DWORD, DWORD,
-        LPDIRECT3DRMVIEWPORT2 *) PURE;
-    STDMETHOD(CreateWrap)(THIS_ D3DRMWRAPTYPE, LPDIRECT3DRMFRAME3, D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
-        D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz, D3DVALUE ou, D3DVALUE ov,
-        D3DVALUE su, D3DVALUE sv, LPDIRECT3DRMWRAP *) PURE;
-    STDMETHOD(CreateUserVisual)(THIS_ D3DRMUSERVISUALCALLBACK, LPVOID pArg, LPDIRECT3DRMUSERVISUAL *) PURE;
-    STDMETHOD(LoadTexture)(THIS_ const char *, LPDIRECT3DRMTEXTURE3 *) PURE;
-    STDMETHOD(LoadTextureFromResource)(THIS_ HMODULE hModule, LPCSTR /* LPCTSTR */ strName, LPCSTR  /* LPCTSTR */ strType, LPDIRECT3DRMTEXTURE3 *) PURE;
-    STDMETHOD(SetSearchPath)(THIS_ LPCSTR) PURE;
-    STDMETHOD(AddSearchPath)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetSearchPath)(THIS_ DWORD *size_return, LPSTR path_return) PURE;
-    STDMETHOD(SetDefaultTextureColors)(THIS_ DWORD) PURE;
-    STDMETHOD(SetDefaultTextureShades)(THIS_ DWORD) PURE;
-    STDMETHOD(GetDevices)(THIS_ LPDIRECT3DRMDEVICEARRAY *) PURE;
-    STDMETHOD(GetNamedObject)(THIS_ const char *, LPDIRECT3DRMOBJECT *) PURE;
-    STDMETHOD(EnumerateObjects)(THIS_ D3DRMOBJECTCALLBACK, LPVOID) PURE;
-    STDMETHOD(Load)(THIS_ LPVOID, LPVOID, LPIID *, DWORD, D3DRMLOADOPTIONS, D3DRMLOADCALLBACK, LPVOID,
-        D3DRMLOADTEXTURECALLBACK, LPVOID, LPDIRECT3DRMFRAME3) PURE;
-    STDMETHOD(Tick)(THIS_ D3DVALUE) PURE;
-    STDMETHOD(CreateProgressiveMesh)(THIS_ LPDIRECT3DRMPROGRESSIVEMESH) PURE;
-    STDMETHOD(RegisterClient)(THIS_ REFGUID rguid, LPDWORD lpdwID) PURE;
-    STDMETHOD(UnregisterClient)(THIS_ REFGUID rguid) PURE;
-    STDMETHOD(CreateClippedVisual)(THIS_ LPDIRECT3DRMVISUAL, LPDIRECT3DRMCLIPPEDVISUAL *) PURE;
-    STDMETHOD(SetOptions)(THIS_ DWORD) PURE;
-    STDMETHOD(GetOptions)(THIS_ LPDWORD) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRM3_QueryInterface(p,a,b)                         (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRM3_AddRef(p)                                     (p)->lpVtbl->AddRef(p)
-#define IDirect3DRM3_Release(p)                                    (p)->lpVtbl->Release(p)
-/*** IDirect3DRM3 methods ***/
-#define IDirect3DRM3_CreateObject(p,a,b,c,d)                       (p)->lpVtbl->CreateObject(p,a,b,d)
-#define IDirect3DRM3_CreateFrame(p,a,b)                            (p)->lpVtbl->CreateFrame(p,a,b)
-#define IDirect3DRM3_CreateMesh(p,a)                               (p)->lpVtbl->CreateMesh(p,a)
-#define IDirect3DRM3_CreateMeshBuilder(p,a)                        (p)->lpVtbl->CreateMeshBuilder(p,a)
-#define IDirect3DRM3_CreateFace(p,a)                               (p)->lpVtbl->CreateFace(p,a)
-#define IDirect3DRM3_CreateAnimation(p,a)                          (p)->lpVtbl->CreateAnimation(p,a)
-#define IDirect3DRM3_CreateAnimationSet(p,a)                       (p)->lpVtbl->CreateAnimationSet(p,a)
-#define IDirect3DRM3_CreateTexture(p,a,b)                          (p)->lpVtbl->CreateTexture(p,a,b)
-#define IDirect3DRM3_CreateLight(p,a,b,c)                          (p)->lpVtbl->CreateLight(p,a,b,c)
-#define IDirect3DRM3_CreateLightRGB(p,a,b,c,d,e)                   (p)->lpVtbl->CreateLightRGB(p,a,b,c,d,e)
-#define IDirect3DRM3_CreateMaterial(p,a,b)                         (p)->lpVtbl->CreateMaterial(p,a,b)
-#define IDirect3DRM3_CreateDevice(p,a,b,c)                         (p)->lpVtbl->CreateDevice(p,a,b,c)
-#define IDirect3DRM3_CreateDeviceFromSurface(p,a,b,c,d)            (p)->lpVtbl->CreateDeviceFromSurface(p,a,b,c,d)
-#define IDirect3DRM3_CreateDeviceFromD3D(p,a,b,c)                  (p)->lpVtbl->CreateDeviceFromD3D(p,a,b,c)
-#define IDirect3DRM3_CreateDeviceFromClipper(p,a,b,c,d,e)          (p)->lpVtbl->CreateDeviceFromClipper(p,a,b,c,d,e)
-#define IDirect3DRM3_CreateTextureFromSurface(p,a,b)               (p)->lpVtbl->CreateTextureFromSurface(p,a,b)
-#define IDirect3DRM3_CreateShadow(p,a,b,c,d,e,f,g,h,i)             (p)->lpVtbl->CreateShadow(p,a,b,c,d,e,f,g,h,i)
-#define IDirect3DRM3_CreateViewport(p,a,b,c,d,e,f,g)               (p)->lpVtbl->CreateViewport(p,a,b,c,d,e,f,g)
-#define IDirect3DRM3_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q) (p)->lpVtbl->CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q)
-#define IDirect3DRM3_CreateUserVisual(p,a,b,c)                     (p)->lpVtbl->CreateUserVisual(p,a,b,c)
-#define IDirect3DRM3_LoadTexture(p,a,b)                            (p)->lpVtbl->LoadTexture(p,a,b)
-#define IDirect3DRM3_LoadTextureFromResource(p,a,b,c,d)            (p)->lpVtbl->LoadTextureFromResource(p,a,b,c,d)
-#define IDirect3DRM3_SetSearchPath(p,a)                            (p)->lpVtbl->SetSearchPath(p,a)
-#define IDirect3DRM3_AddSearchPath(p,a)                            (p)->lpVtbl->AddSearchPath(p,a)
-#define IDirect3DRM3_GetSearchPath(p,a,b)                          (p)->lpVtbl->GetSearchPath(p,a,b)
-#define IDirect3DRM3_SetDefaultTextureColors(p,a)                  (p)->lpVtbl->SetDefaultTextureColors(p,a)
-#define IDirect3DRM3_SetDefaultTextureShades(p,a)                  (p)->lpVtbl->SetDefaultTextureShades(p,a)
-#define IDirect3DRM3_GetDevices(p,a)                               (p)->lpVtbl->GetDevices(p,a)
-#define IDirect3DRM3_GetNamedObject(p,a,b)                         (p)->lpVtbl->GetNamedObject(p,a,b)
-#define IDirect3DRM3_EnumerateObjects(p,a,b)                       (p)->lpVtbl->EnumerateObjects(p,a,b)
-#define IDirect3DRM3_Load(p,a,b,c,d,e,f,g,h,i,j)                   (p)->lpVtbl->Load(p,a,b,c,d,e,f,g,h,i,j)
-#define IDirect3DRM3_Tick(p,a)                                     (p)->lpVtbl->Tick(p,a)
-#define IDirect3DRM3_CreateProgressiveMesh(p,a)                    (p)->lpVtbl->CreateProgressiveMesh(p,a)
-#define IDirect3DRM3_RegisterClient(p,a,b)                         (p)->lpVtbl->RegisterClient(p,a,b)
-#define IDirect3DRM3_UnregisterClient(p,a)                         (p)->lpVtbl->UnregisterClient(p,a)
-#define IDirect3DRM3_CreateClippedVisual(p,ab)                     (p)->lpVtbl->CreateClippedVisual(p,a,b)
-#define IDirect3DRM3_SetOptions(p,a)                               (p)->lpVtbl->SetOptions(p,a)
-#define IDirect3DRM3_GetOptions(p,a)                               (p)->lpVtbl->GetOptions(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRM3_QueryInterface(p,a,b)                         (p)->QueryInterface(a,b)
-#define IDirect3DRM3_AddRef(p)                                     (p)->AddRef()
-#define IDirect3DRM3_Release(p)                                    (p)->Release()
-/*** IDirect3DRM3 methods ***/
-#define IDirect3DRM3_CreateObject(p,a,b,c,d)                       (p)->CreateObject(a,b,d)
-#define IDirect3DRM3_CreateFrame(p,a,b)                            (p)->CreateFrame(a,b)
-#define IDirect3DRM3_CreateMesh(p,a)                               (p)->CreateMesh(a)
-#define IDirect3DRM3_CreateMeshBuilder(p,a)                        (p)->CreateMeshBuilder(a)
-#define IDirect3DRM3_CreateFace(p,a)                               (p)->CreateFace(a)
-#define IDirect3DRM3_CreateAnimation(p,a)                          (p)->CreateAnimation(a)
-#define IDirect3DRM3_CreateAnimationSet(p,a)                       (p)->CreateAnimationSet(a)
-#define IDirect3DRM3_CreateTexture(p,a,b)                          (p)->CreateTexture(a,b)
-#define IDirect3DRM3_CreateLight(p,a,b,c)                          (p)->CreateLight(a,b,c)
-#define IDirect3DRM3_CreateLightRGB(p,a,b,c,d,e)                   (p)->CreateLightRGB(a,b,c,d,e)
-#define IDirect3DRM3_CreateMaterial(p,a,b)                         (p)->CreateMaterial(a,b)
-#define IDirect3DRM3_CreateDevice(p,a,b,c)                         (p)->CreateDevice(a,b,c)
-#define IDirect3DRM3_CreateDeviceFromSurface(p,a,b,c,d)            (p)->CreateDeviceFromSurface(a,b,c,d)
-#define IDirect3DRM3_CreateDeviceFromD3D(p,a,b,c)                  (p)->CreateDeviceFromD3D(a,b,c)
-#define IDirect3DRM3_CreateDeviceFromClipper(p,a,b,c,d,e)          (p)->CreateDeviceFromClipper(a,b,c,d,e)
-#define IDirect3DRM3_CreateTextureFromSurface(p,a,b)               (p)->CreateTextureFromSurface(a,b)
-#define IDirect3DRM3_CreateShadow(p,a,b,c,d,e,f,g,h,i)             (p)->CreateShadow(a,b,c,d,e,f,g,h,i)
-#define IDirect3DRM3_CreateViewport(p,a,b,c,d,e,f,g)               (p)->CreateViewport(a,b,c,d,e,f,g)
-#define IDirect3DRM3_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) (p)->CreateWrap(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p)
-#define IDirect3DRM3_CreateUserVisual(p,a,b,c)                     (p)->CreateUserVisual(a,b,c)
-#define IDirect3DRM3_LoadTexture(p,a,b)                            (p)->LoadTexture(a,b)
-#define IDirect3DRM3_LoadTextureFromResource(p,a,b,c,d)            (p)->LoadTextureFromResource(a,b,c,d)
-#define IDirect3DRM3_SetSearchPath(p,a)                            (p)->SetSearchPath(a)
-#define IDirect3DRM3_AddSearchPath(p,a)                            (p)->AddSearchPath(a)
-#define IDirect3DRM3_GetSearchPath(p,a,b)                          (p)->GetSearchPath(a,b)
-#define IDirect3DRM3_SetDefaultTextureColors(p,a)                  (p)->SetDefaultTextureColors(a)
-#define IDirect3DRM3_SetDefaultTextureShades(p,a)                  (p)->SetDefaultTextureShades(a)
-#define IDirect3DRM3_GetDevices(p,a)                               (p)->GetDevices(a)
-#define IDirect3DRM3_GetNamedObject(p,a,b)                         (p)->GetNamedObject(a,b)
-#define IDirect3DRM3_EnumerateObjects(p,a,b)                       (p)->EnumerateObjects(a,b)
-#define IDirect3DRM3_Load(p,a,b,c,d,e,f,g,h,i,j)                   (p)->Load(a,b,c,d,e,f,g,h,i,j)
-#define IDirect3DRM3_Tick(p,a)                                     (p)->Tick(a)
-#define IDirect3DRM3_CreateProgressiveMesh(p,a)                    (p)->CreateProgressiveMesh(p,a)
-#define IDirect3DRM3_RegisterClient(p,a,b)                         (p)->RegisterClient(p,a,b)
-#define IDirect3DRM3_UnregisterClient(p,a)                         (p)->UnregisterClient(p,a)
-#define IDirect3DRM3_CreateClippedVisual(p,ab)                     (p)->CreateClippedVisual(p,a,b)
-#define IDirect3DRM3_SetOptions(p,a)                               (p)->SetOptions(p,a)
-#define IDirect3DRM3_GetOptions(p,a)                               (p)->GetOptions(p,a)
-#endif
-
-#define D3DRM_OK                        DD_OK
-#define D3DRMERR_BADOBJECT              MAKE_DDHRESULT(781)
-#define D3DRMERR_BADTYPE                MAKE_DDHRESULT(782)
-#define D3DRMERR_BADALLOC               MAKE_DDHRESULT(783)
-#define D3DRMERR_FACEUSED               MAKE_DDHRESULT(784)
-#define D3DRMERR_NOTFOUND               MAKE_DDHRESULT(785)
-#define D3DRMERR_NOTDONEYET             MAKE_DDHRESULT(786)
-#define D3DRMERR_FILENOTFOUND           MAKE_DDHRESULT(787)
-#define D3DRMERR_BADFILE                MAKE_DDHRESULT(788)
-#define D3DRMERR_BADDEVICE              MAKE_DDHRESULT(789)
-#define D3DRMERR_BADVALUE               MAKE_DDHRESULT(790)
-#define D3DRMERR_BADMAJORVERSION        MAKE_DDHRESULT(791)
-#define D3DRMERR_BADMINORVERSION        MAKE_DDHRESULT(792)
-#define D3DRMERR_UNABLETOEXECUTE        MAKE_DDHRESULT(793)
-#define D3DRMERR_LIBRARYNOTFOUND        MAKE_DDHRESULT(794)
-#define D3DRMERR_INVALIDLIBRARY         MAKE_DDHRESULT(795)
-#define D3DRMERR_PENDING                MAKE_DDHRESULT(796)
-#define D3DRMERR_NOTENOUGHDATA          MAKE_DDHRESULT(797)
-#define D3DRMERR_REQUESTTOOLARGE        MAKE_DDHRESULT(798)
-#define D3DRMERR_REQUESTTOOSMALL        MAKE_DDHRESULT(799)
-#define D3DRMERR_CONNECTIONLOST         MAKE_DDHRESULT(800)
-#define D3DRMERR_LOADABORTED            MAKE_DDHRESULT(801)
-#define D3DRMERR_NOINTERNET             MAKE_DDHRESULT(802)
-#define D3DRMERR_BADCACHEFILE           MAKE_DDHRESULT(803)
-#define D3DRMERR_BOXNOTSET              MAKE_DDHRESULT(804)
-#define D3DRMERR_BADPMDATA              MAKE_DDHRESULT(805)
-#define D3DRMERR_CLIENTNOTREGISTERED    MAKE_DDHRESULT(806)
-#define D3DRMERR_NOTCREATEDFROMDDS      MAKE_DDHRESULT(807)
-#define D3DRMERR_NOSUCHKEY              MAKE_DDHRESULT(808)
-#define D3DRMERR_INCOMPATABLEKEY        MAKE_DDHRESULT(809)
-#define D3DRMERR_ELEMENTINUSE           MAKE_DDHRESULT(810)
-#define D3DRMERR_TEXTUREFORMATNOTFOUND  MAKE_DDHRESULT(811)
-#define D3DRMERR_NOTAGGREGATED          MAKE_DDHRESULT(812)
-
-#endif /* __D3DRM_H__ */
diff --git a/misc/builddeps/win32/dx/include/d3drmdef.h b/misc/builddeps/win32/dx/include/d3drmdef.h
deleted file mode 100644 (file)
index 80086dc..0000000
+++ /dev/null
@@ -1,266 +0,0 @@
-/*
- * Copyright 2007 Vijay Kiran Kamuju
- * Copyright 2007 David ADAM
- * Copyright 2010 Christian Costa
- *
- * 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 __D3DRMDEFS_H__
-#define __D3DRMDEFS_H__
-
-#include <stddef.h>
-#include <d3dtypes.h>
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-typedef struct _D3DRMVECTOR4D
-{
-    D3DVALUE x;
-    D3DVALUE y;
-    D3DVALUE z;
-    D3DVALUE w;
-} D3DRMVECTOR4D, *LPD3DRMVECTOR4D;
-
-typedef D3DVALUE D3DRMMATRIX4D[4][4];
-
-typedef struct _D3DRMQUATERNION {
-    D3DVALUE s;
-    D3DVECTOR v;
-} D3DRMQUATERNION, *LPD3DRMQUATERNION;
-
-typedef struct _D3DRMRAY {
-    D3DVECTOR dvDir;
-    D3DVECTOR dvPos;
-} D3DRMRAY, *LPD3DRMRAY;
-
-typedef struct _D3DRMBOX {
-    D3DVECTOR min;
-    D3DVECTOR max;
-} D3DRMBOX, *LPD3DRMBOX;
-
-typedef enum _D3DRMLIGHTTYPE {
-    D3DRMLIGHT_AMBIENT,
-    D3DRMLIGHT_POINT,
-    D3DRMLIGHT_SPOT,
-    D3DRMLIGHT_DIRECTIONAL,
-    D3DRMLIGHT_PARALLELPOINT
-} D3DRMLIGHTTYPE, *LPD3DRMLIGHTTYPE;
-
-typedef DWORD D3DRMRENDERQUALITY, *LPD3DRMRENDERQUALITY;
-
-typedef enum _D3DRMTEXTUREQUALITY {
-    D3DRMTEXTURE_NEAREST,
-    D3DRMTEXTURE_LINEAR,
-    D3DRMTEXTURE_MIPNEAREST,
-    D3DRMTEXTURE_MIPLINEAR,
-    D3DRMTEXTURE_LINEARMIPNEAREST,
-    D3DRMTEXTURE_LINEARMIPLINEAR
-} D3DRMTEXTUREQUALITY, *LPD3DRMTEXTUREQUALITY;
-
-typedef enum _D3DRMCOMBINETYPE {
-    D3DRMCOMBINE_REPLACE,
-    D3DRMCOMBINE_BEFORE,
-    D3DRMCOMBINE_AFTER
-} D3DRMCOMBINETYPE, *LPD3DRMCOMBINETYPE;
-
-typedef struct _D3DRMPALETTEENTRY {
-    unsigned char red;
-    unsigned char green;
-    unsigned char blue;
-    unsigned char flags;
-} D3DRMPALETTEENTRY, *LPD3DRMPALETTEENTRY;
-
-typedef struct _D3DRMIMAGE {
-    int width;
-    int height;
-    int aspectx;
-    int aspecty;
-    int depth;
-    int rgb;
-    int bytes_per_line;
-    void* buffer1;
-    void* buffer2;
-    unsigned long red_mask;
-    unsigned long green_mask;
-    unsigned long blue_mask;
-    unsigned long alpha_mask;
-    int palette_size;
-    D3DRMPALETTEENTRY* palette;
-} D3DRMIMAGE, *LPD3DRMIMAGE;
-
-typedef enum _D3DRMWRAPTYPE {
-    D3DRMWRAP_FLAT,
-    D3DRMWRAP_CYLINDER,
-    D3DRMWRAP_SPHERE,
-    D3DRMWRAP_CHROME,
-    D3DRMWRAP_SHEET,
-    D3DRMWRAP_BOX
-} D3DRMWRAPTYPE, *LPD3DRMWRAPTYPE;
-
-typedef enum _D3DRMPROJECTIONTYPE
-{
-    D3DRMPROJECT_PERSPECTIVE,
-    D3DRMPROJECT_ORTHOGRAPHIC,
-    D3DRMPROJECT_RIGHTHANDPERSPECTIVE,
-    D3DRMPROJECT_RIGHTHANDORTHOGRAPHIC
-} D3DRMPROJECTIONTYPE, *LPD3DRMPROJECTIONTYPE;
-
-typedef enum _D3DRMXOFFORMAT {
-    D3DRMXOF_BINARY,
-    D3DRMXOF_COMPRESSED,
-    D3DRMXOF_TEXT
-} D3DRMXOFFORMAT, *LPD3DRMXOFFORMAT;
-
-typedef DWORD D3DRMSAVEOPTIONS;
-
-typedef enum _D3DRMCOLORSOURCE {
-    D3DRMCOLOR_FROMFACE,
-    D3DRMCOLOR_FROMVERTEX
-} D3DRMCOLORSOURCE, *LPD3DRMCOLORSOURCE;
-
-typedef enum _D3DRMFRAMECONSTRAINT {
-    D3DRMCONSTRAIN_Z,
-    D3DRMCONSTRAIN_Y,
-    D3DRMCONSTRAIN_X
-} D3DRMFRAMECONSTRAINT, *LPD3DRMFRAMECONSTRAINT;
-
-typedef enum _D3DRMMATERIALMODE {
-    D3DRMMATERIAL_FROMMESH,
-    D3DRMMATERIAL_FROMPARENT,
-    D3DRMMATERIAL_FROMFRAME
-} D3DRMMATERIALMODE, *LPD3DRMMATERIALMODE;
-
-typedef enum _D3DRMFOGMODE {
-    D3DRMFOG_LINEAR,
-    D3DRMFOG_EXPONENTIAL,
-    D3DRMFOG_EXPONENTIALSQUARED
-} D3DRMFOGMODE, *LPD3DRMFOGMODE;
-
-typedef enum _D3DRMZBUFFERMODE {
-    D3DRMZBUFFER_FROMPARENT,
-    D3DRMZBUFFER_ENABLE,
-    D3DRMZBUFFER_DISABLE
-} D3DRMZBUFFERMODE, *LPD3DRMZBUFFERMODE;
-
-typedef enum _D3DRMSORTMODE {
-    D3DRMSORT_FROMPARENT,
-    D3DRMSORT_NONE,
-    D3DRMSORT_FRONTTOBACK,
-    D3DRMSORT_BACKTOFRONT
-} D3DRMSORTMODE, *LPD3DRMSORTMODE;
-
-typedef struct _D3DRMMATERIALOVERRIDE {
-    DWORD         dwSize;
-    DWORD         dwFlags;
-    D3DCOLORVALUE dcDiffuse;
-    D3DCOLORVALUE dcAmbient;
-    D3DCOLORVALUE dcEmissive;
-    D3DCOLORVALUE dcSpecular;
-    D3DVALUE      dvPower;
-    LPUNKNOWN     lpD3DRMTex;
-} D3DRMMATERIALOVERRIDE, *LPD3DRMMATERIALOVERRIDE;
-
-typedef DWORD D3DRMLOADOPTIONS;
-
-#define D3DRMLOAD_FROMFILE             0x000L
-#define D3DRMLOAD_FROMRESOURCE         0x001L
-#define D3DRMLOAD_FROMMEMORY           0x002L
-#define D3DRMLOAD_FROMSTREAM           0x004L
-#define D3DRMLOAD_FROMURL              0x008L
-
-#define D3DRMLOAD_BYNAME               0x010L
-#define D3DRMLOAD_BYPOSITION           0x020L
-#define D3DRMLOAD_BYGUID               0x040L
-#define D3DRMLOAD_FIRST                0x080L
-
-#define D3DRMLOAD_INSTANCEBYREFERENCE  0x100L
-#define D3DRMLOAD_INSTANCEBYCOPYING    0x200L
-
-#define D3DRMLOAD_ASYNCHRONOUS         0x400L
-
-typedef struct _D3DRMLOADRESOURCE {
-    HMODULE hModule;
-    LPCSTR /*LPCTSTR*/ lpName;
-    LPCSTR /*LPCTSTR*/ lpType;
-} D3DRMLOADRESOURCE, *LPD3DRMLOADRESOURCE;
-
-typedef struct _D3DRMLOADMEMORY {
-    LPVOID lpMemory;
-    DWORD dSize;
-} D3DRMLOADMEMORY, *LPD3DRMLOADMEMORY;
-
-typedef struct _D3DRMPMESHLOADSTATUS {
-    DWORD dwSize;
-    DWORD dwPMeshSize;
-    DWORD dwBaseMeshSize;
-    DWORD dwBytesLoaded;
-    DWORD dwVerticesLoaded;
-    DWORD dwFacesLoaded;
-    HRESULT dwLoadResult;
-    DWORD dwFlags;
-} D3DRMPMESHLOADSTATUS, *LPD3DRMPMESHLOADSTATUS;
-
-typedef enum _D3DRMUSERVISUALREASON {
-    D3DRMUSERVISUAL_CANSEE,
-    D3DRMUSERVISUAL_RENDER
-} D3DRMUSERVISUALREASON, *LPD3DRMUSERVISUALREASON;
-
-typedef DWORD D3DRMMAPPING;
-
-typedef struct _D3DRMVERTEX {
-    D3DVECTOR position;
-    D3DVECTOR normal;
-    D3DVALUE  tu;
-    D3DVALUE  tv;
-    D3DCOLOR  color;
-} D3DRMVERTEX, *LPD3DRMVERTEX;
-
-typedef LONG D3DRMGROUPINDEX;
-
-void WINAPI D3DRMMatrixFromQuaternion(D3DRMMATRIX4D, LPD3DRMQUATERNION);
-
-LPD3DRMQUATERNION WINAPI D3DRMQuaternionFromRotation(LPD3DRMQUATERNION ,LPD3DVECTOR,D3DVALUE);
-LPD3DRMQUATERNION WINAPI D3DRMQuaternionMultiply(LPD3DRMQUATERNION, LPD3DRMQUATERNION, LPD3DRMQUATERNION);
-LPD3DRMQUATERNION WINAPI D3DRMQuaternionSlerp(LPD3DRMQUATERNION, LPD3DRMQUATERNION, LPD3DRMQUATERNION, D3DVALUE);
-
-LPD3DVECTOR WINAPI D3DRMVectorAdd(LPD3DVECTOR, LPD3DVECTOR, LPD3DVECTOR);
-LPD3DVECTOR WINAPI D3DRMVectorCrossProduct(LPD3DVECTOR, LPD3DVECTOR, LPD3DVECTOR);
-D3DVALUE WINAPI D3DRMVectorDotProduct(LPD3DVECTOR, LPD3DVECTOR);
-LPD3DVECTOR WINAPI D3DRMVectorNormalize(LPD3DVECTOR);
-
-#define D3DRMVectorNormalise D3DRMVectorNormalize
-
-D3DVALUE WINAPI D3DRMVectorModulus(LPD3DVECTOR);
-LPD3DVECTOR WINAPI D3DRMVectorRandom(LPD3DVECTOR);
-LPD3DVECTOR WINAPI D3DRMVectorRotate(LPD3DVECTOR, LPD3DVECTOR, LPD3DVECTOR, D3DVALUE);
-LPD3DVECTOR WINAPI D3DRMVectorReflect(LPD3DVECTOR, LPD3DVECTOR, LPD3DVECTOR);
-LPD3DVECTOR WINAPI D3DRMVectorScale(LPD3DVECTOR, LPD3DVECTOR, D3DVALUE);
-LPD3DVECTOR WINAPI D3DRMVectorSubtract(LPD3DVECTOR, LPD3DVECTOR, LPD3DVECTOR);
-
-D3DCOLOR WINAPI D3DRMCreateColorRGB(D3DVALUE, D3DVALUE, D3DVALUE);
-D3DCOLOR WINAPI D3DRMCreateColorRGBA(D3DVALUE, D3DVALUE, D3DVALUE, D3DVALUE);
-D3DVALUE WINAPI D3DRMColorGetAlpha(D3DCOLOR);
-D3DVALUE WINAPI D3DRMColorGetBlue(D3DCOLOR);
-D3DVALUE WINAPI D3DRMColorGetGreen(D3DCOLOR);
-D3DVALUE WINAPI D3DRMColorGetRed(D3DCOLOR);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/misc/builddeps/win32/dx/include/d3drmobj.h b/misc/builddeps/win32/dx/include/d3drmobj.h
deleted file mode 100644 (file)
index bd22e89..0000000
+++ /dev/null
@@ -1,3033 +0,0 @@
-/*
- * Copyright (C) 2008 Vijay Kiran Kamuju
- * Copyright (C) 2010 Christian Costa
- *
- * 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 __D3DRMOBJ_H__
-#define __D3DRMOBJ_H__
-
-#include <objbase.h>
-#define VIRTUAL
-#include <d3drmdef.h>
-#include <d3d.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*****************************************************************************
- * Predeclare the interfaces
- */
-
-DEFINE_GUID(IID_IDirect3DRMObject,          0xeb16cb00, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMObject2,         0x4516ec7c, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
-DEFINE_GUID(IID_IDirect3DRMDevice,          0xe9e19280, 0x6e05, 0x11cf, 0xac, 0x4a, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMDevice2,         0x4516ec78, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
-DEFINE_GUID(IID_IDirect3DRMDevice3,         0x549f498b, 0xbfeb, 0x11d1, 0x8e, 0xd8, 0x00, 0xa0, 0xc9, 0x67, 0xa4, 0x82);
-DEFINE_GUID(IID_IDirect3DRMViewport,        0xeb16cb02, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMViewport2,       0x4a1b1be6, 0xbfed, 0x11d1, 0x8e, 0xd8, 0x00, 0xa0, 0xc9, 0x67, 0xa4, 0x82);
-DEFINE_GUID(IID_IDirect3DRMFrame,           0xeb16cb03, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMFrame2,          0xc3dfbd60, 0x3988, 0x11d0, 0x9e, 0xc2, 0x00, 0x00, 0xc0, 0x29, 0x1a, 0xc3);
-DEFINE_GUID(IID_IDirect3DRMFrame3,          0xff6b7f70, 0xa40e, 0x11d1, 0x91, 0xf9, 0x00, 0x00, 0xf8, 0x75, 0x8e, 0x66);
-DEFINE_GUID(IID_IDirect3DRMVisual,          0xeb16cb04, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMMesh,            0xa3a80d01, 0x6e12, 0x11cf, 0xac, 0x4a, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMMeshBuilder,     0xa3a80d02, 0x6e12, 0x11cf, 0xac, 0x4a, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMMeshBuilder2,    0x4516ec77, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
-DEFINE_GUID(IID_IDirect3DRMMeshBuilder3,    0x4516ec82, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
-DEFINE_GUID(IID_IDirect3DRMFace,            0xeb16cb07, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMFace2,           0x4516ec81, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
-DEFINE_GUID(IID_IDirect3DRMLight,           0xeb16cb08, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMTexture,         0xeb16cb09, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMTexture2,        0x120f30c0, 0x1629, 0x11d0, 0x94, 0x1c, 0x00, 0x80, 0xc8, 0x0c, 0xfa, 0x7b);
-DEFINE_GUID(IID_IDirect3DRMTexture3,        0xff6b7f73, 0xa40e, 0x11d1, 0x91, 0xf9, 0x00, 0x00, 0xf8, 0x75, 0x8e, 0x66);
-DEFINE_GUID(IID_IDirect3DRMWrap,            0xeb16cb0a, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMMaterial,        0xeb16cb0b, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMMaterial2,       0xff6b7f75, 0xa40e, 0x11d1, 0x91, 0xf9, 0x00, 0x00, 0xf8, 0x75, 0x8e, 0x66);
-DEFINE_GUID(IID_IDirect3DRMAnimation,       0xeb16cb0d, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMAnimation2,      0xff6b7f77, 0xa40e, 0x11d1, 0x91, 0xf9, 0x00, 0x00, 0xf8, 0x75, 0x8e, 0x66);
-DEFINE_GUID(IID_IDirect3DRMAnimationSet,    0xeb16cb0e, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMAnimationSet2,   0xff6b7f79, 0xa40e, 0x11d1, 0x91, 0xf9, 0x00, 0x00, 0xf8, 0x75, 0x8e, 0x66);
-DEFINE_GUID(IID_IDirect3DRMObjectArray,     0x242f6bc2, 0x3849, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
-DEFINE_GUID(IID_IDirect3DRMDeviceArray,     0xeb16cb10, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMViewportArray,   0xeb16cb11, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMFrameArray,      0xeb16cb12, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMVisualArray,     0xeb16cb13, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMLightArray,      0xeb16cb14, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMPickedArray,     0xeb16cb16, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMFaceArray,       0xeb16cb17, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMAnimationArray,  0xd5f1cae0, 0x4bd7, 0x11d1, 0xb9, 0x74, 0x00, 0x60, 0x08, 0x3e, 0x45, 0xf3);
-DEFINE_GUID(IID_IDirect3DRMUserVisual,      0x59163de0, 0x6d43, 0x11cf, 0xac, 0x4a, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMShadow,          0xaf359780, 0x6ba3, 0x11cf, 0xac, 0x4a, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMShadow2,         0x86b44e25, 0x9c82, 0x11d1, 0xbb, 0x0b, 0x00, 0xa0, 0xc9, 0x81, 0xa0, 0xa6);
-DEFINE_GUID(IID_IDirect3DRMInterpolator,    0x242f6bc1, 0x3849, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
-DEFINE_GUID(IID_IDirect3DRMProgressiveMesh, 0x4516ec79, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
-DEFINE_GUID(IID_IDirect3DRMPicked2Array,    0x4516ec7b, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
-DEFINE_GUID(IID_IDirect3DRMClippedVisual,   0x5434e733, 0x6d66, 0x11d1, 0xbb, 0x0b, 0x00, 0x00, 0xf8, 0x75, 0x86, 0x5a);
-
-typedef struct IDirect3DRMObject          *LPDIRECT3DRMOBJECT, **LPLPDIRECT3DRMOBJECT;
-typedef struct IDirect3DRMObject2         *LPDIRECT3DRMOBJECT2, **LPLPDIRECT3DRMOBJECT2;
-typedef struct IDirect3DRMDevice          *LPDIRECT3DRMDEVICE, **LPLPDIRECT3DRMDEVICE;
-typedef struct IDirect3DRMDevice2         *LPDIRECT3DRMDEVICE2, **LPLPDIRECT3DRMDEVICE2;
-typedef struct IDirect3DRMDevice3         *LPDIRECT3DRMDEVICE3, **LPLPDIRECT3DRMDEVICE3;
-typedef struct IDirect3DRMViewport        *LPDIRECT3DRMVIEWPORT, **LPLPDIRECT3DRMVIEWPORT;
-typedef struct IDirect3DRMViewport2       *LPDIRECT3DRMVIEWPORT2, **LPLPDIRECT3DRMVIEWPORT2;
-typedef struct IDirect3DRMFrame           *LPDIRECT3DRMFRAME, **LPLPDIRECT3DRMFRAME;
-typedef struct IDirect3DRMFrame2          *LPDIRECT3DRMFRAME2, **LPLPDIRECT3DRMFRAME2;
-typedef struct IDirect3DRMFrame3          *LPDIRECT3DRMFRAME3, **LPLPDIRECT3DRMFRAME3;
-typedef struct IDirect3DRMVisual          *LPDIRECT3DRMVISUAL, **LPLPDIRECT3DRMVISUAL;
-typedef struct IDirect3DRMMesh            *LPDIRECT3DRMMESH, **LPLPDIRECT3DRMMESH;
-typedef struct IDirect3DRMMeshBuilder     *LPDIRECT3DRMMESHBUILDER, **LPLPDIRECT3DRMMESHBUILDER;
-typedef struct IDirect3DRMMeshBuilder2    *LPDIRECT3DRMMESHBUILDER2, **LPLPDIRECT3DRMMESHBUILDER2;
-typedef struct IDirect3DRMMeshBuilder3    *LPDIRECT3DRMMESHBUILDER3, **LPLPDIRECT3DRMMESHBUILDER3;
-typedef struct IDirect3DRMFace            *LPDIRECT3DRMFACE, **LPLPDIRECT3DRMFACE;
-typedef struct IDirect3DRMFace2           *LPDIRECT3DRMFACE2, **LPLPDIRECT3DRMFACE2;
-typedef struct IDirect3DRMLight           *LPDIRECT3DRMLIGHT, **LPLPDIRECT3DRMLIGHT;
-typedef struct IDirect3DRMTexture         *LPDIRECT3DRMTEXTURE, **LPLPDIRECT3DRMTEXTURE;
-typedef struct IDirect3DRMTexture2        *LPDIRECT3DRMTEXTURE2, **LPLPDIRECT3DRMTEXTURE2;
-typedef struct IDirect3DRMTexture3        *LPDIRECT3DRMTEXTURE3, **LPLPDIRECT3DRMTEXTURE3;
-typedef struct IDirect3DRMWrap            *LPDIRECT3DRMWRAP, **LPLPDIRECT3DRMWRAP;
-typedef struct IDirect3DRMMaterial        *LPDIRECT3DRMMATERIAL, **LPLPDIRECT3DRMMATERIAL;
-typedef struct IDirect3DRMMaterial2       *LPDIRECT3DRMMATERIAL2, **LPLPDIRECT3DRMMATERIAL2;
-typedef struct IDirect3DRMAnimation       *LPDIRECT3DRMANIMATION, **LPLPDIRECT3DRMANIMATION;
-typedef struct IDirect3DRMAnimation2      *LPDIRECT3DRMANIMATION2, **LPLPDIRECT3DRMANIMATION2;
-typedef struct IDirect3DRMAnimationSet    *LPDIRECT3DRMANIMATIONSET, **LPLPDIRECT3DRMANIMATIONSET;
-typedef struct IDirect3DRMAnimationSet2   *LPDIRECT3DRMANIMATIONSET2, **LPLPDIRECT3DRMANIMATIONSET2;
-typedef struct IDirect3DRMUserVisual      *LPDIRECT3DRMUSERVISUAL, **LPLPDIRECT3DRMUSERVISUAL;
-typedef struct IDirect3DRMShadow          *LPDIRECT3DRMSHADOW, **LPLPDIRECT3DRMSHADOW;
-typedef struct IDirect3DRMShadow2         *LPDIRECT3DRMSHADOW2, **LPLPDIRECT3DRMSHADOW2;
-typedef struct IDirect3DRMArray           *LPDIRECT3DRMARRAY, **LPLPDIRECT3DRMARRAY;
-typedef struct IDirect3DRMObjectArray     *LPDIRECT3DRMOBJECTARRAY, **LPLPDIRECT3DRMOBJECTARRAY;
-typedef struct IDirect3DRMDeviceArray     *LPDIRECT3DRMDEVICEARRAY, **LPLPDIRECT3DRMDEVICEARRAY;
-typedef struct IDirect3DRMFaceArray       *LPDIRECT3DRMFACEARRAY, **LPLPDIRECT3DRMFACEARRAY;
-typedef struct IDirect3DRMViewportArray   *LPDIRECT3DRMVIEWPORTARRAY, **LPLPDIRECT3DRMVIEWPORTARRAY;
-typedef struct IDirect3DRMFrameArray      *LPDIRECT3DRMFRAMEARRAY, **LPLPDIRECT3DRMFRAMEARRAY;
-typedef struct IDirect3DRMAnimationArray  *LPDIRECT3DRMANIMATIONARRAY, **LPLPDIRECT3DRMANIMATIONARRAY;
-typedef struct IDirect3DRMVisualArray     *LPDIRECT3DRMVISUALARRAY, **LPLPDIRECT3DRMVISUALARRAY;
-typedef struct IDirect3DRMPickedArray     *LPDIRECT3DRMPICKEDARRAY, **LPLPDIRECT3DRMPICKEDARRAY;
-typedef struct IDirect3DRMPicked2Array    *LPDIRECT3DRMPICKED2ARRAY, **LPLPDIRECT3DRMPICKED2ARRAY;
-typedef struct IDirect3DRMLightArray      *LPDIRECT3DRMLIGHTARRAY, **LPLPDIRECT3DRMLIGHTARRAY;
-typedef struct IDirect3DRMProgressiveMesh *LPDIRECT3DRMPROGRESSIVEMESH, **LPLPDIRECT3DRMPROGRESSIVEMESH;
-typedef struct IDirect3DRMClippedVisual   *LPDIRECT3DRMCLIPPEDVISUAL, **LPLPDIRECT3DRMCLIPPEDVISUAL;
-
-/* ********************************************************************
-   Types and structures
-   ******************************************************************** */
-
-typedef void (__cdecl *D3DRMOBJECTCALLBACK)(LPDIRECT3DRMOBJECT obj, LPVOID arg);
-typedef void (__cdecl *D3DRMFRAMEMOVECALLBACK)(LPDIRECT3DRMFRAME obj, LPVOID arg, D3DVALUE delta);
-typedef void (__cdecl *D3DRMFRAME3MOVECALLBACK)(LPDIRECT3DRMFRAME3 obj, LPVOID arg, D3DVALUE delta);
-typedef void (__cdecl *D3DRMUPDATECALLBACK)(LPDIRECT3DRMDEVICE obj, LPVOID arg, int, LPD3DRECT);
-typedef int (__cdecl *D3DRMUSERVISUALCALLBACK)(LPDIRECT3DRMUSERVISUAL obj, LPVOID arg,
-    D3DRMUSERVISUALREASON reason, LPDIRECT3DRMDEVICE dev, LPDIRECT3DRMVIEWPORT view);
-typedef HRESULT (__cdecl *D3DRMLOADTEXTURECALLBACK)(char *tex_name, void *arg, LPDIRECT3DRMTEXTURE *);
-typedef HRESULT (__cdecl *D3DRMLOADTEXTURE3CALLBACK)(char *tex_name, void *arg, LPDIRECT3DRMTEXTURE3 *);
-typedef void (__cdecl *D3DRMLOADCALLBACK)(LPDIRECT3DRMOBJECT object, REFIID objectguid, LPVOID arg);
-
-typedef struct _D3DRMPICKDESC
-{
-    ULONG     ulFaceIdx;
-    LONG      lGroupIdx;
-    D3DVECTOR vPosition;
-} D3DRMPICKDESC, *LPD3DRMPICKDESC;
-
-typedef struct _D3DRMPICKDESC2
-{
-    ULONG     ulFaceIdx;
-    LONG      lGroupIdx;
-    D3DVECTOR vPosition;
-    D3DVALUE  tu;
-    D3DVALUE  tv;
-    D3DVECTOR dvNormal;
-    D3DCOLOR  dcColor;
-} D3DRMPICKDESC2, *LPD3DRMPICKDESC2;
-
-/*****************************************************************************
- * IDirect3DRMObject interface
- */
-#ifdef WINE_NO_UNICODE_MACROS
-#undef GetClassName
-#endif
-#define INTERFACE IDirect3DRMObject
-DECLARE_INTERFACE_(IDirect3DRMObject,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMObject_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMObject_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMObject_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMObject_Clone(p,a,b,c)               (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMObject_AddDestroyCallback(p,a,b)    (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMObject_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMObject_SetAppData(p,a)              (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMObject_GetAppData(p)                (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMObject_SetName(p,a)                 (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMObject_GetName(p,a,b)               (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMObject_GetClassName(p,a,b)          (p)->lpVtbl->GetClassName(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMObject_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DRMObject_AddRef(p)                    (p)->AddRef()
-#define IDirect3DRMObject_Release(p)                   (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMObject_Clone(p,a,b,c)               (p)->Clone(a,b,c)
-#define IDirect3DRMObject_AddDestroyCallback(p,a,b)    (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMObject_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMObject_SetAppData(p,a)              (p)->SetAppData(a)
-#define IDirect3DRMObject_GetAppData(p)                (p)->GetAppData()
-#define IDirect3DRMObject_SetName(p,a)                 (p)->SetName(a)
-#define IDirect3DRMObject_GetName(p,a,b)               (p)->GetName(a,b)
-#define IDirect3DRMObject_GetClassName(p,a,b)          (p)->GetClassName(a,b)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMObject2 interface
- */
-#ifdef WINE_NO_UNICODE_MACROS
-#undef GetClassName
-#endif
-#define INTERFACE IDirect3DRMObject2
-DECLARE_INTERFACE_(IDirect3DRMObject2,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject2 methods ***/
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK pFunc, LPVOID pArg) PURE;
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK pFunc, LPVOID pArg) PURE;
-    STDMETHOD(GetClientData)(THIS_ DWORD id, LPVOID* ppData) PURE;
-    STDMETHOD(GetDirect3DRM)(THIS_ LPDIRECT3DRM* ppDirect3DRM) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD pSize, LPSTR pName) PURE;
-    STDMETHOD(SetClientData)(THIS_ DWORD id, LPVOID pData, DWORD flags) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR pName) PURE;
-    STDMETHOD(GetAge)(THIS_ DWORD flags, LPDWORD pAge) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMObject2_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMObject2_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMObject2_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject2 methods ***/
-#define IDirect3DRMObject2_AddDestroyCallback(p,a,b)    (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMObject2_Clone(p,a,b,c)               (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMObject2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMObject2_GetClientData(p,a,b)         (p)->lpVtbl->SetClientData(p,a,b)
-#define IDirect3DRMObject2_GetDirect3DRM(p,a)           (p)->lpVtbl->GetDirect3DRM(p,a)
-#define IDirect3DRMObject2_GetName(p,a,b)               (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMObject2_SetClientData(p,a,b,c)       (p)->lpVtbl->SetClientData(p,a,b,c)
-#define IDirect3DRMObject2_SetName(p,a)                 (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMObject2_GetAge(p,a,b)                (p)->lpVtbl->GetAge(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMObject2_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DRMObject2_AddRef(p)                    (p)->AddRef()
-#define IDirect3DRMObject2_Release(p)                   (p)->Release()
-/*** IDirect3DRMObject2 methods ***/
-#define IDirect3DRMObject2_AddDestroyCallback(p,a,b)    (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMObject2_Clone(p,a,b,c)               (p)->Clone(a,b,c)
-#define IDirect3DRMObject2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMObject2_GetClientData(p,a,b)         (p)->SetClientData(a,b)
-#define IDirect3DRMObject2_GetDirect3DRM(p,a)           (p)->GetDirect3DRM(a)
-#define IDirect3DRMObject2_GetName(p,a,b)               (p)->GetName(a,b)
-#define IDirect3DRMObject2_SetClientData(p,a,b,c)       (p)->SetClientData(a,b,c)
-#define IDirect3DRMObject2_SetName(p,a)                 (p)->SetName(a)
-#define IDirect3DRMObject2_GetAge(p,a,b)                (p)->GetAge(a,b)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMVisual interface
- */
-#define INTERFACE IDirect3DRMVisual
-DECLARE_INTERFACE_(IDirect3DRMVisual,IDirect3DRMObject)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMVisual_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMVisual_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMVisual_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMVisual_Clone(p,a,b,c)               (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMVisual_AddDestroyCallback(p,a,b)    (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMVisual_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMVisual_SetAppData(p,a)              (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMVisual_GetAppData(p)                (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMVisual_SetName(p,a)                 (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMVisual_GetName(p,a,b)               (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMVisual_GetClassName(p,a,b)          (p)->lpVtbl->GetClassName(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMVisual_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DRMVisual_AddRef(p)                    (p)->AddRef()
-#define IDirect3DRMVisual_Release(p)                   (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMVisual_Clone(p,a,b,c)               (p)->Clone(a,b,c)
-#define IDirect3DRMVisual_AddDestroyCallback(p,a,b)    (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMVisual_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMVisual_SetAppData(p,a)              (p)->SetAppData(a)
-#define IDirect3DRMVisual_GetAppData(p)                (p)->GetAppData()
-#define IDirect3DRMVisual_SetName(p,a)                 (p)->SetName(a)
-#define IDirect3DRMVisual_GetName(p,a,b)               (p)->GetName(a,b)
-#define IDirect3DRMVisual_GetClassName(p,a,b)          (p)->GetClassName(a,b)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMDevice interface
- */
-#ifdef WINE_NO_UNICODE_MACROS
-#undef GetClassName
-#endif
-#define INTERFACE IDirect3DRMDevice
-DECLARE_INTERFACE_(IDirect3DRMDevice,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK pFunc, LPVOID pArg) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK pFunc, LPVOID pArg) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMDevice methods ***/
-    STDMETHOD(Init)(THIS_ ULONG width, ULONG height) PURE;
-    STDMETHOD(InitFromD3D)(THIS_ LPDIRECT3D pD3D, LPDIRECT3DDEVICE pD3DDev) PURE;
-    STDMETHOD(InitFromClipper)(THIS_ LPDIRECTDRAWCLIPPER pDDClipper, LPGUID pGUID, int width, int height) PURE;
-    STDMETHOD(Update)(THIS) PURE;
-    STDMETHOD(AddUpdateCallback)(THIS_ D3DRMUPDATECALLBACK, LPVOID arg) PURE;
-    STDMETHOD(DeleteUpdateCallback)(THIS_ D3DRMUPDATECALLBACK, LPVOID arg) PURE;
-    STDMETHOD(SetBufferCount)(THIS_ DWORD) PURE;
-    STDMETHOD_(DWORD, GetBufferCount)(THIS) PURE;
-    STDMETHOD(SetDither)(THIS_ BOOL) PURE;
-    STDMETHOD(SetShades)(THIS_ DWORD) PURE;
-    STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
-    STDMETHOD(SetTextureQuality)(THIS_ D3DRMTEXTUREQUALITY) PURE;
-    STDMETHOD(GetViewports)(THIS_ LPDIRECT3DRMVIEWPORTARRAY *return_views) PURE;
-    STDMETHOD_(BOOL, GetDither)(THIS) PURE;
-    STDMETHOD_(DWORD, GetShades)(THIS) PURE;
-    STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
-    STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
-    STDMETHOD_(DWORD, GetTrianglesDrawn)(THIS) PURE;
-    STDMETHOD_(DWORD, GetWireframeOptions)(THIS) PURE;
-    STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
-    STDMETHOD_(D3DCOLORMODEL, GetColorModel)(THIS) PURE;
-    STDMETHOD_(D3DRMTEXTUREQUALITY, GetTextureQuality)(THIS) PURE;
-    STDMETHOD(GetDirect3DDevice)(THIS_ LPDIRECT3DDEVICE *) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMDevice_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMDevice_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMDevice_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMDevice_Clone(p,a,b,c)               (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMDevice_AddDestroyCallback(p,a,b)    (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMDevice_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMDevice_SetAppData(p,a)              (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMDevice_GetAppData(p)                (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMDevice_SetName(p,a)                 (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMDevice_GetName(p,a,b)               (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMDevice_GetClassName(p,a,b)          (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMDevice methods ***/
-#define IDirect3DRMDevice_Init(p,a,b)                  (p)->lpVtbl->Init(p,a,b)
-#define IDirect3DRMDevice_InitFromD3D(p,a,b)           (p)->lpVtbl->InitFromD3D(p,a,b)
-#define IDirect3DRMDevice_InitFromClipper(p,a,b,c,d)   (p)->lpVtbl->InitFromClipper(p,a,b,c,d)
-#define IDirect3DRMDevice_Update(p)                    (p)->lpVtbl->Update(p)
-#define IDirect3DRMDevice_AddUpdateCallback(p,a,b)     (p)->lpVtbl->AddUpdateCallback(p,a,b)
-#define IDirect3DRMDevice_DeleteUpdateCallback(p,a,b)  (p)->lpVtbl->DeleteUpdateCallback(p,a,b,c)
-#define IDirect3DRMDevice_SetBufferCount(p,a)          (p)->lpVtbl->SetBufferCount(p,a)
-#define IDirect3DRMDevice_GetBufferCount(p)            (p)->lpVtbl->GetBufferCount(p)
-#define IDirect3DRMDevice_SetDither(p,a)               (p)->lpVtbl->SetDither(p,a)
-#define IDirect3DRMDevice_SetShades(p,a)               (p)->lpVtbl->SetShades(p,a)
-#define IDirect3DRMDevice_SetQuality(p,a)              (p)->lpVtbl->SetQuality(p,a)
-#define IDirect3DRMDevice_SetTextureQuality(p,a)       (p)->lpVtbl->SetTextureQuality(p,a)
-#define IDirect3DRMDevice_GetViewports(p,a)            (p)->lpVtbl->GetViewports(p,a)
-#define IDirect3DRMDevice_GetDither(p)                 (p)->lpVtbl->GetDither(p)
-#define IDirect3DRMDevice_GetShades(p)                 (p)->lpVtbl->GetShades(p)
-#define IDirect3DRMDevice_GetHeight(p)                 (p)->lpVtbl->GetHeight(p)
-#define IDirect3DRMDevice_GetWidth(p)                  (p)->lpVtbl->GetWidth(p)
-#define IDirect3DRMDevice_GetTrianglesDrawn(p)         (p)->lpVtbl->GetTrianglesDrawn(p)
-#define IDirect3DRMDevice_GetWireframeOptions(p)       (p)->lpVtbl->GetWireframeOptions(p)
-#define IDirect3DRMDevice_GetQuality(p)                (p)->lpVtbl->GetQuality(p)
-#define IDirect3DRMDevice_GetColorModel(p)             (p)->lpVtbl->GetColorModel(p)
-#define IDirect3DRMDevice_GetTextureQuality(p)         (p)->lpVtbl->GetTextureQuality(p)
-#define IDirect3DRMDevice_GetDirect3DDevice(p,a)       (p)->lpVtbl->GetDirect3DDevice(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMDevice_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DRMDevice_AddRef(p)                    (p)->AddRef()
-#define IDirect3DRMDevice_Release(p)                   (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMDevice_Clone(p,a,b,c)               (p)->Clone(a,b,c)
-#define IDirect3DRMDevice_AddDestroyCallback(p,a,b)    (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMDevice_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMDevice_SetAppData(p,a)              (p)->SetAppData(a)
-#define IDirect3DRMDevice_GetAppData(p)                (p)->GetAppData()
-#define IDirect3DRMDevice_SetName(p,a)                 (p)->SetName(a)
-#define IDirect3DRMDevice_GetName(p,a,b)               (p)->GetName(a,b)
-#define IDirect3DRMDevice_GetClassName(p,a,b)          (p)->GetClassName(a,b)
-/*** IDirect3DRMDevice methods ***/
-#define IDirect3DRMDevice_Init(p,a,b)                  (p)->Init(p,a,b)
-#define IDirect3DRMDevice_InitFromD3D(p,a,b)           (p)->InitFromD3D(p,a,b)
-#define IDirect3DRMDevice_InitFromClipper(p,a,b,c,d)   (p)->InitFromClipper(p,a,b,c,d)
-#define IDirect3DRMDevice_Update(p)                    (p)->Update(p)
-#define IDirect3DRMDevice_AddUpdateCallback(p,a,b)     (p)->AddUpdateCallback(p,a,b)
-#define IDirect3DRMDevice_DeleteUpdateCallback(p,a,b)  (p)->DeleteUpdateCallback(p,a,b,c)
-#define IDirect3DRMDevice_SetBufferCount(p,a)          (p)->SetBufferCount(p,a)
-#define IDirect3DRMDevice_GetBufferCount(p)            (p)->GetBufferCount(p)
-#define IDirect3DRMDevice_SetDither(p,a)               (p)->SetDither(p,a)
-#define IDirect3DRMDevice_SetShades(p,a)               (p)->SetShades(p,a)
-#define IDirect3DRMDevice_SetQuality(p,a)              (p)->SetQuality(p,a)
-#define IDirect3DRMDevice_SetTextureQuality(p,a)       (p)->SetTextureQuality(p,a)
-#define IDirect3DRMDevice_GetViewports(p,a)            (p)->GetViewports(p,a)
-#define IDirect3DRMDevice_GetDither(p)                 (p)->GetDither(p)
-#define IDirect3DRMDevice_GetShades(p)                 (p)->GetShades(p)
-#define IDirect3DRMDevice_GetHeight(p)                 (p)->GetHeight(p)
-#define IDirect3DRMDevice_GetWidth(p)                  (p)->GetWidth(p)
-#define IDirect3DRMDevice_GetTrianglesDrawn(p)         (p)->GetTrianglesDrawn(p)
-#define IDirect3DRMDevice_GetWireframeOptions(p)       (p)->GetWireframeOptions(p)
-#define IDirect3DRMDevice_GetQuality(p)                (p)->GetQuality(p)
-#define IDirect3DRMDevice_GetColorModel(p)             (p)->GetColorModel(p)
-#define IDirect3DRMDevice_GetTextureQuality(p)         (p)->GetTextureQuality(p)
-#define IDirect3DRMDevice_GetDirect3DDevice(p,a)       (p)->GetDirect3DDevice(p,a)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMDevice2 interface
- */
-#ifdef WINE_NO_UNICODE_MACROS
-#undef GetClassName
-#endif
-#define INTERFACE IDirect3DRMDevice2
-DECLARE_INTERFACE_(IDirect3DRMDevice2,IDirect3DRMDevice)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK pFunc, LPVOID pArg) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK pFunc, LPVOID pArg) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMDevice methods ***/
-    STDMETHOD(Init)(THIS_ ULONG width, ULONG height) PURE;
-    STDMETHOD(InitFromD3D)(THIS_ LPDIRECT3D pD3D, LPDIRECT3DDEVICE pD3DDev) PURE;
-    STDMETHOD(InitFromClipper)(THIS_ LPDIRECTDRAWCLIPPER pDDClipper, LPGUID pGUID, int width, int height) PURE;
-    STDMETHOD(Update)(THIS) PURE;
-    STDMETHOD(AddUpdateCallback)(THIS_ D3DRMUPDATECALLBACK, LPVOID arg) PURE;
-    STDMETHOD(DeleteUpdateCallback)(THIS_ D3DRMUPDATECALLBACK, LPVOID arg) PURE;
-    STDMETHOD(SetBufferCount)(THIS_ DWORD) PURE;
-    STDMETHOD_(DWORD, GetBufferCount)(THIS) PURE;
-    STDMETHOD(SetDither)(THIS_ BOOL) PURE;
-    STDMETHOD(SetShades)(THIS_ DWORD) PURE;
-    STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
-    STDMETHOD(SetTextureQuality)(THIS_ D3DRMTEXTUREQUALITY) PURE;
-    STDMETHOD(GetViewports)(THIS_ LPDIRECT3DRMVIEWPORTARRAY *return_views) PURE;
-    STDMETHOD_(BOOL, GetDither)(THIS) PURE;
-    STDMETHOD_(DWORD, GetShades)(THIS) PURE;
-    STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
-    STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
-    STDMETHOD_(DWORD, GetTrianglesDrawn)(THIS) PURE;
-    STDMETHOD_(DWORD, GetWireframeOptions)(THIS) PURE;
-    STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
-    STDMETHOD_(D3DCOLORMODEL, GetColorModel)(THIS) PURE;
-    STDMETHOD_(D3DRMTEXTUREQUALITY, GetTextureQuality)(THIS) PURE;
-    STDMETHOD(GetDirect3DDevice)(THIS_ LPDIRECT3DDEVICE *) PURE;
-    /*** IDirect3DRMDevice2 methods ***/
-    STDMETHOD(InitFromD3D2)(THIS_ LPDIRECT3D2 pD3D, LPDIRECT3DDEVICE2 pD3DDev) PURE;
-    STDMETHOD(InitFromSurface)(THIS_ LPGUID pGUID, LPDIRECTDRAW pDD, LPDIRECTDRAWSURFACE pDDSBack) PURE;
-    STDMETHOD(SetRenderMode)(THIS_ DWORD flags) PURE;
-    STDMETHOD_(DWORD, GetRenderMode)(THIS) PURE;
-    STDMETHOD(GetDirect3DDevice2)(THIS_ LPDIRECT3DDEVICE2 *) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMDevice2_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMDevice2_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMDevice2_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMDevice2_Clone(p,a,b,c)               (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMDevice2_AddDestroyCallback(p,a,b)    (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMDevice2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMDevice2_SetAppData(p,a)              (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMDevice2_GetAppData(p)                (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMDevice2_SetName(p,a)                 (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMDevice2_GetName(p,a,b)               (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMDevice2_GetClassName(p,a,b)          (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMDevice methods ***/
-#define IDirect3DRMDevice2_Init(p,a,b)                  (p)->lpVtbl->Init(p,a,b)
-#define IDirect3DRMDevice2_InitFromD3D(p,a,b)           (p)->lpVtbl->InitFromD3D(p,a,b)
-#define IDirect3DRMDevice2_InitFromClipper(p,a,b,c,d)   (p)->lpVtbl->InitFromClipper(p,a,b,c,d)
-#define IDirect3DRMDevice2_Update(p)                    (p)->lpVtbl->Update(p)
-#define IDirect3DRMDevice2_AddUpdateCallback(p,a,b)     (p)->lpVtbl->AddUpdateCallback(p,a,b)
-#define IDirect3DRMDevice2_DeleteUpdateCallback(p,a,b)  (p)->lpVtbl->DeleteUpdateCallback(p,a,b,c)
-#define IDirect3DRMDevice2_SetBufferCount(p,a)          (p)->lpVtbl->SetBufferCount(p,a)
-#define IDirect3DRMDevice2_GetBufferCount(p)            (p)->lpVtbl->GetBufferCount(p)
-#define IDirect3DRMDevice2_SetDither(p,a)               (p)->lpVtbl->SetDither(p,a)
-#define IDirect3DRMDevice2_SetShades(p,a)               (p)->lpVtbl->SetShades(p,a)
-#define IDirect3DRMDevice2_SetQuality(p,a)              (p)->lpVtbl->SetQuality(p,a)
-#define IDirect3DRMDevice2_SetTextureQuality(p,a)       (p)->lpVtbl->SetTextureQuality(p,a)
-#define IDirect3DRMDevice2_GetViewports(p,a)            (p)->lpVtbl->GetViewports(p,a)
-#define IDirect3DRMDevice2_GetDither(p)                 (p)->lpVtbl->GetDither(p)
-#define IDirect3DRMDevice2_GetShades(p)                 (p)->lpVtbl->GetShades(p)
-#define IDirect3DRMDevice2_GetHeight(p)                 (p)->lpVtbl->GetHeight(p)
-#define IDirect3DRMDevice2_GetWidth(p)                  (p)->lpVtbl->GetWidth(p)
-#define IDirect3DRMDevice2_GetTrianglesDrawn(p)         (p)->lpVtbl->GetTrianglesDrawn(p)
-#define IDirect3DRMDevice2_GetWireframeOptions(p)       (p)->lpVtbl->GetWireframeOptions(p)
-#define IDirect3DRMDevice2_GetQuality(p)                (p)->lpVtbl->GetQuality(p)
-#define IDirect3DRMDevice2_GetColorModel(p)             (p)->lpVtbl->GetColorModel(p)
-#define IDirect3DRMDevice2_GetTextureQuality(p)         (p)->lpVtbl->GetTextureQuality(p)
-#define IDirect3DRMDevice2_GetDirect3DDevice(p,a)       (p)->lpVtbl->GetDirect3DDevice(p,a)
-/*** IDirect3DRMDevice2 methods ***/
-#define IDirect3DRMDevice2_InitFromD3D2(p,a,b)          (p)->lpVtbl->InitFromD3D2(p,a,b)
-#define IDirect3DRMDevice2_InitFromSurface(p,a,b,c)     (p)->lpVtbl->InitFromSurface(p,a,b,c)
-#define IDirect3DRMDevice2_SetRenderMode(p,a)           (p)->lpVtbl->SetRenderMode(p,a)
-#define IDirect3DRMDevice2_GetRenderMode(p)             (p)->lpVtbl->GetRenderMode(p)
-#define IDirect3DRMDevice2_GetDirect3DDevice2(p,a)      (p)->lpVtbl->GetDirect3DDevice2(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMDevice2_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DRMDevice2_AddRef(p)                    (p)->AddRef()
-#define IDirect3DRMDevice2_Release(p)                   (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMDevice2_Clone(p,a,b,c)               (p)->Clone(a,b,c)
-#define IDirect3DRMDevice2_AddDestroyCallback(p,a,b)    (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMDevice2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMDevice2_SetAppData(p,a)              (p)->SetAppData(a)
-#define IDirect3DRMDevice2_GetAppData(p)                (p)->GetAppData()
-#define IDirect3DRMDevice2_SetName(p,a)                 (p)->SetName(a)
-#define IDirect3DRMDevice2_GetName(p,a,b)               (p)->GetName(a,b)
-#define IDirect3DRMDevice2_GetClassName(p,a,b)          (p)->GetClassName(a,b)
-/*** IDirect3DRMDevice methods ***/
-#define IDirect3DRMDevice2_Init(p,a,b)                  (p)->Init(p,a,b)
-#define IDirect3DRMDevice2_InitFromD3D(p,a,b)           (p)->InitFromD3D(p,a,b)
-#define IDirect3DRMDevice2_InitFromClipper(p,a,b,c,d)   (p)->InitFromClipper(p,a,b,c,d)
-#define IDirect3DRMDevice2_Update(p)                    (p)->Update(p)
-#define IDirect3DRMDevice2_AddUpdateCallback(p,a,b)     (p)->AddUpdateCallback(p,a,b)
-#define IDirect3DRMDevice2_DeleteUpdateCallback(p,a,b)  (p)->DeleteUpdateCallback(p,a,b,c)
-#define IDirect3DRMDevice2_SetBufferCount(p,a)          (p)->SetBufferCount(p,a)
-#define IDirect3DRMDevice2_GetBufferCount(p)            (p)->GetBufferCount(p)
-#define IDirect3DRMDevice2_SetDither(p,a)               (p)->SetDither(p,a)
-#define IDirect3DRMDevice2_SetShades(p,a)               (p)->SetShades(p,a)
-#define IDirect3DRMDevice2_SetQuality(p,a)              (p)->SetQuality(p,a)
-#define IDirect3DRMDevice2_SetTextureQuality(p,a)       (p)->SetTextureQuality(p,a)
-#define IDirect3DRMDevice2_GetViewports(p,a)            (p)->GetViewports(p,a)
-#define IDirect3DRMDevice2_GetDither(p)                 (p)->GetDither(p)
-#define IDirect3DRMDevice2_GetShades(p)                 (p)->GetShades(p)
-#define IDirect3DRMDevice2_GetHeight(p)                 (p)->GetHeight(p)
-#define IDirect3DRMDevice2_GetWidth(p)                  (p)->GetWidth(p)
-#define IDirect3DRMDevice2_GetTrianglesDrawn(p)         (p)->GetTrianglesDrawn(p)
-#define IDirect3DRMDevice2_GetWireframeOptions(p)       (p)->GetWireframeOptions(p)
-#define IDirect3DRMDevice2_GetQuality(p)                (p)->GetQuality(p)
-#define IDirect3DRMDevice2_GetColorModel(p)             (p)->GetColorModel(p)
-#define IDirect3DRMDevice2_GetTextureQuality(p)         (p)->GetTextureQuality(p)
-#define IDirect3DRMDevice2_GetDirect3DDevice(p,a)       (p)->GetDirect3DDevice(p,a)
-/*** IDirect3DRMDevice2 methods ***/
-#define IDirect3DRMDevice2_InitFromD3D2(p,a,b)          (p)->InitFromD3D2(a,b)
-#define IDirect3DRMDevice2_InitFromSurface(p,a,b,c)     (p)->InitFromSurface(a,b,c)
-#define IDirect3DRMDevice2_SetRenderMode(p,a)           (p)->SetRenderMode(a)
-#define IDirect3DRMDevice2_GetRenderMode(p)             (p)->GetRenderMode()
-#define IDirect3DRMDevice2_GetDirect3DDevice2(p,a)      (p)->GetDirect3DDevice2(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMDevice3 interface
- */
-#ifdef WINE_NO_UNICODE_MACROS
-#undef GetClassName
-#endif
-#define INTERFACE IDirect3DRMDevice3
-DECLARE_INTERFACE_(IDirect3DRMDevice3,IDirect3DRMObject)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK pFunc, LPVOID pArg) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK pFunc, LPVOID pArg) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMDevice methods ***/
-    STDMETHOD(Init)(THIS_ ULONG width, ULONG height) PURE;
-    STDMETHOD(InitFromD3D)(THIS_ LPDIRECT3D pD3D, LPDIRECT3DDEVICE pD3DDev) PURE;
-    STDMETHOD(InitFromClipper)(THIS_ LPDIRECTDRAWCLIPPER pDDClipper, LPGUID pGUID, int width, int height) PURE;
-    STDMETHOD(Update)(THIS) PURE;
-    STDMETHOD(AddUpdateCallback)(THIS_ D3DRMUPDATECALLBACK, LPVOID arg) PURE;
-    STDMETHOD(DeleteUpdateCallback)(THIS_ D3DRMUPDATECALLBACK, LPVOID arg) PURE;
-    STDMETHOD(SetBufferCount)(THIS_ DWORD) PURE;
-    STDMETHOD_(DWORD, GetBufferCount)(THIS) PURE;
-    STDMETHOD(SetDither)(THIS_ BOOL) PURE;
-    STDMETHOD(SetShades)(THIS_ DWORD) PURE;
-    STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
-    STDMETHOD(SetTextureQuality)(THIS_ D3DRMTEXTUREQUALITY) PURE;
-    STDMETHOD(GetViewports)(THIS_ LPDIRECT3DRMVIEWPORTARRAY *return_views) PURE;
-    STDMETHOD_(BOOL, GetDither)(THIS) PURE;
-    STDMETHOD_(DWORD, GetShades)(THIS) PURE;
-    STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
-    STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
-    STDMETHOD_(DWORD, GetTrianglesDrawn)(THIS) PURE;
-    STDMETHOD_(DWORD, GetWireframeOptions)(THIS) PURE;
-    STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
-    STDMETHOD_(D3DCOLORMODEL, GetColorModel)(THIS) PURE;
-    STDMETHOD_(D3DRMTEXTUREQUALITY, GetTextureQuality)(THIS) PURE;
-    STDMETHOD(GetDirect3DDevice)(THIS_ LPDIRECT3DDEVICE *) PURE;
-    /*** IDirect3DRMDevice2 methods ***/
-    STDMETHOD(InitFromD3D2)(THIS_ LPDIRECT3D2 pD3D, LPDIRECT3DDEVICE2 pD3DDev) PURE;
-    STDMETHOD(InitFromSurface)(THIS_ LPGUID pGUID, LPDIRECTDRAW pDD, LPDIRECTDRAWSURFACE pDDSBack) PURE;
-    STDMETHOD(SetRenderMode)(THIS_ DWORD flags) PURE;
-    STDMETHOD_(DWORD, GetRenderMode)(THIS) PURE;
-    STDMETHOD(GetDirect3DDevice2)(THIS_ LPDIRECT3DDEVICE2 *) PURE;
-    /*** IDirect3DRMDevice3 methods ***/
-    STDMETHOD(FindPreferredTextureFormat)(THIS_ DWORD BitDepths, DWORD flags, LPDDPIXELFORMAT pDDPF) PURE;
-    STDMETHOD(RenderStateChange)(THIS_ D3DRENDERSTATETYPE drsType, DWORD val, DWORD flags) PURE;
-    STDMETHOD(LightStateChange)(THIS_ D3DLIGHTSTATETYPE drsType, DWORD val, DWORD flags) PURE;
-    STDMETHOD(GetStateChangeOptions)(THIS_ DWORD StateClass, DWORD StateNum, LPDWORD pFlags) PURE;
-    STDMETHOD(SetStateChangeOptions)(THIS_ DWORD StateClass, DWORD StateNum, DWORD flags) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMDevice3_QueryInterface(p,a,b)               (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMDevice3_AddRef(p)                           (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMDevice3_Release(p)                          (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMDevice3_Clone(p,a,b,c)                      (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMDevice3_AddDestroyCallback(p,a,b)           (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMDevice3_DeleteDestroyCallback(p,a,b)        (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMDevice3_SetAppData(p,a)                     (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMDevice3_GetAppData(p)                       (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMDevice3_SetName(p,a)                        (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMDevice3_GetName(p,a,b)                      (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMDevice3_GetClassName(p,a,b)                 (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMDevice methods ***/
-#define IDirect3DRMDevice3_Init(p,a,b)                         (p)->lpVtbl->Init(p,a,b)
-#define IDirect3DRMDevice3_InitFromD3D(p,a,b)                  (p)->lpVtbl->InitFromD3D(p,a,b)
-#define IDirect3DRMDevice3_InitFromClipper(p,a,b,c,d)          (p)->lpVtbl->InitFromClipper(p,a,b,c,d)
-#define IDirect3DRMDevice3_Update(p)                           (p)->lpVtbl->Update(p)
-#define IDirect3DRMDevice3_AddUpdateCallback(p,a,b)            (p)->lpVtbl->AddUpdateCallback(p,a,b)
-#define IDirect3DRMDevice3_DeleteUpdateCallback(p,a,b)         (p)->lpVtbl->DeleteUpdateCallback(p,a,b,c)
-#define IDirect3DRMDevice3_SetBufferCount(p,a)                 (p)->lpVtbl->SetBufferCount(p,a)
-#define IDirect3DRMDevice3_GetBufferCount(p)                   (p)->lpVtbl->GetBufferCount(p)
-#define IDirect3DRMDevice3_SetDither(p,a)                      (p)->lpVtbl->SetDither(p,a)
-#define IDirect3DRMDevice3_SetShades(p,a)                      (p)->lpVtbl->SetShades(p,a)
-#define IDirect3DRMDevice3_SetQuality(p,a)                     (p)->lpVtbl->SetQuality(p,a)
-#define IDirect3DRMDevice3_SetTextureQuality(p,a)              (p)->lpVtbl->SetTextureQuality(p,a)
-#define IDirect3DRMDevice3_GetViewports(p,a)                   (p)->lpVtbl->GetViewports(p,a)
-#define IDirect3DRMDevice3_GetDither(p)                        (p)->lpVtbl->GetDither(p)
-#define IDirect3DRMDevice3_GetShades(p)                        (p)->lpVtbl->GetShades(p)
-#define IDirect3DRMDevice3_GetHeight(p)                        (p)->lpVtbl->GetHeight(p)
-#define IDirect3DRMDevice3_GetWidth(p)                         (p)->lpVtbl->GetWidth(p)
-#define IDirect3DRMDevice3_GetTrianglesDrawn(p)                (p)->lpVtbl->GetTrianglesDrawn(p)
-#define IDirect3DRMDevice3_GetWireframeOptions(p)              (p)->lpVtbl->GetWireframeOptions(p)
-#define IDirect3DRMDevice3_GetQuality(p)                       (p)->lpVtbl->GetQuality(p)
-#define IDirect3DRMDevice3_GetColorModel(p)                    (p)->lpVtbl->GetColorModel(p)
-#define IDirect3DRMDevice3_GetTextureQuality(p)                (p)->lpVtbl->GetTextureQuality(p)
-#define IDirect3DRMDevice3_GetDirect3DDevice(p,a)              (p)->lpVtbl->GetDirect3DDevice(p,a)
-/*** IDirect3DRMDevice2 methods ***/
-#define IDirect3DRMDevice3_InitFromD3D2(p,a,b)                 (p)->lpVtbl->InitFromD3D2(p,a,b)
-#define IDirect3DRMDevice3_InitFromSurface(p,a,b,c)            (p)->lpVtbl->InitFromSurface(p,a,b,c)
-#define IDirect3DRMDevice3_SetRenderMode(p,a)                  (p)->lpVtbl->SetRenderMode(p,a)
-#define IDirect3DRMDevice3_GetRenderMode(p)                    (p)->lpVtbl->GetRenderMode(p)
-#define IDirect3DRMDevice3_GetDirect3DDevice2(p,a)             (p)->lpVtbl->GetDirect3DDevice2(p,a)
-/*** IDirect3DRMDevice3 methods ***/
-#define IDirect3DRMDevice3_FindPreferredTextureFormat(p,a,b,c) (p)->lpVtbl->FindPreferredTextureFormat(p,a,b)
-#define IDirect3DRMDevice3_RenderStateChange(p,a,b,c)          (p)->lpVtbl->RenderStateChange(p,a,b)
-#define IDirect3DRMDevice3_LightStateChange(p,a,b,c)           (p)->lpVtbl->LightStateChange(p,a,b)
-#define IDirect3DRMDevice3_GetStateChangeOptions(p,a,b,c)      (p)->lpVtbl->GetStateChangeOptions(p,a,b)
-#define IDirect3DRMDevice3_SetStateChangeOptions(p,a,b,c)      (p)->lpVtbl->SetStateChangeOptions(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMDevice3_QueryInterface(p,a,b)               (p)->QueryInterface(a,b)
-#define IDirect3DRMDevice3_AddRef(p)                           (p)->AddRef()
-#define IDirect3DRMDevice3_Release(p)                          (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMDevice3_Clone(p,a,b,c)                      (p)->Clone(a,b,c)
-#define IDirect3DRMDevice3_AddDestroyCallback(p,a,b)           (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMDevice3_DeleteDestroyCallback(p,a,b)        (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMDevice3_SetAppData(p,a)                     (p)->SetAppData(a)
-#define IDirect3DRMDevice3_GetAppData(p)                       (p)->GetAppData()
-#define IDirect3DRMDevice3_SetName(p,a)                        (p)->SetName(a)
-#define IDirect3DRMDevice3_GetName(p,a,b)                      (p)->GetName(a,b)
-#define IDirect3DRMDevice3_GetClassName(p,a,b)                 (p)->GetClassName(a,b)
-/*** IDirect3DRMDevice methods ***/
-#define IDirect3DRMDevice3_Init(p,a,b)                         (p)->Init(p,a,b)
-#define IDirect3DRMDevice3_InitFromD3D(p,a,b)                  (p)->InitFromD3D(p,a,b)
-#define IDirect3DRMDevice3_InitFromClipper(p,a,b,c,d)          (p)->InitFromClipper(p,a,b,c,d)
-#define IDirect3DRMDevice3_Update(p)                           (p)->Update(p)
-#define IDirect3DRMDevice3_AddUpdateCallback(p,a,b)            (p)->AddUpdateCallback(p,a,b)
-#define IDirect3DRMDevice3_DeleteUpdateCallback(p,a,b)         (p)->DeleteUpdateCallback(p,a,b,c)
-#define IDirect3DRMDevice3_SetBufferCount(p,a)                 (p)->SetBufferCount(p,a)
-#define IDirect3DRMDevice3_GetBufferCount(p)                   (p)->GetBufferCount(p)
-#define IDirect3DRMDevice3_SetDither(p,a)                      (p)->SetDither(p,a)
-#define IDirect3DRMDevice3_SetShades(p,a)                      (p)->SetShades(p,a)
-#define IDirect3DRMDevice3_SetQuality(p,a)                     (p)->SetQuality(p,a)
-#define IDirect3DRMDevice3_SetTextureQuality(p,a)              (p)->SetTextureQuality(p,a)
-#define IDirect3DRMDevice3_GetViewports(p,a)                   (p)->GetViewports(p,a)
-#define IDirect3DRMDevice3_GetDither(p)                        (p)->GetDither(p)
-#define IDirect3DRMDevice3_GetShades(p)                        (p)->GetShades(p)
-#define IDirect3DRMDevice3_GetHeight(p)                        (p)->GetHeight(p)
-#define IDirect3DRMDevice3_GetWidth(p)                         (p)->GetWidth(p)
-#define IDirect3DRMDevice3_GetTrianglesDrawn(p)                (p)->GetTrianglesDrawn(p)
-#define IDirect3DRMDevice3_GetWireframeOptions(p)              (p)->GetWireframeOptions(p)
-#define IDirect3DRMDevice3_GetQuality(p)                       (p)->GetQuality(p)
-#define IDirect3DRMDevice3_GetColorModel(p)                    (p)->GetColorModel(p)
-#define IDirect3DRMDevice3_GetTextureQuality(p)                (p)->GetTextureQuality(p)
-#define IDirect3DRMDevice3_GetDirect3DDevice(p,a)              (p)->GetDirect3DDevice(p,a)
-/*** IDirect3DRMDevice2 methods ***/
-#define IDirect3DRMDevice3_InitFromD3D2(p,a,b)                 (p)->InitFromD3D2(a,b)
-#define IDirect3DRMDevice3_InitFromSurface(p,a,b,c)            (p)->InitFromSurface(a,b,c)
-#define IDirect3DRMDevice3_SetRenderMode(p,a)                  (p)->SetRenderMode(a)
-#define IDirect3DRMDevice3_GetRenderMode(p)                    (p)->GetRenderMode()
-#define IDirect3DRMDevice3_GetDirect3DDevice2(p,a)             (p)->GetDirect3DDevice2(a)
-/*** IDirect3DRMDevice3 methods ***/
-#define IDirect3DRMDevice3_FindPreferredTextureFormat(p,a,b,c) (p)->FindPreferredTextureFormat(a,b,c)
-#define IDirect3DRMDevice3_RenderStateChange(p,a,b,c)          (p)->RenderStateChange(a,b,c)
-#define IDirect3DRMDevice3_LightStateChange(p,a,b,c)           (p)->LightStateChange(a,b,c)
-#define IDirect3DRMDevice3_GetStateChangeOptions(p,a,b,c)      (p)->GetStateChangeOptions(a,b,c)
-#define IDirect3DRMDevice3_SetStateChangeOptions(p,a,b,c)      (p)->SetStateChangeOptions(a,b,c)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMViewport interface
- */
-#define INTERFACE IDirect3DRMViewport
-DECLARE_INTERFACE_(IDirect3DRMViewport,IDirect3DRMObject)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMViewport methods ***/
-    STDMETHOD(Init) (THIS_ LPDIRECT3DRMDEVICE dev, LPDIRECT3DRMFRAME camera, DWORD xpos, DWORD ypos,
-        DWORD width, DWORD height) PURE;
-    STDMETHOD(Clear)(THIS) PURE;
-    STDMETHOD(Render)(THIS_ LPDIRECT3DRMFRAME) PURE;
-    STDMETHOD(SetFront)(THIS_ D3DVALUE) PURE;
-    STDMETHOD(SetBack)(THIS_ D3DVALUE) PURE;
-    STDMETHOD(SetField)(THIS_ D3DVALUE) PURE;
-    STDMETHOD(SetUniformScaling)(THIS_ BOOL) PURE;
-    STDMETHOD(SetCamera)(THIS_ LPDIRECT3DRMFRAME) PURE;
-    STDMETHOD(SetProjection)(THIS_ D3DRMPROJECTIONTYPE) PURE;
-    STDMETHOD(Transform)(THIS_ D3DRMVECTOR4D *d, D3DVECTOR *s) PURE;
-    STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DRMVECTOR4D *s) PURE;
-    STDMETHOD(Configure)(THIS_ LONG x, LONG y, DWORD width, DWORD height) PURE;
-    STDMETHOD(ForceUpdate)(THIS_ DWORD x1, DWORD y1, DWORD x2, DWORD y2) PURE;
-    STDMETHOD(SetPlane)(THIS_ D3DVALUE left, D3DVALUE right, D3DVALUE bottom, D3DVALUE top) PURE;
-    STDMETHOD(GetCamera)(THIS_ LPDIRECT3DRMFRAME *) PURE;
-    STDMETHOD(GetDevice)(THIS_ LPDIRECT3DRMDEVICE *) PURE;
-    STDMETHOD(GetPlane)(THIS_ D3DVALUE *left, D3DVALUE *right, D3DVALUE *bottom, D3DVALUE *top) PURE;
-    STDMETHOD(Pick)(THIS_ LONG x, LONG y, LPDIRECT3DRMPICKEDARRAY *return_visuals) PURE;
-    STDMETHOD_(BOOL, GetUniformScaling)(THIS) PURE;
-    STDMETHOD_(LONG, GetX)(THIS) PURE;
-    STDMETHOD_(LONG, GetY)(THIS) PURE;
-    STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
-    STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
-    STDMETHOD_(D3DVALUE, GetField)(THIS) PURE;
-    STDMETHOD_(D3DVALUE, GetBack)(THIS) PURE;
-    STDMETHOD_(D3DVALUE, GetFront)(THIS) PURE;
-    STDMETHOD_(D3DRMPROJECTIONTYPE, GetProjection)(THIS) PURE;
-    STDMETHOD(GetDirect3DViewport)(THIS_ LPDIRECT3DVIEWPORT *) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMViewport_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMViewport_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMViewport_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMViewport_Clone(p,a,b,c)               (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMViewport_AddDestroyCallback(p,a,b)    (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMViewport_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMViewport_SetAppData(p,a)              (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMViewport_GetAppData(p)                (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMViewport_SetName(p,a)                 (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMViewport_GetName(p,a,b)               (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMViewport_GetClassName(p,a,b)          (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMViewport methods ***/
-#define IDirect3DRMViewport_Init(p,a,b,c,d)              (p)->lpVtbl->Init(p,a,b,c,d)
-#define IDirect3DRMViewport_Clear(p)                     (p)->lpVtbl->Clear(p)
-#define IDirect3DRMViewport_Render(p,a)                  (p)->lpVtbl->Render(p,a)
-#define IDirect3DRMViewport_SetFront(p,a)                (p)->lpVtbl->SetFront(p,a)
-#define IDirect3DRMViewport_SetBack(p,a)                 (p)->lpVtbl->(p,a)
-#define IDirect3DRMViewport_SetField(p,a)                (p)->lpVtbl->(p,a)
-#define IDirect3DRMViewport_SetUniformScaling(p,a)       (p)->lpVtbl->SetUniformScaling(p,a)
-#define IDirect3DRMViewport_SetCamera(p,a)               (p)->lpVtbl->SetCamera(p,a)
-#define IDirect3DRMViewport_SetProjection(p,a)           (p)->lpVtbl->SetProjection(p,a)
-#define IDirect3DRMViewport_Transform(p,a,b)             (p)->lpVtbl->Transform(p,a,b)
-#define IDirect3DRMViewport_InverseTransform(p,a,b)      (p)->lpVtbl->(p,a,b)
-#define IDirect3DRMViewport_Configure(p,a,b,c,d)         (p)->lpVtbl->Configure(p,a,b,c,d)
-#define IDirect3DRMViewport_ForceUpdate(p,a,b,c,d)       (p)->lpVtbl->ForceUpdate(p,a,b,c,d)
-#define IDirect3DRMViewport_SetPlane(p,a,b,c,d)          (p)->lpVtbl->SetPlane(p,a,b,c,d)
-#define IDirect3DRMViewport_GetCamera(p,a)               (p)->lpVtbl->(p,a)
-#define IDirect3DRMViewport_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DRMViewport_GetPlane(p,a,b,c,d)          (p)->lpVtbl->GetPlane(p,a,b,c,d)
-#define IDirect3DRMViewport_Pick(p,a,b,c)                (p)->lpVtbl->Pick(p,a,b,c)
-#define IDirect3DRMViewport_GetUniformScaling(p)         (p)->lpVtbl->GetUniformScaling(p)
-#define IDirect3DRMViewport_GetX(p)                      (p)->lpVtbl->GetX(p)
-#define IDirect3DRMViewport_GetY(p)                      (p)->lpVtbl->GetY(p)
-#define IDirect3DRMViewport_GetWidth(p)                  (p)->lpVtbl->GetWidth(p)
-#define IDirect3DRMViewport_GetHeight(p)                 (p)->lpVtbl->GetHeight(p)
-#define IDirect3DRMViewport_GetField(p)                  (p)->lpVtbl->GetField(p)
-#define IDirect3DRMViewport_GetBack(p)                   (p)->lpVtbl->GetBack(p)
-#define IDirect3DRMViewport_GetFront(p)                  (p)->lpVtbl->GetFront(p)
-#define IDirect3DRMViewport_GetProjection(p)             (p)->lpVtbl->GetProjection(p)
-#define IDirect3DRMViewport_GetDirect3DViewport(p,a)     (p)->lpVtbl->GetDirect3DViewport(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMViewport_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DRMViewport_AddRef(p)                    (p)->AddRef()
-#define IDirect3DRMViewport_Release(p)                   (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMViewport_Clone(p,a,b,c)               (p)->Clone(a,b,c)
-#define IDirect3DRMViewport_AddDestroyCallback(p,a,b)    (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMViewport_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMViewport_SetAppData(p,a)              (p)->SetAppData(a)
-#define IDirect3DRMViewport_GetAppData(p)                (p)->GetAppData()
-#define IDirect3DRMViewport_SetName(p,a)                 (p)->SetName(a)
-#define IDirect3DRMViewport_GetName(p,a,b)               (p)->GetName(a,b)
-#define IDirect3DRMViewport_GetClassName(p,a,b)          (p)->GetClassName(a,b)
-/*** IDirect3DRMViewport methods ***/
-#define IDirect3DRMViewport_Init(p,a,b,c,d)              (p)->Init(p,a,b,c,d)
-#define IDirect3DRMViewport_Clear(p)                     (p)->Clear(p)
-#define IDirect3DRMViewport_Render(p,a)                  (p)->Render(p,a)
-#define IDirect3DRMViewport_SetFront(p,a)                (p)->SetFront(p,a)
-#define IDirect3DRMViewport_SetBack(p,a)                 (p)->(p,a)
-#define IDirect3DRMViewport_SetField(p,a)                (p)->(p,a)
-#define IDirect3DRMViewport_SetUniformScaling(p,a)       (p)->SetUniformScaling(p,a)
-#define IDirect3DRMViewport_SetCamera(p,a)               (p)->SetCamera(p,a)
-#define IDirect3DRMViewport_SetProjection(p,a)           (p)->SetProjection(p,a)
-#define IDirect3DRMViewport_Transform(p,a,b)             (p)->Transform(p,a,b)
-#define IDirect3DRMViewport_InverseTransform(p,a,b)      (p)->(p,a,b)
-#define IDirect3DRMViewport_Configure(p,a,b,c,d)         (p)->Configure(p,a,b,c,d)
-#define IDirect3DRMViewport_ForceUpdate(p,a,b,c,d)       (p)->ForceUpdate(p,a,b,c,d)
-#define IDirect3DRMViewport_SetPlane(p,a,b,c,d)          (p)->SetPlane(p,a,b,c,d)
-#define IDirect3DRMViewport_GetCamera(p,a)               (p)->GetCamera(p,a)
-#define IDirect3DRMViewport_GetDevice(p,a)               (p)->GetDevice(p,a)
-#define IDirect3DRMViewport_GetPlane(p,a,b,c,d)          (p)->GetPlane(p,a,b,c,d)
-#define IDirect3DRMViewport_Pick(p,a,b,c)                (p)->Pick(p,a,b,c)
-#define IDirect3DRMViewport_GetUniformScaling(p)         (p)->GetUniformScaling(p)
-#define IDirect3DRMViewport_GetX(p)                      (p)->GetX(p)
-#define IDirect3DRMViewport_GetY(p)                      (p)->GetY(p)
-#define IDirect3DRMViewport_GetWidth(p)                  (p)->GetWidth(p)
-#define IDirect3DRMViewport_GetHeight(p)                 (p)->GetHeight(p)
-#define IDirect3DRMViewport_GetField(p)                  (p)->GetField(p)
-#define IDirect3DRMViewport_GetBack(p)                   (p)->GetBack(p)
-#define IDirect3DRMViewport_GetFront(p)                  (p)->GetFront(p)
-#define IDirect3DRMViewport_GetProjection(p)             (p)->GetProjection(p)
-#define IDirect3DRMViewport_GetDirect3DViewport(p,a)     (p)->GetDirect3DViewport(p,a)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMViewport2 interface
- */
-#define INTERFACE IDirect3DRMViewport2
-DECLARE_INTERFACE_(IDirect3DRMViewport2,IDirect3DRMObject)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMViewport2 methods ***/
-    STDMETHOD(Init) (THIS_ LPDIRECT3DRMDEVICE3 dev, LPDIRECT3DRMFRAME3 camera, DWORD xpos, DWORD ypos,
-        DWORD width, DWORD height) PURE;
-    STDMETHOD(Clear)(THIS_ DWORD flags) PURE;
-    STDMETHOD(Render)(THIS_ LPDIRECT3DRMFRAME3) PURE;
-    STDMETHOD(SetFront)(THIS_ D3DVALUE) PURE;
-    STDMETHOD(SetBack)(THIS_ D3DVALUE) PURE;
-    STDMETHOD(SetField)(THIS_ D3DVALUE) PURE;
-    STDMETHOD(SetUniformScaling)(THIS_ BOOL) PURE;
-    STDMETHOD(SetCamera)(THIS_ LPDIRECT3DRMFRAME3) PURE;
-    STDMETHOD(SetProjection)(THIS_ D3DRMPROJECTIONTYPE) PURE;
-    STDMETHOD(Transform)(THIS_ D3DRMVECTOR4D *d, D3DVECTOR *s) PURE;
-    STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DRMVECTOR4D *s) PURE;
-    STDMETHOD(Configure)(THIS_ LONG x, LONG y, DWORD width, DWORD height) PURE;
-    STDMETHOD(ForceUpdate)(THIS_ DWORD x1, DWORD y1, DWORD x2, DWORD y2) PURE;
-    STDMETHOD(SetPlane)(THIS_ D3DVALUE left, D3DVALUE right, D3DVALUE bottom, D3DVALUE top) PURE;
-    STDMETHOD(GetCamera)(THIS_ LPDIRECT3DRMFRAME3 *) PURE;
-    STDMETHOD(GetDevice)(THIS_ LPDIRECT3DRMDEVICE3 *) PURE;
-    STDMETHOD(GetPlane)(THIS_ D3DVALUE *left, D3DVALUE *right, D3DVALUE *bottom, D3DVALUE *top) PURE;
-    STDMETHOD(Pick)(THIS_ LONG x, LONG y, LPDIRECT3DRMPICKEDARRAY *return_visuals) PURE;
-    STDMETHOD_(BOOL, GetUniformScaling)(THIS) PURE;
-    STDMETHOD_(LONG, GetX)(THIS) PURE;
-    STDMETHOD_(LONG, GetY)(THIS) PURE;
-    STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
-    STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
-    STDMETHOD_(D3DVALUE, GetField)(THIS) PURE;
-    STDMETHOD_(D3DVALUE, GetBack)(THIS) PURE;
-    STDMETHOD_(D3DVALUE, GetFront)(THIS) PURE;
-    STDMETHOD_(D3DRMPROJECTIONTYPE, GetProjection)(THIS) PURE;
-    STDMETHOD(GetDirect3DViewport)(THIS_ LPDIRECT3DVIEWPORT *) PURE;
-    STDMETHOD(TransformVectors)(THIS_ DWORD NumVectors, LPD3DRMVECTOR4D pDstVectors,
-        LPD3DVECTOR pSrcVectors) PURE;
-    STDMETHOD(InverseTransformVectors)(THIS_ DWORD NumVectors, LPD3DVECTOR pDstVectors,
-        LPD3DRMVECTOR4D pSrcVectors) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMViewport2_QueryInterface(p,a,b)            (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMViewport2_AddRef(p)                        (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMViewport2_Release(p)                       (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMViewport_2Clone(p,a,b,c)                   (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMViewport2_AddDestroyCallback(p,a,b)        (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMViewport2_DeleteDestroyCallback(p,a,b)     (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMViewport2_SetAppData(p,a)                  (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMViewport2_GetAppData(p)                    (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMViewport2_SetName(p,a)                     (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMViewport2_GetName(p,a,b)                   (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMViewport2_GetClassName(p,a,b)              (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMViewport2 methods ***/
-#define IDirect3DRMViewport2_Init(p,a,b,c,d,e,f)              (p)->lpVtbl->Init(p,a,b,c,d,e,f)
-#define IDirect3DRMViewport2_Clear(p,a)                       (p)->lpVtbl->Clear(p,a)
-#define IDirect3DRMViewport2_Render(p,a)                      (p)->lpVtbl->Render(p,a)
-#define IDirect3DRMViewport2_SetFront(p,a)                    (p)->lpVtbl->SetFront(p,a)
-#define IDirect3DRMViewport2_SetBack(p,a)                     (p)->lpVtbl->(p,a)
-#define IDirect3DRMViewport2_SetField(p,a)                    (p)->lpVtbl->(p,a)
-#define IDirect3DRMViewport2_SetUniformScaling(p,a)           (p)->lpVtbl->SetUniformScaling(p,a)
-#define IDirect3DRMViewport2_SetCamera(p,a)                   (p)->lpVtbl->SetCamera(p,a)
-#define IDirect3DRMViewport2_SetProjection(p,a)               (p)->lpVtbl->SetProjection(p,a)
-#define IDirect3DRMViewport2_Transform(p,a,b)                 (p)->lpVtbl->Transform(p,a,b)
-#define IDirect3DRMViewport2_InverseTransform(p,a,b)          (p)->lpVtbl->(p,a,b)
-#define IDirect3DRMViewport2_Configure(p,a,b,c,d)             (p)->lpVtbl->Configure(p,a,b,c,d)
-#define IDirect3DRMViewport2_ForceUpdate(p,a,b,c,d)           (p)->lpVtbl->ForceUpdate(p,a,b,c,d)
-#define IDirect3DRMViewport2_SetPlane(p,a,b,c,d)              (p)->lpVtbl->SetPlane(p,a,b,c,d)
-#define IDirect3DRMViewport2_GetCamera(p,a)                   (p)->lpVtbl->(p,a)
-#define IDirect3DRMViewport2_GetDevice(p,a)                   (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DRMViewport2_GetPlane(p,a,b,c,d)              (p)->lpVtbl->GetPlane(p,a,b,c,d)
-#define IDirect3DRMViewport2_Pick(p,a,b,c)                    (p)->lpVtbl->Pick(p,a,b,c)
-#define IDirect3DRMViewport2_GetUniformScaling(p)             (p)->lpVtbl->GetUniformScaling(p)
-#define IDirect3DRMViewport2_GetX(p)                          (p)->lpVtbl->GetX(p)
-#define IDirect3DRMViewport2_GetY(p)                          (p)->lpVtbl->GetY(p)
-#define IDirect3DRMViewport2_GetWidth(p)                      (p)->lpVtbl->GetWidth(p)
-#define IDirect3DRMViewport2_GetHeight(p)                     (p)->lpVtbl->GetHeight(p)
-#define IDirect3DRMViewport2_GetField(p)                      (p)->lpVtbl->GetField(p)
-#define IDirect3DRMViewport2_GetBack(p)                       (p)->lpVtbl->GetBack(p)
-#define IDirect3DRMViewport2_GetFront(p)                      (p)->lpVtbl->GetFront(p)
-#define IDirect3DRMViewport2_GetProjection(p)                 (p)->lpVtbl->GetProjection(p)
-#define IDirect3DRMViewport2_GetDirect3DViewport(p,a)         (p)->lpVtbl->GetDirect3DViewport(p,a)
-#define IDirect3DRMViewport2_TransformVectors(p,a,b,c)        (p)->lpVtbl->TransformVectors(p,a,b,c)
-#define IDirect3DRMViewport2_InverseTransformVectors(p,a,b,c) (p)->lpVtbl->InverseTransformVectors(p,ab,c)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMViewport2_QueryInterface(p,a,b)            (p)->QueryInterface(a,b)
-#define IDirect3DRMViewport2_AddRef(p)                        (p)->AddRef()
-#define IDirect3DRMViewport2_Release(p)                       (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMViewport2_Clone(p,a,b,c)                   (p)->Clone(a,b,c)
-#define IDirect3DRMViewport2_AddDestroyCallback(p,a,b)        (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMViewport2_DeleteDestroyCallback(p,a,b)     (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMViewport2_SetAppData(p,a)                  (p)->SetAppData(a)
-#define IDirect3DRMViewport2_GetAppData(p)                    (p)->GetAppData()
-#define IDirect3DRMViewport2_SetName(p,a)                     (p)->SetName(a)
-#define IDirect3DRMViewport2_GetName(p,a,b)                   (p)->GetName(a,b)
-#define IDirect3DRMViewport2_GetClassName(p,a,b)              (p)->GetClassName(a,b)
-/*** IDirect3DRMViewport2 methods ***/
-#define IDirect3DRMViewport2_Init(p,a,b,c,d)                  (p)->Init(p,a,b,c,d)
-#define IDirect3DRMViewport2_Clear(p)                         (p)->Clear(p)
-#define IDirect3DRMViewport2_Render(p,a)                      (p)->Render(p,a)
-#define IDirect3DRMViewport2_SetFront(p,a)                    (p)->SetFront(p,a)
-#define IDirect3DRMViewport2_SetBack(p,a)                     (p)->(p,a)
-#define IDirect3DRMViewport2_SetField(p,a)                    (p)->(p,a)
-#define IDirect3DRMViewport2_SetUniformScaling(p,a)           (p)->SetUniformScaling(p,a)
-#define IDirect3DRMViewport2_SetCamera(p,a)                   (p)->SetCamera(p,a)
-#define IDirect3DRMViewport2_SetProjection(p,a)               (p)->SetProjection(p,a)
-#define IDirect3DRMViewport2_Transform(p,a,b)                 (p)->Transform(p,a,b)
-#define IDirect3DRMViewport2_InverseTransform(p,a,b)          (p)->(p,a,b)
-#define IDirect3DRMViewport2_Configure(p,a,b,c,d)             (p)->Configure(p,a,b,c,d)
-#define IDirect3DRMViewport2_ForceUpdate(p,a,b,c,d)           (p)->ForceUpdate(p,a,b,c,d)
-#define IDirect3DRMViewport2_SetPlane(p,a,b,c,d)              (p)->SetPlane(p,a,b,c,d)
-#define IDirect3DRMViewport2_GetCamera(p,a)                   (p)->GetCamera(p,a)
-#define IDirect3DRMViewport2_GetDevice(p,a)                   (p)->GetDevice(p,a)
-#define IDirect3DRMViewport2_GetPlane(p,a,b,c,d)              (p)->GetPlane(p,a,b,c,d)
-#define IDirect3DRMViewport2_Pick(p,a,b,c)                    (p)->Pick(p,a,b,c)
-#define IDirect3DRMViewport2_GetUniformScaling(p)             (p)->GetUniformScaling(p)
-#define IDirect3DRMViewport2_GetX(p)                          (p)->GetX(p)
-#define IDirect3DRMViewport2_GetY(p)                          (p)->GetY(p)
-#define IDirect3DRMViewport2_GetWidth(p)                      (p)->GetWidth(p)
-#define IDirect3DRMViewport2_GetHeight(p)                     (p)->GetHeight(p)
-#define IDirect3DRMViewport2_GetField(p)                      (p)->GetField(p)
-#define IDirect3DRMViewport2_GetBack(p)                       (p)->GetBack(p)
-#define IDirect3DRMViewport2_GetFront(p)                      (p)->GetFront(p)
-#define IDirect3DRMViewport2_GetProjection(p)                 (p)->GetProjection(p)
-#define IDirect3DRMViewport2_GetDirect3DViewport(p,a)         (p)->GetDirect3DViewport(p,a)
-#define IDirect3DRMViewport2_TransformVectors(p,a,b,c)        (p)->TransformVectors(a,b,c)
-#define IDirect3DRMViewport2_InverseTransformVectors(p,a,b,c) (p)->InverseTransformVectors(ab,c)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMFrame interface
- */
-#define INTERFACE IDirect3DRMFrame
-DECLARE_INTERFACE_(IDirect3DRMFrame,IDirect3DRMVisual)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMFrame methods ***/
-    STDMETHOD(AddChild)(THIS_ LPDIRECT3DRMFRAME child) PURE;
-    STDMETHOD(AddLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
-    STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg) PURE;
-    STDMETHOD(AddTransform)(THIS_ D3DRMCOMBINETYPE, D3DRMMATRIX4D) PURE;
-    STDMETHOD(AddTranslation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(AddScale)(THIS_ D3DRMCOMBINETYPE, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
-    STDMETHOD(AddRotation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
-    STDMETHOD(AddVisual)(THIS_ LPDIRECT3DRMVISUAL) PURE;
-    STDMETHOD(GetChildren)(THIS_ LPDIRECT3DRMFRAMEARRAY *children) PURE;
-    STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
-    STDMETHOD(GetLights)(THIS_ LPDIRECT3DRMLIGHTARRAY *lights) PURE;
-    STDMETHOD_(D3DRMMATERIALMODE, GetMaterialMode)(THIS) PURE;
-    STDMETHOD(GetParent)(THIS_ LPDIRECT3DRMFRAME *) PURE;
-    STDMETHOD(GetPosition)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR return_position) PURE;
-    STDMETHOD(GetRotation)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR axis, LPD3DVALUE return_theta) PURE;
-    STDMETHOD(GetScene)(THIS_ LPDIRECT3DRMFRAME *) PURE;
-    STDMETHOD_(D3DRMSORTMODE, GetSortMode)(THIS) PURE;
-    STDMETHOD(GetTexture)(THIS_ LPDIRECT3DRMTEXTURE *) PURE;
-    STDMETHOD(GetTransform)(THIS_ D3DRMMATRIX4D return_matrix) PURE;
-    STDMETHOD(GetVelocity)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR return_velocity, BOOL with_rotation) PURE;
-    STDMETHOD(GetOrientation)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR dir, LPD3DVECTOR up) PURE;
-    STDMETHOD(GetVisuals)(THIS_ LPDIRECT3DRMVISUALARRAY *visuals) PURE;
-    STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
-    STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
-    STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURECALLBACK,
-        LPVOID pArg)PURE;
-    STDMETHOD(LookAt)(THIS_ LPDIRECT3DRMFRAME target, LPDIRECT3DRMFRAME reference, D3DRMFRAMECONSTRAINT) PURE;
-    STDMETHOD(Move)(THIS_ D3DVALUE delta) PURE;
-    STDMETHOD(DeleteChild)(THIS_ LPDIRECT3DRMFRAME) PURE;
-    STDMETHOD(DeleteLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
-    STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg) PURE;
-    STDMETHOD(DeleteVisual)(THIS_ LPDIRECT3DRMVISUAL) PURE;
-    STDMETHOD_(D3DCOLOR, GetSceneBackground)(THIS) PURE;
-    STDMETHOD(GetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE *) PURE;
-    STDMETHOD_(D3DCOLOR, GetSceneFogColor)(THIS) PURE;
-    STDMETHOD_(BOOL, GetSceneFogEnable)(THIS) PURE;
-    STDMETHOD_(D3DRMFOGMODE, GetSceneFogMode)(THIS) PURE;
-    STDMETHOD(GetSceneFogParams)(THIS_ D3DVALUE *return_start, D3DVALUE *return_end, D3DVALUE *return_density) PURE;
-    STDMETHOD(SetSceneBackground)(THIS_ D3DCOLOR) PURE;
-    STDMETHOD(SetSceneBackgroundRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
-    STDMETHOD(SetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE) PURE;
-    STDMETHOD(SetSceneBackgroundImage)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
-    STDMETHOD(SetSceneFogEnable)(THIS_ BOOL) PURE;
-    STDMETHOD(SetSceneFogColor)(THIS_ D3DCOLOR) PURE;
-    STDMETHOD(SetSceneFogMode)(THIS_ D3DRMFOGMODE) PURE;
-    STDMETHOD(SetSceneFogParams)(THIS_ D3DVALUE start, D3DVALUE end, D3DVALUE density) PURE;
-    STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
-    STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
-    STDMETHOD_(D3DRMZBUFFERMODE, GetZbufferMode)(THIS) PURE;
-    STDMETHOD(SetMaterialMode)(THIS_ D3DRMMATERIALMODE) PURE;
-    STDMETHOD(SetOrientation)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
-        D3DVALUE ux, D3DVALUE uy, D3DVALUE uz) PURE;
-    STDMETHOD(SetPosition)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(SetRotation)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
-    STDMETHOD(SetSortMode)(THIS_ D3DRMSORTMODE) PURE;
-    STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
-    STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
-    STDMETHOD(SetVelocity)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, BOOL with_rotation) PURE;
-    STDMETHOD(SetZbufferMode)(THIS_ D3DRMZBUFFERMODE) PURE;
-    STDMETHOD(Transform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMFrame_QueryInterface(p,a,b)            (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMFrame_AddRef(p)                        (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMFrame_Release(p)                       (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMFrame_Clone(p,a,b,c)                   (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMFrame_AddDestroyCallback(p,a,b)        (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMFrame_DeleteDestroyCallback(p,a,b)     (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMFrame_SetAppData(p,a)                  (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMFrame_GetAppData(p)                    (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMFrame_SetName(p,a)                     (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMFrame_GetName(p,a,b)                   (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMFrame_GetClassName(p,a,b)              (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMFrame methods ***/
-#define IDirect3DRMFrame_AddChild(p,a)                    (p)->lpVtbl->AddChild(p,a)
-#define IDirect3DRMFrame_AddLight(p,a)                    (p)->lpVtbl->AddLight(p,a)
-#define IDirect3DRMFrame_AddMoveCallback(p,a,b)           (p)->lpVtbl->AddMoveCallback(p,a,b)
-#define IDirect3DRMFrame_AddTransform(p,a,b)              (p)->lpVtbl->AddTransform(p,a,b)
-#define IDirect3DRMFrame_AddTranslation(p,a,b,c,d)        (p)->lpVtbl->AddTranslation(p,a,b,c,d)
-#define IDirect3DRMFrame_AddScale(p,a,b,c,d)              (p)->lpVtbl->AddScale(p,a,b,c,d)
-#define IDirect3DRMFrame_AddRotation(p,a,b,c,d,e)         (p)->lpVtbl->AddRotation(p,a,b,c,d,e)
-#define IDirect3DRMFrame_AddVisual(p,a)                   (p)->lpVtbl->AddVisual(p,a)
-#define IDirect3DRMFrame_GetChildren(p,a)                 (p)->lpVtbl->GetChildren(p,a)
-#define IDirect3DRMFrame_GetColor(p)                      (p)->lpVtbl->GetColor(p)
-#define IDirect3DRMFrame_GetLights(p,a)                   (p)->lpVtbl->GetLights(p,a)
-#define IDirect3DRMFrame_GetMaterialMode(p)               (p)->lpVtbl->GetMaterialMode(p)
-#define IDirect3DRMFrame_GetParent(p,a)                   (p)->lpVtbl->GetParent(p,a)
-#define IDirect3DRMFrame_GetPosition(p,a,b)               (p)->lpVtbl->GetPosition(p,a,b)
-#define IDirect3DRMFrame_GetRotation(p,a,b,c)             (p)->lpVtbl->GetRotation(p,a,b,c)
-#define IDirect3DRMFrame_GetScene(p,a)                    (p)->lpVtbl->GetScene(p,a)
-#define IDirect3DRMFrame_GetSortMode(p)                   (p)->lpVtbl->GetSortMode(p)
-#define IDirect3DRMFrame_GetTexture(p,a)                  (p)->lpVtbl->GetTexture(p,a)
-#define IDirect3DRMFrame_GetTransform(p,a)                (p)->lpVtbl->GetTransform(p,a)
-#define IDirect3DRMFrame_GetVelocity(p,a,b,c)             (p)->lpVtbl->GetVelocity(p,a,b,c)
-#define IDirect3DRMFrame_GetOrientation(p,a,b,c)          (p)->lpVtbl->GetOrientation(p,a,b,c)
-#define IDirect3DRMFrame_GetVisuals(p,a)                  (p)->lpVtbl->GetVisuals(p,a)
-#define IDirect3DRMFrame_GetTextureTopology(p,a,b)        (p)->lpVtbl->GetTextureTopology(p,a,b)
-#define IDirect3DRMFrame_InverseTransform(p,a,b)          (p)->lpVtbl->InverseTransform(p,a,b)
-#define IDirect3DRMFrame_Load(p,a,b,c,d,e)                (p)->lpVtbl->Load(p,a,b,c,d,e)
-#define IDirect3DRMFrame_LookAt(p,a,b,c)                  (p)->lpVtbl->LookAt(p,a,b,c)
-#define IDirect3DRMFrame_Move(p,a)                        (p)->lpVtbl->Move(p,a)
-#define IDirect3DRMFrame_DeleteChild(p,a)                 (p)->lpVtbl->DeleteChild(p,a)
-#define IDirect3DRMFrame_DeleteLight(p,a)                 (p)->lpVtbl->DeleteLight(p,a)
-#define IDirect3DRMFrame_DeleteMoveCallback(p,a,b)        (p)->lpVtbl->DeleteMoveCallback(p,a,b)
-#define IDirect3DRMFrame_DeleteVisual(p,a)                (p)->lpVtbl->DeleteVisual(p,a)
-#define IDirect3DRMFrame_GetSceneBackground(p)            (p)->lpVtbl->GetSceneBackground(p)
-#define IDirect3DRMFrame_GetSceneBackgroundDepth(p,a)     (p)->lpVtbl->GetSceneBackgroundDepth(p,a)
-#define IDirect3DRMFrame_GetSceneFogColor(p)              (p)->lpVtbl->GetSceneFogColor(p)
-#define IDirect3DRMFrame_GetSceneFogEnable(p)             (p)->lpVtbl->GetSceneFogEnable(p)
-#define IDirect3DRMFrame_GetSceneFogMode(p)               (p)->lpVtbl->GetSceneFogMode(p)
-#define IDirect3DRMFrame_GetSceneFogParams(p,a,b,c)       (p)->lpVtbl->GetSceneFogParams(p,a,b,c)
-#define IDirect3DRMFrame_SetSceneBackground(p,a)          (p)->lpVtbl->SetSceneBackground(p,a)
-#define IDirect3DRMFrame_SetSceneBackgroundRGB(p,a,b,c)   (p)->lpVtbl->SetSceneBackgroundRGB(p,a,b,c)
-#define IDirect3DRMFrame_SetSceneBackgroundDepth(p,a)     (p)->lpVtbl->SetSceneBackgroundDepth(p,a)
-#define IDirect3DRMFrame_SetSceneBackgroundImage(p,a)     (p)->lpVtbl->SetSceneBackgroundImage(p,a)
-#define IDirect3DRMFrame_SetSceneFogEnable(p,a)           (p)->lpVtbl->SetSceneFogEnable(p,a)
-#define IDirect3DRMFrame_SetSceneFogColor(p,a)            (p)->lpVtbl->SetSceneFogColor(p,a)
-#define IDirect3DRMFrame_SetSceneFogMode(p,a)             (p)->lpVtbl->SetSceneFogMode(p,a)
-#define IDirect3DRMFrame_SetSceneFogParams(p,a,b,c)       (p)->lpVtbl->SetSceneFogParams(p,a,b,c)
-#define IDirect3DRMFrame_SetColor(p,a)                    (p)->lpVtbl->SetColor(p,a)
-#define IDirect3DRMFrame_SetColorRGB(p,a,b,c)             (p)->lpVtbl->SetColorRGB(p,a,b,c)
-#define IDirect3DRMFrame_GetZbufferMode(p)                (p)->lpVtbl->GetZbufferMode(p)
-#define IDirect3DRMFrame_SetMaterialMode(p,a)             (p)->lpVtbl->SetMaterialMode(p,a)
-#define IDirect3DRMFrame_SetOrientation(p,a,b,c,d,e,f,g)  (p)->lpVtbl->SetOrientation(p,a,b,c,d,e,f,g)
-#define IDirect3DRMFrame_SetPosition(p,a,b,c,d)           (p)->lpVtbl->SetPosition(p,a,b,c,d)
-#define IDirect3DRMFrame_SetRotation(p,a,b,c,d,e)         (p)->lpVtbl->SetRotation(p,a,b,c,d,e)
-#define IDirect3DRMFrame_SetSortMode(p,a)                 (p)->lpVtbl->SetSortMode(p,a)
-#define IDirect3DRMFrame_SetTexture(p,a)                  (p)->lpVtbl->SetTexture(p,a)
-#define IDirect3DRMFrame_SetTextureTopology(p,a,b)        (p)->lpVtbl->SetTextureTopology(p,a,b)
-#define IDirect3DRMFrame_SetVelocity(p,a,b,c,d,e)         (p)->lpVtbl->SetVelocity(p,a,b,c,d,e)
-#define IDirect3DRMFrame_SetZbufferMode(p,a)              (p)->lpVtbl->SetZbufferMode(p,a)
-#define IDirect3DRMFrame_Transform(p,a,b)                 (p)->lpVtbl->Transform(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMFrame_QueryInterface(p,a,b)            (p)->QueryInterface(a,b)
-#define IDirect3DRMFrame_AddRef(p)                        (p)->AddRef()
-#define IDirect3DRMFrame_Release(p)                       (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMFrame_Clone(p,a,b,c)                   (p)->Clone(a,b,c)
-#define IDirect3DRMFrame_AddDestroyCallback(p,a,b)        (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMFrame_DeleteDestroyCallback(p,a,b)     (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMFrame_SetAppData(p,a)                  (p)->SetAppData(a)
-#define IDirect3DRMFrame_GetAppData(p)                    (p)->GetAppData()
-#define IDirect3DRMFrame_SetName(p,a)                     (p)->SetName(a)
-#define IDirect3DRMFrame_GetName(p,a,b)                   (p)->GetName(a,b)
-#define IDirect3DRMFrame_GetClassName(p,a,b)              (p)->GetClassName(a,b)
-/*** IDirect3DRMFrame methods ***/
-#define IDirect3DRMFrame_AddChild(p,a)                    (p)->AddChild(a)
-#define IDirect3DRMFrame_AddLight(p,a)                    (p)->AddLight(a)
-#define IDirect3DRMFrame_AddMoveCallback(p,a,b)           (p)->AddMoveCallback(a,b)
-#define IDirect3DRMFrame_AddTransform(p,a,b)              (p)->AddTransform(a,b)
-#define IDirect3DRMFrame_AddTranslation(p,a,b,c,d)        (p)->AddTranslation(a,b,c,d)
-#define IDirect3DRMFrame_AddScale(p,a,b,c,d)              (p)->AddScale(a,b,c,d)
-#define IDirect3DRMFrame_AddRotation(p,a,b,c,d,e)         (p)->AddRotation(a,b,c,d,e)
-#define IDirect3DRMFrame_AddVisual(p,a)                   (p)->AddVisual(a)
-#define IDirect3DRMFrame_GetChildren(p,a)                 (p)->GetChildren(a)
-#define IDirect3DRMFrame_GetColor(p)                      (p)->GetColor()
-#define IDirect3DRMFrame_GetLights(p,a)                   (p)->GetLights(a)
-#define IDirect3DRMFrame_GetMaterialMode(p)               (p)->GetMaterialMode()
-#define IDirect3DRMFrame_GetParent(p,a)                   (p)->GetParent(a)
-#define IDirect3DRMFrame_GetPosition(p,a,b)               (p)->GetPosition(a,b)
-#define IDirect3DRMFrame_GetRotation(p,a,b,c)             (p)->GetRotation(a,b,c)
-#define IDirect3DRMFrame_GetScene(p,a)                    (p)->GetScene(a)
-#define IDirect3DRMFrame_GetSortMode(p)                   (p)->GetSortMode()
-#define IDirect3DRMFrame_GetTexture(p,a)                  (p)->GetTexture(a)
-#define IDirect3DRMFrame_GetTransform(p,a)                (p)->GetTransform(a)
-#define IDirect3DRMFrame_GetVelocity(p,a,b,c)             (p)->GetVelocity(a,b,c)
-#define IDirect3DRMFrame_GetOrientation(p,a,b,c)          (p)->GetOrientation(a,b,c)
-#define IDirect3DRMFrame_GetVisuals(p,a)                  (p)->GetVisuals(a)
-#define IDirect3DRMFrame_GetTextureTopology(p,a,b)        (p)->GetTextureTopology(a,b)
-#define IDirect3DRMFrame_InverseTransform(p,a,b)          (p)->InverseTransform(a,b)
-#define IDirect3DRMFrame_Load(p,a,b,c,d,e)                (p)->Load(a,b,c,d,e)
-#define IDirect3DRMFrame_LookAt(p,a,b,c)                  (p)->LookAt(a,b,c)
-#define IDirect3DRMFrame_Move(p,a)                        (p)->Move(a)
-#define IDirect3DRMFrame_DeleteChild(p,a)                 (p)->DeleteChild(a)
-#define IDirect3DRMFrame_DeleteLight(p,a)                 (p)->DeleteLight(a)
-#define IDirect3DRMFrame_DeleteMoveCallback(p,a,b)        (p)->DeleteMoveCallback(a,b)
-#define IDirect3DRMFrame_DeleteVisual(p,a)                (p)->DeleteVisual(a)
-#define IDirect3DRMFrame_GetSceneBackground(p)            (p)->GetSceneBackground()
-#define IDirect3DRMFrame_GetSceneBackgroundDepth(p,a)     (p)->GetSceneBackgroundDepth(a)
-#define IDirect3DRMFrame_GetSceneFogColor(p)              (p)->GetSceneFogColor()
-#define IDirect3DRMFrame_GetSceneFogEnable(p)             (p)->GetSceneFogEnable()
-#define IDirect3DRMFrame_GetSceneFogMode(p)               (p)->GetSceneFogMode()
-#define IDirect3DRMFrame_GetSceneFogParams(p,a,b,c)       (p)->GetSceneFogParams(a,b,c)
-#define IDirect3DRMFrame_SetSceneBackground(p,a)          (p)->SetSceneBackground(a)
-#define IDirect3DRMFrame_SetSceneBackgroundRGB(p,a,b,c)   (p)->SetSceneBackgroundRGB(a,b,c)
-#define IDirect3DRMFrame_SetSceneBackgroundDepth(p,a)     (p)->SetSceneBackgroundDepth(a)
-#define IDirect3DRMFrame_SetSceneBackgroundImage(p,a)     (p)->SetSceneBackgroundImage(a)
-#define IDirect3DRMFrame_SetSceneFogEnable(p,a)           (p)->SetSceneFogEnable(a)
-#define IDirect3DRMFrame_SetSceneFogColor(p,a)            (p)->SetSceneFogColor(a)
-#define IDirect3DRMFrame_SetSceneFogMode(p,a)             (p)->SetSceneFogMode(a)
-#define IDirect3DRMFrame_SetSceneFogParams(p,a,b,c)       (p)->SetSceneFogParams(a,b,c)
-#define IDirect3DRMFrame_SetColor(p,a)                    (p)->SetColor(a)
-#define IDirect3DRMFrame_SetColorRGB(p,a,b,c)             (p)->SetColorRGB(a,b,c)
-#define IDirect3DRMFrame_GetZbufferMode(p)                (p)->GetZbufferMode()
-#define IDirect3DRMFrame_SetMaterialMode(p,a)             (p)->SetMaterialMode(a)
-#define IDirect3DRMFrame_SetOrientation(p,a,b,c,d,e,f,g)  (p)->SetOrientation(a,b,c,d,e,f,g)
-#define IDirect3DRMFrame_SetPosition(p,a,b,c,d)           (p)->SetPosition(a,b,c,d)
-#define IDirect3DRMFrame_SetRotation(p,a,b,c,d,e)         (p)->SetRotation(a,b,c,d,e)
-#define IDirect3DRMFrame_SetSortMode(p,a)                 (p)->SetSortMode(a)
-#define IDirect3DRMFrame_SetTexture(p,a)                  (p)->SetTexture(a)
-#define IDirect3DRMFrame_SetTextureTopology(p,a,b)        (p)->SetTextureTopology(a,b)
-#define IDirect3DRMFrame_SetVelocity(p,a,b,c,d,e)         (p)->SetVelocity(a,b,c,d,e)
-#define IDirect3DRMFrame_SetZbufferMode(p,a)              (p)->SetZbufferMode(a)
-#define IDirect3DRMFrame_Transform(p,a,b)                 (p)->Transform(a,b)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMFrame2 interface
- */
-#define INTERFACE IDirect3DRMFrame2
-DECLARE_INTERFACE_(IDirect3DRMFrame2,IDirect3DRMFrame)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMFrame methods ***/
-    STDMETHOD(AddChild)(THIS_ LPDIRECT3DRMFRAME child) PURE;
-    STDMETHOD(AddLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
-    STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg) PURE;
-    STDMETHOD(AddTransform)(THIS_ D3DRMCOMBINETYPE, D3DRMMATRIX4D) PURE;
-    STDMETHOD(AddTranslation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(AddScale)(THIS_ D3DRMCOMBINETYPE, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
-    STDMETHOD(AddRotation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
-    STDMETHOD(AddVisual)(THIS_ LPDIRECT3DRMVISUAL) PURE;
-    STDMETHOD(GetChildren)(THIS_ LPDIRECT3DRMFRAMEARRAY *children) PURE;
-    STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
-    STDMETHOD(GetLights)(THIS_ LPDIRECT3DRMLIGHTARRAY *lights) PURE;
-    STDMETHOD_(D3DRMMATERIALMODE, GetMaterialMode)(THIS) PURE;
-    STDMETHOD(GetParent)(THIS_ LPDIRECT3DRMFRAME *) PURE;
-    STDMETHOD(GetPosition)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR return_position) PURE;
-    STDMETHOD(GetRotation)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR axis, LPD3DVALUE return_theta) PURE;
-    STDMETHOD(GetScene)(THIS_ LPDIRECT3DRMFRAME *) PURE;
-    STDMETHOD_(D3DRMSORTMODE, GetSortMode)(THIS) PURE;
-    STDMETHOD(GetTexture)(THIS_ LPDIRECT3DRMTEXTURE *) PURE;
-    STDMETHOD(GetTransform)(THIS_ D3DRMMATRIX4D return_matrix) PURE;
-    STDMETHOD(GetVelocity)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR return_velocity, BOOL with_rotation) PURE;
-    STDMETHOD(GetOrientation)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR dir, LPD3DVECTOR up) PURE;
-    STDMETHOD(GetVisuals)(THIS_ LPDIRECT3DRMVISUALARRAY *visuals) PURE;
-    STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
-    STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
-    STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURECALLBACK,
-        LPVOID pArg)PURE;
-    STDMETHOD(LookAt)(THIS_ LPDIRECT3DRMFRAME target, LPDIRECT3DRMFRAME reference, D3DRMFRAMECONSTRAINT) PURE;
-    STDMETHOD(Move)(THIS_ D3DVALUE delta) PURE;
-    STDMETHOD(DeleteChild)(THIS_ LPDIRECT3DRMFRAME) PURE;
-    STDMETHOD(DeleteLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
-    STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg) PURE;
-    STDMETHOD(DeleteVisual)(THIS_ LPDIRECT3DRMVISUAL) PURE;
-    STDMETHOD_(D3DCOLOR, GetSceneBackground)(THIS) PURE;
-    STDMETHOD(GetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE *) PURE;
-    STDMETHOD_(D3DCOLOR, GetSceneFogColor)(THIS) PURE;
-    STDMETHOD_(BOOL, GetSceneFogEnable)(THIS) PURE;
-    STDMETHOD_(D3DRMFOGMODE, GetSceneFogMode)(THIS) PURE;
-    STDMETHOD(GetSceneFogParams)(THIS_ D3DVALUE *return_start, D3DVALUE *return_end, D3DVALUE *return_density) PURE;
-    STDMETHOD(SetSceneBackground)(THIS_ D3DCOLOR) PURE;
-    STDMETHOD(SetSceneBackgroundRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
-    STDMETHOD(SetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE) PURE;
-    STDMETHOD(SetSceneBackgroundImage)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
-    STDMETHOD(SetSceneFogEnable)(THIS_ BOOL) PURE;
-    STDMETHOD(SetSceneFogColor)(THIS_ D3DCOLOR) PURE;
-    STDMETHOD(SetSceneFogMode)(THIS_ D3DRMFOGMODE) PURE;
-    STDMETHOD(SetSceneFogParams)(THIS_ D3DVALUE start, D3DVALUE end, D3DVALUE density) PURE;
-    STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
-    STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
-    STDMETHOD_(D3DRMZBUFFERMODE, GetZbufferMode)(THIS) PURE;
-    STDMETHOD(SetMaterialMode)(THIS_ D3DRMMATERIALMODE) PURE;
-    STDMETHOD(SetOrientation)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
-        D3DVALUE ux, D3DVALUE uy, D3DVALUE uz) PURE;
-    STDMETHOD(SetPosition)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(SetRotation)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
-    STDMETHOD(SetSortMode)(THIS_ D3DRMSORTMODE) PURE;
-    STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
-    STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
-    STDMETHOD(SetVelocity)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, BOOL with_rotation) PURE;
-    STDMETHOD(SetZbufferMode)(THIS_ D3DRMZBUFFERMODE) PURE;
-    STDMETHOD(Transform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
-    /*** IDirect3DRMFrame2 methods ***/
-    STDMETHOD(AddMoveCallback2)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg, DWORD flags) PURE;
-    STDMETHOD(GetBox)(THIS_ LPD3DRMBOX) PURE;
-    STDMETHOD_(BOOL, GetBoxEnable)(THIS) PURE;
-    STDMETHOD(GetAxes)(THIS_ LPD3DVECTOR dir, LPD3DVECTOR up);
-    STDMETHOD(GetMaterial)(THIS_ LPDIRECT3DRMMATERIAL *) PURE;
-    STDMETHOD_(BOOL, GetInheritAxes)(THIS);
-    STDMETHOD(GetHierarchyBox)(THIS_ LPD3DRMBOX) PURE;
-    STDMETHOD(SetBox)(THIS_ LPD3DRMBOX) PURE;
-    STDMETHOD(SetBoxEnable)(THIS_ BOOL) PURE;
-    STDMETHOD(SetAxes)(THIS_ D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz);
-    STDMETHOD(SetInheritAxes)(THIS_ BOOL inherit_from_parent);
-    STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL) PURE;
-    STDMETHOD(SetQuaternion)(THIS_ LPDIRECT3DRMFRAME reference, D3DRMQUATERNION *q) PURE;
-    STDMETHOD(RayPick)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DRMRAY ray, DWORD flags,
-        LPDIRECT3DRMPICKED2ARRAY *return_visuals) PURE;
-    STDMETHOD(Save)(THIS_ LPCSTR filename, D3DRMXOFFORMAT d3dFormat, D3DRMSAVEOPTIONS d3dSaveFlags);
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMFrame2_QueryInterface(p,a,b)            (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMFrame2_AddRef(p)                        (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMFrame2_Release(p)                       (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMFrame2_Clone(p,a,b,c)                   (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMFrame2_AddDestroyCallback(p,a,b)        (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMFrame2_DeleteDestroyCallback(p,a,b)     (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMFrame2_SetAppData(p,a)                  (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMFrame2_GetAppData(p)                    (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMFrame2_SetName(p,a)                     (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMFrame2_GetName(p,a,b)                   (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMFrame2_GetClassName(p,a,b)              (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMFrame methods ***/
-#define IDirect3DRMFrame2_AddChild(p,a)                    (p)->lpVtbl->AddChild(p,a)
-#define IDirect3DRMFrame2_AddLight(p,a)                    (p)->lpVtbl->AddLight(p,a)
-#define IDirect3DRMFrame2_AddMoveCallback(p,a,b)           (p)->lpVtbl->AddMoveCallback(p,a,b)
-#define IDirect3DRMFrame2_AddTransform(p,a,b)              (p)->lpVtbl->AddTransform(p,a,b)
-#define IDirect3DRMFrame2_AddTranslation(p,a,b,c,d)        (p)->lpVtbl->AddTranslation(p,a,b,c,d)
-#define IDirect3DRMFrame2_AddScale(p,a,b,c,d)              (p)->lpVtbl->AddScale(p,a,b,c,d)
-#define IDirect3DRMFrame2_AddRotation(p,a,b,c,d,e)         (p)->lpVtbl->AddRotation(p,a,b,c,d,e)
-#define IDirect3DRMFrame2_AddVisual(p,a)                   (p)->lpVtbl->AddVisual(p,a)
-#define IDirect3DRMFrame2_GetChildren(p,a)                 (p)->lpVtbl->GetChildren(p,a)
-#define IDirect3DRMFrame2_GetColor(p)                      (p)->lpVtbl->GetColor(p)
-#define IDirect3DRMFrame2_GetLights(p,a)                   (p)->lpVtbl->GetLights(p,a)
-#define IDirect3DRMFrame2_GetMaterialMode(p)               (p)->lpVtbl->GetMaterialMode(p)
-#define IDirect3DRMFrame2_GetParent(p,a)                   (p)->lpVtbl->GetParent(p,a)
-#define IDirect3DRMFrame2_GetPosition(p,a,b)               (p)->lpVtbl->GetPosition(p,a,b)
-#define IDirect3DRMFrame2_GetRotation(p,a,b,c)             (p)->lpVtbl->GetRotation(p,a,b,c)
-#define IDirect3DRMFrame2_GetScene(p,a)                    (p)->lpVtbl->GetScene(p,a)
-#define IDirect3DRMFrame2_GetSortMode(p)                   (p)->lpVtbl->GetSortMode(p)
-#define IDirect3DRMFrame2_GetTexture(p,a)                  (p)->lpVtbl->GetTexture(p,a)
-#define IDirect3DRMFrame2_GetTransform(p,a)                (p)->lpVtbl->GetTransform(p,a)
-#define IDirect3DRMFrame2_GetVelocity(p,a,b,c)             (p)->lpVtbl->GetVelocity(p,a,b,c)
-#define IDirect3DRMFrame2_GetOrientation(p,a,b,c)          (p)->lpVtbl->GetOrientation(p,a,b,c)
-#define IDirect3DRMFrame2_GetVisuals(p,a)                  (p)->lpVtbl->GetVisuals(p,a)
-#define IDirect3DRMFrame2_GetTextureTopology(p,a,b)        (p)->lpVtbl->GetTextureTopology(p,a,b)
-#define IDirect3DRMFrame2_InverseTransform(p,a,b)          (p)->lpVtbl->InverseTransform(p,a,b)
-#define IDirect3DRMFrame2_Load(p,a,b,c,d,e)                (p)->lpVtbl->Load(p,a,b,c,d,e)
-#define IDirect3DRMFrame2_LookAt(p,a,b,c)                  (p)->lpVtbl->LookAt(p,a,b,c)
-#define IDirect3DRMFrame2_Move(p,a)                        (p)->lpVtbl->Move(p,a)
-#define IDirect3DRMFrame2_DeleteChild(p,a)                 (p)->lpVtbl->DeleteChild(p,a)
-#define IDirect3DRMFrame2_DeleteLight(p,a)                 (p)->lpVtbl->DeleteLight(p,a)
-#define IDirect3DRMFrame2_DeleteMoveCallback(p,a,b)        (p)->lpVtbl->DeleteMoveCallback(p,a,b)
-#define IDirect3DRMFrame2_DeleteVisual(p,a)                (p)->lpVtbl->DeleteVisual(p,a)
-#define IDirect3DRMFrame2_GetSceneBackground(p)            (p)->lpVtbl->GetSceneBackground(p)
-#define IDirect3DRMFrame2_GetSceneBackgroundDepth(p,a)     (p)->lpVtbl->GetSceneBackgroundDepth(p,a)
-#define IDirect3DRMFrame2_GetSceneFogColor(p)              (p)->lpVtbl->GetSceneFogColor(p)
-#define IDirect3DRMFrame2_GetSceneFogEnable(p)             (p)->lpVtbl->GetSceneFogEnable(p)
-#define IDirect3DRMFrame2_GetSceneFogMode(p)               (p)->lpVtbl->GetSceneFogMode(p)
-#define IDirect3DRMFrame2_GetSceneFogParams(p,a,b,c)       (p)->lpVtbl->GetSceneFogParams(p,a,b,c)
-#define IDirect3DRMFrame2_SetSceneBackground(p,a)          (p)->lpVtbl->SetSceneBackground(p,a)
-#define IDirect3DRMFrame2_SetSceneBackgroundRGB(p,a,b,c)   (p)->lpVtbl->SetSceneBackgroundRGB(p,a,b,c)
-#define IDirect3DRMFrame2_SetSceneBackgroundDepth(p,a)     (p)->lpVtbl->SetSceneBackgroundDepth(p,a)
-#define IDirect3DRMFrame2_SetSceneBackgroundImage(p,a)     (p)->lpVtbl->SetSceneBackgroundImage(p,a)
-#define IDirect3DRMFrame2_SetSceneFogEnable(p,a)           (p)->lpVtbl->SetSceneFogEnable(p,a)
-#define IDirect3DRMFrame2_SetSceneFogColor(p,a)            (p)->lpVtbl->SetSceneFogColor(p,a)
-#define IDirect3DRMFrame2_SetSceneFogMode(p,a)             (p)->lpVtbl->SetSceneFogMode(p,a)
-#define IDirect3DRMFrame2_SetSceneFogParams(p,a,b,c)       (p)->lpVtbl->SetSceneFogParams(p,a,b,c)
-#define IDirect3DRMFrame2_SetColor(p,a)                    (p)->lpVtbl->SetColor(p,a)
-#define IDirect3DRMFrame2_SetColorRGB(p,a,b,c)             (p)->lpVtbl->SetColorRGB(p,a,b,c)
-#define IDirect3DRMFrame2_GetZbufferMode(p)                (p)->lpVtbl->GetZbufferMode(p)
-#define IDirect3DRMFrame2_SetMaterialMode(p,a)             (p)->lpVtbl->SetMaterialMode(p,a)
-#define IDirect3DRMFrame2_SetOrientation(p,a,b,c,d,e,f,g)  (p)->lpVtbl->SetOrientation(p,a,b,c,d,e,f,g)
-#define IDirect3DRMFrame2_SetPosition(p,a,b,c,d)           (p)->lpVtbl->SetPosition(p,a,b,c,d)
-#define IDirect3DRMFrame2_SetRotation(p,a,b,c,d,e)         (p)->lpVtbl->SetRotation(p,a,b,c,d,e)
-#define IDirect3DRMFrame2_SetSortMode(p,a)                 (p)->lpVtbl->SetSortMode(p,a)
-#define IDirect3DRMFrame2_SetTexture(p,a)                  (p)->lpVtbl->SetTexture(p,a)
-#define IDirect3DRMFrame2_SetTextureTopology(p,a,b)        (p)->lpVtbl->SetTextureTopology(p,a,b)
-#define IDirect3DRMFrame2_SetVelocity(p,a,b,c,d,e)         (p)->lpVtbl->SetVelocity(p,a,b,c,d,e)
-#define IDirect3DRMFrame2_SetZbufferMode(p,a)              (p)->lpVtbl->SetZbufferMode(p,a)
-#define IDirect3DRMFrame2_Transform(p,a,b)                 (p)->lpVtbl->Transform(p,a,b)
-/*** IDirect3DRMFrame2 methods ***/
-#define IDirect3DRMFrame2_AddMoveCallback2(p,a,b,c)        (p)->lpVtbl->AddMoveCallback2(p,a,b,c)
-#define IDirect3DRMFrame2_GetBox(p,a)                      (p)->lpVtbl->GetBox(p,a)
-#define IDirect3DRMFrame2_GetBoxEnable(p)                  (p)->lpVtbl->GetBoxEnable(p)
-#define IDirect3DRMFrame2_GetAxes(p,a,b)                   (p)->lpVtbl->GetAxes(p,a,b)
-#define IDirect3DRMFrame2_GetMaterial(p,a)                 (p)->lpVtbl->GetMaterial(p,a)
-#define IDirect3DRMFrame2_GetInheritAxes(p,a,b)            (p)->lpVtbl->GetInheritAxes(p,a,b)
-#define IDirect3DRMFrame2_GetHierarchyBox(p,a)             (p)->lpVtbl->GetHierarchyBox(p,a)
-#define IDirect3DRMFrame2_SetBox(p,a)                      (p)->lpVtbl->SetBox(p,a)
-#define IDirect3DRMFrame2_SetBoxEnable(p,a)                (p)->lpVtbl->SetBoxEnable(p,a)
-#define IDirect3DRMFrame2_SetAxes(p,a,b,c,d,e,f)           (p)->lpVtbl->SetAxes(p,a,b,c,d,e,f)
-#define IDirect3DRMFrame2_SetInheritAxes(p,a)              (p)->lpVtbl->SetInheritAxes(p,a)
-#define IDirect3DRMFrame2_SetMaterial(p,a)                 (p)->lpVtbl->SetMaterial(p,a)
-#define IDirect3DRMFrame2_SetQuaternion(p,a,b)             (p)->lpVtbl->SetQuaternion(p,a,b)
-#define IDirect3DRMFrame2_RayPick(p,a,b,c,d)               (p)->lpVtbl->RayPick(p,a,b,c,d)
-#define IDirect3DRMFrame2_Save(p,a,b,c)                    (p)->lpVtbl->Save(p,a,b,c)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMFrame2_QueryInterface(p,a,b)            (p)->QueryInterface(a,b)
-#define IDirect3DRMFrame2_AddRef(p)                        (p)->AddRef()
-#define IDirect3DRMFrame2_Release(p)                       (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMFrame2_Clone(p,a,b,c)                   (p)->Clone(a,b,c)
-#define IDirect3DRMFrame2_AddDestroyCallback(p,a,b)        (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMFrame2_DeleteDestroyCallback(p,a,b)     (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMFrame2_SetAppData(p,a)                  (p)->SetAppData(a)
-#define IDirect3DRMFrame2_GetAppData(p)                    (p)->GetAppData()
-#define IDirect3DRMFrame2_SetName(p,a)                     (p)->SetName(a)
-#define IDirect3DRMFrame2_GetName(p,a,b)                   (p)->GetName(a,b)
-#define IDirect3DRMFrame2_GetClassName(p,a,b)              (p)->GetClassName(a,b)
-/*** IDirect3DRMFrame methods ***/
-#define IDirect3DRMFrame2_AddChild(p,a)                    (p)->AddChild(a)
-#define IDirect3DRMFrame2_AddLight(p,a)                    (p)->AddLight(a)
-#define IDirect3DRMFrame2_AddMoveCallback(p,a,b)           (p)->AddMoveCallback(a,b)
-#define IDirect3DRMFrame2_AddTransform(p,a,b)              (p)->AddTransform(a,b)
-#define IDirect3DRMFrame2_AddTranslation(p,a,b,c,d)        (p)->AddTranslation(a,b,c,d)
-#define IDirect3DRMFrame2_AddScale(p,a,b,c,d)              (p)->AddScale(a,b,c,d)
-#define IDirect3DRMFrame2_AddRotation(p,a,b,c,d,e)         (p)->AddRotation(a,b,c,d,e)
-#define IDirect3DRMFrame2_AddVisual(p,a)                   (p)->AddVisual(a)
-#define IDirect3DRMFrame2_GetChildren(p,a)                 (p)->GetChildren(a)
-#define IDirect3DRMFrame2_GetColor(p)                      (p)->GetColor()
-#define IDirect3DRMFrame2_GetLights(p,a)                   (p)->GetLights(a)
-#define IDirect3DRMFrame2_GetMaterialMode(p)               (p)->GetMaterialMode()
-#define IDirect3DRMFrame2_GetParent(p,a)                   (p)->GetParent(a)
-#define IDirect3DRMFrame2_GetPosition(p,a,b)               (p)->GetPosition(a,b)
-#define IDirect3DRMFrame2_GetRotation(p,a,b,c)             (p)->GetRotation(a,b,c)
-#define IDirect3DRMFrame2_GetScene(p,a)                    (p)->GetScene(a)
-#define IDirect3DRMFrame2_GetSortMode(p)                   (p)->GetSortMode()
-#define IDirect3DRMFrame2_GetTexture(p,a)                  (p)->GetTexture(a)
-#define IDirect3DRMFrame2_GetTransform(p,a)                (p)->GetTransform(a)
-#define IDirect3DRMFrame2_GetVelocity(p,a,b,c)             (p)->GetVelocity(a,b,c)
-#define IDirect3DRMFrame2_GetOrientation(p,a,b,c)          (p)->GetOrientation(a,b,c)
-#define IDirect3DRMFrame2_GetVisuals(p,a)                  (p)->GetVisuals(a)
-#define IDirect3DRMFrame2_GetTextureTopology(p,a,b)        (p)->GetTextureTopology(a,b)
-#define IDirect3DRMFrame2_InverseTransform(p,a,b)          (p)->InverseTransform(a,b)
-#define IDirect3DRMFrame2_Load(p,a,b,c,d,e)                (p)->Load(a,b,c,d,e)
-#define IDirect3DRMFrame2_LookAt(p,a,b,c)                  (p)->LookAt(a,b,c)
-#define IDirect3DRMFrame2_Move(p,a)                        (p)->Move(a)
-#define IDirect3DRMFrame2_DeleteChild(p,a)                 (p)->DeleteChild(a)
-#define IDirect3DRMFrame2_DeleteLight(p,a)                 (p)->DeleteLight(a)
-#define IDirect3DRMFrame2_DeleteMoveCallback(p,a,b)        (p)->DeleteMoveCallback(a,b)
-#define IDirect3DRMFrame2_DeleteVisual(p,a)                (p)->DeleteVisual(a)
-#define IDirect3DRMFrame2_GetSceneBackground(p)            (p)->GetSceneBackground()
-#define IDirect3DRMFrame2_GetSceneBackgroundDepth(p,a)     (p)->GetSceneBackgroundDepth(a)
-#define IDirect3DRMFrame2_GetSceneFogColor(p)              (p)->GetSceneFogColor()
-#define IDirect3DRMFrame2_GetSceneFogEnable(p)             (p)->GetSceneFogEnable()
-#define IDirect3DRMFrame2_GetSceneFogMode(p)               (p)->GetSceneFogMode()
-#define IDirect3DRMFrame2_GetSceneFogParams(p,a,b,c)       (p)->GetSceneFogParams(a,b,c)
-#define IDirect3DRMFrame2_SetSceneBackground(p,a)          (p)->SetSceneBackground(a)
-#define IDirect3DRMFrame2_SetSceneBackgroundRGB(p,a,b,c)   (p)->SetSceneBackgroundRGB(a,b,c)
-#define IDirect3DRMFrame2_SetSceneBackgroundDepth(p,a)     (p)->SetSceneBackgroundDepth(a)
-#define IDirect3DRMFrame2_SetSceneBackgroundImage(p,a)     (p)->SetSceneBackgroundImage(a)
-#define IDirect3DRMFrame2_SetSceneFogEnable(p,a)           (p)->SetSceneFogEnable(a)
-#define IDirect3DRMFrame2_SetSceneFogColor(p,a)            (p)->SetSceneFogColor(a)
-#define IDirect3DRMFrame2_SetSceneFogMode(p,a)             (p)->SetSceneFogMode(a)
-#define IDirect3DRMFrame2_SetSceneFogParams(p,a,b,c)       (p)->SetSceneFogParams(a,b,c)
-#define IDirect3DRMFrame2_SetColor(p,a)                    (p)->SetColor(a)
-#define IDirect3DRMFrame2_SetColorRGB(p,a,b,c)             (p)->SetColorRGB(a,b,c)
-#define IDirect3DRMFrame2_GetZbufferMode(p)                (p)->GetZbufferMode()
-#define IDirect3DRMFrame2_SetMaterialMode(p,a)             (p)->SetMaterialMode(a)
-#define IDirect3DRMFrame2_SetOrientation(p,a,b,c,d,e,f,g)  (p)->SetOrientation(a,b,c,d,e,f,g)
-#define IDirect3DRMFrame2_SetPosition(p,a,b,c,d)           (p)->SetPosition(a,b,c,d)
-#define IDirect3DRMFrame2_SetRotation(p,a,b,c,d,e)         (p)->SetRotation(a,b,c,d,e)
-#define IDirect3DRMFrame2_SetSortMode(p,a)                 (p)->SetSortMode(a)
-#define IDirect3DRMFrame2_SetTexture(p,a)                  (p)->SetTexture(a)
-#define IDirect3DRMFrame2_SetTextureTopology(p,a,b)        (p)->SetTextureTopology(a,b)
-#define IDirect3DRMFrame2_SetVelocity(p,a,b,c,d,e)         (p)->SetVelocity(a,b,c,d,e)
-#define IDirect3DRMFrame2_SetZbufferMode(p,a)              (p)->SetZbufferMode(a)
-#define IDirect3DRMFrame2_Transform(p,a,b)                 (p)->Transform(a,b)
-/*** IDirect3DRMFrame2 methods ***/
-#define IDirect3DRMFrame2_AddMoveCallback2(p,a,b,c)        (p)->AddMoveCallback2(a,b,c)
-#define IDirect3DRMFrame2_GetBox(p,a)                      (p)->GetBox(a)
-#define IDirect3DRMFrame2_GetBoxEnable(p)                  (p)->GetBoxEnable()
-#define IDirect3DRMFrame2_GetAxes(p,a,b)                   (p)->GetAxes(a,b)
-#define IDirect3DRMFrame2_GetMaterial(p,a)                 (p)->GetMaterial(a)
-#define IDirect3DRMFrame2_GetInheritAxes(p,a,b)            (p)->GetInheritAxes(a,b)
-#define IDirect3DRMFrame2_GetHierarchyBox(p,a)             (p)->GetHierarchyBox(a)
-#define IDirect3DRMFrame2_SetBox(p,a)                      (p)->SetBox(a)
-#define IDirect3DRMFrame2_SetBoxEnable(p,a)                (p)->SetBoxEnable(a)
-#define IDirect3DRMFrame2_SetAxes(p,a,b,c,d,e,f)           (p)->SetAxes(a,b,c,d,e,f)
-#define IDirect3DRMFrame2_SetInheritAxes(p,a)              (p)->SetInheritAxes(a)
-#define IDirect3DRMFrame2_SetMaterial(p,a)                 (p)->SetMaterial(a)
-#define IDirect3DRMFrame2_SetQuaternion(p,a,b)             (p)->SetQuaternion(a,b)
-#define IDirect3DRMFrame2_RayPick(p,a,b,c,d)               (p)->RayPick(a,b,c,d)
-#define IDirect3DRMFrame2_Save(p,a,b,c)                    (p)->Save(a,b,c)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMFrame3 interface
- */
-#define INTERFACE IDirect3DRMFrame3
-DECLARE_INTERFACE_(IDirect3DRMFrame3,IDirect3DRMVisual)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMFrame3 methods ***/
-    STDMETHOD(AddChild)(THIS_ LPDIRECT3DRMFRAME3 child) PURE;
-    STDMETHOD(AddLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
-    STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAME3MOVECALLBACK, VOID *arg, DWORD flags) PURE;
-    STDMETHOD(AddTranslation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(AddScale)(THIS_ D3DRMCOMBINETYPE, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
-    STDMETHOD(AddRotation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
-    STDMETHOD(AddVisual)(THIS_ LPUNKNOWN) PURE;
-    STDMETHOD(GetChildren)(THIS_ LPDIRECT3DRMFRAMEARRAY *children) PURE;
-    STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
-    STDMETHOD(GetLights)(THIS_ LPDIRECT3DRMLIGHTARRAY *lights) PURE;
-    STDMETHOD_(D3DRMMATERIALMODE, GetMaterialMode)(THIS) PURE;
-    STDMETHOD(GetParent)(THIS_ LPDIRECT3DRMFRAME3 *) PURE;
-    STDMETHOD(GetPosition)(THIS_ LPDIRECT3DRMFRAME3 reference, LPD3DVECTOR return_position) PURE;
-    STDMETHOD(GetRotation)(THIS_ LPDIRECT3DRMFRAME3 reference, LPD3DVECTOR axis, LPD3DVALUE return_theta) PURE;
-    STDMETHOD(GetScene)(THIS_ LPDIRECT3DRMFRAME3 *) PURE;
-    STDMETHOD_(D3DRMSORTMODE, GetSortMode)(THIS) PURE;
-    STDMETHOD(GetTexture)(THIS_ LPDIRECT3DRMTEXTURE3 *) PURE;
-    STDMETHOD(GetTransform)(THIS_ LPDIRECT3DRMFRAME3 reference, D3DRMMATRIX4D rmMatrix) PURE;
-    STDMETHOD(GetVelocity)(THIS_ LPDIRECT3DRMFRAME3 reference, LPD3DVECTOR return_velocity,
-        BOOL with_rotation) PURE;
-    STDMETHOD(GetOrientation)(THIS_ LPDIRECT3DRMFRAME3 reference, LPD3DVECTOR dir, LPD3DVECTOR up) PURE;
-    STDMETHOD(GetVisuals)(THIS_ LPDWORD pCount, LPUNKNOWN *) PURE;
-    STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
-    STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags,
-        D3DRMLOADTEXTURE3CALLBACK, LPVOID pArg) PURE;
-    STDMETHOD(LookAt)(THIS_ LPDIRECT3DRMFRAME3 target, LPDIRECT3DRMFRAME3 reference, D3DRMFRAMECONSTRAINT) PURE;
-    STDMETHOD(Move)(THIS_ D3DVALUE delta) PURE;
-    STDMETHOD(DeleteChild)(THIS_ LPDIRECT3DRMFRAME3) PURE;
-    STDMETHOD(DeleteLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
-    STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAME3MOVECALLBACK, VOID *arg) PURE;
-    STDMETHOD(DeleteVisual)(THIS_ LPUNKNOWN) PURE;
-    STDMETHOD_(D3DCOLOR, GetSceneBackground)(THIS) PURE;
-    STDMETHOD(GetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE *) PURE;
-    STDMETHOD_(D3DCOLOR, GetSceneFogColor)(THIS) PURE;
-    STDMETHOD_(BOOL, GetSceneFogEnable)(THIS) PURE;
-    STDMETHOD_(D3DRMFOGMODE, GetSceneFogMode)(THIS) PURE;
-    STDMETHOD(GetSceneFogParams)(THIS_ D3DVALUE *return_start, D3DVALUE *return_end,
-        D3DVALUE *return_density) PURE;
-    STDMETHOD(SetSceneBackground)(THIS_ D3DCOLOR) PURE;
-    STDMETHOD(SetSceneBackgroundRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
-    STDMETHOD(SetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE) PURE;
-    STDMETHOD(SetSceneBackgroundImage)(THIS_ LPDIRECT3DRMTEXTURE3) PURE;
-    STDMETHOD(SetSceneFogEnable)(THIS_ BOOL) PURE;
-    STDMETHOD(SetSceneFogColor)(THIS_ D3DCOLOR) PURE;
-    STDMETHOD(SetSceneFogMode)(THIS_ D3DRMFOGMODE) PURE;
-    STDMETHOD(SetSceneFogParams)(THIS_ D3DVALUE start, D3DVALUE end, D3DVALUE density) PURE;
-    STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
-    STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
-    STDMETHOD_(D3DRMZBUFFERMODE, GetZbufferMode)(THIS) PURE;
-    STDMETHOD(SetMaterialMode)(THIS_ D3DRMMATERIALMODE) PURE;
-    STDMETHOD(SetOrientation)(THIS_ LPDIRECT3DRMFRAME3 reference, D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
-        D3DVALUE ux, D3DVALUE uy, D3DVALUE uz) PURE;
-    STDMETHOD(SetPosition)(THIS_ LPDIRECT3DRMFRAME3 reference, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(SetRotation)(THIS_ LPDIRECT3DRMFRAME3 reference, D3DVALUE x, D3DVALUE y, D3DVALUE z,
-        D3DVALUE theta) PURE;
-    STDMETHOD(SetSortMode)(THIS_ D3DRMSORTMODE) PURE;
-    STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE3) PURE;
-    STDMETHOD(SetVelocity)(THIS_ LPDIRECT3DRMFRAME3 reference, D3DVALUE x, D3DVALUE y, D3DVALUE z,
-        BOOL with_rotation) PURE;
-    STDMETHOD(SetZbufferMode)(THIS_ D3DRMZBUFFERMODE) PURE;
-    STDMETHOD(Transform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
-    STDMETHOD(GetBox)(THIS_ LPD3DRMBOX) PURE;
-    STDMETHOD_(BOOL, GetBoxEnable)(THIS) PURE;
-    STDMETHOD(GetAxes)(THIS_ LPD3DVECTOR dir, LPD3DVECTOR up);
-    STDMETHOD(GetMaterial)(THIS_ LPDIRECT3DRMMATERIAL2 *) PURE;
-    STDMETHOD_(BOOL, GetInheritAxes)(THIS);
-    STDMETHOD(GetHierarchyBox)(THIS_ LPD3DRMBOX) PURE;
-    STDMETHOD(SetBox)(THIS_ LPD3DRMBOX) PURE;
-    STDMETHOD(SetBoxEnable)(THIS_ BOOL) PURE;
-    STDMETHOD(SetAxes)(THIS_ D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz);
-    STDMETHOD(SetInheritAxes)(THIS_ BOOL inherit_from_parent);
-    STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL2) PURE;
-    STDMETHOD(SetQuaternion)(THIS_ LPDIRECT3DRMFRAME3 reference, D3DRMQUATERNION *q) PURE;
-    STDMETHOD(RayPick)(THIS_ LPDIRECT3DRMFRAME3 reference, LPD3DRMRAY ray, DWORD flags,
-        LPDIRECT3DRMPICKED2ARRAY *return_visuals) PURE;
-    STDMETHOD(Save)(THIS_ LPCSTR filename, D3DRMXOFFORMAT d3dFormat, D3DRMSAVEOPTIONS d3dSaveFlags);
-    STDMETHOD(TransformVectors)(THIS_ LPDIRECT3DRMFRAME3 reference, DWORD NumVectors,
-        LPD3DVECTOR pDstVectors, LPD3DVECTOR pSrcVectors) PURE;
-    STDMETHOD(InverseTransformVectors)(THIS_ LPDIRECT3DRMFRAME3 reference, DWORD NumVectors,
-        LPD3DVECTOR pDstVectors, LPD3DVECTOR pSrcVectors) PURE;
-    STDMETHOD(SetTraversalOptions)(THIS_ DWORD flags) PURE;
-    STDMETHOD(GetTraversalOptions)(THIS_ LPDWORD pFlags) PURE;
-    STDMETHOD(SetSceneFogMethod)(THIS_ DWORD flags) PURE;
-    STDMETHOD(GetSceneFogMethod)(THIS_ LPDWORD pFlags) PURE;
-    STDMETHOD(SetMaterialOverride)(THIS_ LPD3DRMMATERIALOVERRIDE) PURE;
-    STDMETHOD(GetMaterialOverride)(THIS_ LPD3DRMMATERIALOVERRIDE) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMFrame3_QueryInterface(p,a,b)              (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMFrame3_AddRef(p)                          (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMFrame3_Release(p)                         (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMFrame3_Clone(p,a,b,c)                     (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMFrame3_AddDestroyCallback(p,a,b)          (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMFrame3_DeleteDestroyCallback(p,a,b)       (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMFrame3_SetAppData(p,a)                    (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMFrame3_GetAppData(p)                      (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMFrame3_SetName(p,a)                       (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMFrame3_GetName(p,a,b)                     (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMFrame3_GetClassName(p,a,b)                (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMFrame3 methods ***/
-#define IDirect3DRMFrame3_AddChild(p,a)                      (p)->lpVtbl->AddChild(p,a)
-#define IDirect3DRMFrame3_AddLight(p,a)                      (p)->lpVtbl->AddLight(p,a)
-#define IDirect3DRMFrame3_AddMoveCallback(p,a,b,c)           (p)->lpVtbl->AddMoveCallback(p,a,b,c)
-#define IDirect3DRMFrame3_AddTransform(p,a,b)                (p)->lpVtbl->AddTransform(p,a,b)
-#define IDirect3DRMFrame3_AddTranslation(p,a,b,c,d)          (p)->lpVtbl->AddTranslation(p,a,b,c,d)
-#define IDirect3DRMFrame3_AddScale(p,a,b,c,d)                (p)->lpVtbl->AddScale(p,a,b,c,d)
-#define IDirect3DRMFrame3_AddRotation(p,a,b,c,d,e)           (p)->lpVtbl->AddRotation(p,a,b,c,d,e)
-#define IDirect3DRMFrame3_AddVisual(p,a)                     (p)->lpVtbl->AddVisual(p,a)
-#define IDirect3DRMFrame3_GetChildren(p,a)                   (p)->lpVtbl->GetChildren(p,a)
-#define IDirect3DRMFrame3_GetColor(p)                        (p)->lpVtbl->GetColor(p)
-#define IDirect3DRMFrame3_GetLights(p,a)                     (p)->lpVtbl->GetLights(p,a)
-#define IDirect3DRMFrame3_GetMaterialMode(p)                 (p)->lpVtbl->GetMaterialMode(p)
-#define IDirect3DRMFrame3_GetParent(p,a)                     (p)->lpVtbl->GetParent(p,a)
-#define IDirect3DRMFrame3_GetPosition(p,a,b)                 (p)->lpVtbl->GetPosition(p,a,b)
-#define IDirect3DRMFrame3_GetRotation(p,a,b,c)               (p)->lpVtbl->GetRotation(p,a,b,c)
-#define IDirect3DRMFrame3_GetScene(p,a)                      (p)->lpVtbl->GetScene(p,a)
-#define IDirect3DRMFrame3_GetSortMode(p)                     (p)->lpVtbl->GetSortMode(p)
-#define IDirect3DRMFrame3_GetTexture(p,a)                    (p)->lpVtbl->GetTexture(p,a)
-#define IDirect3DRMFrame3_GetTransform(p,a,b)                (p)->lpVtbl->GetTransform(p,a,b)
-#define IDirect3DRMFrame3_GetVelocity(p,a,b,c)               (p)->lpVtbl->GetVelocity(p,a,b,c)
-#define IDirect3DRMFrame3_GetOrientation(p,a,b,c)            (p)->lpVtbl->GetOrientation(p,a,b,c)
-#define IDirect3DRMFrame3_GetVisuals(p,a,b)                  (p)->lpVtbl->GetVisuals(p,a,b)
-#define IDirect3DRMFrame3_InverseTransform(p,a,b)            (p)->lpVtbl->InverseTransform(p,a,b)
-#define IDirect3DRMFrame3_Load(p,a,b,c,d,e)                  (p)->lpVtbl->Load(p,a,b,c,d,e)
-#define IDirect3DRMFrame3_LookAt(p,a,b,c)                    (p)->lpVtbl->LookAt(p,a,b,c)
-#define IDirect3DRMFrame3_Move(p,a)                          (p)->lpVtbl->Move(p,a)
-#define IDirect3DRMFrame3_DeleteChild(p,a)                   (p)->lpVtbl->DeleteChild(p,a)
-#define IDirect3DRMFrame3_DeleteLight(p,a)                   (p)->lpVtbl->DeleteLight(p,a)
-#define IDirect3DRMFrame3_DeleteMoveCallback(p,a,b)          (p)->lpVtbl->DeleteMoveCallback(p,a,b)
-#define IDirect3DRMFrame3_DeleteVisual(p,a)                  (p)->lpVtbl->DeleteVisual(p,a)
-#define IDirect3DRMFrame3_GetSceneBackground(p)              (p)->lpVtbl->GetSceneBackground(p)
-#define IDirect3DRMFrame3_GetSceneBackgroundDepth(p,a)       (p)->lpVtbl->GetSceneBackgroundDepth(p,a)
-#define IDirect3DRMFrame3_GetSceneFogColor(p)                (p)->lpVtbl->GetSceneFogColor(p)
-#define IDirect3DRMFrame3_GetSceneFogEnable(p)               (p)->lpVtbl->GetSceneFogEnable(p)
-#define IDirect3DRMFrame3_GetSceneFogMode(p)                 (p)->lpVtbl->GetSceneFogMode(p)
-#define IDirect3DRMFrame3_GetSceneFogParams(p,a,b,c)         (p)->lpVtbl->GetSceneFogParams(p,a,b,c)
-#define IDirect3DRMFrame3_SetSceneBackground(p,a)            (p)->lpVtbl->SetSceneBackground(p,a)
-#define IDirect3DRMFrame3_SetSceneBackgroundRGB(p,a,b,c)     (p)->lpVtbl->SetSceneBackgroundRGB(p,a,b,c)
-#define IDirect3DRMFrame3_SetSceneBackgroundDepth(p,a)       (p)->lpVtbl->SetSceneBackgroundDepth(p,a)
-#define IDirect3DRMFrame3_SetSceneBackgroundImage(p,a)       (p)->lpVtbl->SetSceneBackgroundImage(p,a)
-#define IDirect3DRMFrame3_SetSceneFogEnable(p,a)             (p)->lpVtbl->SetSceneFogEnable(p,a)
-#define IDirect3DRMFrame3_SetSceneFogColor(p,a)              (p)->lpVtbl->SetSceneFogColor(p,a)
-#define IDirect3DRMFrame3_SetSceneFogMode(p,a)               (p)->lpVtbl->SetSceneFogMode(p,a)
-#define IDirect3DRMFrame3_SetSceneFogParams(p,a,b,c)         (p)->lpVtbl->SetSceneFogParams(p,a,b,c)
-#define IDirect3DRMFrame3_SetColor(p,a)                      (p)->lpVtbl->SetColor(p,a)
-#define IDirect3DRMFrame3_SetColorRGB(p,a,b,c)               (p)->lpVtbl->SetColorRGB(p,a,b,c)
-#define IDirect3DRMFrame3_GetZbufferMode(p)                  (p)->lpVtbl->GetZbufferMode(p)
-#define IDirect3DRMFrame3_SetMaterialMode(p,a)               (p)->lpVtbl->SetMaterialMode(p,a)
-#define IDirect3DRMFrame3_SetOrientation(p,a,b,c,d,e,f,g)    (p)->lpVtbl->SetOrientation(p,a,b,c,d,e,f,g)
-#define IDirect3DRMFrame3_SetPosition(p,a,b,c,d)             (p)->lpVtbl->SetPosition(p,a,b,c,d)
-#define IDirect3DRMFrame3_SetRotation(p,a,b,c,d,e)           (p)->lpVtbl->SetRotation(p,a,b,c,d,e)
-#define IDirect3DRMFrame3_SetSortMode(p,a)                   (p)->lpVtbl->SetSortMode(p,a)
-#define IDirect3DRMFrame3_SetTexture(p,a)                    (p)->lpVtbl->SetTexture(p,a)
-#define IDirect3DRMFrame3_SetVelocity(p,a,b,c,d,e)           (p)->lpVtbl->SetVelocity(p,a,b,c,d,e)
-#define IDirect3DRMFrame3_SetZbufferMode(p,a)                (p)->lpVtbl->SetZbufferMode(p,a)
-#define IDirect3DRMFrame3_Transform(p,a,b)                   (p)->lpVtbl->Transform(p,a,b)
-#define IDirect3DRMFrame3_GetBox(p,a)                        (p)->lpVtbl->GetBox(p,a)
-#define IDirect3DRMFrame3_GetBoxEnable(p)                    (p)->lpVtbl->GetBoxEnable(p)
-#define IDirect3DRMFrame3_GetAxes(p,a,b)                     (p)->lpVtbl->GetAxes(p,a,b)
-#define IDirect3DRMFrame3_GetMaterial(p,a)                   (p)->lpVtbl->GetMaterial(p,a)
-#define IDirect3DRMFrame3_GetInheritAxes(p)                  (p)->lpVtbl->GetInheritAxes(p)
-#define IDirect3DRMFrame3_GetHierarchyBox(p,a)               (p)->lpVtbl->GetHierarchyBox(p,a)
-#define IDirect3DRMFrame3_SetBox(p,a)                        (p)->lpVtbl->SetBox(p,a)
-#define IDirect3DRMFrame3_SetBoxEnable(p,a)                  (p)->lpVtbl->SetBoxEnable(p,a)
-#define IDirect3DRMFrame3_SetAxes(p,a,b,c,d,e,f)             (p)->lpVtbl->SetAxes(p,a,b,c,d,e,f)
-#define IDirect3DRMFrame3_SetInheritAxes(p,a)                (p)->lpVtbl->SetInheritAxes(p,a)
-#define IDirect3DRMFrame3_SetMaterial(p,a)                   (p)->lpVtbl->SetMaterial(p,a)
-#define IDirect3DRMFrame3_SetQuaternion(p,a,b)               (p)->lpVtbl->SetQuaternion(p,a,b)
-#define IDirect3DRMFrame3_RayPick(p,a,b,c,d)                 (p)->lpVtbl->RayPick(p,a,b,c,d)
-#define IDirect3DRMFrame3_Save(p,a,b,c)                      (p)->lpVtbl->Save(p,a,b,c)
-#define IDirect3DRMFrame3_TransformVectors(p,a,b,c,d)        (p)->lpVtbl->TransformVectors(p,a,b,c,d)
-#define IDirect3DRMFrame3_InverseTransformVectors(p,a,b,c,d) (p)->lpVtbl->InverseTransformVectors(p,a,b,c,d)
-#define IDirect3DRMFrame3_SetTraversalOptions(p,a)           (p)->lpVtbl->SetTraversalOptions(p,a)
-#define IDirect3DRMFrame3_GetTraversalOptions(p,a)           (p)->lpVtbl->GetTraversalOptions(p,a)
-#define IDirect3DRMFrame3_SetSceneFogMethod(p,a)             (p)->lpVtbl->SetSceneFogMethod(p,a)
-#define IDirect3DRMFrame3_GetSceneFogMethod(p,a)             (p)->lpVtbl->GetSceneFogMethod(p,a)
-#define IDirect3DRMFrame3_SetMaterialOverride(p,a)           (p)->lpVtbl->SetMaterialOverride(p,a)
-#define IDirect3DRMFrame3_GetMaterialOverride(p,a)           (p)->lpVtbl->GetMaterialOverride(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMFrame3_QueryInterface(p,a,b)              (p)->QueryInterface(a,b)
-#define IDirect3DRMFrame3_AddRef(p)                          (p)->AddRef()
-#define IDirect3DRMFrame3_Release(p)                         (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMFrame3_Clone(p,a,b,c)                     (p)->Clone(a,b,c)
-#define IDirect3DRMFrame3_AddDestroyCallback(p,a,b)          (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMFrame3_DeleteDestroyCallback(p,a,b)       (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMFrame3_SetAppData(p,a)                    (p)->SetAppData(a)
-#define IDirect3DRMFrame3_GetAppData(p)                      (p)->GetAppData()
-#define IDirect3DRMFrame3_SetName(p,a)                       (p)->SetName(a)
-#define IDirect3DRMFrame3_GetName(p,a,b)                     (p)->GetName(a,b)
-#define IDirect3DRMFrame3_GetClassName(p,a,b)                (p)->GetClassName(a,b)
-/*** IDirect3DRMFrame3 methods ***/
-#define IDirect3DRMFrame3_AddChild(p,a)                      (p)->AddChild(a)
-#define IDirect3DRMFrame3_AddLight(p,a)                      (p)->AddLight(a)
-#define IDirect3DRMFrame3_AddMoveCallback(p,a,b,c)           (p)->AddMoveCallback(a,b,c)
-#define IDirect3DRMFrame3_AddTransform(p,a,b)                (p)->AddTransform(a,b)
-#define IDirect3DRMFrame3_AddTranslation(p,a,b,c,d)          (p)->AddTranslation(a,b,c,d)
-#define IDirect3DRMFrame3_AddScale(p,a,b,c,d)                (p)->AddScale(a,b,c,d)
-#define IDirect3DRMFrame3_AddRotation(p,a,b,c,d,e)           (p)->AddRotation(a,b,c,d,e)
-#define IDirect3DRMFrame3_AddVisual(p,a)                     (p)->AddVisual(a)
-#define IDirect3DRMFrame3_GetChildren(p,a)                   (p)->GetChildren(a)
-#define IDirect3DRMFrame3_GetColor(p)                        (p)->GetColor()
-#define IDirect3DRMFrame3_GetLights(p,a)                     (p)->GetLights(a)
-#define IDirect3DRMFrame3_GetMaterialMode(p)                 (p)->GetMaterialMode()
-#define IDirect3DRMFrame3_GetParent(p,a)                     (p)->GetParent(a)
-#define IDirect3DRMFrame3_GetPosition(p,a,b)                 (p)->GetPosition(a,b)
-#define IDirect3DRMFrame3_GetRotation(p,a,b,c)               (p)->GetRotation(a,b,c)
-#define IDirect3DRMFrame3_GetScene(p,a)                      (p)->GetScene(a)
-#define IDirect3DRMFrame3_GetSortMode(p)                     (p)->GetSortMode()
-#define IDirect3DRMFrame3_GetTexture(p,a)                    (p)->GetTexture(a)
-#define IDirect3DRMFrame3_GetTransform(p,a,b)                (p)->GetTransform(a,b)
-#define IDirect3DRMFrame3_GetVelocity(p,a,b,c)               (p)->GetVelocity(a,b,c)
-#define IDirect3DRMFrame3_GetOrientation(p,a,b,c)            (p)->GetOrientation(a,b,c)
-#define IDirect3DRMFrame3_GetVisuals(p,a,b)                  (p)->GetVisuals(a,b)
-#define IDirect3DRMFrame3_InverseTransform(p,a,b)            (p)->InverseTransform(a,b)
-#define IDirect3DRMFrame3_Load(p,a,b,c,d,e)                  (p)->Load(a,b,c,d,e)
-#define IDirect3DRMFrame3_LookAt(p,a,b,c)                    (p)->LookAt(a,b,c)
-#define IDirect3DRMFrame3_Move(p,a)                          (p)->Move(a)
-#define IDirect3DRMFrame3_DeleteChild(p,a)                   (p)->DeleteChild(a)
-#define IDirect3DRMFrame3_DeleteLight(p,a)                   (p)->DeleteLight(a)
-#define IDirect3DRMFrame3_DeleteMoveCallback(p,a,b)          (p)->DeleteMoveCallback(a,b)
-#define IDirect3DRMFrame3_DeleteVisual(p,a)                  (p)->DeleteVisual(a)
-#define IDirect3DRMFrame3_GetSceneBackground(p)              (p)->GetSceneBackground()
-#define IDirect3DRMFrame3_GetSceneBackgroundDepth(p,a)       (p)->GetSceneBackgroundDepth(a)
-#define IDirect3DRMFrame3_GetSceneFogColor(p)                (p)->GetSceneFogColor()
-#define IDirect3DRMFrame3_GetSceneFogEnable(p)               (p)->GetSceneFogEnable()
-#define IDirect3DRMFrame3_GetSceneFogMode(p)                 (p)->GetSceneFogMode()
-#define IDirect3DRMFrame3_GetSceneFogParams(p,a,b,c)         (p)->GetSceneFogParams(a,b,c)
-#define IDirect3DRMFrame3_SetSceneBackground(p,a)            (p)->SetSceneBackground(a)
-#define IDirect3DRMFrame3_SetSceneBackgroundRGB(p,a,b,c)     (p)->SetSceneBackgroundRGB(a,b,c)
-#define IDirect3DRMFrame3_SetSceneBackgroundDepth(p,a)       (p)->SetSceneBackgroundDepth(a)
-#define IDirect3DRMFrame3_SetSceneBackgroundImage(p,a)       (p)->SetSceneBackgroundImage(a)
-#define IDirect3DRMFrame3_SetSceneFogEnable(p,a)             (p)->SetSceneFogEnable(a)
-#define IDirect3DRMFrame3_SetSceneFogColor(p,a)              (p)->SetSceneFogColor(a)
-#define IDirect3DRMFrame3_SetSceneFogMode(p,a)               (p)->SetSceneFogMode(a)
-#define IDirect3DRMFrame3_SetSceneFogParams(p,a,b,c)         (p)->SetSceneFogParams(a,b,c)
-#define IDirect3DRMFrame3_SetColor(p,a)                      (p)->SetColor(a)
-#define IDirect3DRMFrame3_SetColorRGB(p,a,b,c)               (p)->SetColorRGB(a,b,c)
-#define IDirect3DRMFrame3_GetZbufferMode(p)                  (p)->GetZbufferMode()
-#define IDirect3DRMFrame3_SetMaterialMode(p,a)               (p)->SetMaterialMode(a)
-#define IDirect3DRMFrame3_SetOrientation(p,a,b,c,d,e,f,g)    (p)->SetOrientation(a,b,c,d,e,f,g)
-#define IDirect3DRMFrame3_SetPosition(p,a,b,c,d)             (p)->SetPosition(a,b,c,d)
-#define IDirect3DRMFrame3_SetRotation(p,a,b,c,d,e)           (p)->SetRotation(a,b,c,d,e)
-#define IDirect3DRMFrame3_SetSortMode(p,a)                   (p)->SetSortMode(a)
-#define IDirect3DRMFrame3_SetTexture(p,a)                    (p)->SetTexture(a)
-#define IDirect3DRMFrame3_SetVelocity(p,a,b,c,d,e)           (p)->SetVelocity(a,b,c,d,e)
-#define IDirect3DRMFrame3_SetZbufferMode(p,a)                (p)->SetZbufferMode(a)
-#define IDirect3DRMFrame3_Transform(p,a,b)                   (p)->Transform(a,b)
-#define IDirect3DRMFrame3_GetBox(p,a)                        (p)->GetBox(a)
-#define IDirect3DRMFrame3_GetBoxEnable(p)                    (p)->GetBoxEnable()
-#define IDirect3DRMFrame3_GetAxes(p,a,b)                     (p)->GetAxes(a,b)
-#define IDirect3DRMFrame3_GetMaterial(p,a)                   (p)->GetMaterial(a)
-#define IDirect3DRMFrame3_GetInheritAxes(p)                  (p)->GetInheritAxes()
-#define IDirect3DRMFrame3_GetHierarchyBox(p,a)               (p)->GetHierarchyBox(a)
-#define IDirect3DRMFrame3_SetBox(p,a)                        (p)->SetBox(a)
-#define IDirect3DRMFrame3_SetBoxEnable(p,a)                  (p)->SetBoxEnable(a)
-#define IDirect3DRMFrame3_SetAxes(p,a,b,c,d,e,f)             (p)->SetAxes(a,b,c,d,e,f)
-#define IDirect3DRMFrame3_SetInheritAxes(p,a)                (p)->SetInheritAxes(a)
-#define IDirect3DRMFrame3_SetMaterial(p,a)                   (p)->SetMaterial(a)
-#define IDirect3DRMFrame3_SetQuaternion(p,a,b)               (p)->SetQuaternion(a,b)
-#define IDirect3DRMFrame3_RayPick(p,a,b,c,d)                 (p)->RayPick(a,b,c,d)
-#define IDirect3DRMFrame3_Save(p,a,b,c)                      (p)->Save(a,b,c)
-#define IDirect3DRMFrame3_TransformVectors(p,a,b,c,d)        (p)->TransformVectors(a,b,c,d)
-#define IDirect3DRMFrame3_InverseTransformVectors(p,a,b,c,d) (p)->InverseTransformVectors(a,b,c,d)
-#define IDirect3DRMFrame3_SetTraversalOptions(p,a)           (p)->SetTraversalOptions(a)
-#define IDirect3DRMFrame3_GetTraversalOptions(p,a)           (p)->GetTraversalOptions(a)
-#define IDirect3DRMFrame3_SetSceneFogMethod(p,a)             (p)->SetSceneFogMethod(a)
-#define IDirect3DRMFrame3_GetSceneFogMethod(p,a)             (p)->GetSceneFogMethod(a)
-#define IDirect3DRMFrame3_SetMaterialOverride(p,a)           (p)->SetMaterialOverride(a)
-#define IDirect3DRMFrame3_GetMaterialOverride(p,a)           (p)->GetMaterialOverride(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMMesh interface
- */
-#define INTERFACE IDirect3DRMMesh
-DECLARE_INTERFACE_(IDirect3DRMMesh,IDirect3DRMVisual)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMMesh methods ***/
-    STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
-    STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
-    STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
-    STDMETHOD(AddGroup)(THIS_ unsigned vCount, unsigned fCount, unsigned vPerFace, unsigned *fData,
-        D3DRMGROUPINDEX *returnId) PURE;
-    STDMETHOD(SetVertices)(THIS_ D3DRMGROUPINDEX id, unsigned index, unsigned count,
-        D3DRMVERTEX *values) PURE;
-    STDMETHOD(SetGroupColor)(THIS_ D3DRMGROUPINDEX id, D3DCOLOR value) PURE;
-    STDMETHOD(SetGroupColorRGB)(THIS_ D3DRMGROUPINDEX id, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
-    STDMETHOD(SetGroupMapping)(THIS_ D3DRMGROUPINDEX id, D3DRMMAPPING value) PURE;
-    STDMETHOD(SetGroupQuality)(THIS_ D3DRMGROUPINDEX id, D3DRMRENDERQUALITY value) PURE;
-    STDMETHOD(SetGroupMaterial)(THIS_ D3DRMGROUPINDEX id, LPDIRECT3DRMMATERIAL value) PURE;
-    STDMETHOD(SetGroupTexture)(THIS_ D3DRMGROUPINDEX id, LPDIRECT3DRMTEXTURE value) PURE;
-    STDMETHOD_(unsigned, GetGroupCount)(THIS) PURE;
-    STDMETHOD(GetGroup)(THIS_ D3DRMGROUPINDEX id, unsigned *vCount, unsigned *fCount, unsigned *vPerFace,
-        DWORD *fDataSize, unsigned *fData) PURE;
-    STDMETHOD(GetVertices)(THIS_ D3DRMGROUPINDEX id, DWORD index, DWORD count, D3DRMVERTEX *returnPtr) PURE;
-    STDMETHOD_(D3DCOLOR, GetGroupColor)(THIS_ D3DRMGROUPINDEX id) PURE;
-    STDMETHOD_(D3DRMMAPPING, GetGroupMapping)(THIS_ D3DRMGROUPINDEX id) PURE;
-    STDMETHOD_(D3DRMRENDERQUALITY, GetGroupQuality)(THIS_ D3DRMGROUPINDEX id) PURE;
-    STDMETHOD(GetGroupMaterial)(THIS_ D3DRMGROUPINDEX id, LPDIRECT3DRMMATERIAL *returnPtr) PURE;
-    STDMETHOD(GetGroupTexture)(THIS_ D3DRMGROUPINDEX id, LPDIRECT3DRMTEXTURE *returnPtr) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMMesh_QueryInterface(p,a,b)              (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMMesh_AddRef(p)                          (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMMesh_Release(p)                         (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMMesh_Clone(p,a,b,c)                     (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMMesh_AddDestroyCallback(p,a,b)          (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMMesh_DeleteDestroyCallback(p,a,b)       (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMMesh_SetAppData(p,a)                    (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMMesh_GetAppData(p)                      (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMMesh_SetName(p,a)                       (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMMesh_GetName(p,a,b)                     (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMMesh_GetClassName(p,a,b)                (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMMesh methods ***/
-#define IDirect3DRMMesh_Scale(p,a,b,c)                     (p)->lpVtbl->Scale(p,a,b,c)
-#define IDirect3DRMMesh_Translate(p,a,b,c)                 (p)->lpVtbl->Translate(p,a,b,c)
-#define IDirect3DRMMesh_GetBox(p,a)                        (p)->lpVtbl->GetBox(p,a)
-#define IDirect3DRMMesh_AddGroup(p,a,b,c,d,e)              (p)->lpVtbl->AddGroup(p,a,b,c,d,e)
-#define IDirect3DRMMesh_SetVertices(p,a,b,c,d)             (p)->lpVtbl->SetVertices(p,a,b,c,d)
-#define IDirect3DRMMesh_SetGroupColor(p,a,b)               (p)->lpVtbl->SetGroupColor(p,a,b)
-#define IDirect3DRMMesh_SetGroupColorRGB(p,a,b,c,d)        (p)->lpVtbl->SetGroupColorRGB(p,a,b,c,d)
-#define IDirect3DRMMesh_SetGroupMapping(p,a,b)             (p)->lpVtbl->SetGroupMapping(p,a,b)
-#define IDirect3DRMMesh_SetGroupQuality(p,a,b)             (p)->lpVtbl->SetGroupQuality(p,a,b)
-#define IDirect3DRMMesh_SetGroupMaterial(p,a,b)            (p)->lpVtbl->SetGroupMaterial(p,a,b)
-#define IDirect3DRMMesh_SetGroupTexture(p,a,b)             (p)->lpVtbl->SetGroupTexture(p,a,b)
-#define IDirect3DRMMesh_GetGroupCount(p)                   (p)->lpVtbl->GetGroupCount(p)
-#define IDirect3DRMMesh_GetGroup(p,a,b,c,d,e,f)            (p)->lpVtbl->GetGroup(p,a,b,c,d,e,f)
-#define IDirect3DRMMesh_GetVertices(p,a,b,c,d)             (p)->lpVtbl->GetVertices(p,a,b,c,d)
-#define IDirect3DRMMesh_GetGroupColor(p,a)                 (p)->lpVtbl->GetGroupColor(p,a)
-#define IDirect3DRMMesh_GetGroupMapping(p,a)               (p)->lpVtbl->GetGroupMapping(p,a)
-#define IDirect3DRMMesh_GetGroupQuality(p,a)               (p)->lpVtbl->GetGroupQuality(p,a)
-#define IDirect3DRMMesh_GetGroupMaterial(p,a,b)            (p)->lpVtbl->GetGroupMaterial(p,a,b)
-#define IDirect3DRMMesh_GetGroupTexture(p,a,b)             (p)->lpVtbl->GetGroupTexture(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMMesh_QueryInterface(p,a,b)              (p)->QueryInterface(a,b)
-#define IDirect3DRMMesh_AddRef(p)                          (p)->AddRef()
-#define IDirect3DRMMesh_Release(p)                         (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMMesh_Clone(p,a,b,c)                     (p)->Clone(a,b,c)
-#define IDirect3DRMMesh_AddDestroyCallback(p,a,b)          (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMMesh_DeleteDestroyCallback(p,a,b)       (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMMesh_SetAppData(p,a)                    (p)->SetAppData(a)
-#define IDirect3DRMMesh_GetAppData(p)                      (p)->GetAppData()
-#define IDirect3DRMMesh_SetName(p,a)                       (p)->SetName(a)
-#define IDirect3DRMMesh_GetName(p,a,b)                     (p)->GetName(a,b)
-#define IDirect3DRMMesh_GetClassName(p,a,b)                (p)->GetClassName(a,b)
-/*** IDirect3DRMMesh methods ***/
-#define IDirect3DRMMesh_Scale(p,a,b,c)                     (p)->Scale(a,b,c)
-#define IDirect3DRMMesh_Translate(p,a,b,c)                 (p)->Translate(a,b,c)
-#define IDirect3DRMMesh_GetBox(p,a)                        (p)->GetBox(a)
-#define IDirect3DRMMesh_AddGroup(p,a,b,c,d,e)              (p)->AddGroup(a,b,c,d,e)
-#define IDirect3DRMMesh_SetVertices(p,a,b,c,d)             (p)->SetVertices(a,b,c,d)
-#define IDirect3DRMMesh_SetGroupColor(p,a,b)               (p)->SetGroupColor(a,b)
-#define IDirect3DRMMesh_SetGroupColorRGB(p,a,b,c,d)        (p)->SetGroupColorRGB(a,b,c,d)
-#define IDirect3DRMMesh_SetGroupMapping(p,a,b)             (p)->SetGroupMapping(a,b)
-#define IDirect3DRMMesh_SetGroupQuality(p,a,b)             (p)->SetGroupQuality(a,b)
-#define IDirect3DRMMesh_SetGroupMaterial(p,a,b)            (p)->SetGroupMaterial(a,b)
-#define IDirect3DRMMesh_SetGroupTexture(p,a,b)             (p)->SetGroupTexture(a,b)
-#define IDirect3DRMMesh_GetGroupCount(p)                   (p)->GetGroupCount()
-#define IDirect3DRMMesh_GetGroup(p,a,b,c,d,e,f)            (p)->GetGroup(a,b,c,d,e,f)
-#define IDirect3DRMMesh_GetVertices(p,a,b,c,d)             (p)->GetVertices(a,b,c,d)
-#define IDirect3DRMMesh_GetGroupColor(p,a)                 (p)->GetGroupColor(a)
-#define IDirect3DRMMesh_GetGroupMapping(p,a)               (p)->GetGroupMapping(a)
-#define IDirect3DRMMesh_GetGroupQuality(p,a)               (p)->GetGroupQuality(a)
-#define IDirect3DRMMesh_GetGroupMaterial(p,a,b)            (p)->lpVtbl->GetGroupMaterial(a,b)
-#define IDirect3DRMMesh_GetGroupTexture(p,a,b)             (p)->lpVtbl->GetGroupTexture(a,b)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMProgressiveMesh interface
- */
-#define INTERFACE IDirect3DRMProgressiveMesh
-DECLARE_INTERFACE_(IDirect3DRMProgressiveMesh,IDirect3DRMVisual)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMProgressiveMesh methods ***/
-    STDMETHOD(Load) (THIS_ LPVOID pObjLocation, LPVOID pObjId, D3DRMLOADOPTIONS dloLoadflags,
-        D3DRMLOADTEXTURECALLBACK pCallback, LPVOID lpArg) PURE;
-    STDMETHOD(GetLoadStatus) (THIS_ LPD3DRMPMESHLOADSTATUS pStatus) PURE;
-    STDMETHOD(SetMinRenderDetail) (THIS_ D3DVALUE d3dVal) PURE;
-    STDMETHOD(Abort) (THIS_ DWORD flags) PURE;
-    STDMETHOD(GetFaceDetail) (THIS_ LPDWORD pCount) PURE;
-    STDMETHOD(GetVertexDetail) (THIS_ LPDWORD pCount) PURE;
-    STDMETHOD(SetFaceDetail) (THIS_ DWORD count) PURE;
-    STDMETHOD(SetVertexDetail) (THIS_ DWORD count) PURE;
-    STDMETHOD(GetFaceDetailRange) (THIS_ LPDWORD pMin, LPDWORD pMax) PURE;
-    STDMETHOD(GetVertexDetailRange) (THIS_ LPDWORD pMin, LPDWORD pMax) PURE;
-    STDMETHOD(GetDetail) (THIS_ D3DVALUE *pdvVal) PURE;
-    STDMETHOD(SetDetail) (THIS_ D3DVALUE d3dVal) PURE;
-    STDMETHOD(RegisterEvents) (THIS_ HANDLE event, DWORD flags, DWORD reserved) PURE;
-    STDMETHOD(CreateMesh) (THIS_ LPDIRECT3DRMMESH *ppD3DRMMesh) PURE;
-    STDMETHOD(Duplicate) (THIS_ LPDIRECT3DRMPROGRESSIVEMESH *ppD3DRMPMesh) PURE;
-    STDMETHOD(GetBox) (THIS_ LPD3DRMBOX pBBox) PURE;
-    STDMETHOD(SetQuality) (THIS_ D3DRMRENDERQUALITY) PURE;
-    STDMETHOD(GetQuality) (THIS_ LPD3DRMRENDERQUALITY pQuality) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMProgressiveMesh_QueryInterface(p,a,b)          (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMProgressiveMesh_AddRef(p)                      (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMProgressiveMesh_Release(p)                     (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMProgressiveMesh_Clone(p,a,b,c)                 (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMProgressiveMesh_AddDestroyCallback(p,a,b)      (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMProgressiveMesh_DeleteDestroyCallback(p,a,b)   (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMProgressiveMesh_SetAppData(p,a)                (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMProgressiveMesh_GetAppData(p)                  (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMProgressiveMesh_SetName(p,a)                   (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMProgressiveMesh_GetName(p,a,b)                 (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMProgressiveMesh_GetClassName(p,a,b)            (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMProgressiveMesh methods ***/
-#define IDirect3DRMProgressiveMesh_Load(p,a,b,c,d,e)              (p)->lpVtbl->Load(p,a,b,c,d,e)
-#define IDirect3DRMProgressiveMesh_GetLoadStatus(p,a)             (p)->lpVtbl->GetLoadStatus(p,a)
-#define IDirect3DRMProgressiveMesh_SetMinRenderDetail(p,a)        (p)->lpVtbl->SetMinRenderDetail(p,a)
-#define IDirect3DRMProgressiveMesh_Abort(p,a)                     (p)->lpVtbl->Abort(p,a)
-#define IDirect3DRMProgressiveMesh_GetFaceDetail(p,a)             (p)->lpVtbl->GetFaceDetail(p,a)
-#define IDirect3DRMProgressiveMesh_GetVertexDetail(p,a)           (p)->lpVtbl->GetVertexDetail(p,a)
-#define IDirect3DRMProgressiveMesh_SetFaceDetail(p,a)             (p)->lpVtbl->SetFaceDetail(p,a)
-#define IDirect3DRMProgressiveMesh_SetVertexDetail(p,a)           (p)->lpVtbl->SetVertexDetail(p,a)
-#define IDirect3DRMProgressiveMesh_GetFaceDetailRange(p,a,b)      (p)->lpVtbl->GetFaceDetailRange(p,a,b)
-#define IDirect3DRMProgressiveMesh_GetVertexDetailRange(p,a,b)    (p)->lpVtbl->GetVertexDetailRange(p,a,b)
-#define IDirect3DRMProgressiveMesh_GetDetail(p,a)                 (p)->lpVtbl->GetDetail(p,a)
-#define IDirect3DRMProgressiveMesh_SetDetail(p,a)                 (p)->lpVtbl->SetDetail(p,a)
-#define IDirect3DRMProgressiveMesh_RegisterEvents(p,a,b,c)        (p)->lpVtbl->RegisterEvents(p,a,b,c)
-#define IDirect3DRMProgressiveMesh_CreateMesh(p,a)                (p)->lpVtbl->CreateMesh(p,a)
-#define IDirect3DRMProgressiveMesh_Duplicate(p,a)                 (p)->lpVtbl->Duplicate(p,a)
-#define IDirect3DRMProgressiveMesh_GetBox(p,a)                    (p)->lpVtbl->GetBox(p,a)
-#define IDirect3DRMProgressiveMesh_SetQuality(p,a)                (p)->lpVtbl->SetQuality(p,a)
-#define IDirect3DRMProgressiveMesh_GetQuality(p,a)                (p)->lpVtbl->GetQuality(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMProgressiveMesh_QueryInterface(p,a,b)          (p)->QueryInterface(a,b)
-#define IDirect3DRMProgressiveMesh_AddRef(p)                      (p)->AddRef()
-#define IDirect3DRMProgressiveMesh_Release(p)                     (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMProgressiveMesh_Clone(p,a,b,c)                 (p)->Clone(a,b,c)
-#define IDirect3DRMProgressiveMesh_AddDestroyCallback(p,a,b)      (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMProgressiveMesh_DeleteDestroyCallback(p,a,b)   (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMProgressiveMesh_SetAppData(p,a)                (p)->SetAppData(a)
-#define IDirect3DRMProgressiveMesh_GetAppData(p)                  (p)->GetAppData()
-#define IDirect3DRMProgressiveMesh_SetName(p,a)                   (p)->SetName(a)
-#define IDirect3DRMProgressiveMesh_GetName(p,a,b)                 (p)->GetName(a,b)
-#define IDirect3DRMProgressiveMesh_GetClassName(p,a,b)            (p)->GetClassName(a,b)
-/*** IDirect3DRMProgressiveMesh methods ***/
-#define IDirect3DRMProgressiveMesh_Load(p,a,b,c,d,e)              (p)->Load(a,b,c,d,e)
-#define IDirect3DRMProgressiveMesh_GetLoadStatus(p,a)             (p)->GetLoadStatus(a)
-#define IDirect3DRMProgressiveMesh_SetMinRenderDetail(p,a)        (p)->SetMinRenderDetail(a)
-#define IDirect3DRMProgressiveMesh_Abort(p,a)                     (p)->Abort(a)
-#define IDirect3DRMProgressiveMesh_GetFaceDetail(p,a)             (p)->GetFaceDetail(a)
-#define IDirect3DRMProgressiveMesh_GetVertexDetail(p,a)           (p)->GetVertexDetail(a)
-#define IDirect3DRMProgressiveMesh_SetFaceDetail(p,a)             (p)->SetFaceDetail(a)
-#define IDirect3DRMProgressiveMesh_SetVertexDetail(p,a)           (p)->SetVertexDetail(a)
-#define IDirect3DRMProgressiveMesh_GetFaceDetailRange(p,a,b)      (p)->GetFaceDetailRange(a,b)
-#define IDirect3DRMProgressiveMesh_GetVertexDetailRange(p,a,b)    (p)->GetVertexDetailRange(a,b)
-#define IDirect3DRMProgressiveMesh_GetDetail(p,a)                 (p)->GetDetail(a)
-#define IDirect3DRMProgressiveMesh_SetDetail(p,a)                 (p)->SetDetail(a)
-#define IDirect3DRMProgressiveMesh_RegisterEvents(p,a,b,c)        (p)->RegisterEvents(a,b,c)
-#define IDirect3DRMProgressiveMesh_CreateMesh(p,a)                (p)->CreateMesh(a)
-#define IDirect3DRMProgressiveMesh_Duplicate(p,a)                 (p)->Duplicate(a)
-#define IDirect3DRMProgressiveMesh_GetBox(p,a)                    (p)->GetBox(a)
-#define IDirect3DRMProgressiveMesh_SetQuality(p,a)                (p)->SetQuality(a)
-#define IDirect3DRMProgressiveMesh_GetQuality(p,a)                (p)->GetQuality(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMShadow interface
- */
-#define INTERFACE IDirect3DRMShadow
-DECLARE_INTERFACE_(IDirect3DRMShadow,IDirect3DRMVisual)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMShadow methods ***/
-    STDMETHOD(Init)(THIS_ LPDIRECT3DRMVISUAL visual, LPDIRECT3DRMLIGHT light,
-        D3DVALUE px, D3DVALUE py, D3DVALUE pz, D3DVALUE nx, D3DVALUE ny, D3DVALUE nz) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMShadow_QueryInterface(p,a,b)          (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMShadow_AddRef(p)                      (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMShadow_Release(p)                     (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMShadow_Clone(p,a,b,c)                 (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMShadow_AddDestroyCallback(p,a,b)      (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMShadow_DeleteDestroyCallback(p,a,b)   (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMShadow_SetAppData(p,a)                (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMShadow_GetAppData(p)                  (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMShadow_SetName(p,a)                   (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMShadow_GetName(p,a,b)                 (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMShadow_GetClassName(p,a,b)            (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMShadow methods ***/
-#define IDirect3DRMShadow_Init(p,a,b,c,d,e,f,g)          (p)->lpVtbl->Load(p,a,b,c,d,e,f,g)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMShadow_QueryInterface(p,a,b)          (p)->QueryInterface(a,b)
-#define IDirect3DRMShadow_AddRef(p)                      (p)->AddRef()
-#define IDirect3DRMShadow_Release(p)                     (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMShadow_Clone(p,a,b,c)                 (p)->Clone(a,b,c)
-#define IDirect3DRMShadow_AddDestroyCallback(p,a,b)      (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMShadow_DeleteDestroyCallback(p,a,b)   (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMShadow_SetAppData(p,a)                (p)->SetAppData(a)
-#define IDirect3DRMShadow_GetAppData(p)                  (p)->GetAppData()
-#define IDirect3DRMShadow_SetName(p,a)                   (p)->SetName(a)
-#define IDirect3DRMShadow_GetName(p,a,b)                 (p)->GetName(a,b)
-#define IDirect3DRMShadow_GetClassName(p,a,b)            (p)->GetClassName(a,b)
-/*** IDirect3DRMShadow methods ***/
-#define IDirect3DRMShadow_Init(p,a,b,c,d,e,f,g)          (p)->Load(a,b,c,d,e,f,g)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMShadow2 interface
- */
-#define INTERFACE IDirect3DRMShadow2
-DECLARE_INTERFACE_(IDirect3DRMShadow2,IDirect3DRMVisual)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMShadow methods ***/
-    STDMETHOD(Init)(THIS_ LPUNKNOWN pUNK, LPDIRECT3DRMLIGHT light,
-        D3DVALUE px, D3DVALUE py, D3DVALUE pz, D3DVALUE nx, D3DVALUE ny, D3DVALUE nz) PURE;
-    /*** IDirect3DRMShadow2 methods ***/
-    STDMETHOD(GetVisual)(THIS_ LPDIRECT3DRMVISUAL *) PURE;
-    STDMETHOD(SetVisual)(THIS_ LPUNKNOWN pUNK, DWORD) PURE;
-    STDMETHOD(GetLight)(THIS_ LPDIRECT3DRMLIGHT *) PURE;
-    STDMETHOD(SetLight)(THIS_ LPDIRECT3DRMLIGHT, DWORD) PURE;
-    STDMETHOD(GetPlane)(THIS_ LPD3DVALUE px, LPD3DVALUE py, LPD3DVALUE pz,
-        LPD3DVALUE nx, LPD3DVALUE ny, LPD3DVALUE nz) PURE;
-    STDMETHOD(SetPlane)(THIS_ D3DVALUE px, D3DVALUE py, D3DVALUE pz,
-        D3DVALUE nx, D3DVALUE ny, D3DVALUE nz, DWORD) PURE;
-    STDMETHOD(GetOptions)(THIS_ LPDWORD) PURE;
-    STDMETHOD(SetOptions)(THIS_ DWORD) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMShadow2_QueryInterface(p,a,b)          (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMShadow2_AddRef(p)                      (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMShadow2_Release(p)                     (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMShadow2_Clone(p,a,b,c)                 (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMShadow2_AddDestroyCallback(p,a,b)      (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMShadow2_DeleteDestroyCallback(p,a,b)   (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMShadow2_SetAppData(p,a)                (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMShadow2_GetAppData(p)                  (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMShadow2_SetName(p,a)                   (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMShadow2_GetName(p,a,b)                 (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMShadow2_GetClassName(p,a,b)            (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMShadow methods ***/
-#define IDirect3DRMShadow2_Init(p,a,b,c,d,e,f,g)          (p)->lpVtbl->Init(p,a,b,c,d,e,f,g)
-/*** IDirect3DRMShadow2 methods ***/
-#define IDirect3DRMShadow2_GetVisual(p,a)                 (p)->lpVtbl->GetVisual(p,a)
-#define IDirect3DRMShadow2_SetVisual(p,a,b)               (p)->lpVtbl->SetVisual(p,a,b)
-#define IDirect3DRMShadow2_GetLight(p,a)                  (p)->lpVtbl->GetLight(p,a)
-#define IDirect3DRMShadow2_SetLight(p,a,b)                (p)->lpVtbl->SetLight(p,a,b)
-#define IDirect3DRMShadow2_GetPlane(p,a,b,c,d,e,f)        (p)->lpVtbl->GetPlane(p,a,b,c,d,e,f)
-#define IDirect3DRMShadow2_SetPlane(p,a,b,c,d,e,f)        (p)->lpVtbl->SetPlane(p,a,b,c,d,e,f)
-#define IDirect3DRMShadow2_GetOptions(p,a)                (p)->lpVtbl->GetOptions(p,a)
-#define IDirect3DRMShadow2_SetOptions(p,a)                (p)->lpVtbl->SetOptions(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMShadow2_QueryInterface(p,a,b)          (p)->QueryInterface(a,b)
-#define IDirect3DRMShadow2_AddRef(p)                      (p)->AddRef()
-#define IDirect3DRMShadow2_Release(p)                     (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMShadow2_Clone(p,a,b,c)                 (p)->Clone(a,b,c)
-#define IDirect3DRMShadow2_AddDestroyCallback(p,a,b)      (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMShadow2_DeleteDestroyCallback(p,a,b)   (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMShadow2_SetAppData(p,a)                (p)->SetAppData(a)
-#define IDirect3DRMShadow2_GetAppData(p)                  (p)->GetAppData()
-#define IDirect3DRMShadow2_SetName(p,a)                   (p)->SetName(a)
-#define IDirect3DRMShadow2_GetName(p,a,b)                 (p)->GetName(a,b)
-#define IDirect3DRMShadow2_GetClassName(p,a,b)            (p)->GetClassName(a,b)
-/*** IDirect3DRMShadow methods ***/
-#define IDirect3DRMShadow2_Init(p,a,b,c,d,e,f,g)          (p)->Init(a,b,c,d,e,f,g)
-/*** IDirect3DRMShadow2 methods ***/
-#define IDirect3DRMShadow2_GetVisual(p,a)                 (p)->GetVisual(a)
-#define IDirect3DRMShadow2_SetVisual(p,a,b)               (p)->SetVisual(a,b)
-#define IDirect3DRMShadow2_GetLight(p,a)                  (p)->GetLight(a)
-#define IDirect3DRMShadow2_SetLight(p,a,b)                (p)->SetLight(a,b)
-#define IDirect3DRMShadow2_GetPlane(p,a,b,c,d,e,f)        (p)->GetPlane(a,b,c,d,e,f)
-#define IDirect3DRMShadow2_SetPlane(p,a,b,c,d,e,f)        (p)->SetPlane(a,b,c,d,e,f)
-#define IDirect3DRMShadow2_GetOptions(p,a)                (p)->GetOptions(a)
-#define IDirect3DRMShadow2_SetOptions(p,a)                (p)->lpVtbl->SetOptions(p,a)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMFace interface
- */
-#define INTERFACE IDirect3DRMFace
-DECLARE_INTERFACE_(IDirect3DRMFace,IDirect3DRMObject)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMFace methods ***/
-    STDMETHOD(AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(AddVertexAndNormalIndexed)(THIS_ DWORD vertex, DWORD normal) PURE;
-    STDMETHOD(SetColorRGB)(THIS_ D3DVALUE, D3DVALUE, D3DVALUE) PURE;
-    STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
-    STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
-    STDMETHOD(SetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE u, D3DVALUE v) PURE;
-    STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL) PURE;
-    STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
-    STDMETHOD(GetVertex)(THIS_ DWORD index, D3DVECTOR *vertex, D3DVECTOR *normal) PURE;
-    STDMETHOD(GetVertices)(THIS_ DWORD *vertex_count, D3DVECTOR *coords, D3DVECTOR *normals);
-    STDMETHOD(GetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE *u, D3DVALUE *v) PURE;
-    STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
-    STDMETHOD(GetNormal)(THIS_ D3DVECTOR *) PURE;
-    STDMETHOD(GetTexture)(THIS_ LPDIRECT3DRMTEXTURE *) PURE;
-    STDMETHOD(GetMaterial)(THIS_ LPDIRECT3DRMMATERIAL *) PURE;
-    STDMETHOD_(int, GetVertexCount)(THIS) PURE;
-    STDMETHOD_(int, GetVertexIndex)(THIS_ DWORD which) PURE;
-    STDMETHOD_(int, GetTextureCoordinateIndex)(THIS_ DWORD which) PURE;
-    STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMFace_QueryInterface(p,a,b)             (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMFace_AddRef(p)                         (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMFace_Release(p)                        (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMFace_Clone(p,a,b,c)                    (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMFace_AddDestroyCallback(p,a,b)         (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMFace_DeleteDestroyCallback(p,a,b)      (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMFace_SetAppData(p,a)                   (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMFace_GetAppData(p)                     (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMFace_SetName(p,a)                      (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMFace_GetName(p,a,b)                    (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMFace_GetClassName(p,a,b)               (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMFace methods ***/
-#define IDirect3DRMFace_AddVertex(p,a,b,c)                (p)->lpVtbl->AddVertex(p,a,b,c)
-#define IDirect3DRMFace_AddVertexAndNormalIndexed(p,a,b)  (p)->lpVtbl->AddVertexAndNormalIndexed(p,a,b)
-#define IDirect3DRMFace_SetColorRGB(p,a,b,c)              (p)->lpVtbl->SetColorRGB(p,a,b,c)
-#define IDirect3DRMFace_SetColor(p,a)                     (p)->lpVtbl->SetColor(p,a)
-#define IDirect3DRMFace_SetTexture(p,a)                   (p)->lpVtbl->SetTexture(p,a)
-#define IDirect3DRMFace_SetTextureCoordinates(p,a,b,c)    (p)->lpVtbl->SetTextureCoordinates(p,a,b,c)
-#define IDirect3DRMFace_SetMaterial(p,a)                  (p)->lpVtbl->SetMaterial(p,a)
-#define IDirect3DRMFace_SetTextureTopology(p,a,b)         (p)->lpVtbl->SetTextureTopology(p,a,b)
-#define IDirect3DRMFace_GetVertex(p,a,b,c)                (p)->lpVtbl->GetVertex(p,a,b,c)
-#define IDirect3DRMFace_GetVertices(p,a,b,c)              (p)->lpVtbl->GetVertices(p,a,b,c)
-#define IDirect3DRMFace_GetTextureCoordinates(p,a,b,c)    (p)->lpVtbl->GetTextureCoordinates(p,a,b,c)
-#define IDirect3DRMFace_GetTextureTopology(p,a,b)         (p)->lpVtbl->GetTextureTopology(p,a,b)
-#define IDirect3DRMFace_GetNormal(p,a)                    (p)->lpVtbl->GetNormal(p,a)
-#define IDirect3DRMFace_GetTexture(p,a)                   (p)->lpVtbl->GetTexture(p,a)
-#define IDirect3DRMFace_GetVertexCount(p)                 (p)->lpVtbl->GetVertexCount(p)
-#define IDirect3DRMFace_GetVertexIndex(p,a)               (p)->lpVtbl->GetVertexIndex(p,a)
-#define IDirect3DRMFace_GetTextureCoordinateIndex(p,a)    (p)->lpVtbl->GetTextureCoordinateIndex(p,a)
-#define IDirect3DRMFace_GetColor(p,a)                     (p)->lpVtbl->GetColor(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMFace_QueryInterface(p,a,b)             (p)->QueryInterface(a,b)
-#define IDirect3DRMFace_AddRef(p)                         (p)->AddRef()
-#define IDirect3DRMFace_Release(p)                        (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMFace_Clone(p,a,b,c)                    (p)->Clone(a,b,c)
-#define IDirect3DRMFace_AddDestroyCallback(p,a,b)         (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMFace_DeleteDestroyCallback(p,a,b)      (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMFace_SetAppData(p,a)                   (p)->SetAppData(a)
-#define IDirect3DRMFace_GetAppData(p)                     (p)->GetAppData()
-#define IDirect3DRMFace_SetName(p,a)                      (p)->SetName(a)
-#define IDirect3DRMFace_GetName(p,a,b)                    (p)->GetName(a,b)
-#define IDirect3DRMFace_GetClassName(p,a,b)               (p)->GetClassName(a,b)
-/*** IDirect3DRMFace methods ***/
-#define IDirect3DRMFace_AddVertex(p,a,b,c)                (p)->AddVertex(a,b,c)
-#define IDirect3DRMFace_AddVertexAndNormalIndexed(p,a,b)  (p)->AddVertexAndNormalIndexed(a,b)
-#define IDirect3DRMFace_SetColorRGB(p,a,b,c)              (p)->SetColorRGB(a,b,c)
-#define IDirect3DRMFace_SetColor(p,a)                     (p)->SetColor(a)
-#define IDirect3DRMFace_SetTexture(p,a)                   (p)->SetTexture(a)
-#define IDirect3DRMFace_SetTextureCoordinates(p,a,b,c)    (p)->SetTextureCoordinates(a,b,c)
-#define IDirect3DRMFace_SetMaterial(p,a)                  (p)->SetMaterial(a)
-#define IDirect3DRMFace_SetTextureTopology(p,a,b)         (p)->SetTextureTopology(a,b)
-#define IDirect3DRMFace_GetVertex(p,a,b,c)                (p)->GetVertex(a,b,c)
-#define IDirect3DRMFace_GetVertices(p,a,b,c)              (p)->GetVertices(a,b,c)
-#define IDirect3DRMFace_GetTextureCoordinates(p,a,b,c)    (p)->GetTextureCoordinates(a,b,c)
-#define IDirect3DRMFace_GetTextureTopology(p,a,b)         (p)->GetTextureTopology(a,b)
-#define IDirect3DRMFace_GetNormal(p,a)                    (p)->GetNormal(a)
-#define IDirect3DRMFace_GetTexture(p,a)                   (p)->GetTexture(a)
-#define IDirect3DRMFace_GetVertexCount(p)                 (p)->GetVertexCount()
-#define IDirect3DRMFace_GetVertexIndex(p,a)               (p)->GetVertexIndex(a)
-#define IDirect3DRMFace_GetTextureCoordinateIndex(p,a)    (p)->GetTextureCoordinateIndex(a)
-#define IDirect3DRMFace_GetColor(p,a)                     (p)->GetColor(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMFace2 interface
- */
-#define INTERFACE IDirect3DRMFace2
-DECLARE_INTERFACE_(IDirect3DRMFace2,IDirect3DRMObject)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMFace methods ***/
-    STDMETHOD(AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(AddVertexAndNormalIndexed)(THIS_ DWORD vertex, DWORD normal) PURE;
-    STDMETHOD(SetColorRGB)(THIS_ D3DVALUE, D3DVALUE, D3DVALUE) PURE;
-    STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
-    STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE3) PURE;
-    STDMETHOD(SetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE u, D3DVALUE v) PURE;
-    STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL2) PURE;
-    STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
-    STDMETHOD(GetVertex)(THIS_ DWORD index, D3DVECTOR *vertex, D3DVECTOR *normal) PURE;
-    STDMETHOD(GetVertices)(THIS_ DWORD *vertex_count, D3DVECTOR *coords, D3DVECTOR *normals);
-    STDMETHOD(GetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE *u, D3DVALUE *v) PURE;
-    STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
-    STDMETHOD(GetNormal)(THIS_ D3DVECTOR *) PURE;
-    STDMETHOD(GetTexture)(THIS_ LPDIRECT3DRMTEXTURE3 *) PURE;
-    STDMETHOD(GetMaterial)(THIS_ LPDIRECT3DRMMATERIAL2 *) PURE;
-    STDMETHOD_(int, GetVertexCount)(THIS) PURE;
-    STDMETHOD_(int, GetVertexIndex)(THIS_ DWORD which) PURE;
-    STDMETHOD_(int, GetTextureCoordinateIndex)(THIS_ DWORD which) PURE;
-    STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMFace2_QueryInterface(p,a,b)             (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMFace2_AddRef(p)                         (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMFace2_Release(p)                        (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMFace2_Clone(p,a,b,c)                    (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMFace2_AddDestroyCallback(p,a,b)         (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMFace2_DeleteDestroyCallback(p,a,b)      (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMFace2_SetAppData(p,a)                   (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMFace2_GetAppData(p)                     (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMFace2_SetName(p,a)                      (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMFace2_GetName(p,a,b)                    (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMFace2_GetClassName(p,a,b)               (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMFace methods ***/
-#define IDirect3DRMFace2_AddVertex(p,a,b,c)                (p)->lpVtbl->AddVertex(p,a,b,c)
-#define IDirect3DRMFace2_AddVertexAndNormalIndexed(p,a,b)  (p)->lpVtbl->AddVertexAndNormalIndexed(p,a,b)
-#define IDirect3DRMFace2_SetColorRGB(p,a,b,c)              (p)->lpVtbl->SetColorRGB(p,a,b,c)
-#define IDirect3DRMFace2_SetColor(p,a)                     (p)->lpVtbl->SetColor(p,a)
-#define IDirect3DRMFace2_SetTexture(p,a)                   (p)->lpVtbl->SetTexture(p,a)
-#define IDirect3DRMFace2_SetTextureCoordinates(p,a,b,c)    (p)->lpVtbl->SetTextureCoordinates(p,a,b,c)
-#define IDirect3DRMFace2_SetMaterial(p,a)                  (p)->lpVtbl->SetMaterial(p,a)
-#define IDirect3DRMFace2_SetTextureTopology(p,a,b)         (p)->lpVtbl->SetTextureTopology(p,a,b)
-#define IDirect3DRMFace2_GetVertex(p,a,b,c)                (p)->lpVtbl->GetVertex(p,a,b,c)
-#define IDirect3DRMFace2_GetVertices(p,a,b,c)              (p)->lpVtbl->GetVertices(p,a,b,c)
-#define IDirect3DRMFace2_GetTextureCoordinates(p,a,b,c)    (p)->lpVtbl->GetTextureCoordinates(p,a,b,c)
-#define IDirect3DRMFace2_GetTextureTopology(p,a,b)         (p)->lpVtbl->GetTextureTopology(p,a,b)
-#define IDirect3DRMFace2_GetNormal(p,a)                    (p)->lpVtbl->GetNormal(p,a)
-#define IDirect3DRMFace2_GetTexture(p,a)                   (p)->lpVtbl->GetTexture(p,a)
-#define IDirect3DRMFace2_GetVertexCount(p)                 (p)->lpVtbl->GetVertexCount(p)
-#define IDirect3DRMFace2_GetVertexIndex(p,a)               (p)->lpVtbl->GetVertexIndex(p,a)
-#define IDirect3DRMFace2_GetTextureCoordinateIndex(p,a)    (p)->lpVtbl->GetTextureCoordinateIndex(p,a)
-#define IDirect3DRMFace2_GetColor(p,a)                     (p)->lpVtbl->GetColor(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMFace2_QueryInterface(p,a,b)             (p)->QueryInterface(a,b)
-#define IDirect3DRMFace2_AddRef(p)                         (p)->AddRef()
-#define IDirect3DRMFace2_Release(p)                        (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMFace2_Clone(p,a,b,c)                    (p)->Clone(a,b,c)
-#define IDirect3DRMFace2_AddDestroyCallback(p,a,b)         (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMFace2_DeleteDestroyCallback(p,a,b)      (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMFace2_SetAppData(p,a)                   (p)->SetAppData(a)
-#define IDirect3DRMFace2_GetAppData(p)                     (p)->GetAppData()
-#define IDirect3DRMFace2_SetName(p,a)                      (p)->SetName(a)
-#define IDirect3DRMFace2_GetName(p,a,b)                    (p)->GetName(a,b)
-#define IDirect3DRMFace2_GetClassName(p,a,b)               (p)->GetClassName(a,b)
-/*** IDirect3DRMFace methods ***/
-#define IDirect3DRMFace2_AddVertex(p,a,b,c)                (p)->AddVertex(a,b,c)
-#define IDirect3DRMFace2_AddVertexAndNormalIndexed(p,a,b)  (p)->AddVertexAndNormalIndexed(a,b)
-#define IDirect3DRMFace2_SetColorRGB(p,a,b,c)              (p)->SetColorRGB(a,b,c)
-#define IDirect3DRMFace2_SetColor(p,a)                     (p)->SetColor(a)
-#define IDirect3DRMFace2_SetTexture(p,a)                   (p)->SetTexture(a)
-#define IDirect3DRMFace2_SetTextureCoordinates(p,a,b,c)    (p)->SetTextureCoordinates(a,b,c)
-#define IDirect3DRMFace2_SetMaterial(p,a)                  (p)->SetMaterial(a)
-#define IDirect3DRMFace2_SetTextureTopology(p,a,b)         (p)->SetTextureTopology(a,b)
-#define IDirect3DRMFace2_GetVertex(p,a,b,c)                (p)->GetVertex(a,b,c)
-#define IDirect3DRMFace2_GetVertices(p,a,b,c)              (p)->GetVertices(a,b,c)
-#define IDirect3DRMFace2_GetTextureCoordinates(p,a,b,c)    (p)->GetTextureCoordinates(a,b,c)
-#define IDirect3DRMFace2_GetTextureTopology(p,a,b)         (p)->GetTextureTopology(a,b)
-#define IDirect3DRMFace2_GetNormal(p,a)                    (p)->GetNormal(a)
-#define IDirect3DRMFace2_GetTexture(p,a)                   (p)->GetTexture(a)
-#define IDirect3DRMFace2_GetVertexCount(p)                 (p)->GetVertexCount()
-#define IDirect3DRMFace2_GetVertexIndex(p,a)               (p)->GetVertexIndex(a)
-#define IDirect3DRMFace2_GetTextureCoordinateIndex(p,a)    (p)->GetTextureCoordinateIndex(a)
-#define IDirect3DRMFace2_GetColor(p,a)                     (p)->GetColor(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMMeshBuilder interface
- */
-#define INTERFACE IDirect3DRMMeshBuilder
-DECLARE_INTERFACE_(IDirect3DRMMeshBuilder,IDirect3DRMVisual)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMMeshBuilder methods ***/
-    STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURECALLBACK, LPVOID pArg) PURE;
-    STDMETHOD(Save)(THIS_ const char *filename, D3DRMXOFFORMAT, D3DRMSAVEOPTIONS save) PURE;
-    STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
-    STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
-    STDMETHOD(SetColorSource)(THIS_ D3DRMCOLORSOURCE) PURE;
-    STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
-    STDMETHOD(GenerateNormals)(THIS) PURE;
-    STDMETHOD_(D3DRMCOLORSOURCE, GetColorSource)(THIS) PURE;
-    STDMETHOD(AddMesh)(THIS_ LPDIRECT3DRMMESH) PURE;
-    STDMETHOD(AddMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER) PURE;
-    STDMETHOD(AddFrame)(THIS_ LPDIRECT3DRMFRAME) PURE;
-    STDMETHOD(AddFace)(THIS_ LPDIRECT3DRMFACE) PURE;
-    STDMETHOD(AddFaces)(THIS_ DWORD vcount, D3DVECTOR *vertices, DWORD ncount, D3DVECTOR *normals, DWORD *data,
-        LPDIRECT3DRMFACEARRAY*) PURE;
-    STDMETHOD(ReserveSpace)(THIS_ DWORD vertex_Count, DWORD normal_count, DWORD face_count) PURE;
-    STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
-    STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
-    STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
-    STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL) PURE;
-    STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
-    STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
-    STDMETHOD(SetPerspective)(THIS_ BOOL) PURE;
-    STDMETHOD(SetVertex)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(SetNormal)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(SetTextureCoordinates)(THIS_ DWORD index, D3DVALUE u, D3DVALUE v) PURE;
-    STDMETHOD(SetVertexColor)(THIS_ DWORD index, D3DCOLOR) PURE;
-    STDMETHOD(SetVertexColorRGB)(THIS_ DWORD index, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
-    STDMETHOD(GetFaces)(THIS_ LPDIRECT3DRMFACEARRAY*) PURE;
-    STDMETHOD(GetVertices)(THIS_ DWORD *vcount, D3DVECTOR *vertices, DWORD *ncount, D3DVECTOR *normals,
-        DWORD *face_data_size, DWORD *face_data) PURE;
-    STDMETHOD(GetTextureCoordinates)(THIS_ DWORD index, D3DVALUE *u, D3DVALUE *v) PURE;
-    STDMETHOD_(int, AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD_(int, AddNormal)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(CreateFace)(THIS_ LPDIRECT3DRMFACE*) PURE;
-    STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
-    STDMETHOD_(BOOL, GetPerspective)(THIS) PURE;
-    STDMETHOD_(int, GetFaceCount)(THIS) PURE;
-    STDMETHOD_(int, GetVertexCount)(THIS) PURE;
-    STDMETHOD_(D3DCOLOR, GetVertexColor)(THIS_ DWORD index) PURE;
-    STDMETHOD(CreateMesh)(THIS_ LPDIRECT3DRMMESH*) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMMeshBuilder_QueryInterface(p,a,b)             (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMMeshBuilder_AddRef(p)                         (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMMeshBuilder_Release(p)                        (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMMeshBuilder_Clone(p,a,b,c)                    (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMMeshBuilder_AddDestroyCallback(p,a,b)         (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMMeshBuilder_DeleteDestroyCallback(p,a,b)      (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMMeshBuilder_SetAppData(p,a)                   (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMMeshBuilder_GetAppData(p)                     (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMMeshBuilder_SetName(p,a)                      (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMMeshBuilder_GetName(p,a,b)                    (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMMeshBuilder_GetClassName(p,a,b)               (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMMeshBuilder methods ***/
-#define IDirect3DRMMeshBuilder_Load(p,a,b,c,d,e)                 (p)->lpVtbl->Load(p,a,b,c,d,e)
-#define IDirect3DRMMeshBuilder_Save(p,a,b,c)                     (p)->lpVtbl->Save(p,a,b,c)
-#define IDirect3DRMMeshBuilder_Scale(p,a,b,c)                    (p)->lpVtbl->Scale(p,a,b,c)
-#define IDirect3DRMMeshBuilder_Translate(p,a,b,c)                (p)->lpVtbl->Translate(p,a)
-#define IDirect3DRMMeshBuilder_SetColorSource(p,a)               (p)->lpVtbl->SetColorSource(p,a,b,c)
-#define IDirect3DRMMeshBuilder_GetBox(p,a)                       (p)->lpVtbl->GetBox(p,a)
-#define IDirect3DRMMeshBuilder_GenerateNormals(p)                (p)->lpVtbl->GenerateNormals(p)
-#define IDirect3DRMMeshBuilder_GetColorSource(p)                 (p)->lpVtbl->GetColorSource(p)
-#define IDirect3DRMMeshBuilder_AddMesh(p,a)                      (p)->lpVtbl->AddMesh(p,a)
-#define IDirect3DRMMeshBuilder_AddMeshBuilder(p,a)               (p)->lpVtbl->AddMeshBuilder(p,a)
-#define IDirect3DRMMeshBuilder_AddFrame(p,a)                     (p)->lpVtbl->AddFrame(p,a)
-#define IDirect3DRMMeshBuilder_AddFace(p,a)                      (p)->lpVtbl->AddFace(p,a)
-#define IDirect3DRMMeshBuilder_AddFaces(p,a,b,c,d,e,f)           (p)->lpVtbl->AddFaces(p,a,b,c,d,e,f)
-#define IDirect3DRMMeshBuilder_ReserveSpace(p,a,b,c)             (p)->lpVtbl->ReserveSpace(p,a,b,c)
-#define IDirect3DRMMeshBuilder_SetColorRGB(p,a,b,c)              (p)->lpVtbl->SetColorRGB(p,a,b,c)
-#define IDirect3DRMMeshBuilder_SetColor(p,a)                     (p)->lpVtbl->SetColor(p,a)
-#define IDirect3DRMMeshBuilder_SetTexture(p,a)                   (p)->lpVtbl->SetTexture(p,a)
-#define IDirect3DRMMeshBuilder_SetMateria(p,a)                   (p)->lpVtbl->SetMateria(p,a)
-#define IDirect3DRMMeshBuilder_SetTextureTopology(p,a,b)         (p)->lpVtbl->SetTextureTopology(p,a,b)
-#define IDirect3DRMMeshBuilder_SetQuality(p,a)                   (p)->lpVtbl->SetQuality(p,a)
-#define IDirect3DRMMeshBuilder_SetPerspective(p,a)               (p)->lpVtbl->SetPerspective(p,a)
-#define IDirect3DRMMeshBuilder_SetVertex(p,a,b,c,d)              (p)->lpVtbl->SetVertex(p,a,b,c,d)
-#define IDirect3DRMMeshBuilder_SetNormal(p,a,b,c,d)              (p)->lpVtbl->SetNormal(p,a,b,c,d)
-#define IDirect3DRMMeshBuilder_SetTextureCoordinates(p,a,b,c)    (p)->lpVtbl->SetTextureCoordinates(p,a,b,c)
-#define IDirect3DRMMeshBuilder_SetVertexColor(p,a,b)             (p)->lpVtbl->SetVertexColor(p,a,b)
-#define IDirect3DRMMeshBuilder_SetVertexColorRGB(p,a,b,c,d)      (p)->lpVtbl->SetVertexColorRGB(p,a,b,c,d)
-#define IDirect3DRMMeshBuilder_GetFaces(p,a)                     (p)->lpVtbl->GetFaces(p,a)
-#define IDirect3DRMMeshBuilder_GetVertices(p,a,b,c,d,e,f)        (p)->lpVtbl->GetVertices(p,a,b,c,d,e,f)
-#define IDirect3DRMMeshBuilder_GetTextureCoordinates(p,a,b,c)    (p)->lpVtbl->GetTextureCoordinates(p,a,b,c)
-#define IDirect3DRMMeshBuilder_AddVertex(p,a,b,c)                (p)->lpVtbl->AddVertex(p,a,b,c)
-#define IDirect3DRMMeshBuilder_AddNormal(p,a,b,c)                (p)->lpVtbl->AddNormal(p,a,b,c)
-#define IDirect3DRMMeshBuilder_CreateFace(p,a)                   (p)->lpVtbl->CreateFace(p,a)
-#define IDirect3DRMMeshBuilder_GetQuality(p)                     (p)->lpVtbl->GetQuality(p)
-#define IDirect3DRMMeshBuilder_GetPerspective(p)                 (p)->lpVtbl->GetPerspective(p)
-#define IDirect3DRMMeshBuilder_GetFaceCount(p)                   (p)->lpVtbl->GetFaceCount(p)
-#define IDirect3DRMMeshBuilder_GetVertexCount(p)                 (p)->lpVtbl->GetVertexCount(p)
-#define IDirect3DRMMeshBuilder_GetVertexColor(p,a)               (p)->lpVtbl->GetVertexColor(p,a)
-#define IDirect3DRMMeshBuilder_CreateMesh(p,a)                   (p)->lpVtbl->CreateMesh(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMMeshBuilder_QueryInterface(p,a,b)             (p)->QueryInterface(a,b)
-#define IDirect3DRMMeshBuilder_AddRef(p)                         (p)->AddRef()
-#define IDirect3DRMMeshBuilder_Release(p)                        (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMMeshBuilder_Clone(p,a,b,c)                    (p)->Clone(a,b,c)
-#define IDirect3DRMMeshBuilder_AddDestroyCallback(p,a,b)         (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMMeshBuilder_DeleteDestroyCallback(p,a,b)      (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMMeshBuilder_SetAppData(p,a)                   (p)->SetAppData(a)
-#define IDirect3DRMMeshBuilder_GetAppData(p)                     (p)->GetAppData()
-#define IDirect3DRMMeshBuilder_SetName(p,a)                      (p)->SetName(a)
-#define IDirect3DRMMeshBuilder_GetName(p,a,b)                    (p)->GetName(a,b)
-#define IDirect3DRMMeshBuilder_GetClassName(p,a,b)               (p)->GetClassName(a,b)
-/*** IDirect3DRMMeshBuilder methods ***/
-#define IDirect3DRMMeshBuilder_Load(p,a,b,c,d,e)                 (p)->Load(a,b,c,d,e)
-#define IDirect3DRMMeshBuilder_Save(p,a,b,c)                     (p)->Save(a,b,c)
-#define IDirect3DRMMeshBuilder_Scale(p,a,b,c)                    (p)->Scale(a,b,c)
-#define IDirect3DRMMeshBuilder_Translate(p,a,b,c)                (p)->Translate(a)
-#define IDirect3DRMMeshBuilder_SetColorSource(p,a)               (p)->SetColorSource(a,b,c)
-#define IDirect3DRMMeshBuilder_GetBox(p,a)                       (p)->GetBox(a)
-#define IDirect3DRMMeshBuilder_GenerateNormals(p)                (p)->GenerateNormals()
-#define IDirect3DRMMeshBuilder_GetColorSource(p)                 (p)->GetColorSource()
-#define IDirect3DRMMeshBuilder_AddMesh(p,a)                      (p)-->AddMesh(a)
-#define IDirect3DRMMeshBuilder_AddMeshBuilder(p,a)               (p)->AddMeshBuilder(a)
-#define IDirect3DRMMeshBuilder_AddFrame(p,a)                     (p)->AddFrame(a)
-#define IDirect3DRMMeshBuilder_AddFace(p,a)                      (p)->AddFace(a)
-#define IDirect3DRMMeshBuilder_AddFaces(p,a,b,c,d,e,f)           (p)->AddFaces(a,b,c,d,e,f)
-#define IDirect3DRMMeshBuilder_ReserveSpace(p,a,b,c)             (p)->ReserveSpace(a,b,c)
-#define IDirect3DRMMeshBuilder_SetColorRGB(p,a,b,c)              (p)->SetColorRGB(a,b,c)
-#define IDirect3DRMMeshBuilder_SetColor(p,a)                     (p)->SetColor(a)
-#define IDirect3DRMMeshBuilder_SetTexture(p,a)                   (p)->SetTexture(a)
-#define IDirect3DRMMeshBuilder_SetMateria(p,a)                   (p)->SetMateria(a)
-#define IDirect3DRMMeshBuilder_SetTextureTopology(p,a,b)         (p)->SetTextureTopology(a,b)
-#define IDirect3DRMMeshBuilder_SetQuality(p,a)                   (p)->SetQuality(a)
-#define IDirect3DRMMeshBuilder_SetPerspective(p,a)               (p)->SetPerspective(a)
-#define IDirect3DRMMeshBuilder_SetVertex(p,a,b,c,d)              (p)->SetVertex(a,b,c,d)
-#define IDirect3DRMMeshBuilder_SetNormal(p,a,b,c,d)              (p)->SetNormal(a,b,c,d)
-#define IDirect3DRMMeshBuilder_SetTextureCoordinates(p,a,b,c)    (p)->SetTextureCoordinates(a,b,c)
-#define IDirect3DRMMeshBuilder_SetVertexColor(p,a,b)             (p)->SetVertexColor(a,b)
-#define IDirect3DRMMeshBuilder_SetVertexColorRGB(p,a,b,c,d)      (p)->SetVertexColorRGB(a,b,c,d)
-#define IDirect3DRMMeshBuilder_GetFaces(p,a)                     (p)->GetFaces(a)
-#define IDirect3DRMMeshBuilder_GetVertices(p,a,b,c,d,e,f)        (p)->GetVertices(a,b,c,d,e,f)
-#define IDirect3DRMMeshBuilder_GetTextureCoordinates(p,a,b,c)    (p)->GetTextureCoordinates(a,b,c)
-#define IDirect3DRMMeshBuilder_AddVertex(p,a,b,c)                (p)->AddVertex(a,b,c)
-#define IDirect3DRMMeshBuilder_AddNormal(p,a,b,c)                (p)->AddNormal(a,b,c)
-#define IDirect3DRMMeshBuilder_CreateFace(p,a)                   (p)->CreateFace(a)
-#define IDirect3DRMMeshBuilder_GetQuality(p)                     (p)->GetQuality()
-#define IDirect3DRMMeshBuilder_GetPerspective(p)                 (p)->GetPerspective()
-#define IDirect3DRMMeshBuilder_GetFaceCount(p)                   (p)->GetFaceCount()
-#define IDirect3DRMMeshBuilder_GetVertexCount(p)                 (p)->GetVertexCount()
-#define IDirect3DRMMeshBuilder_GetVertexColor(p,a)               (p)->GetVertexColor(a)
-#define IDirect3DRMMeshBuilder_CreateMesh(p,a)                   (p)->CreateMesh(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMMeshBuilder2 interface
- */
-#define INTERFACE IDirect3DRMMeshBuilder2
-DECLARE_INTERFACE_(IDirect3DRMMeshBuilder2,IDirect3DRMMeshBuilder)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMMeshBuilder methods ***/
-    STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURECALLBACK, LPVOID pArg) PURE;
-    STDMETHOD(Save)(THIS_ const char *filename, D3DRMXOFFORMAT, D3DRMSAVEOPTIONS save) PURE;
-    STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
-    STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
-    STDMETHOD(SetColorSource)(THIS_ D3DRMCOLORSOURCE) PURE;
-    STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
-    STDMETHOD(GenerateNormals)(THIS) PURE;
-    STDMETHOD_(D3DRMCOLORSOURCE, GetColorSource)(THIS) PURE;
-    STDMETHOD(AddMesh)(THIS_ LPDIRECT3DRMMESH) PURE;
-    STDMETHOD(AddMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER) PURE;
-    STDMETHOD(AddFrame)(THIS_ LPDIRECT3DRMFRAME) PURE;
-    STDMETHOD(AddFace)(THIS_ LPDIRECT3DRMFACE) PURE;
-    STDMETHOD(AddFaces)(THIS_ DWORD vcount, D3DVECTOR *vertices, DWORD ncount, D3DVECTOR *normals, DWORD *data,
-        LPDIRECT3DRMFACEARRAY*) PURE;
-    STDMETHOD(ReserveSpace)(THIS_ DWORD vertex_Count, DWORD normal_count, DWORD face_count) PURE;
-    STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
-    STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
-    STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
-    STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL) PURE;
-    STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
-    STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
-    STDMETHOD(SetPerspective)(THIS_ BOOL) PURE;
-    STDMETHOD(SetVertex)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(SetNormal)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(SetTextureCoordinates)(THIS_ DWORD index, D3DVALUE u, D3DVALUE v) PURE;
-    STDMETHOD(SetVertexColor)(THIS_ DWORD index, D3DCOLOR) PURE;
-    STDMETHOD(SetVertexColorRGB)(THIS_ DWORD index, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
-    STDMETHOD(GetFaces)(THIS_ LPDIRECT3DRMFACEARRAY*) PURE;
-    STDMETHOD(GetVertices)(THIS_ DWORD *vcount, D3DVECTOR *vertices, DWORD *ncount, D3DVECTOR *normals,
-        DWORD *face_data_size, DWORD *face_data) PURE;
-    STDMETHOD(GetTextureCoordinates)(THIS_ DWORD index, D3DVALUE *u, D3DVALUE *v) PURE;
-    STDMETHOD_(int, AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD_(int, AddNormal)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(CreateFace)(THIS_ LPDIRECT3DRMFACE*) PURE;
-    STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
-    STDMETHOD_(BOOL, GetPerspective)(THIS) PURE;
-    STDMETHOD_(int, GetFaceCount)(THIS) PURE;
-    STDMETHOD_(int, GetVertexCount)(THIS) PURE;
-    STDMETHOD_(D3DCOLOR, GetVertexColor)(THIS_ DWORD index) PURE;
-    STDMETHOD(CreateMesh)(THIS_ LPDIRECT3DRMMESH*) PURE;
-    /*** IDirect3DRMMeshBuilder2 methods ***/
-    STDMETHOD(GenerateNormals2)(THIS_ D3DVALUE crease, DWORD flags) PURE;
-    STDMETHOD(GetFace)(THIS_ DWORD index, LPDIRECT3DRMFACE*) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMMeshBuilder2_QueryInterface(p,a,b)            (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMMeshBuilder2_AddRef(p)                        (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMMeshBuilder2_Release(p)                       (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMMeshBuilder2_Clone(p,a,b,c)                   (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMMeshBuilder2_AddDestroyCallback(p,a,b)        (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMMeshBuilder2_DeleteDestroyCallback(p,a,b)     (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMMeshBuilder2_SetAppData(p,a)                  (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMMeshBuilder2_GetAppData(p)                    (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMMeshBuilder2_SetName(p,a)                     (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMMeshBuilder2_GetName(p,a,b)                   (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMMeshBuilder2_GetClassName(p,a,b)              (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMMeshBuilder methods ***/
-#define IDirect3DRMMeshBuilder2_Load(p,a,b,c,d,e)                (p)->lpVtbl->Load(p,a,b,c,d,e)
-#define IDirect3DRMMeshBuilder2_Save(p,a,b,c)                    (p)->lpVtbl->Save(p,a,b,c)
-#define IDirect3DRMMeshBuilder2_Scale(p,a,b,c)                   (p)->lpVtbl->Scale(p,a,b,c)
-#define IDirect3DRMMeshBuilder2_Translate(p,a,b,c)               (p)->lpVtbl->Translate(p,a)
-#define IDirect3DRMMeshBuilder2_SetColorSource(p,a)              (p)->lpVtbl->SetColorSource(p,a,b,c)
-#define IDirect3DRMMeshBuilder2_GetBox(p,a)                      (p)->lpVtbl->GetBox(p,a)
-#define IDirect3DRMMeshBuilder2_GenerateNormals(p)               (p)->lpVtbl->GenerateNormals(p)
-#define IDirect3DRMMeshBuilder2_GetColorSource(p)                (p)->lpVtbl->GetColorSource(p)
-#define IDirect3DRMMeshBuilder2_AddMesh(p,a)                     (p)->lpVtbl->AddMesh(p,a)
-#define IDirect3DRMMeshBuilder2_AddMeshBuilder(p,a)              (p)->lpVtbl->AddMeshBuilder(p,a)
-#define IDirect3DRMMeshBuilder2_AddFrame(p,a)                    (p)->lpVtbl->AddFrame(p,a)
-#define IDirect3DRMMeshBuilder2_AddFace(p,a)                     (p)->lpVtbl->AddFace(p,a)
-#define IDirect3DRMMeshBuilder2_AddFaces(p,a,b,c,d,e,f)          (p)->lpVtbl->AddFaces(p,a,b,c,d,e,f)
-#define IDirect3DRMMeshBuilder2_ReserveSpace(p,a,b,c)            (p)->lpVtbl->ReserveSpace(p,a,b,c)
-#define IDirect3DRMMeshBuilder2_SetColorRGB(p,a,b,c)             (p)->lpVtbl->SetColorRGB(p,a,b,c)
-#define IDirect3DRMMeshBuilder2_SetColor(p,a)                    (p)->lpVtbl->SetColor(p,a)
-#define IDirect3DRMMeshBuilder2_SetTexture(p,a)                  (p)->lpVtbl->SetTexture(p,a)
-#define IDirect3DRMMeshBuilder2_SetMateria(p,a)                  (p)->lpVtbl->SetMateria(p,a)
-#define IDirect3DRMMeshBuilder2_SetTextureTopology(p,a,b)        (p)->lpVtbl->SetTextureTopology(p,a,b)
-#define IDirect3DRMMeshBuilder2_SetQuality(p,a)                  (p)->lpVtbl->SetQuality(p,a)
-#define IDirect3DRMMeshBuilder2_SetPerspective(p,a)              (p)->lpVtbl->SetPerspective(p,a)
-#define IDirect3DRMMeshBuilder2_SetVertex(p,a,b,c,d)             (p)->lpVtbl->SetVertex(p,a,b,c,d)
-#define IDirect3DRMMeshBuilder2_SetNormal(p,a,b,c,d)             (p)->lpVtbl->SetNormal(p,a,b,c,d)
-#define IDirect3DRMMeshBuilder2_SetTextureCoordinates(p,a,b,c)   (p)->lpVtbl->SetTextureCoordinates(p,a,b,c)
-#define IDirect3DRMMeshBuilder2_SetVertexColor(p,a,b)            (p)->lpVtbl->SetVertexColor(p,a,b)
-#define IDirect3DRMMeshBuilder2_SetVertexColorRGB(p,a,b,c,d)     (p)->lpVtbl->SetVertexColorRGB(p,a,b,c,d)
-#define IDirect3DRMMeshBuilder2_GetFaces(p,a)                    (p)->lpVtbl->GetFaces(p,a)
-#define IDirect3DRMMeshBuilder2_GetVertices(p,a,b,c,d,e,f)       (p)->lpVtbl->GetVertices(p,a,b,c,d,e,f)
-#define IDirect3DRMMeshBuilder2_GetTextureCoordinates(p,a,b,c)   (p)->lpVtbl->GetTextureCoordinates(p,a,b,c)
-#define IDirect3DRMMeshBuilder2_AddVertex(p,a,b,c)               (p)->lpVtbl->AddVertex(p,a,b,c)
-#define IDirect3DRMMeshBuilder2_AddNormal(p,a,b,c)               (p)->lpVtbl->AddNormal(p,a,b,c)
-#define IDirect3DRMMeshBuilder2_CreateFace(p,a)                  (p)->lpVtbl->CreateFace(p,a)
-#define IDirect3DRMMeshBuilder2_GetQuality(p)                    (p)->lpVtbl->GetQuality(p)
-#define IDirect3DRMMeshBuilder2_GetPerspective(p)                (p)->lpVtbl->GetPerspective(p)
-#define IDirect3DRMMeshBuilder2_GetFaceCount(p)                  (p)->lpVtbl->GetFaceCount(p)
-#define IDirect3DRMMeshBuilder2_GetVertexCount(p)                (p)->lpVtbl->GetVertexCount(p)
-#define IDirect3DRMMeshBuilder2_GetVertexColor(p,a)              (p)->lpVtbl->GetVertexColor(p,a)
-#define IDirect3DRMMeshBuilder2_CreateMesh(p,a)                  (p)->lpVtbl->CreateMesh(p,a)
-/*** IDirect3DRMMeshBuilder2 methods ***/
-#define IDirect3DRMMeshBuilder2_GenerateNormals2(p,a,b)          (p)->lpVtbl->GenerateNormals2(p,a,b)
-#define IDirect3DRMMeshBuilder2_GetFace(p,a,b)                   (p)->lpVtbl->GetFace(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMMeshBuilder2_QueryInterface(p,a,b)            (p)->QueryInterface(a,b)
-#define IDirect3DRMMeshBuilder2_AddRef(p)                        (p)->AddRef()
-#define IDirect3DRMMeshBuilder2_Release(p)                       (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMMeshBuilder2_Clone(p,a,b,c)                   (p)->Clone(a,b,c)
-#define IDirect3DRMMeshBuilder2_AddDestroyCallback(p,a,b)        (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMMeshBuilder2_DeleteDestroyCallback(p,a,b)     (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMMeshBuilder2_SetAppData(p,a)                  (p)->SetAppData(a)
-#define IDirect3DRMMeshBuilder2_GetAppData(p)                    (p)->GetAppData()
-#define IDirect3DRMMeshBuilder2_SetName(p,a)                     (p)->SetName(a)
-#define IDirect3DRMMeshBuilder2_GetName(p,a,b)                   (p)->GetName(a,b)
-#define IDirect3DRMMeshBuilder2_GetClassName(p,a,b)              (p)->GetClassName(a,b)
-/*** IDirect3DRMMeshBuilder methods ***/
-#define IDirect3DRMMeshBuilder2_Load(p,a,b,c,d,e)                (p)->Load(a,b,c,d,e)
-#define IDirect3DRMMeshBuilder2_Save(p,a,b,c)                    (p)->Save(a,b,c)
-#define IDirect3DRMMeshBuilder2_Scale(p,a,b,c)                   (p)->Scale(a,b,c)
-#define IDirect3DRMMeshBuilder2_Translate(p,a,b,c)               (p)->Translate(a)
-#define IDirect3DRMMeshBuilder2_SetColorSource(p,a)              (p)->SetColorSource(a,b,c)
-#define IDirect3DRMMeshBuilder2_GetBox(p,a)                      (p)->GetBox(a)
-#define IDirect3DRMMeshBuilder2_GenerateNormals(p)               (p)->GenerateNormals()
-#define IDirect3DRMMeshBuilder2_GetColorSource(p)                (p)->GetColorSource()
-#define IDirect3DRMMeshBuilder2_AddMesh(p,a)                     (p)-->AddMesh(a)
-#define IDirect3DRMMeshBuilder2_AddMeshBuilder(p,a)              (p)->AddMeshBuilder(a)
-#define IDirect3DRMMeshBuilder2_AddFrame(p,a)                    (p)->AddFrame(a)
-#define IDirect3DRMMeshBuilder2_AddFace(p,a)                     (p)->AddFace(a)
-#define IDirect3DRMMeshBuilder2_AddFaces(p,a,b,c,d,e,f)          (p)->AddFaces(a,b,c,d,e,f)
-#define IDirect3DRMMeshBuilder2_ReserveSpace(p,a,b,c)            (p)->ReserveSpace(a,b,c)
-#define IDirect3DRMMeshBuilder2_SetColorRGB(p,a,b,c)             (p)->SetColorRGB(a,b,c)
-#define IDirect3DRMMeshBuilder2_SetColor(p,a)                    (p)->SetColor(a)
-#define IDirect3DRMMeshBuilder2_SetTexture(p,a)                  (p)->SetTexture(a)
-#define IDirect3DRMMeshBuilder2_SetMateria(p,a)                  (p)->SetMateria(a)
-#define IDirect3DRMMeshBuilder2_SetTextureTopology(p,a,b)        (p)->SetTextureTopology(a,b)
-#define IDirect3DRMMeshBuilder2_SetQuality(p,a)                  (p)->SetQuality(a)
-#define IDirect3DRMMeshBuilder2_SetPerspective(p,a)              (p)->SetPerspective(a)
-#define IDirect3DRMMeshBuilder2_SetVertex(p,a,b,c,d)             (p)->SetVertex(a,b,c,d)
-#define IDirect3DRMMeshBuilder2_SetNormal(p,a,b,c,d)             (p)->SetNormal(a,b,c,d)
-#define IDirect3DRMMeshBuilder2_SetTextureCoordinates(p,a,b,c)   (p)->SetTextureCoordinates(a,b,c)
-#define IDirect3DRMMeshBuilder2_SetVertexColor(p,a,b)            (p)->SetVertexColor(a,b)
-#define IDirect3DRMMeshBuilder2_SetVertexColorRGB(p,a,b,c,d)     (p)->SetVertexColorRGB(a,b,c,d)
-#define IDirect3DRMMeshBuilder2_GetFaces(p,a)                    (p)->GetFaces(a)
-#define IDirect3DRMMeshBuilder2_GetVertices(p,a,b,c,d,e,f)       (p)->GetVertices(a,b,c,d,e,f)
-#define IDirect3DRMMeshBuilder2_GetTextureCoordinates(p,a,b,c)   (p)->GetTextureCoordinates(a,b,c)
-#define IDirect3DRMMeshBuilder2_AddVertex(p,a,b,c)               (p)->AddVertex(a,b,c)
-#define IDirect3DRMMeshBuilder2_AddNormal(p,a,b,c)               (p)->AddNormal(a,b,c)
-#define IDirect3DRMMeshBuilder2_CreateFace(p,a)                  (p)->CreateFace(a)
-#define IDirect3DRMMeshBuilder2_GetQuality(p)                    (p)->GetQuality()
-#define IDirect3DRMMeshBuilder2_GetPerspective(p)                (p)->GetPerspective()
-#define IDirect3DRMMeshBuilder2_GetFaceCount(p)                  (p)->GetFaceCount()
-#define IDirect3DRMMeshBuilder2_GetVertexCount(p)                (p)->GetVertexCount()
-#define IDirect3DRMMeshBuilder2_GetVertexColor(p,a)              (p)->GetVertexColor(a)
-#define IDirect3DRMMeshBuilder2_CreateMesh(p,a)                  (p)->CreateMesh(a)
-/*** IDirect3DRMMeshBuilder2 methods ***/
-#define IDirect3DRMMeshBuilder2_GenerateNormals2(p,a,b)          (p)->GenerateNormals2(a,b)
-#define IDirect3DRMMeshBuilder2_GetFace(p,a,b)                   (p)->GetFace(a,b)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMMeshBuilder3 interface
- */
-#define INTERFACE IDirect3DRMMeshBuilder3
-DECLARE_INTERFACE_(IDirect3DRMMeshBuilder3,IDirect3DRMVisual)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMMeshBuilder3 methods ***/
-    STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURE3CALLBACK, LPVOID pArg) PURE;
-    STDMETHOD(Save)(THIS_ const char *filename, D3DRMXOFFORMAT, D3DRMSAVEOPTIONS save) PURE;
-    STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
-    STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
-    STDMETHOD(SetColorSource)(THIS_ D3DRMCOLORSOURCE) PURE;
-    STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
-    STDMETHOD(GenerateNormals)(THIS_ D3DVALUE crease, DWORD flags) PURE;
-    STDMETHOD_(D3DRMCOLORSOURCE, GetColorSource)(THIS) PURE;
-    STDMETHOD(AddMesh)(THIS_ LPDIRECT3DRMMESH) PURE;
-    STDMETHOD(AddMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER3) PURE;
-    STDMETHOD(AddFrame)(THIS_ LPDIRECT3DRMFRAME3) PURE;
-    STDMETHOD(AddFace)(THIS_ LPDIRECT3DRMFACE2) PURE;
-    STDMETHOD(AddFaces)(THIS_ DWORD vcount, D3DVECTOR *vertices, DWORD ncount, D3DVECTOR *normals, DWORD *data,
-        LPDIRECT3DRMFACEARRAY*) PURE;
-    STDMETHOD(ReserveSpace)(THIS_ DWORD vertex_Count, DWORD normal_count, DWORD face_count) PURE;
-    STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
-    STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
-    STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE3) PURE;
-    STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL2) PURE;
-    STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
-    STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
-    STDMETHOD(SetPerspective)(THIS_ BOOL) PURE;
-    STDMETHOD(SetVertex)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(SetNormal)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(SetTextureCoordinates)(THIS_ DWORD index, D3DVALUE u, D3DVALUE v) PURE;
-    STDMETHOD(SetVertexColor)(THIS_ DWORD index, D3DCOLOR) PURE;
-    STDMETHOD(SetVertexColorRGB)(THIS_ DWORD index, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
-    STDMETHOD(GetFaces)(THIS_ LPDIRECT3DRMFACEARRAY*) PURE;
-    STDMETHOD(GetGeometry)(THIS_ DWORD *vcount, D3DVECTOR *vertices, DWORD *ncount, D3DVECTOR *normals,
-        DWORD *face_data_size, DWORD *face_data) PURE;
-    STDMETHOD(GetTextureCoordinates)(THIS_ DWORD index, D3DVALUE *u, D3DVALUE *v) PURE;
-    STDMETHOD_(int, AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD_(int, AddNormal)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(CreateFace)(THIS_ LPDIRECT3DRMFACE2*) PURE;
-    STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
-    STDMETHOD_(BOOL, GetPerspective)(THIS) PURE;
-    STDMETHOD_(int, GetFaceCount)(THIS) PURE;
-    STDMETHOD_(int, GetVertexCount)(THIS) PURE;
-    STDMETHOD_(D3DCOLOR, GetVertexColor)(THIS_ DWORD index) PURE;
-    STDMETHOD(CreateMesh)(THIS_ LPDIRECT3DRMMESH*) PURE;
-    STDMETHOD(GetFace)(THIS_ DWORD index, LPDIRECT3DRMFACE2 *) PURE;
-    STDMETHOD(GetVertex)(THIS_ DWORD index, LPD3DVECTOR pVector) PURE;
-    STDMETHOD(GetNormal)(THIS_ DWORD index, LPD3DVECTOR pVector) PURE;
-    STDMETHOD(DeleteVertices)(THIS_ DWORD IndexFirst, DWORD count) PURE;
-    STDMETHOD(DeleteNormals)(THIS_ DWORD IndexFirst, DWORD count) PURE;
-    STDMETHOD(DeleteFace)(THIS_ LPDIRECT3DRMFACE2) PURE;
-    STDMETHOD(Empty)(THIS_ DWORD flags) PURE;
-    STDMETHOD(Optimize)(THIS_ DWORD flags) PURE;
-    STDMETHOD(AddFacesIndexed)(THIS_ DWORD flags, DWORD *pvIndices, DWORD *pIndexFirst, DWORD *pCount) PURE;
-    STDMETHOD(CreateSubMesh)(THIS_ LPUNKNOWN *) PURE;
-    STDMETHOD(GetParentMesh)(THIS_ DWORD, LPUNKNOWN *) PURE;
-    STDMETHOD(GetSubMeshes)(THIS_ LPDWORD pCount, LPUNKNOWN *) PURE;
-    STDMETHOD(DeleteSubMesh)(THIS_ LPUNKNOWN) PURE;
-    STDMETHOD(Enable)(THIS_ DWORD) PURE;
-    STDMETHOD(GetEnable)(THIS_ DWORD *) PURE;
-    STDMETHOD(AddTriangles)(THIS_ DWORD flags, DWORD format, DWORD VertexCount, LPVOID pvData) PURE;
-    STDMETHOD(SetVertices)(THIS_ DWORD IndexFirst, DWORD count, LPD3DVECTOR) PURE;
-    STDMETHOD(GetVertices)(THIS_ DWORD IndexFirst, LPDWORD pCount, LPD3DVECTOR) PURE;
-    STDMETHOD(SetNormals)(THIS_ DWORD IndexFirst, DWORD count, LPD3DVECTOR) PURE;
-    STDMETHOD(GetNormals)(THIS_ DWORD IndexFirst, LPDWORD pCount, LPD3DVECTOR) PURE;
-    STDMETHOD_(int, GetNormalCount)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMMeshBuilder3_QueryInterface(p,a,b)            (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMMeshBuilder3_AddRef(p)                        (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMMeshBuilder3_Release(p)                       (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMMeshBuilder3_Clone(p,a,b,c)                   (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_AddDestroyCallback(p,a,b)        (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMMeshBuilder3_DeleteDestroyCallback(p,a,b)     (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMMeshBuilder3_SetAppData(p,a)                  (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMMeshBuilder3_GetAppData(p)                    (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMMeshBuilder3_SetName(p,a)                     (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMMeshBuilder3_GetName(p,a,b)                   (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMMeshBuilder3_GetClassName(p,a,b)              (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMMeshBuilder3 methods ***/
-#define IDirect3DRMMeshBuilder3_Load(p,a,b,c,d,e)                (p)->lpVtbl->Load(p,a,b,c,d,e)
-#define IDirect3DRMMeshBuilder3_Save(p,a,b,c)                    (p)->lpVtbl->Save(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_Scale(p,a,b,c)                   (p)->lpVtbl->Scale(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_Translate(p,a,b,c)               (p)->lpVtbl->Translate(p,a)
-#define IDirect3DRMMeshBuilder3_SetColorSource(p,a)              (p)->lpVtbl->SetColorSource(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_GetBox(p,a)                      (p)->lpVtbl->GetBox(p,a)
-#define IDirect3DRMMeshBuilder3_GenerateNormals(p,a,b)           (p)->lpVtbl->GenerateNormals(p,a,b)
-#define IDirect3DRMMeshBuilder3_GetColorSource(p)                (p)->lpVtbl->GetColorSource(p)
-#define IDirect3DRMMeshBuilder3_AddMesh(p,a)                     (p)->lpVtbl->AddMesh(p,a)
-#define IDirect3DRMMeshBuilder3_AddMeshBuilder(p,a)              (p)->lpVtbl->AddMeshBuilder(p,a)
-#define IDirect3DRMMeshBuilder3_AddFrame(p,a)                    (p)->lpVtbl->AddFrame(p,a)
-#define IDirect3DRMMeshBuilder3_AddFace(p,a)                     (p)->lpVtbl->AddFace(p,a)
-#define IDirect3DRMMeshBuilder3_AddFaces(p,a,b,c,d,e,f)          (p)->lpVtbl->AddFaces(p,a,b,c,d,e,f)
-#define IDirect3DRMMeshBuilder3_ReserveSpace(p,a,b,c)            (p)->lpVtbl->ReserveSpace(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_SetColorRGB(p,a,b,c)             (p)->lpVtbl->SetColorRGB(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_SetColor(p,a)                    (p)->lpVtbl->SetColor(p,a)
-#define IDirect3DRMMeshBuilder3_SetTexture(p,a)                  (p)->lpVtbl->SetTexture(p,a)
-#define IDirect3DRMMeshBuilder3_SetMateria(p,a)                  (p)->lpVtbl->SetMateria(p,a)
-#define IDirect3DRMMeshBuilder3_SetTextureTopology(p,a,b)        (p)->lpVtbl->SetTextureTopology(p,a,b)
-#define IDirect3DRMMeshBuilder3_SetQuality(p,a)                  (p)->lpVtbl->SetQuality(p,a)
-#define IDirect3DRMMeshBuilder3_SetPerspective(p,a)              (p)->lpVtbl->SetPerspective(p,a)
-#define IDirect3DRMMeshBuilder3_SetVertex(p,a,b,c,d)             (p)->lpVtbl->SetVertex(p,a,b,c,d)
-#define IDirect3DRMMeshBuilder3_SetNormal(p,a,b,c,d)             (p)->lpVtbl->SetNormal(p,a,b,c,d)
-#define IDirect3DRMMeshBuilder3_SetTextureCoordinates(p,a,b,c)   (p)->lpVtbl->SetTextureCoordinates(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_SetVertexColor(p,a,b)            (p)->lpVtbl->SetVertexColor(p,a,b)
-#define IDirect3DRMMeshBuilder3_SetVertexColorRGB(p,a,b,c,d)     (p)->lpVtbl->SetVertexColorRGB(p,a,b,c,d)
-#define IDirect3DRMMeshBuilder3_GetFaces(p,a)                    (p)->lpVtbl->GetFaces(p,a)
-#define IDirect3DRMMeshBuilder3_GetGeometry(p,a,b,c,d,e,f)       (p)->lpVtbl->GetGeometry(p,a,b,c,d,e,f)
-#define IDirect3DRMMeshBuilder3_GetTextureCoordinates(p,a,b,c)   (p)->lpVtbl->GetTextureCoordinates(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_AddVertex(p,a,b,c)               (p)->lpVtbl->AddVertex(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_AddNormal(p,a,b,c)               (p)->lpVtbl->AddNormal(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_CreateFace(p,a)                  (p)->lpVtbl->CreateFace(p,a)
-#define IDirect3DRMMeshBuilder3_GetQuality(p)                    (p)->lpVtbl->GetQuality(p)
-#define IDirect3DRMMeshBuilder3_GetPerspective(p)                (p)->lpVtbl->GetPerspective(p)
-#define IDirect3DRMMeshBuilder3_GetFaceCount(p)                  (p)->lpVtbl->GetFaceCount(p)
-#define IDirect3DRMMeshBuilder3_GetVertexCount(p)                (p)->lpVtbl->GetVertexCount(p)
-#define IDirect3DRMMeshBuilder3_GetVertexColor(p,a)              (p)->lpVtbl->GetVertexColor(p,a)
-#define IDirect3DRMMeshBuilder3_CreateMesh(p,a)                  (p)->lpVtbl->CreateMesh(p,a)
-#define IDirect3DRMMeshBuilder3_GetFace(p,a,b)                   (p)->lpVtbl->GetFace(p,a,b)
-#define IDirect3DRMMeshBuilder3_GetVertex(p,a,b)                 (p)->lpVtbl->GetVertex(p,a,b)
-#define IDirect3DRMMeshBuilder3_GetNormal(p,a,b)                 (p)->lpVtbl->GetNormal(p,a,b)
-#define IDirect3DRMMeshBuilder3_DeleteVertices(p,a,b)            (p)->lpVtbl->DeleteVertices(p,a,b)
-#define IDirect3DRMMeshBuilder3_DeleteNormals(p,a,b)             (p)->lpVtbl->DeleteNormals(p,a,b)
-#define IDirect3DRMMeshBuilder3_DeleteFace(p,a)                  (p)->lpVtbl->DeleteFace(p,a)
-#define IDirect3DRMMeshBuilder3_Empty(p,a)                       (p)->lpVtbl->Empty(p,a)
-#define IDirect3DRMMeshBuilder3_Optimize(p,a)                    (p)->lpVtbl->Optimize(p,a)
-#define IDirect3DRMMeshBuilder3_AddFacesIndexed(p,a,b,c,d)       (p)->lpVtbl->AddFacesIndexed(p,a,b,c,d)
-#define IDirect3DRMMeshBuilder3_CreateSubMesh(p,a)               (p)->lpVtbl->CreateSubMesh(p,a)
-#define IDirect3DRMMeshBuilder3_GetParentMesh(p,a,b)             (p)->lpVtbl->GetParentMesh(p,a,b)
-#define IDirect3DRMMeshBuilder3_GetSubMeshes(p,a,b)              (p)->lpVtbl->GetSubMeshes(p,a,b)
-#define IDirect3DRMMeshBuilder3_DeleteSubMesh(p,a)               (p)->lpVtbl->DeleteSubMesh(p,a)
-#define IDirect3DRMMeshBuilder3_Enable(p,a)                      (p)->lpVtbl->Enable(p,a)
-#define IDirect3DRMMeshBuilder3_AddTriangles(p,a,b,c,d)          (p)->lpVtbl->AddTriangles(p,a,b,c,d)
-#define IDirect3DRMMeshBuilder3_SetVertices(p,a,b,c)             (p)->lpVtbl->SetVertices(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_GetVertices(p,a,b,c)             (p)->lpVtbl->GetVertices(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_SetNormals(p,a,b,c)              (p)->lpVtbl->SetNormals(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_GetNormals(p,a,b,c)              (p)->lpVtbl->GetNormals(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_GetNormalCount(p)                (p)->lpVtbl->GetNormalCount(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMMeshBuilder3_QueryInterface(p,a,b)            (p)->QueryInterface(a,b)
-#define IDirect3DRMMeshBuilder3_AddRef(p)                        (p)->AddRef()
-#define IDirect3DRMMeshBuilder3_Release(p)                       (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMMeshBuilder3_Clone(p,a,b,c)                   (p)->Clone(a,b,c)
-#define IDirect3DRMMeshBuilder3_AddDestroyCallback(p,a,b)        (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMMeshBuilder3_DeleteDestroyCallback(p,a,b)     (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMMeshBuilder3_SetAppData(p,a)                  (p)->SetAppData(a)
-#define IDirect3DRMMeshBuilder3_GetAppData(p)                    (p)->GetAppData()
-#define IDirect3DRMMeshBuilder3_SetName(p,a)                     (p)->SetName(a)
-#define IDirect3DRMMeshBuilder3_GetName(p,a,b)                   (p)->GetName(a,b)
-#define IDirect3DRMMeshBuilder3_GetClassName(p,a,b)              (p)->GetClassName(a,b)
-/*** IDirect3DRMMeshBuilder3 methods ***/
-#define IDirect3DRMMeshBuilder3_Load(p,a,b,c,d,e)                (p)->Load(a,b,c,d,e)
-#define IDirect3DRMMeshBuilder3_Save(p,a,b,c)                    (p)->Save(a,b,c)
-#define IDirect3DRMMeshBuilder3_Scale(p,a,b,c)                   (p)->Scale(a,b,c)
-#define IDirect3DRMMeshBuilder3_Translate(p,a,b,c)               (p)->Translate(a)
-#define IDirect3DRMMeshBuilder3_SetColorSource(p,a)              (p)->SetColorSource(a,b,c)
-#define IDirect3DRMMeshBuilder3_GetBox(p,a)                      (p)->GetBox(a)
-#define IDirect3DRMMeshBuilder3_GenerateNormals(p,a,b)           (p)->GenerateNormals(a,b)
-#define IDirect3DRMMeshBuilder3_GetColorSource(p)                (p)->GetColorSource()
-#define IDirect3DRMMeshBuilder3_AddMesh(p,a)                     (p)-->AddMesh(a)
-#define IDirect3DRMMeshBuilder3_AddMeshBuilder(p,a)              (p)->AddMeshBuilder(a)
-#define IDirect3DRMMeshBuilder3_AddFrame(p,a)                    (p)->AddFrame(a)
-#define IDirect3DRMMeshBuilder3_AddFace(p,a)                     (p)->AddFace(a)
-#define IDirect3DRMMeshBuilder3_AddFaces(p,a,b,c,d,e,f)          (p)->AddFaces(a,b,c,d,e,f)
-#define IDirect3DRMMeshBuilder3_ReserveSpace(p,a,b,c)            (p)->ReserveSpace(a,b,c)
-#define IDirect3DRMMeshBuilder3_SetColorRGB(p,a,b,c)             (p)->SetColorRGB(a,b,c)
-#define IDirect3DRMMeshBuilder3_SetColor(p,a)                    (p)->SetColor(a)
-#define IDirect3DRMMeshBuilder3_SetTexture(p,a)                  (p)->SetTexture(a)
-#define IDirect3DRMMeshBuilder3_SetMateria(p,a)                  (p)->SetMateria(a)
-#define IDirect3DRMMeshBuilder3_SetTextureTopology(p,a,b)        (p)->SetTextureTopology(a,b)
-#define IDirect3DRMMeshBuilder3_SetQuality(p,a)                  (p)->SetQuality(a)
-#define IDirect3DRMMeshBuilder3_SetPerspective(p,a)              (p)->SetPerspective(a)
-#define IDirect3DRMMeshBuilder3_SetVertex(p,a,b,c,d)             (p)->SetVertex(a,b,c,d)
-#define IDirect3DRMMeshBuilder3_SetNormal(p,a,b,c,d)             (p)->SetNormal(a,b,c,d)
-#define IDirect3DRMMeshBuilder3_SetTextureCoordinates(p,a,b,c)   (p)->SetTextureCoordinates(a,b,c)
-#define IDirect3DRMMeshBuilder3_SetVertexColor(p,a,b)            (p)->SetVertexColor(a,b)
-#define IDirect3DRMMeshBuilder3_SetVertexColorRGB(p,a,b,c,d)     (p)->SetVertexColorRGB(a,b,c,d)
-#define IDirect3DRMMeshBuilder3_GetFaces(p,a)                    (p)->GetFaces(a)
-#define IDirect3DRMMeshBuilder3_GetGeometry(p,a,b,c,d,e,f)       (p)->GetGeometry(a,b,c,d,e,f)
-#define IDirect3DRMMeshBuilder3_GetTextureCoordinates(p,a,b,c)   (p)->GetTextureCoordinates(a,b,c)
-#define IDirect3DRMMeshBuilder3_AddVertex(p,a,b,c)               (p)->AddVertex(a,b,c)
-#define IDirect3DRMMeshBuilder3_AddNormal(p,a,b,c)               (p)->AddNormal(a,b,c)
-#define IDirect3DRMMeshBuilder3_CreateFace(p,a)                  (p)->CreateFace(a)
-#define IDirect3DRMMeshBuilder3_GetQuality(p)                    (p)->GetQuality()
-#define IDirect3DRMMeshBuilder3_GetPerspective(p)                (p)->GetPerspective()
-#define IDirect3DRMMeshBuilder3_GetFaceCount(p)                  (p)->GetFaceCount()
-#define IDirect3DRMMeshBuilder3_GetVertexCount(p)                (p)->GetVertexCount()
-#define IDirect3DRMMeshBuilder3_GetVertexColor(p,a)              (p)->GetVertexColor(a)
-#define IDirect3DRMMeshBuilder3_CreateMesh(p,a)                  (p)->CreateMesh(a)
-#define IDirect3DRMMeshBuilder3_GetFace(p,a,b)                   (p)->GetFace(p,a,b)
-#define IDirect3DRMMeshBuilder3_GetVertex(p,a,b)                 (p)->GetVertex(p,a,b)
-#define IDirect3DRMMeshBuilder3_GetNormal(p,a,b)                 (p)->GetNormal(p,a,b)
-#define IDirect3DRMMeshBuilder3_DeleteVertices(p,a,b)            (p)->DeleteVertices(p,a,b)
-#define IDirect3DRMMeshBuilder3_DeleteNormals(p,a,b)             (p)->DeleteNormals(p,a,b)
-#define IDirect3DRMMeshBuilder3_DeleteFace(p,a)                  (p)->DeleteFace(p,a)
-#define IDirect3DRMMeshBuilder3_Empty(p,a)                       (p)->Empty(p,a)
-#define IDirect3DRMMeshBuilder3_Optimize(p,a)                    (p)->Optimize(p,a)
-#define IDirect3DRMMeshBuilder3_AddFacesIndexed(p,a,b,c,d)       (p)->AddFacesIndexed(p,a,b,c,d)
-#define IDirect3DRMMeshBuilder3_CreateSubMesh(p,a)               (p)->CreateSubMesh(p,a)
-#define IDirect3DRMMeshBuilder3_GetParentMesh(p,a,b)             (p)->GetParentMesh(p,a,b)
-#define IDirect3DRMMeshBuilder3_GetSubMeshes(p,a,b)              (p)->GetSubMeshes(p,a,b)
-#define IDirect3DRMMeshBuilder3_DeleteSubMesh(p,a)               (p)->DeleteSubMesh(p,a)
-#define IDirect3DRMMeshBuilder3_Enable(p,a)                      (p)->Enable(p,a)
-#define IDirect3DRMMeshBuilder3_AddTriangles(p,a,b,c,d)          (p)->AddTriangles(p,a,b,c,d)
-#define IDirect3DRMMeshBuilder3_SetVertices(p,a,b,c)             (p)->SetVertices(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_GetVertices(p,a,b,c)             (p)->GetVertices(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_SetNormals(p,a,b,c)              (p)->SetNormals(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_GetNormals(p,a,b,c)              (p)->GetNormals(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_GetNormalCount(p)                (p)->GetNormalCount(p,a)
-#endif
-
-#ifdef __cplusplus
-};
-#endif
-
-#endif /* __D3DRMOBJ_H__ */
diff --git a/misc/builddeps/win32/dx/include/d3dtypes.h b/misc/builddeps/win32/dx/include/d3dtypes.h
deleted file mode 100644 (file)
index 2ac2cff..0000000
+++ /dev/null
@@ -1,1374 +0,0 @@
-/*
- * Copyright (C) 2000 Peter Hunnisett
- *
- * 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
- */
-
-/* FIXME: Need to add C++ code for certain structs for headers - this is going to be a problem
-          if WINE continues to only use C code  - I suppose that we could always inline in
-          the header file to get around that little problem... */
-/* FIXME: We need to implement versioning on everything directx 5 and up if these headers
-          are going to be generically useful for directx stuff */
-
-#ifndef __WINE_D3DTYPES_H
-#define __WINE_D3DTYPES_H
-
-#include <_mingw_dxhelper.h>
-
-#ifndef __WINESRC__
-# include <windows.h>
-#endif
-
-#include <float.h>
-#include <ddraw.h>
-
-#define D3DVALP(val, prec)      ((float)(val))
-#define D3DVAL(val)             ((float)(val))
-#define D3DDivide(a, b)         (float)((double) (a) / (double) (b))
-#define D3DMultiply(a, b)       ((a) * (b))
-
-typedef LONG D3DFIXED;
-
-
-#ifndef RGB_MAKE
-#define CI_GETALPHA(ci)    ((ci) >> 24)
-#define CI_GETINDEX(ci)    (((ci) >> 8) & 0xffff)
-#define CI_GETFRACTION(ci) ((ci) & 0xff)
-#define CI_ROUNDINDEX(ci)  CI_GETINDEX((ci) + 0x80)
-#define CI_MASKALPHA(ci)   ((ci) & 0xffffff)
-#define CI_MAKE(a, i, f)    (((a) << 24) | ((i) << 8) | (f))
-
-#define RGBA_GETALPHA(rgb)      ((rgb) >> 24)
-#define RGBA_GETRED(rgb)        (((rgb) >> 16) & 0xff)
-#define RGBA_GETGREEN(rgb)      (((rgb) >> 8) & 0xff)
-#define RGBA_GETBLUE(rgb)       ((rgb) & 0xff)
-#define RGBA_MAKE(r, g, b, a)   ((D3DCOLOR) (((a) << 24) | ((r) << 16) | ((g) << 8) | (b)))
-
-#define D3DRGB(r, g, b) \
-    (0xff000000 | ( ((LONG)((r) * 255)) << 16) | (((LONG)((g) * 255)) << 8) | (LONG)((b) * 255))
-#define D3DRGBA(r, g, b, a) \
-    (   (((LONG)((a) * 255)) << 24) | (((LONG)((r) * 255)) << 16) \
-    |   (((LONG)((g) * 255)) << 8) | (LONG)((b) * 255) \
-    )
-
-#define RGB_GETRED(rgb)         (((rgb) >> 16) & 0xff)
-#define RGB_GETGREEN(rgb)       (((rgb) >> 8) & 0xff)
-#define RGB_GETBLUE(rgb)        ((rgb) & 0xff)
-#define RGBA_SETALPHA(rgba, x) (((x) << 24) | ((rgba) & 0x00ffffff))
-#define RGB_MAKE(r, g, b)       ((D3DCOLOR) (((r) << 16) | ((g) << 8) | (b)))
-#define RGBA_TORGB(rgba)       ((D3DCOLOR) ((rgba) & 0xffffff))
-#define RGB_TORGBA(rgb)        ((D3DCOLOR) ((rgb) | 0xff000000))
-
-#endif
-
-#define D3DENUMRET_CANCEL                        DDENUMRET_CANCEL
-#define D3DENUMRET_OK                            DDENUMRET_OK
-
-typedef HRESULT (CALLBACK *LPD3DVALIDATECALLBACK)(LPVOID lpUserArg, DWORD dwOffset);
-typedef HRESULT (CALLBACK *LPD3DENUMTEXTUREFORMATSCALLBACK)(LPDDSURFACEDESC lpDdsd, LPVOID lpContext);
-typedef HRESULT (CALLBACK *LPD3DENUMPIXELFORMATSCALLBACK)(LPDDPIXELFORMAT lpDDPixFmt, LPVOID lpContext);
-
-#ifndef DX_SHARED_DEFINES
-
-typedef float D3DVALUE,*LPD3DVALUE;
-
-#ifndef D3DCOLOR_DEFINED
-typedef DWORD D3DCOLOR, *LPD3DCOLOR;
-#define D3DCOLOR_DEFINED
-#endif
-
-#ifndef D3DVECTOR_DEFINED
-typedef struct _D3DVECTOR {
-  union {
-        D3DVALUE        x;
-    D3DVALUE dvX;
-  } DUMMYUNIONNAME1;
-  union {
-        D3DVALUE        y;
-    D3DVALUE dvY;
-  } DUMMYUNIONNAME2;
-  union {
-        D3DVALUE        z;
-    D3DVALUE dvZ;
-  } DUMMYUNIONNAME3;
-#if defined(__cplusplus) && defined(D3D_OVERLOADS)
-  /* the definitions for these methods are in d3dvec.inl */
-public:
-  /*** constructors ***/
-  _D3DVECTOR() {}
-  _D3DVECTOR(D3DVALUE f);
-  _D3DVECTOR(D3DVALUE _x, D3DVALUE _y, D3DVALUE _z);
-  _D3DVECTOR(const D3DVALUE f[3]);
-
-  /*** assignment operators ***/
-  _D3DVECTOR& operator += (const _D3DVECTOR& v);
-  _D3DVECTOR& operator -= (const _D3DVECTOR& v);
-  _D3DVECTOR& operator *= (const _D3DVECTOR& v);
-  _D3DVECTOR& operator /= (const _D3DVECTOR& v);
-  _D3DVECTOR& operator *= (D3DVALUE s);
-  _D3DVECTOR& operator /= (D3DVALUE s);
-
-  /*** unary operators ***/
-  friend _D3DVECTOR operator + (const _D3DVECTOR& v);
-  friend _D3DVECTOR operator - (const _D3DVECTOR& v);
-
-  /*** binary operators ***/
-  friend _D3DVECTOR operator + (const _D3DVECTOR& v1, const _D3DVECTOR& v2);
-  friend _D3DVECTOR operator - (const _D3DVECTOR& v1, const _D3DVECTOR& v2);
-
-  friend _D3DVECTOR operator * (const _D3DVECTOR& v, D3DVALUE s);
-  friend _D3DVECTOR operator * (D3DVALUE s, const _D3DVECTOR& v);
-  friend _D3DVECTOR operator / (const _D3DVECTOR& v, D3DVALUE s);
-
-  friend D3DVALUE SquareMagnitude(const _D3DVECTOR& v);
-  friend D3DVALUE Magnitude(const _D3DVECTOR& v);
-
-  friend _D3DVECTOR Normalize(const _D3DVECTOR& v);
-
-  friend D3DVALUE DotProduct(const _D3DVECTOR& v1, const _D3DVECTOR& v2);
-  friend _D3DVECTOR CrossProduct(const _D3DVECTOR& v1, const _D3DVECTOR& v2);
-#endif
-} D3DVECTOR;
-#define D3DVECTOR_DEFINED
-#endif
-
-#ifndef LPD3DVECTOR_DEFINED
-typedef D3DVECTOR *LPD3DVECTOR;
-#define LPD3DVECTOR_DEFINED
-#endif
-
-#define DX_SHARED_DEFINES
-#endif /* DX_SHARED_DEFINES */
-
-typedef DWORD D3DMATERIALHANDLE, *LPD3DMATERIALHANDLE;
-typedef DWORD D3DTEXTUREHANDLE,  *LPD3DTEXTUREHANDLE;
-typedef DWORD D3DMATRIXHANDLE,   *LPD3DMATRIXHANDLE;
-
-typedef struct _D3DCOLORVALUE {
-        union {
-                D3DVALUE r;
-                D3DVALUE dvR;
-        } DUMMYUNIONNAME1;
-        union {
-                D3DVALUE g;
-                D3DVALUE dvG;
-        } DUMMYUNIONNAME2;
-        union {
-                D3DVALUE b;
-                D3DVALUE dvB;
-        } DUMMYUNIONNAME3;
-        union {
-                D3DVALUE a;
-                D3DVALUE dvA;
-        } DUMMYUNIONNAME4;
-} D3DCOLORVALUE,*LPD3DCOLORVALUE;
-
-typedef struct _D3DRECT {
-  union {
-    LONG x1;
-    LONG lX1;
-  } DUMMYUNIONNAME1;
-  union {
-    LONG y1;
-    LONG lY1;
-  } DUMMYUNIONNAME2;
-  union {
-    LONG x2;
-    LONG lX2;
-  } DUMMYUNIONNAME3;
-  union {
-    LONG y2;
-    LONG lY2;
-  } DUMMYUNIONNAME4;
-} D3DRECT, *LPD3DRECT;
-
-typedef struct _D3DHVERTEX {
-    DWORD         dwFlags;
- union {
-    D3DVALUE    hx;
-    D3DVALUE    dvHX;
-  } DUMMYUNIONNAME1;
-  union {
-    D3DVALUE    hy;
-    D3DVALUE    dvHY;
-  } DUMMYUNIONNAME2;
-  union {
-    D3DVALUE    hz;
-    D3DVALUE    dvHZ;
-  } DUMMYUNIONNAME3;
-} D3DHVERTEX, *LPD3DHVERTEX;
-
-/*
- * Transformed/lit vertices
- */
-typedef struct _D3DTLVERTEX {
-  union {
-    D3DVALUE    sx;
-    D3DVALUE    dvSX;
-  } DUMMYUNIONNAME1;
-  union {
-    D3DVALUE    sy;
-    D3DVALUE    dvSY;
-  } DUMMYUNIONNAME2;
-  union {
-    D3DVALUE    sz;
-    D3DVALUE    dvSZ;
-  } DUMMYUNIONNAME3;
-  union {
-    D3DVALUE    rhw;
-    D3DVALUE    dvRHW;
-  } DUMMYUNIONNAME4;
-  union {
-    D3DCOLOR    color;
-    D3DCOLOR    dcColor;
-  } DUMMYUNIONNAME5;
-  union {
-    D3DCOLOR    specular;
-    D3DCOLOR    dcSpecular;
-  } DUMMYUNIONNAME6;
-  union {
-    D3DVALUE    tu;
-    D3DVALUE    dvTU;
-  } DUMMYUNIONNAME7;
-  union {
-    D3DVALUE    tv;
-    D3DVALUE    dvTV;
-  } DUMMYUNIONNAME8;
-#if defined(__cplusplus) && defined(D3D_OVERLOADS)
-public:
-  _D3DTLVERTEX() {}
-  _D3DTLVERTEX(const D3DVECTOR& v, float _rhw, D3DCOLOR _color, D3DCOLOR _specular, float _tu, float _tv) {
-    sx = v.x; sy = v.y; sz = v.z; rhw = _rhw;
-    color = _color; specular = _specular;
-    tu = _tu; tv = _tv;
-  }
-#endif
-} D3DTLVERTEX, *LPD3DTLVERTEX;
-
-typedef struct _D3DLVERTEX {
-  union {
-    D3DVALUE x;
-    D3DVALUE dvX;
-  } DUMMYUNIONNAME1;
-  union {
-    D3DVALUE y;
-    D3DVALUE dvY;
-  } DUMMYUNIONNAME2;
-  union {
-    D3DVALUE z;
-    D3DVALUE dvZ;
-  } DUMMYUNIONNAME3;
-  DWORD            dwReserved;
-  union {
-    D3DCOLOR     color;
-    D3DCOLOR     dcColor;
-  } DUMMYUNIONNAME4;
-  union {
-    D3DCOLOR     specular;
-    D3DCOLOR     dcSpecular;
-  } DUMMYUNIONNAME5;
-  union {
-    D3DVALUE     tu;
-    D3DVALUE     dvTU;
-  } DUMMYUNIONNAME6;
-  union {
-    D3DVALUE     tv;
-    D3DVALUE     dvTV;
-  } DUMMYUNIONNAME7;
-} D3DLVERTEX, *LPD3DLVERTEX;
-
-typedef struct _D3DVERTEX {
-  union {
-    D3DVALUE     x;
-    D3DVALUE     dvX;
-  } DUMMYUNIONNAME1;
-  union {
-    D3DVALUE     y;
-    D3DVALUE     dvY;
-  } DUMMYUNIONNAME2;
-  union {
-    D3DVALUE     z;
-    D3DVALUE     dvZ;
-  } DUMMYUNIONNAME3;
-  union {
-    D3DVALUE     nx;
-    D3DVALUE     dvNX;
-  } DUMMYUNIONNAME4;
-  union {
-    D3DVALUE     ny;
-    D3DVALUE     dvNY;
-  } DUMMYUNIONNAME5;
-  union {
-    D3DVALUE     nz;
-    D3DVALUE     dvNZ;
-  } DUMMYUNIONNAME6;
-  union {
-    D3DVALUE     tu;
-    D3DVALUE     dvTU;
-  } DUMMYUNIONNAME7;
-  union {
-    D3DVALUE     tv;
-    D3DVALUE     dvTV;
-  } DUMMYUNIONNAME8;
-#if defined(__cplusplus) && defined(D3D_OVERLOADS)
-public:
-  _D3DVERTEX() {}
-  _D3DVERTEX(const D3DVECTOR& v, const D3DVECTOR& n, float _tu, float _tv) {
-    x  = v.x; y  = v.y; z  = v.z;
-    nx = n.x; ny = n.y; nz = n.z;
-    tu = _tu; tv = _tv;
-  }
-#endif
-} D3DVERTEX, *LPD3DVERTEX;
-
-typedef struct _D3DMATRIX {
-  D3DVALUE        _11, _12, _13, _14;
-  D3DVALUE        _21, _22, _23, _24;
-  D3DVALUE        _31, _32, _33, _34;
-  D3DVALUE        _41, _42, _43, _44;
-#if defined(__cplusplus) && defined(D3D_OVERLOADS)
-  _D3DMATRIX() { }
-
-    /* This is different from MS, but avoids anonymous structs. */
-    D3DVALUE &operator () (int r, int c)
-       { return ((D3DVALUE [4][4])&_11)[r][c]; }
-    const D3DVALUE &operator() (int r, int c) const
-       { return ((const D3DVALUE [4][4])&_11)[r][c]; }
-#endif
-} D3DMATRIX, *LPD3DMATRIX;
-
-#if defined(__cplusplus) && defined(D3D_OVERLOADS)
-#include <d3dvec.inl>
-#endif
-
-typedef struct _D3DVIEWPORT {
-  DWORD       dwSize;
-  DWORD       dwX;
-  DWORD       dwY;
-  DWORD       dwWidth;
-  DWORD       dwHeight;
-  D3DVALUE    dvScaleX;
-  D3DVALUE    dvScaleY;
-  D3DVALUE    dvMaxX;
-  D3DVALUE    dvMaxY;
-  D3DVALUE    dvMinZ;
-  D3DVALUE    dvMaxZ;
-} D3DVIEWPORT, *LPD3DVIEWPORT;
-
-typedef struct _D3DVIEWPORT2 {
-  DWORD       dwSize;
-  DWORD       dwX;
-  DWORD       dwY;
-  DWORD       dwWidth;
-  DWORD       dwHeight;
-  D3DVALUE    dvClipX;
-  D3DVALUE    dvClipY;
-  D3DVALUE    dvClipWidth;
-  D3DVALUE    dvClipHeight;
-  D3DVALUE    dvMinZ;
-  D3DVALUE    dvMaxZ;
-} D3DVIEWPORT2, *LPD3DVIEWPORT2;
-
-typedef struct _D3DVIEWPORT7 {
-  DWORD       dwX;
-  DWORD       dwY;
-  DWORD       dwWidth;
-  DWORD       dwHeight;
-  D3DVALUE    dvMinZ;
-  D3DVALUE    dvMaxZ;
-} D3DVIEWPORT7, *LPD3DVIEWPORT7;
-
-#define D3DMAXUSERCLIPPLANES 32
-
-#define D3DCLIPPLANE0 (1 << 0)
-#define D3DCLIPPLANE1 (1 << 1)
-#define D3DCLIPPLANE2 (1 << 2)
-#define D3DCLIPPLANE3 (1 << 3)
-#define D3DCLIPPLANE4 (1 << 4)
-#define D3DCLIPPLANE5 (1 << 5)
-
-#define D3DCLIP_LEFT     0x00000001
-#define D3DCLIP_RIGHT    0x00000002
-#define D3DCLIP_TOP      0x00000004
-#define D3DCLIP_BOTTOM   0x00000008
-#define D3DCLIP_FRONT    0x00000010
-#define D3DCLIP_BACK     0x00000020
-#define D3DCLIP_GEN0     0x00000040
-#define D3DCLIP_GEN1     0x00000080
-#define D3DCLIP_GEN2     0x00000100
-#define D3DCLIP_GEN3     0x00000200
-#define D3DCLIP_GEN4     0x00000400
-#define D3DCLIP_GEN5     0x00000800
-
-#define D3DSTATUS_CLIPUNIONLEFT                 D3DCLIP_LEFT
-#define D3DSTATUS_CLIPUNIONRIGHT                D3DCLIP_RIGHT
-#define D3DSTATUS_CLIPUNIONTOP                  D3DCLIP_TOP
-#define D3DSTATUS_CLIPUNIONBOTTOM               D3DCLIP_BOTTOM
-#define D3DSTATUS_CLIPUNIONFRONT                D3DCLIP_FRONT
-#define D3DSTATUS_CLIPUNIONBACK                 D3DCLIP_BACK
-#define D3DSTATUS_CLIPUNIONGEN0                 D3DCLIP_GEN0
-#define D3DSTATUS_CLIPUNIONGEN1                 D3DCLIP_GEN1
-#define D3DSTATUS_CLIPUNIONGEN2                 D3DCLIP_GEN2
-#define D3DSTATUS_CLIPUNIONGEN3                 D3DCLIP_GEN3
-#define D3DSTATUS_CLIPUNIONGEN4                 D3DCLIP_GEN4
-#define D3DSTATUS_CLIPUNIONGEN5                 D3DCLIP_GEN5
-
-#define D3DSTATUS_CLIPINTERSECTIONLEFT          0x00001000
-#define D3DSTATUS_CLIPINTERSECTIONRIGHT         0x00002000
-#define D3DSTATUS_CLIPINTERSECTIONTOP           0x00004000
-#define D3DSTATUS_CLIPINTERSECTIONBOTTOM        0x00008000
-#define D3DSTATUS_CLIPINTERSECTIONFRONT         0x00010000
-#define D3DSTATUS_CLIPINTERSECTIONBACK          0x00020000
-#define D3DSTATUS_CLIPINTERSECTIONGEN0          0x00040000
-#define D3DSTATUS_CLIPINTERSECTIONGEN1          0x00080000
-#define D3DSTATUS_CLIPINTERSECTIONGEN2          0x00100000
-#define D3DSTATUS_CLIPINTERSECTIONGEN3          0x00200000
-#define D3DSTATUS_CLIPINTERSECTIONGEN4          0x00400000
-#define D3DSTATUS_CLIPINTERSECTIONGEN5          0x00800000
-#define D3DSTATUS_ZNOTVISIBLE                   0x01000000
-
-#define D3DSTATUS_CLIPUNIONALL  (               \
-            D3DSTATUS_CLIPUNIONLEFT     |       \
-            D3DSTATUS_CLIPUNIONRIGHT    |       \
-            D3DSTATUS_CLIPUNIONTOP      |       \
-            D3DSTATUS_CLIPUNIONBOTTOM   |       \
-            D3DSTATUS_CLIPUNIONFRONT    |       \
-            D3DSTATUS_CLIPUNIONBACK     |       \
-            D3DSTATUS_CLIPUNIONGEN0     |       \
-            D3DSTATUS_CLIPUNIONGEN1     |       \
-            D3DSTATUS_CLIPUNIONGEN2     |       \
-            D3DSTATUS_CLIPUNIONGEN3     |       \
-            D3DSTATUS_CLIPUNIONGEN4     |       \
-            D3DSTATUS_CLIPUNIONGEN5             \
-            )
-
-#define D3DSTATUS_CLIPINTERSECTIONALL   (               \
-            D3DSTATUS_CLIPINTERSECTIONLEFT      |       \
-            D3DSTATUS_CLIPINTERSECTIONRIGHT     |       \
-            D3DSTATUS_CLIPINTERSECTIONTOP       |       \
-            D3DSTATUS_CLIPINTERSECTIONBOTTOM    |       \
-            D3DSTATUS_CLIPINTERSECTIONFRONT     |       \
-            D3DSTATUS_CLIPINTERSECTIONBACK      |       \
-            D3DSTATUS_CLIPINTERSECTIONGEN0      |       \
-            D3DSTATUS_CLIPINTERSECTIONGEN1      |       \
-            D3DSTATUS_CLIPINTERSECTIONGEN2      |       \
-            D3DSTATUS_CLIPINTERSECTIONGEN3      |       \
-            D3DSTATUS_CLIPINTERSECTIONGEN4      |       \
-            D3DSTATUS_CLIPINTERSECTIONGEN5              \
-            )
-
-#define D3DSTATUS_DEFAULT       (                       \
-            D3DSTATUS_CLIPINTERSECTIONALL       |       \
-            D3DSTATUS_ZNOTVISIBLE)
-
-#define D3DTRANSFORM_CLIPPED       0x00000001
-#define D3DTRANSFORM_UNCLIPPED     0x00000002
-
-typedef struct _D3DTRANSFORMDATA {
-  DWORD           dwSize;
-  LPVOID          lpIn;
-  DWORD           dwInSize;
-  LPVOID          lpOut;
-  DWORD           dwOutSize;
-  LPD3DHVERTEX    lpHOut;
-  DWORD           dwClip;
-  DWORD           dwClipIntersection;
-  DWORD           dwClipUnion;
-  D3DRECT         drExtent;
-} D3DTRANSFORMDATA, *LPD3DTRANSFORMDATA;
-
-typedef struct _D3DLIGHTINGELEMENT {
-  D3DVECTOR dvPosition;
-  D3DVECTOR dvNormal;
-} D3DLIGHTINGELEMENT, *LPD3DLIGHTINGELEMENT;
-
-typedef struct _D3DMATERIAL {
-  DWORD               dwSize;
-  union {
-    D3DCOLORVALUE   diffuse;
-    D3DCOLORVALUE   dcvDiffuse;
-  } DUMMYUNIONNAME;
-  union {
-    D3DCOLORVALUE   ambient;
-    D3DCOLORVALUE   dcvAmbient;
-  } DUMMYUNIONNAME1;
-  union {
-    D3DCOLORVALUE   specular;
-    D3DCOLORVALUE   dcvSpecular;
-  } DUMMYUNIONNAME2;
-  union {
-    D3DCOLORVALUE   emissive;
-    D3DCOLORVALUE   dcvEmissive;
-  } DUMMYUNIONNAME3;
-  union {
-    D3DVALUE        power;
-    D3DVALUE        dvPower;
-  } DUMMYUNIONNAME4;
-  D3DTEXTUREHANDLE    hTexture;
-  DWORD               dwRampSize;
-} D3DMATERIAL, *LPD3DMATERIAL;
-
-typedef struct _D3DMATERIAL7 {
-  union {
-    D3DCOLORVALUE   diffuse;
-    D3DCOLORVALUE   dcvDiffuse;
-  } DUMMYUNIONNAME;
-  union {
-    D3DCOLORVALUE   ambient;
-    D3DCOLORVALUE   dcvAmbient;
-  } DUMMYUNIONNAME1;
-  union {
-    D3DCOLORVALUE   specular;
-    D3DCOLORVALUE   dcvSpecular;
-  } DUMMYUNIONNAME2;
-  union {
-    D3DCOLORVALUE   emissive;
-    D3DCOLORVALUE   dcvEmissive;
-  } DUMMYUNIONNAME3;
-  union {
-    D3DVALUE        power;
-    D3DVALUE        dvPower;
-  } DUMMYUNIONNAME4;
-} D3DMATERIAL7, *LPD3DMATERIAL7;
-
-typedef enum {
-  D3DLIGHT_POINT          = 1,
-  D3DLIGHT_SPOT           = 2,
-  D3DLIGHT_DIRECTIONAL    = 3,
-  D3DLIGHT_PARALLELPOINT  = 4,
-  D3DLIGHT_GLSPOT         = 5,
-  D3DLIGHT_FORCE_DWORD    = 0x7fffffff
-} D3DLIGHTTYPE;
-
-typedef struct _D3DLIGHT {
-    DWORD           dwSize;
-    D3DLIGHTTYPE    dltType;
-    D3DCOLORVALUE   dcvColor;
-    D3DVECTOR       dvPosition;
-    D3DVECTOR       dvDirection;
-    D3DVALUE        dvRange;
-    D3DVALUE        dvFalloff;
-    D3DVALUE        dvAttenuation0;
-    D3DVALUE        dvAttenuation1;
-    D3DVALUE        dvAttenuation2;
-    D3DVALUE        dvTheta;
-    D3DVALUE        dvPhi;
-} D3DLIGHT,*LPD3DLIGHT;
-
-typedef struct _D3DLIGHT7 {
-    D3DLIGHTTYPE    dltType;
-    D3DCOLORVALUE   dcvDiffuse;
-    D3DCOLORVALUE   dcvSpecular;
-    D3DCOLORVALUE   dcvAmbient;
-    D3DVECTOR       dvPosition;
-    D3DVECTOR       dvDirection;
-    D3DVALUE        dvRange;
-    D3DVALUE        dvFalloff;
-    D3DVALUE        dvAttenuation0;
-    D3DVALUE        dvAttenuation1;
-    D3DVALUE        dvAttenuation2;
-    D3DVALUE        dvTheta;
-    D3DVALUE        dvPhi;
-} D3DLIGHT7, *LPD3DLIGHT7;
-
-#define D3DLIGHT_ACTIVE         0x00000001
-#define D3DLIGHT_NO_SPECULAR    0x00000002
-#define D3DLIGHT_ALL (D3DLIGHT_ACTIVE | D3DLIGHT_NO_SPECULAR) /* 0x3 */
-
-#define D3DLIGHT_RANGE_MAX              ((float)sqrt(FLT_MAX))
-
-typedef struct _D3DLIGHT2 {
-  DWORD           dwSize;
-  D3DLIGHTTYPE    dltType;
-  D3DCOLORVALUE   dcvColor;
-  D3DVECTOR       dvPosition;
-  D3DVECTOR       dvDirection;
-  D3DVALUE        dvRange;
-  D3DVALUE        dvFalloff;
-  D3DVALUE        dvAttenuation0;
-  D3DVALUE        dvAttenuation1;
-  D3DVALUE        dvAttenuation2;
-  D3DVALUE        dvTheta;
-  D3DVALUE        dvPhi;
-  DWORD           dwFlags;
-} D3DLIGHT2, *LPD3DLIGHT2;
-
-typedef struct _D3DLIGHTDATA {
-  DWORD                dwSize;
-  LPD3DLIGHTINGELEMENT lpIn;
-  DWORD                dwInSize;
-  LPD3DTLVERTEX        lpOut;
-  DWORD                dwOutSize;
-} D3DLIGHTDATA, *LPD3DLIGHTDATA;
-
-#define D3DCOLOR_MONO   1
-#define D3DCOLOR_RGB    2
-
-typedef DWORD D3DCOLORMODEL;
-
-
-#ifndef D3DCLEAR_TARGET
-#define D3DCLEAR_TARGET   0x00000001
-#endif
-#ifndef D3DCLEAR_ZBUFFER
-#define D3DCLEAR_ZBUFFER  0x00000002
-#endif
-#ifndef D3DCLEAR_STENCIL
-#define D3DCLEAR_STENCIL  0x00000004
-#endif
-
-typedef enum _D3DOPCODE {
-  D3DOP_POINT           = 1,
-  D3DOP_LINE            = 2,
-  D3DOP_TRIANGLE        = 3,
-  D3DOP_MATRIXLOAD      = 4,
-  D3DOP_MATRIXMULTIPLY  = 5,
-  D3DOP_STATETRANSFORM  = 6,
-  D3DOP_STATELIGHT      = 7,
-  D3DOP_STATERENDER     = 8,
-  D3DOP_PROCESSVERTICES = 9,
-  D3DOP_TEXTURELOAD     = 10,
-  D3DOP_EXIT            = 11,
-  D3DOP_BRANCHFORWARD   = 12,
-  D3DOP_SPAN            = 13,
-  D3DOP_SETSTATUS       = 14,
-
-  D3DOP_FORCE_DWORD     = 0x7fffffff
-} D3DOPCODE;
-
-typedef struct _D3DINSTRUCTION {
-  BYTE bOpcode;
-  BYTE bSize;
-  WORD wCount;
-} D3DINSTRUCTION, *LPD3DINSTRUCTION;
-
-typedef struct _D3DTEXTURELOAD {
-  D3DTEXTUREHANDLE hDestTexture;
-  D3DTEXTUREHANDLE hSrcTexture;
-} D3DTEXTURELOAD, *LPD3DTEXTURELOAD;
-
-typedef struct _D3DPICKRECORD {
-  BYTE     bOpcode;
-  BYTE     bPad;
-  DWORD    dwOffset;
-  D3DVALUE dvZ;
-} D3DPICKRECORD, *LPD3DPICKRECORD;
-
-typedef enum {
-  D3DSHADE_FLAT         = 1,
-  D3DSHADE_GOURAUD      = 2,
-  D3DSHADE_PHONG        = 3,
-  D3DSHADE_FORCE_DWORD  = 0x7fffffff
-} D3DSHADEMODE;
-
-typedef enum {
-  D3DFILL_POINT         = 1,
-  D3DFILL_WIREFRAME     = 2,
-  D3DFILL_SOLID         = 3,
-  D3DFILL_FORCE_DWORD   = 0x7fffffff
-} D3DFILLMODE;
-
-typedef struct _D3DLINEPATTERN {
-  WORD    wRepeatFactor;
-  WORD    wLinePattern;
-} D3DLINEPATTERN;
-
-typedef enum {
-  D3DFILTER_NEAREST          = 1,
-  D3DFILTER_LINEAR           = 2,
-  D3DFILTER_MIPNEAREST       = 3,
-  D3DFILTER_MIPLINEAR        = 4,
-  D3DFILTER_LINEARMIPNEAREST = 5,
-  D3DFILTER_LINEARMIPLINEAR  = 6,
-  D3DFILTER_FORCE_DWORD      = 0x7fffffff
-} D3DTEXTUREFILTER;
-
-typedef enum {
-  D3DBLEND_ZERO            = 1,
-  D3DBLEND_ONE             = 2,
-  D3DBLEND_SRCCOLOR        = 3,
-  D3DBLEND_INVSRCCOLOR     = 4,
-  D3DBLEND_SRCALPHA        = 5,
-  D3DBLEND_INVSRCALPHA     = 6,
-  D3DBLEND_DESTALPHA       = 7,
-  D3DBLEND_INVDESTALPHA    = 8,
-  D3DBLEND_DESTCOLOR       = 9,
-  D3DBLEND_INVDESTCOLOR    = 10,
-  D3DBLEND_SRCALPHASAT     = 11,
-  D3DBLEND_BOTHSRCALPHA    = 12,
-  D3DBLEND_BOTHINVSRCALPHA = 13,
-  D3DBLEND_FORCE_DWORD     = 0x7fffffff
-} D3DBLEND;
-
-typedef enum {
-  D3DTBLEND_DECAL         = 1,
-  D3DTBLEND_MODULATE      = 2,
-  D3DTBLEND_DECALALPHA    = 3,
-  D3DTBLEND_MODULATEALPHA = 4,
-  D3DTBLEND_DECALMASK     = 5,
-  D3DTBLEND_MODULATEMASK  = 6,
-  D3DTBLEND_COPY          = 7,
-  D3DTBLEND_ADD           = 8,
-  D3DTBLEND_FORCE_DWORD   = 0x7fffffff
-} D3DTEXTUREBLEND;
-
-typedef enum _D3DTEXTUREADDRESS {
-    D3DTADDRESS_WRAP           = 1,
-    D3DTADDRESS_MIRROR         = 2,
-    D3DTADDRESS_CLAMP          = 3,
-    D3DTADDRESS_BORDER         = 4,
-    D3DTADDRESS_FORCE_DWORD    = 0x7fffffff
-} D3DTEXTUREADDRESS;
-
-typedef enum {
-  D3DCULL_NONE        = 1,
-  D3DCULL_CW          = 2,
-  D3DCULL_CCW         = 3,
-  D3DCULL_FORCE_DWORD = 0x7fffffff
-} D3DCULL;
-
-typedef enum {
-  D3DCMP_NEVER        = 1,
-  D3DCMP_LESS         = 2,
-  D3DCMP_EQUAL        = 3,
-  D3DCMP_LESSEQUAL    = 4,
-  D3DCMP_GREATER      = 5,
-  D3DCMP_NOTEQUAL     = 6,
-  D3DCMP_GREATEREQUAL = 7,
-  D3DCMP_ALWAYS       = 8,
-  D3DCMP_FORCE_DWORD  = 0x7fffffff
-} D3DCMPFUNC;
-
-typedef enum _D3DSTENCILOP {
-  D3DSTENCILOP_KEEP        = 1,
-  D3DSTENCILOP_ZERO        = 2,
-  D3DSTENCILOP_REPLACE     = 3,
-  D3DSTENCILOP_INCRSAT     = 4,
-  D3DSTENCILOP_DECRSAT     = 5,
-  D3DSTENCILOP_INVERT      = 6,
-  D3DSTENCILOP_INCR        = 7,
-  D3DSTENCILOP_DECR        = 8,
-  D3DSTENCILOP_FORCE_DWORD = 0x7fffffff
-} D3DSTENCILOP;
-
-typedef enum _D3DFOGMODE {
-  D3DFOG_NONE         = 0,
-  D3DFOG_EXP          = 1,
-  D3DFOG_EXP2         = 2,
-  D3DFOG_LINEAR       = 3,
-  D3DFOG_FORCE_DWORD  = 0x7fffffff
-} D3DFOGMODE;
-
-typedef enum _D3DZBUFFERTYPE {
-  D3DZB_FALSE        = 0,
-  D3DZB_TRUE         = 1,
-  D3DZB_USEW         = 2,
-  D3DZB_FORCE_DWORD  = 0x7fffffff
-} D3DZBUFFERTYPE;
-
-typedef enum _D3DANTIALIASMODE {
-  D3DANTIALIAS_NONE            = 0,
-  D3DANTIALIAS_SORTDEPENDENT   = 1,
-  D3DANTIALIAS_SORTINDEPENDENT = 2,
-  D3DANTIALIAS_FORCE_DWORD     = 0x7fffffff
-} D3DANTIALIASMODE;
-
-typedef enum {
-  D3DVT_VERTEX        = 1,
-  D3DVT_LVERTEX       = 2,
-  D3DVT_TLVERTEX      = 3,
-  D3DVT_FORCE_DWORD   = 0x7fffffff
-} D3DVERTEXTYPE;
-
-typedef enum {
-  D3DPT_POINTLIST     = 1,
-  D3DPT_LINELIST      = 2,
-  D3DPT_LINESTRIP     = 3,
-  D3DPT_TRIANGLELIST  = 4,
-  D3DPT_TRIANGLESTRIP = 5,
-  D3DPT_TRIANGLEFAN   = 6,
-  D3DPT_FORCE_DWORD   = 0x7fffffff
-} D3DPRIMITIVETYPE;
-
-#define D3DSTATE_OVERRIDE_BIAS      256
-
-#define D3DSTATE_OVERRIDE(type) (D3DRENDERSTATETYPE)(((DWORD) (type) + D3DSTATE_OVERRIDE_BIAS))
-
-typedef enum _D3DTRANSFORMSTATETYPE {
-    D3DTRANSFORMSTATE_WORLD         = 1,
-    D3DTRANSFORMSTATE_VIEW          = 2,
-    D3DTRANSFORMSTATE_PROJECTION    = 3,
-    D3DTRANSFORMSTATE_WORLD1        = 4,
-    D3DTRANSFORMSTATE_WORLD2        = 5,
-    D3DTRANSFORMSTATE_WORLD3        = 6,
-    D3DTRANSFORMSTATE_TEXTURE0      = 16,
-    D3DTRANSFORMSTATE_TEXTURE1      = 17,
-    D3DTRANSFORMSTATE_TEXTURE2      = 18,
-    D3DTRANSFORMSTATE_TEXTURE3      = 19,
-    D3DTRANSFORMSTATE_TEXTURE4      = 20,
-    D3DTRANSFORMSTATE_TEXTURE5      = 21,
-    D3DTRANSFORMSTATE_TEXTURE6      = 22,
-    D3DTRANSFORMSTATE_TEXTURE7      = 23,
-    D3DTRANSFORMSTATE_FORCE_DWORD   = 0x7fffffff
-} D3DTRANSFORMSTATETYPE;
-
-typedef enum {
-  D3DLIGHTSTATE_MATERIAL      = 1,
-  D3DLIGHTSTATE_AMBIENT       = 2,
-  D3DLIGHTSTATE_COLORMODEL    = 3,
-  D3DLIGHTSTATE_FOGMODE       = 4,
-  D3DLIGHTSTATE_FOGSTART      = 5,
-  D3DLIGHTSTATE_FOGEND        = 6,
-  D3DLIGHTSTATE_FOGDENSITY    = 7,
-  D3DLIGHTSTATE_COLORVERTEX   = 8,
-  D3DLIGHTSTATE_FORCE_DWORD   = 0x7fffffff
-} D3DLIGHTSTATETYPE;
-
-typedef enum {
-  D3DRENDERSTATE_TEXTUREHANDLE      = 1,
-  D3DRENDERSTATE_ANTIALIAS          = 2,
-  D3DRENDERSTATE_TEXTUREADDRESS     = 3,
-  D3DRENDERSTATE_TEXTUREPERSPECTIVE = 4,
-  D3DRENDERSTATE_WRAPU              = 5,
-  D3DRENDERSTATE_WRAPV              = 6,
-  D3DRENDERSTATE_ZENABLE            = 7,
-  D3DRENDERSTATE_FILLMODE           = 8,
-  D3DRENDERSTATE_SHADEMODE          = 9,
-  D3DRENDERSTATE_LINEPATTERN        = 10,
-  D3DRENDERSTATE_MONOENABLE         = 11,
-  D3DRENDERSTATE_ROP2               = 12,
-  D3DRENDERSTATE_PLANEMASK          = 13,
-  D3DRENDERSTATE_ZWRITEENABLE       = 14,
-  D3DRENDERSTATE_ALPHATESTENABLE    = 15,
-  D3DRENDERSTATE_LASTPIXEL          = 16,
-  D3DRENDERSTATE_TEXTUREMAG         = 17,
-  D3DRENDERSTATE_TEXTUREMIN         = 18,
-  D3DRENDERSTATE_SRCBLEND           = 19,
-  D3DRENDERSTATE_DESTBLEND          = 20,
-  D3DRENDERSTATE_TEXTUREMAPBLEND    = 21,
-  D3DRENDERSTATE_CULLMODE           = 22,
-  D3DRENDERSTATE_ZFUNC              = 23,
-  D3DRENDERSTATE_ALPHAREF           = 24,
-  D3DRENDERSTATE_ALPHAFUNC          = 25,
-  D3DRENDERSTATE_DITHERENABLE       = 26,
-  D3DRENDERSTATE_ALPHABLENDENABLE   = 27,
-  D3DRENDERSTATE_FOGENABLE          = 28,
-  D3DRENDERSTATE_SPECULARENABLE     = 29,
-  D3DRENDERSTATE_ZVISIBLE           = 30,
-  D3DRENDERSTATE_SUBPIXEL           = 31,
-  D3DRENDERSTATE_SUBPIXELX          = 32,
-  D3DRENDERSTATE_STIPPLEDALPHA      = 33,
-  D3DRENDERSTATE_FOGCOLOR           = 34,
-  D3DRENDERSTATE_FOGTABLEMODE       = 35,
-  D3DRENDERSTATE_FOGTABLESTART      = 36,
-  D3DRENDERSTATE_FOGTABLEEND        = 37,
-  D3DRENDERSTATE_FOGTABLEDENSITY    = 38,
-  D3DRENDERSTATE_FOGSTART           = 36,
-  D3DRENDERSTATE_FOGEND             = 37,
-  D3DRENDERSTATE_FOGDENSITY         = 38,
-  D3DRENDERSTATE_STIPPLEENABLE      = 39,
-  D3DRENDERSTATE_EDGEANTIALIAS      = 40,
-  D3DRENDERSTATE_COLORKEYENABLE     = 41,
-  D3DRENDERSTATE_BORDERCOLOR        = 43,
-  D3DRENDERSTATE_TEXTUREADDRESSU    = 44,
-  D3DRENDERSTATE_TEXTUREADDRESSV    = 45,
-  D3DRENDERSTATE_MIPMAPLODBIAS      = 46,
-  D3DRENDERSTATE_ZBIAS              = 47,
-  D3DRENDERSTATE_RANGEFOGENABLE     = 48,
-  D3DRENDERSTATE_ANISOTROPY         = 49,
-  D3DRENDERSTATE_FLUSHBATCH         = 50,
-  D3DRENDERSTATE_TRANSLUCENTSORTINDEPENDENT = 51,
-
-  D3DRENDERSTATE_STENCILENABLE      = 52,
-  D3DRENDERSTATE_STENCILFAIL        = 53,
-  D3DRENDERSTATE_STENCILZFAIL       = 54,
-  D3DRENDERSTATE_STENCILPASS        = 55,
-  D3DRENDERSTATE_STENCILFUNC        = 56,
-  D3DRENDERSTATE_STENCILREF         = 57,
-  D3DRENDERSTATE_STENCILMASK        = 58,
-  D3DRENDERSTATE_STENCILWRITEMASK   = 59,
-  D3DRENDERSTATE_TEXTUREFACTOR      = 60,
-
-  D3DRENDERSTATE_STIPPLEPATTERN00   = 64,
-  D3DRENDERSTATE_STIPPLEPATTERN01   = 65,
-  D3DRENDERSTATE_STIPPLEPATTERN02   = 66,
-  D3DRENDERSTATE_STIPPLEPATTERN03   = 67,
-  D3DRENDERSTATE_STIPPLEPATTERN04   = 68,
-  D3DRENDERSTATE_STIPPLEPATTERN05   = 69,
-  D3DRENDERSTATE_STIPPLEPATTERN06   = 70,
-  D3DRENDERSTATE_STIPPLEPATTERN07   = 71,
-  D3DRENDERSTATE_STIPPLEPATTERN08   = 72,
-  D3DRENDERSTATE_STIPPLEPATTERN09   = 73,
-  D3DRENDERSTATE_STIPPLEPATTERN10   = 74,
-  D3DRENDERSTATE_STIPPLEPATTERN11   = 75,
-  D3DRENDERSTATE_STIPPLEPATTERN12   = 76,
-  D3DRENDERSTATE_STIPPLEPATTERN13   = 77,
-  D3DRENDERSTATE_STIPPLEPATTERN14   = 78,
-  D3DRENDERSTATE_STIPPLEPATTERN15   = 79,
-  D3DRENDERSTATE_STIPPLEPATTERN16   = 80,
-  D3DRENDERSTATE_STIPPLEPATTERN17   = 81,
-  D3DRENDERSTATE_STIPPLEPATTERN18   = 82,
-  D3DRENDERSTATE_STIPPLEPATTERN19   = 83,
-  D3DRENDERSTATE_STIPPLEPATTERN20   = 84,
-  D3DRENDERSTATE_STIPPLEPATTERN21   = 85,
-  D3DRENDERSTATE_STIPPLEPATTERN22   = 86,
-  D3DRENDERSTATE_STIPPLEPATTERN23   = 87,
-  D3DRENDERSTATE_STIPPLEPATTERN24   = 88,
-  D3DRENDERSTATE_STIPPLEPATTERN25   = 89,
-  D3DRENDERSTATE_STIPPLEPATTERN26   = 90,
-  D3DRENDERSTATE_STIPPLEPATTERN27   = 91,
-  D3DRENDERSTATE_STIPPLEPATTERN28   = 92,
-  D3DRENDERSTATE_STIPPLEPATTERN29   = 93,
-  D3DRENDERSTATE_STIPPLEPATTERN30   = 94,
-  D3DRENDERSTATE_STIPPLEPATTERN31   = 95,
-
-  D3DRENDERSTATE_WRAP0              = 128,
-  D3DRENDERSTATE_WRAP1              = 129,
-  D3DRENDERSTATE_WRAP2              = 130,
-  D3DRENDERSTATE_WRAP3              = 131,
-  D3DRENDERSTATE_WRAP4              = 132,
-  D3DRENDERSTATE_WRAP5              = 133,
-  D3DRENDERSTATE_WRAP6              = 134,
-  D3DRENDERSTATE_WRAP7              = 135,
-  D3DRENDERSTATE_CLIPPING            = 136,
-  D3DRENDERSTATE_LIGHTING            = 137,
-  D3DRENDERSTATE_EXTENTS             = 138,
-  D3DRENDERSTATE_AMBIENT             = 139,
-  D3DRENDERSTATE_FOGVERTEXMODE       = 140,
-  D3DRENDERSTATE_COLORVERTEX         = 141,
-  D3DRENDERSTATE_LOCALVIEWER         = 142,
-  D3DRENDERSTATE_NORMALIZENORMALS    = 143,
-  D3DRENDERSTATE_COLORKEYBLENDENABLE = 144,
-  D3DRENDERSTATE_DIFFUSEMATERIALSOURCE    = 145,
-  D3DRENDERSTATE_SPECULARMATERIALSOURCE   = 146,
-  D3DRENDERSTATE_AMBIENTMATERIALSOURCE    = 147,
-  D3DRENDERSTATE_EMISSIVEMATERIALSOURCE   = 148,
-  D3DRENDERSTATE_VERTEXBLEND              = 151,
-  D3DRENDERSTATE_CLIPPLANEENABLE          = 152,
-
-  D3DRENDERSTATE_FORCE_DWORD        = 0x7fffffff
-
-  /* FIXME: We have some retired values that are being reused for DirectX 7 */
-} D3DRENDERSTATETYPE;
-
-typedef enum _D3DMATERIALCOLORSOURCE
-{
-    D3DMCS_MATERIAL = 0,
-    D3DMCS_COLOR1   = 1,
-    D3DMCS_COLOR2   = 2,
-    D3DMCS_FORCE_DWORD = 0x7fffffff
-} D3DMATERIALCOLORSOURCE;
-
-#define D3DRENDERSTATE_BLENDENABLE      D3DRENDERSTATE_ALPHABLENDENABLE
-#define D3DRENDERSTATE_WRAPBIAS                 128UL
-#define D3DWRAP_U   0x00000001L
-#define D3DWRAP_V   0x00000002L
-
-#define D3DWRAPCOORD_0   0x00000001L
-#define D3DWRAPCOORD_1   0x00000002L
-#define D3DWRAPCOORD_2   0x00000004L
-#define D3DWRAPCOORD_3   0x00000008L
-
-#define D3DRENDERSTATE_STIPPLEPATTERN(y) (D3DRENDERSTATE_STIPPLEPATTERN00 + (y))
-
-typedef struct _D3DSTATE {
-  union {
-    D3DTRANSFORMSTATETYPE dtstTransformStateType;
-    D3DLIGHTSTATETYPE     dlstLightStateType;
-    D3DRENDERSTATETYPE    drstRenderStateType;
-  } DUMMYUNIONNAME1;
-  union {
-    DWORD                 dwArg[1];
-    D3DVALUE              dvArg[1];
-  } DUMMYUNIONNAME2;
-} D3DSTATE, *LPD3DSTATE;
-
-typedef struct _D3DMATRIXLOAD {
-  D3DMATRIXHANDLE hDestMatrix;
-  D3DMATRIXHANDLE hSrcMatrix;
-} D3DMATRIXLOAD, *LPD3DMATRIXLOAD;
-
-typedef struct _D3DMATRIXMULTIPLY {
-  D3DMATRIXHANDLE hDestMatrix;
-  D3DMATRIXHANDLE hSrcMatrix1;
-  D3DMATRIXHANDLE hSrcMatrix2;
-} D3DMATRIXMULTIPLY, *LPD3DMATRIXMULTIPLY;
-
-typedef struct _D3DPROCESSVERTICES {
-  DWORD dwFlags;
-  WORD  wStart;
-  WORD  wDest;
-  DWORD dwCount;
-  DWORD dwReserved;
-} D3DPROCESSVERTICES, *LPD3DPROCESSVERTICES;
-
-#define D3DPROCESSVERTICES_TRANSFORMLIGHT       0x00000000L
-#define D3DPROCESSVERTICES_TRANSFORM            0x00000001L
-#define D3DPROCESSVERTICES_COPY                 0x00000002L
-#define D3DPROCESSVERTICES_OPMASK               0x00000007L
-
-#define D3DPROCESSVERTICES_UPDATEEXTENTS        0x00000008L
-#define D3DPROCESSVERTICES_NOCOLOR              0x00000010L
-
-typedef enum _D3DTEXTURESTAGESTATETYPE
-{
-    D3DTSS_COLOROP        =  1,
-    D3DTSS_COLORARG1      =  2,
-    D3DTSS_COLORARG2      =  3,
-    D3DTSS_ALPHAOP        =  4,
-    D3DTSS_ALPHAARG1      =  5,
-    D3DTSS_ALPHAARG2      =  6,
-    D3DTSS_BUMPENVMAT00   =  7,
-    D3DTSS_BUMPENVMAT01   =  8,
-    D3DTSS_BUMPENVMAT10   =  9,
-    D3DTSS_BUMPENVMAT11   = 10,
-    D3DTSS_TEXCOORDINDEX  = 11,
-    D3DTSS_ADDRESS        = 12,
-    D3DTSS_ADDRESSU       = 13,
-    D3DTSS_ADDRESSV       = 14,
-    D3DTSS_BORDERCOLOR    = 15,
-    D3DTSS_MAGFILTER      = 16,
-    D3DTSS_MINFILTER      = 17,
-    D3DTSS_MIPFILTER      = 18,
-    D3DTSS_MIPMAPLODBIAS  = 19,
-    D3DTSS_MAXMIPLEVEL    = 20,
-    D3DTSS_MAXANISOTROPY  = 21,
-    D3DTSS_BUMPENVLSCALE  = 22,
-    D3DTSS_BUMPENVLOFFSET = 23,
-    D3DTSS_TEXTURETRANSFORMFLAGS = 24,
-    D3DTSS_FORCE_DWORD   = 0x7fffffff
-} D3DTEXTURESTAGESTATETYPE;
-
-#define D3DTSS_TCI_PASSTHRU                             0x00000000
-#define D3DTSS_TCI_CAMERASPACENORMAL                    0x00010000
-#define D3DTSS_TCI_CAMERASPACEPOSITION                  0x00020000
-#define D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR          0x00030000
-
-typedef enum _D3DTEXTUREOP
-{
-    D3DTOP_DISABLE    = 1,
-    D3DTOP_SELECTARG1 = 2,
-    D3DTOP_SELECTARG2 = 3,
-
-    D3DTOP_MODULATE   = 4,
-    D3DTOP_MODULATE2X = 5,
-    D3DTOP_MODULATE4X = 6,
-
-    D3DTOP_ADD          =  7,
-    D3DTOP_ADDSIGNED    =  8,
-    D3DTOP_ADDSIGNED2X  =  9,
-    D3DTOP_SUBTRACT     = 10,
-    D3DTOP_ADDSMOOTH    = 11,
-
-    D3DTOP_BLENDDIFFUSEALPHA    = 12,
-    D3DTOP_BLENDTEXTUREALPHA    = 13,
-    D3DTOP_BLENDFACTORALPHA     = 14,
-    D3DTOP_BLENDTEXTUREALPHAPM  = 15,
-    D3DTOP_BLENDCURRENTALPHA    = 16,
-
-    D3DTOP_PREMODULATE            = 17,
-    D3DTOP_MODULATEALPHA_ADDCOLOR = 18,
-    D3DTOP_MODULATECOLOR_ADDALPHA = 19,
-    D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20,
-    D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21,
-
-    D3DTOP_BUMPENVMAP           = 22,
-    D3DTOP_BUMPENVMAPLUMINANCE  = 23,
-    D3DTOP_DOTPRODUCT3          = 24,
-
-    D3DTOP_FORCE_DWORD = 0x7fffffff
-} D3DTEXTUREOP;
-
-#define D3DTA_SELECTMASK        0x0000000f
-#define D3DTA_DIFFUSE           0x00000000
-#define D3DTA_CURRENT           0x00000001
-#define D3DTA_TEXTURE           0x00000002
-#define D3DTA_TFACTOR           0x00000003
-#define D3DTA_SPECULAR          0x00000004
-#define D3DTA_COMPLEMENT        0x00000010
-#define D3DTA_ALPHAREPLICATE    0x00000020
-
-typedef enum _D3DTEXTUREMAGFILTER
-{
-    D3DTFG_POINT        = 1,
-    D3DTFG_LINEAR       = 2,
-    D3DTFG_FLATCUBIC    = 3,
-    D3DTFG_GAUSSIANCUBIC = 4,
-    D3DTFG_ANISOTROPIC  = 5,
-    D3DTFG_FORCE_DWORD  = 0x7fffffff
-} D3DTEXTUREMAGFILTER;
-
-typedef enum _D3DTEXTUREMINFILTER
-{
-    D3DTFN_POINT        = 1,
-    D3DTFN_LINEAR       = 2,
-    D3DTFN_ANISOTROPIC  = 3,
-    D3DTFN_FORCE_DWORD  = 0x7fffffff
-} D3DTEXTUREMINFILTER;
-
-typedef enum _D3DTEXTUREMIPFILTER
-{
-    D3DTFP_NONE         = 1,
-    D3DTFP_POINT        = 2,
-    D3DTFP_LINEAR       = 3,
-    D3DTFP_FORCE_DWORD  = 0x7fffffff
-} D3DTEXTUREMIPFILTER;
-
-#define D3DTRIFLAG_START                        0x00000000L
-#define D3DTRIFLAG_STARTFLAT(len) (len)
-#define D3DTRIFLAG_ODD                          0x0000001eL
-#define D3DTRIFLAG_EVEN                         0x0000001fL
-
-#define D3DTRIFLAG_EDGEENABLE1                  0x00000100L
-#define D3DTRIFLAG_EDGEENABLE2                  0x00000200L
-#define D3DTRIFLAG_EDGEENABLE3                  0x00000400L
-#define D3DTRIFLAG_EDGEENABLETRIANGLE \
-        (D3DTRIFLAG_EDGEENABLE1 | D3DTRIFLAG_EDGEENABLE2 | D3DTRIFLAG_EDGEENABLE3)
-
-typedef struct _D3DTRIANGLE {
-  union {
-    WORD v1;
-    WORD wV1;
-  } DUMMYUNIONNAME1;
-  union {
-    WORD v2;
-    WORD wV2;
-  } DUMMYUNIONNAME2;
-  union {
-    WORD v3;
-    WORD wV3;
-  } DUMMYUNIONNAME3;
-  WORD     wFlags;
-} D3DTRIANGLE, *LPD3DTRIANGLE;
-
-typedef struct _D3DLINE {
-  union {
-    WORD v1;
-    WORD wV1;
-  } DUMMYUNIONNAME1;
-  union {
-    WORD v2;
-    WORD wV2;
-  } DUMMYUNIONNAME2;
-} D3DLINE, *LPD3DLINE;
-
-typedef struct _D3DSPAN {
-  WORD wCount;
-  WORD wFirst;
-} D3DSPAN, *LPD3DSPAN;
-
-typedef struct _D3DPOINT {
-  WORD wCount;
-  WORD wFirst;
-} D3DPOINT, *LPD3DPOINT;
-
-typedef struct _D3DBRANCH {
-  DWORD dwMask;
-  DWORD dwValue;
-  BOOL  bNegate;
-  DWORD dwOffset;
-} D3DBRANCH, *LPD3DBRANCH;
-
-typedef struct _D3DSTATUS {
-  DWORD   dwFlags;
-  DWORD   dwStatus;
-  D3DRECT drExtent;
-} D3DSTATUS, *LPD3DSTATUS;
-
-#define D3DSETSTATUS_STATUS   0x00000001L
-#define D3DSETSTATUS_EXTENTS  0x00000002L
-#define D3DSETSTATUS_ALL      (D3DSETSTATUS_STATUS | D3DSETSTATUS_EXTENTS)
-
-typedef struct _D3DCLIPSTATUS {
-  DWORD dwFlags;
-  DWORD dwStatus;
-  float minx, maxx;
-  float miny, maxy;
-  float minz, maxz;
-} D3DCLIPSTATUS, *LPD3DCLIPSTATUS;
-
-#define D3DCLIPSTATUS_STATUS        0x00000001L
-#define D3DCLIPSTATUS_EXTENTS2      0x00000002L
-#define D3DCLIPSTATUS_EXTENTS3      0x00000004L
-
-typedef struct {
-  DWORD        dwSize;
-  DWORD        dwTrianglesDrawn;
-  DWORD        dwLinesDrawn;
-  DWORD        dwPointsDrawn;
-  DWORD        dwSpansDrawn;
-  DWORD        dwVerticesProcessed;
-} D3DSTATS, *LPD3DSTATS;
-
-#define D3DEXECUTE_CLIPPED       0x00000001l
-#define D3DEXECUTE_UNCLIPPED     0x00000002l
-
-typedef struct _D3DEXECUTEDATA {
-  DWORD     dwSize;
-  DWORD     dwVertexOffset;
-  DWORD     dwVertexCount;
-  DWORD     dwInstructionOffset;
-  DWORD     dwInstructionLength;
-  DWORD     dwHVertexOffset;
-  D3DSTATUS dsStatus;
-} D3DEXECUTEDATA, *LPD3DEXECUTEDATA;
-
-#define D3DPAL_FREE 0x00
-#define D3DPAL_READONLY 0x40
-#define D3DPAL_RESERVED 0x80
-
-typedef struct _D3DVERTEXBUFFERDESC {
-  DWORD dwSize;
-  DWORD dwCaps;
-  DWORD dwFVF;
-  DWORD dwNumVertices;
-} D3DVERTEXBUFFERDESC, *LPD3DVERTEXBUFFERDESC;
-
-#define D3DVBCAPS_SYSTEMMEMORY      0x00000800l
-#define D3DVBCAPS_WRITEONLY         0x00010000l
-#define D3DVBCAPS_OPTIMIZED         0x80000000l
-#define D3DVBCAPS_DONOTCLIP         0x00000001l
-
-#define D3DVOP_LIGHT       (1 << 10)
-#define D3DVOP_TRANSFORM   (1 << 0)
-#define D3DVOP_CLIP        (1 << 2)
-#define D3DVOP_EXTENTS     (1 << 3)
-
-#define D3DMAXNUMVERTICES    ((1<<16) - 1)
-
-#define D3DMAXNUMPRIMITIVES  ((1<<16) - 1)
-
-#define D3DPV_DONOTCOPYDATA (1 << 0)
-
-#define D3DFVF_RESERVED0        0x001
-#define D3DFVF_POSITION_MASK    0x00E
-#define D3DFVF_XYZ              0x002
-#define D3DFVF_XYZRHW           0x004
-#define D3DFVF_XYZB1            0x006
-#define D3DFVF_XYZB2            0x008
-#define D3DFVF_XYZB3            0x00a
-#define D3DFVF_XYZB4            0x00c
-#define D3DFVF_XYZB5            0x00e
-
-#define D3DFVF_NORMAL           0x010
-#define D3DFVF_RESERVED1        0x020
-#define D3DFVF_DIFFUSE          0x040
-#define D3DFVF_SPECULAR         0x080
-#define D3DFVF_TEXCOUNT_MASK    0xf00
-#define D3DFVF_TEXCOUNT_SHIFT   8
-#define D3DFVF_TEX0             0x000
-#define D3DFVF_TEX1             0x100
-#define D3DFVF_TEX2             0x200
-#define D3DFVF_TEX3             0x300
-#define D3DFVF_TEX4             0x400
-#define D3DFVF_TEX5             0x500
-#define D3DFVF_TEX6             0x600
-#define D3DFVF_TEX7             0x700
-#define D3DFVF_TEX8             0x800
-
-#define D3DFVF_RESERVED2        0xf000
-
-#define D3DFVF_VERTEX ( D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX1 )
-#define D3DFVF_LVERTEX ( D3DFVF_XYZ | D3DFVF_RESERVED1 | D3DFVF_DIFFUSE | \
-                         D3DFVF_SPECULAR | D3DFVF_TEX1 )
-#define D3DFVF_TLVERTEX ( D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_SPECULAR | \
-                          D3DFVF_TEX1 )
-
-typedef struct _D3DDP_PTRSTRIDE {
-  LPVOID lpvData;
-  DWORD  dwStride;
-} D3DDP_PTRSTRIDE;
-
-#define D3DDP_MAXTEXCOORD 8
-
-typedef struct _D3DDRAWPRIMITIVESTRIDEDDATA  {
-  D3DDP_PTRSTRIDE position;
-  D3DDP_PTRSTRIDE normal;
-  D3DDP_PTRSTRIDE diffuse;
-  D3DDP_PTRSTRIDE specular;
-  D3DDP_PTRSTRIDE textureCoords[D3DDP_MAXTEXCOORD];
-} D3DDRAWPRIMITIVESTRIDEDDATA ,*LPD3DDRAWPRIMITIVESTRIDEDDATA;
-
-#define D3DVIS_INSIDE_FRUSTUM       0
-#define D3DVIS_INTERSECT_FRUSTUM    1
-#define D3DVIS_OUTSIDE_FRUSTUM      2
-#define D3DVIS_INSIDE_LEFT          0
-#define D3DVIS_INTERSECT_LEFT       (1 << 2)
-#define D3DVIS_OUTSIDE_LEFT         (2 << 2)
-#define D3DVIS_INSIDE_RIGHT         0
-#define D3DVIS_INTERSECT_RIGHT      (1 << 4)
-#define D3DVIS_OUTSIDE_RIGHT        (2 << 4)
-#define D3DVIS_INSIDE_TOP           0
-#define D3DVIS_INTERSECT_TOP        (1 << 6)
-#define D3DVIS_OUTSIDE_TOP          (2 << 6)
-#define D3DVIS_INSIDE_BOTTOM        0
-#define D3DVIS_INTERSECT_BOTTOM     (1 << 8)
-#define D3DVIS_OUTSIDE_BOTTOM       (2 << 8)
-#define D3DVIS_INSIDE_NEAR          0
-#define D3DVIS_INTERSECT_NEAR       (1 << 10)
-#define D3DVIS_OUTSIDE_NEAR         (2 << 10)
-#define D3DVIS_INSIDE_FAR           0
-#define D3DVIS_INTERSECT_FAR        (1 << 12)
-#define D3DVIS_OUTSIDE_FAR          (2 << 12)
-
-#define D3DVIS_MASK_FRUSTUM         (3 << 0)
-#define D3DVIS_MASK_LEFT            (3 << 2)
-#define D3DVIS_MASK_RIGHT           (3 << 4)
-#define D3DVIS_MASK_TOP             (3 << 6)
-#define D3DVIS_MASK_BOTTOM          (3 << 8)
-#define D3DVIS_MASK_NEAR            (3 << 10)
-#define D3DVIS_MASK_FAR             (3 << 12)
-
-#define D3DDEVINFOID_TEXTUREMANAGER    1
-#define D3DDEVINFOID_D3DTEXTUREMANAGER 2
-#define D3DDEVINFOID_TEXTURING         3
-
-typedef enum _D3DSTATEBLOCKTYPE
-{
-    D3DSBT_ALL           = 1,
-    D3DSBT_PIXELSTATE    = 2,
-    D3DSBT_VERTEXSTATE   = 3,
-    D3DSBT_FORCE_DWORD   = 0xffffffff
-} D3DSTATEBLOCKTYPE;
-
-typedef enum _D3DVERTEXBLENDFLAGS
-{
-    D3DVBLEND_DISABLE  = 0,
-    D3DVBLEND_1WEIGHT  = 1,
-    D3DVBLEND_2WEIGHTS = 2,
-    D3DVBLEND_3WEIGHTS = 3,
-} D3DVERTEXBLENDFLAGS;
-
-typedef enum _D3DTEXTURETRANSFORMFLAGS {
-    D3DTTFF_DISABLE         = 0,
-    D3DTTFF_COUNT1          = 1,
-    D3DTTFF_COUNT2          = 2,
-    D3DTTFF_COUNT3          = 3,
-    D3DTTFF_COUNT4          = 4,
-    D3DTTFF_PROJECTED       = 256,
-    D3DTTFF_FORCE_DWORD     = 0x7fffffff
-} D3DTEXTURETRANSFORMFLAGS;
-
-#define D3DFVF_TEXTUREFORMAT2 0
-#define D3DFVF_TEXTUREFORMAT1 3
-#define D3DFVF_TEXTUREFORMAT3 1
-#define D3DFVF_TEXTUREFORMAT4 2
-
-#define D3DFVF_TEXCOORDSIZE3(CoordIndex) (D3DFVF_TEXTUREFORMAT3 << (CoordIndex*2 + 16))
-#define D3DFVF_TEXCOORDSIZE2(CoordIndex) (D3DFVF_TEXTUREFORMAT2)
-#define D3DFVF_TEXCOORDSIZE4(CoordIndex) (D3DFVF_TEXTUREFORMAT4 << (CoordIndex*2 + 16))
-#define D3DFVF_TEXCOORDSIZE1(CoordIndex) (D3DFVF_TEXTUREFORMAT1 << (CoordIndex*2 + 16))
-
-#endif
diff --git a/misc/builddeps/win32/dx/include/d3dvec.inl b/misc/builddeps/win32/dx/include/d3dvec.inl
deleted file mode 100644 (file)
index 9418dd2..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (C) 2000 Ove Kaaven
- *
- * 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_D3DVEC_INL
-#define __WINE_D3DVEC_INL
-
-/*** constructors ***/
-
-inline _D3DVECTOR::_D3DVECTOR(D3DVALUE f)
-{
-  x = y = z = f;
-}
-
-inline _D3DVECTOR::_D3DVECTOR(D3DVALUE _x, D3DVALUE _y, D3DVALUE _z)
-{
-  x = _x; y = _y; z = _z;
-}
-
-/*** assignment operators ***/
-
-inline _D3DVECTOR& _D3DVECTOR::operator += (const _D3DVECTOR& v)
-{
-  x += v.x; y += v.y; z += v.z;
-  return *this;
-}
-
-inline _D3DVECTOR& _D3DVECTOR::operator -= (const _D3DVECTOR& v)
-{
-  x -= v.x; y -= v.y; z -= v.z;
-  return *this;
-}
-
-inline _D3DVECTOR& _D3DVECTOR::operator *= (const _D3DVECTOR& v)
-{
-  x *= v.x; y *= v.y; z *= v.z;
-  return *this;
-}
-
-inline _D3DVECTOR& _D3DVECTOR::operator /= (const _D3DVECTOR& v)
-{
-  x /= v.x; y /= v.y; z /= v.z;
-  return *this;
-}
-
-inline _D3DVECTOR& _D3DVECTOR::operator *= (D3DVALUE s)
-{
-  x *= s; y *= s; z *= s;
-  return *this;
-}
-
-inline _D3DVECTOR& _D3DVECTOR::operator /= (D3DVALUE s)
-{
-  x /= s; y /= s; z /= s;
-  return *this;
-}
-
-/*** unary operators ***/
-
-inline _D3DVECTOR operator + (const _D3DVECTOR& v)
-{
-  return v;
-}
-
-inline _D3DVECTOR operator - (const _D3DVECTOR& v)
-{
-  return _D3DVECTOR(-v.x, -v.y, -v.z);
-}
-
-/*** binary operators ***/
-
-inline _D3DVECTOR operator + (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
-{
-  return _D3DVECTOR(v1.x+v2.x, v1.y+v2.y, v1.z+v2.z);
-}
-
-inline _D3DVECTOR operator - (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
-{
-  return _D3DVECTOR(v1.x-v2.x, v1.y-v2.y, v1.z-v2.z);
-}
-
-inline _D3DVECTOR operator * (const _D3DVECTOR& v, D3DVALUE s)
-{
-  return _D3DVECTOR(v.x*s, v.y*s, v.z*s);
-}
-
-inline _D3DVECTOR operator * (D3DVALUE s, const _D3DVECTOR& v)
-{
-  return _D3DVECTOR(v.x*s, v.y*s, v.z*s);
-}
-
-inline _D3DVECTOR operator / (const _D3DVECTOR& v, D3DVALUE s)
-{
-  return _D3DVECTOR(v.x/s, v.y/s, v.z/s);
-}
-
-inline D3DVALUE SquareMagnitude(const _D3DVECTOR& v)
-{
-  return v.x*v.x + v.y*v.y + v.z*v.z; /* DotProduct(v, v) */
-}
-
-inline D3DVALUE Magnitude(const _D3DVECTOR& v)
-{
-  return sqrt(SquareMagnitude(v));
-}
-
-inline _D3DVECTOR Normalize(const _D3DVECTOR& v)
-{
-  return v / Magnitude(v);
-}
-
-inline D3DVALUE DotProduct(const _D3DVECTOR& v1, const _D3DVECTOR& v2)
-{
-  return v1.x*v2.x + v1.y*v2.y + v1.z*v2.z;
-}
-
-inline _D3DVECTOR CrossProduct(const _D3DVECTOR& v1, const _D3DVECTOR& v2)
-{
-  _D3DVECTOR res;
-  /* this is a left-handed cross product, right? */
-  res.x = v1.y * v2.z - v1.z * v2.y;
-  res.y = v1.z * v2.x - v1.x * v2.z;
-  res.z = v1.x * v2.y - v1.y * v2.x;
-  return res;
-}
-
-#endif
diff --git a/misc/builddeps/win32/dx/include/d3dx9.h b/misc/builddeps/win32/dx/include/d3dx9.h
deleted file mode 100644 (file)
index 09ae553..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2007 David Adam
- *
- * 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 __D3DX9_H__
-#define __D3DX9_H__
-
-#include <limits.h>
-
-#define D3DX_DEFAULT         ((UINT)-1)
-#define D3DX_DEFAULT_NONPOW2 ((UINT)-2)
-#define D3DX_DEFAULT_FLOAT   FLT_MAX
-#define D3DX_FROM_FILE       ((UINT)-3)
-#define D3DFMT_FROM_FILE     ((D3DFORMAT)-3)
-
-#include "d3d9.h"
-#include "d3dx9math.h"
-#include "d3dx9core.h"
-#include "d3dx9mesh.h"
-#include "d3dx9shader.h"
-#include "d3dx9effect.h"
-#include "d3dx9shape.h"
-#include "d3dx9tex.h"
-
-#define _FACDD 0x876
-#define MAKE_DDHRESULT(code) MAKE_HRESULT(1, _FACDD, code)
-
-enum _D3DXERR {
-    D3DXERR_CANNOTMODIFYINDEXBUFFER = MAKE_DDHRESULT(2900),
-    D3DXERR_INVALIDMESH             = MAKE_DDHRESULT(2901),
-    D3DXERR_CANNOTATTRSORT          = MAKE_DDHRESULT(2902),
-    D3DXERR_SKINNINGNOTSUPPORTED    = MAKE_DDHRESULT(2903),
-    D3DXERR_TOOMANYINFLUENCES       = MAKE_DDHRESULT(2904),
-    D3DXERR_INVALIDDATA             = MAKE_DDHRESULT(2905),
-    D3DXERR_LOADEDMESHASNODATA      = MAKE_DDHRESULT(2906),
-    D3DXERR_DUPLICATENAMEDFRAGMENT  = MAKE_DDHRESULT(2907),
-    D3DXERR_CANNOTREMOVELASTITEM    = MAKE_DDHRESULT(2908),
-};
-
-#endif
diff --git a/misc/builddeps/win32/dx/include/d3dx9core.h b/misc/builddeps/win32/dx/include/d3dx9core.h
deleted file mode 100644 (file)
index c1b948e..0000000
+++ /dev/null
@@ -1,496 +0,0 @@
-/*
- * Copyright (C) 2007, 2008 Tony Wasserka
- *
- * 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
- */
-
-#include <_mingw_dxhelper.h>
-#include <d3dx9.h>
-
-#ifndef __WINE_D3DX9CORE_H
-#define __WINE_D3DX9CORE_H
-
-/**********************************************
- ***************** Definitions ****************
- **********************************************/
-/* D3DX_VERSION will be completely ignored since we are
-    implementing all dlls from d3dx9_24 to d3dx9_36 */
-#define D3DX_VERSION 0x0902
-#define D3DX_SDK_VERSION 36
-#define D3DXSPRITE_DONOTSAVESTATE           1
-#define D3DXSPRITE_DONOTMODIFY_RENDERSTATE  2
-#define D3DXSPRITE_OBJECTSPACE              4
-#define D3DXSPRITE_BILLBOARD                8
-#define D3DXSPRITE_ALPHABLEND              16
-#define D3DXSPRITE_SORT_TEXTURE            32
-#define D3DXSPRITE_SORT_DEPTH_FRONTTOBACK  64
-#define D3DXSPRITE_SORT_DEPTH_BACKTOFRONT 128
-#define D3DXSPRITE_DO_NOT_ADDREF_TEXTURE  256
-
-/**********************************************
- ******************** GUIDs *******************
- **********************************************/
-DEFINE_GUID(IID_ID3DXBuffer, 0x8ba5fb08, 0x5195, 0x40e2, 0xac, 0x58, 0xd, 0x98, 0x9c, 0x3a, 0x1, 0x2);
-DEFINE_GUID(IID_ID3DXFont, 0xd79dbb70, 0x5f21, 0x4d36, 0xbb, 0xc2, 0xff, 0x52, 0x5c, 0x21, 0x3c, 0xdc);
-DEFINE_GUID(IID_ID3DXLine, 0xd379ba7f, 0x9042, 0x4ac4, 0x9f, 0x5e, 0x58, 0x19, 0x2a, 0x4c, 0x6b, 0xd8);
-DEFINE_GUID(IID_ID3DXRenderToEnvMap, 0x313f1b4b, 0xc7b0, 0x4fa2, 0x9d, 0x9d, 0x8d, 0x38, 0xb, 0x64, 0x38, 0x5e);
-DEFINE_GUID(IID_ID3DXRenderToSurface, 0x6985f346, 0x2c3d, 0x43b3, 0xbe, 0x8b, 0xda, 0xae, 0x8a, 0x3, 0xd8, 0x94);
-DEFINE_GUID(IID_ID3DXSprite, 0xba0b762d, 0x7d28, 0x43ec, 0xb9, 0xdc, 0x2f, 0x84, 0x44, 0x3b, 0x6, 0x14);
-
-/**********************************************
- ****************** typedefs ******************
- **********************************************/
-typedef struct ID3DXBuffer *LPD3DXBUFFER;
-typedef struct ID3DXFont *LPD3DXFONT;
-typedef struct ID3DXLine *LPD3DXLINE;
-typedef struct ID3DXRenderToEnvMap *LPD3DXRenderToEnvMap;
-typedef struct ID3DXRenderToSurface *LPD3DXRENDERTOSURFACE;
-typedef struct ID3DXSprite *LPD3DXSPRITE;
-
-/**********************************************
- *********** interface declarations ***********
- **********************************************/
-#define INTERFACE ID3DXBuffer
-DECLARE_INTERFACE_(ID3DXBuffer, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID *object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-    /*** ID3DXBuffer methods ***/
-    STDMETHOD_(LPVOID, GetBufferPointer)(THIS) PURE;
-    STDMETHOD_(DWORD, GetBufferSize)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define ID3DXBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define ID3DXBuffer_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define ID3DXBuffer_Release(p)            (p)->lpVtbl->Release(p)
-/*** ID3DXBuffer methods ***/
-#define ID3DXBuffer_GetBufferPointer(p)   (p)->lpVtbl->GetBufferPointer(p)
-#define ID3DXBuffer_GetBufferSize(p)      (p)->lpVtbl->GetBufferSize(p)
-#else
-/*** IUnknown methods ***/
-#define ID3DXBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define ID3DXBuffer_AddRef(p)             (p)->AddRef()
-#define ID3DXBuffer_Release(p)            (p)->Release()
-/*** ID3DXBuffer methods ***/
-#define ID3DXBuffer_GetBufferPointer(p)   (p)->GetBufferPointer()
-#define ID3DXBuffer_GetBufferSize(p)      (p)->GetBufferSize()
-#endif
-
-typedef struct _D3DXFONT_DESCA
-{
-    INT Height;
-    UINT Width;
-    UINT Weight;
-    UINT MipLevels;
-    BOOL Italic;
-    BYTE CharSet;
-    BYTE OutputPrecision;
-    BYTE Quality;
-    BYTE PitchAndFamily;
-    CHAR FaceName[LF_FACESIZE];
-} D3DXFONT_DESCA, *LPD3DXFONT_DESCA;
-
-typedef struct _D3DXFONT_DESCW
-{
-    INT Height;
-    UINT Width;
-    UINT Weight;
-    UINT MipLevels;
-    BOOL Italic;
-    BYTE CharSet;
-    BYTE OutputPrecision;
-    BYTE Quality;
-    BYTE PitchAndFamily;
-    WCHAR FaceName[LF_FACESIZE];
-} D3DXFONT_DESCW, *LPD3DXFONT_DESCW;
-
-DECL_WINELIB_TYPE_AW(D3DXFONT_DESC)
-DECL_WINELIB_TYPE_AW(LPD3DXFONT_DESC)
-
-#define INTERFACE ID3DXFont
-DECLARE_INTERFACE_(ID3DXFont, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-    /*** ID3DXFont methods ***/
-    STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9 *device) PURE;
-    STDMETHOD(GetDescA)(THIS_ D3DXFONT_DESCA *desc) PURE;
-    STDMETHOD(GetDescW)(THIS_ D3DXFONT_DESCW *desc) PURE;
-    STDMETHOD_(BOOL, GetTextMetricsA)(THIS_ TEXTMETRICA *metrics) PURE;
-    STDMETHOD_(BOOL, GetTextMetricsW)(THIS_ TEXTMETRICW *metrics) PURE;
-
-    STDMETHOD_(HDC, GetDC)(THIS) PURE;
-    STDMETHOD(GetGlyphData)(THIS_ UINT glyph, LPDIRECT3DTEXTURE9 *texture, RECT *blackbox, POINT *cellinc) PURE;
-
-    STDMETHOD(PreloadCharacters)(THIS_ UINT first, UINT last) PURE;
-    STDMETHOD(PreloadGlyphs)(THIS_ UINT first, UINT last) PURE;
-    STDMETHOD(PreloadTextA)(THIS_ LPCSTR string, INT count) PURE;
-    STDMETHOD(PreloadTextW)(THIS_ LPCWSTR string, INT count) PURE;
-
-    STDMETHOD_(INT, DrawTextA)(THIS_ LPD3DXSPRITE sprite, LPCSTR string, INT count, LPRECT rect, DWORD format, D3DCOLOR color) PURE;
-    STDMETHOD_(INT, DrawTextW)(THIS_ LPD3DXSPRITE sprite, LPCWSTR string, INT count, LPRECT rect, DWORD format, D3DCOLOR color) PURE;
-
-    STDMETHOD(OnLostDevice)(THIS) PURE;
-    STDMETHOD(OnResetDevice)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-
-/*** IUnknown methods ***/
-#define ID3DXFont_QueryInterface(p,a,b)    (p)->lpVtbl->QueryInterface(p,a,b)
-#define ID3DXFont_AddRef(p)                (p)->lpVtbl->AddRef(p)
-#define ID3DXFont_Release(p)               (p)->lpVtbl->Release(p)
-/*** ID3DXFont methods ***/
-#define ID3DXFont_GetDevice(p,a)           (p)->lpVtbl->GetDevice(p,a)
-#define ID3DXFont_GetDescA(p,a)            (p)->lpVtbl->GetDescA(p,a)
-#define ID3DXFont_GetDescW(p,a)            (p)->lpVtbl->GetDescW(p,a)
-#define ID3DXFont_GetTextMetricsA(p,a)     (p)->lpVtbl->GetTextMetricsA(p,a)
-#define ID3DXFont_GetTextMetricsW(p,a)     (p)->lpVtbl->GetTextMetricsW(p,a)
-#define ID3DXFont_GetDC(p)                 (p)->lpVtbl->GetDC(p)
-#define ID3DXFont_GetGlyphData(p,a,b,c,d)  (p)->lpVtbl->GetGlyphData(p,a,b,c,d)
-#define ID3DXFont_PreloadCharacters(p,a,b) (p)->lpVtbl->PreloadCharacters(p,a,b)
-#define ID3DXFont_PreloadGlyphs(p,a,b)     (p)->lpVtbl->PreloadGlyphs(p,a,b)
-#define ID3DXFont_PreloadTextA(p,a,b)      (p)->lpVtbl->PreloadTextA(p,a,b)
-#define ID3DXFont_PreloadTextW(p,a,b)      (p)->lpVtbl->PreloadTextW(p,a,b)
-#define ID3DXFont_DrawTextA(p,a,b,c,d,e,f) (p)->lpVtbl->DrawTextA(p,a,b,c,d,e,f)
-#define ID3DXFont_DrawTextW(p,a,b,c,d,e,f) (p)->lpVtbl->DrawTextW(p,a,b,c,d,e,f)
-#define ID3DXFont_OnLostDevice(p)          (p)->lpVtbl->OnLostDevice(p)
-#define ID3DXFont_OnResetDevice(p)         (p)->lpVtbl->OnResetDevice(p)
-#else
-/*** IUnknown methods ***/
-#define ID3DXFont_QueryInterface(p,a,b)    (p)->QueryInterface(a,b)
-#define ID3DXFont_AddRef(p)                (p)->AddRef()
-#define ID3DXFont_Release(p)               (p)->Release()
-/*** ID3DXFont methods ***/
-#define ID3DXFont_GetDevice(p,a)           (p)->GetDevice(a)
-#define ID3DXFont_GetDescA(p,a)            (p)->GetDescA(a)
-#define ID3DXFont_GetDescW(p,a)            (p)->GetDescW(a)
-#define ID3DXFont_GetTextMetricsA(p,a)     (p)->GetTextMetricsA(a)
-#define ID3DXFont_GetTextMetricsW(p,a)     (p)->GetTextMetricsW(a)
-#define ID3DXFont_GetDC(p)                 (p)->GetDC()
-#define ID3DXFont_GetGlyphData(p,a,b,c,d)  (p)->GetGlyphData(a,b,c,d)
-#define ID3DXFont_PreloadCharacters(p,a,b) (p)->PreloadCharacters(a,b)
-#define ID3DXFont_PreloadGlyphs(p,a,b)     (p)->PreloadGlyphs(a,b)
-#define ID3DXFont_PreloadTextA(p,a,b)      (p)->PreloadTextA(a,b)
-#define ID3DXFont_PreloadTextW(p,a,b)      (p)->PreloadTextW(a,b)
-#define ID3DXFont_DrawTextA(p,a,b,c,d,e,f) (p)->DrawTextA(a,b,c,d,e,f)
-#define ID3DXFont_DrawTextW(p,a,b,c,d,e,f) (p)->DrawTextW(a,b,c,d,e,f)
-#define ID3DXFont_OnLostDevice(p)          (p)->OnLostDevice()
-#define ID3DXFont_OnResetDevice(p)         (p)->OnResetDevice()
-#endif
-#define ID3DXFont_DrawText       WINELIB_NAME_AW(ID3DXFont_DrawText)
-#define ID3DXFont_GetDesc        WINELIB_NAME_AW(ID3DXFont_GetDesc)
-#define ID3DXFont_GetTextMetrics WINELIB_NAME_AW(ID3DXFont_GetTextMetrics)
-#define ID3DXFont_PreloadText    WINELIB_NAME_AW(ID3DXFont_PreloadText)
-
-#define INTERFACE ID3DXLine
-DECLARE_INTERFACE_(ID3DXLine, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /*** ID3DXLine methods ***/
-    STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9 *device) PURE;
-
-    STDMETHOD(Begin)(THIS) PURE;
-    STDMETHOD(Draw)(THIS_ CONST D3DXVECTOR2 *vertexlist, DWORD vertexlistcount, D3DCOLOR color) PURE;
-    STDMETHOD(DrawTransform)(THIS_ CONST D3DXVECTOR3 *vertexlist, DWORD vertexlistcount,
-                             CONST D3DXMATRIX *transform, D3DCOLOR color) PURE;
-    STDMETHOD(SetPattern)(THIS_ DWORD pattern) PURE;
-    STDMETHOD_(DWORD, GetPattern)(THIS) PURE;
-    STDMETHOD(SetPatternScale)(THIS_ FLOAT scale) PURE;
-    STDMETHOD_(FLOAT, GetPatternScale)(THIS) PURE;
-    STDMETHOD(SetWidth)(THIS_ FLOAT width) PURE;
-    STDMETHOD_(FLOAT, GetWidth)(THIS) PURE;
-    STDMETHOD(SetAntialias)(THIS_ BOOL antialias) PURE;
-    STDMETHOD_(BOOL, GetAntialias)(THIS) PURE;
-    STDMETHOD(SetGLLines)(THIS_ BOOL gl_lines) PURE;
-    STDMETHOD_(BOOL, GetGLLines)(THIS) PURE;
-    STDMETHOD(End)(THIS) PURE;
-
-    STDMETHOD(OnLostDevice)(THIS) PURE;
-    STDMETHOD(OnResetDevice)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define ID3DXLine_QueryInterface(p,a,b)    (p)->lpVtbl->QueryInterface(p,a,b)
-#define ID3DXLine_AddRef(p)                (p)->lpVtbl->AddRef(p)
-#define ID3DXLine_Release(p)               (p)->lpVtbl->Release(p)
-/*** ID3DXLine methods ***/
-#define ID3DXLine_GetDevice(p,a)           (p)->lpVtbl->GetDevice(p,a)
-#define ID3DXLine_Begin(p)                 (p)->lpVtbl->Begin(p)
-#define ID3DXLine_Draw(p,a,b,c)            (p)->lpVtbl->Draw(p,a,b,c)
-#define ID3DXLine_DrawTransform(p,a,b,c,d) (p)->lpVtbl->DrawTransform(p,a,b,c,d)
-#define ID3DXLine_SetPattern(p,a)          (p)->lpVtbl->SetPattern(p,a)
-#define ID3DXLine_GetPattern(p)            (p)->lpVtbl->GetPattern(p)
-#define ID3DXLine_SetPatternScale(p,a)     (p)->lpVtbl->SetPatternScale(p,a)
-#define ID3DXLine_GetPatternScale(p)       (p)->lpVtbl->GetPatternScale(p)
-#define ID3DXLine_SetWidth(p,a)            (p)->lpVtbl->SetWidth(p,a)
-#define ID3DXLine_GetWidth(p)              (p)->lpVtbl->GetWidth(p)
-#define ID3DXLine_SetAntialias(p,a)        (p)->lpVtbl->SetAntialias(p,a)
-#define ID3DXLine_GetAntialias(p)          (p)->lpVtbl->GetAntialias(p)
-#define ID3DXLine_SetGLLines(p,a)          (p)->lpVtbl->SetGLLines(p,a)
-#define ID3DXLine_GetGLLines(p)            (p)->lpVtbl->GetGLLines(p)
-#define ID3DXLine_End(p)                   (p)->lpVtbl->End(p)
-#define ID3DXLine_OnLostDevice(p)          (p)->lpVtbl->OnLostDevice(p)
-#define ID3DXLine_OnResetDevice(p)         (p)->lpVtbl->OnResetDevice(p)
-#else
-/*** IUnknown methods ***/
-#define ID3DXLine_QueryInterface(p,a,b)    (p)->QueryInterface(a,b)
-#define ID3DXLine_AddRef(p)                (p)->AddRef()
-#define ID3DXLine_Release(p)               (p)->Release()
-/*** ID3DXLine methods ***/
-#define ID3DXLine_GetDevice(p,a)           (p)->GetDevice(a)
-#define ID3DXLine_Begin(p)                 (p)->Begin()
-#define ID3DXLine_Draw(p,a,b,c)            (p)->Draw(a,b,c)
-#define ID3DXLine_DrawTransform(p,a,b,c,d) (p)->DrawTransform(a,b,c,d)
-#define ID3DXLine_SetPattern(p,a)          (p)->SetPattern(a)
-#define ID3DXLine_GetPattern(p)            (p)->GetPattern()
-#define ID3DXLine_SetPatternScale(p,a)     (p)->SetPatternScale(a)
-#define ID3DXLine_GetPatternScale(p)       (p)->GetPatternScale()
-#define ID3DXLine_SetWidth(p,a)            (p)->SetWidth(a)
-#define ID3DXLine_GetWidth(p)              (p)->GetWidth()
-#define ID3DXLine_SetAntialias(p,a)        (p)->SetAntialias(a)
-#define ID3DXLine_GetAntialias(p)          (p)->GetAntialias()
-#define ID3DXLine_SetGLLines(p,a)          (p)->SetGLLines(a)
-#define ID3DXLine_GetGLLines(p)            (p)->GetGLLines()
-#define ID3DXLine_End(p)                   (p)->End()
-#define ID3DXLine_OnLostDevice(p)          (p)->OnLostDevice()
-#define ID3DXLine_OnResetDevice(p)         (p)->OnResetDevice()
-#endif
-
-typedef struct _D3DXRTE_DESC
-{
-    UINT Size;
-    UINT MipLevels;
-    D3DFORMAT Format;
-    BOOL DepthStencil;
-    D3DFORMAT DepthStencilFormat;
-} D3DXRTE_DESC;
-
-#define INTERFACE ID3DXRenderToEnvMap
-DECLARE_INTERFACE_(ID3DXRenderToEnvMap, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /*** ID3DXRenderToEnvMap methods ***/
-    STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9 *device) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3DXRTE_DESC *desc) PURE;
-
-    STDMETHOD(BeginCube)(THIS_ LPDIRECT3DCUBETEXTURE9 cubetex) PURE;
-    STDMETHOD(BeginSphere)(THIS_ LPDIRECT3DTEXTURE9 tex) PURE;
-    STDMETHOD(BeginHemisphere)(THIS_ LPDIRECT3DTEXTURE9 texzpos, LPDIRECT3DTEXTURE9 texzneg) PURE;
-    STDMETHOD(BeginParabolic)(THIS_ LPDIRECT3DTEXTURE9 texzpos, LPDIRECT3DTEXTURE9 texzneg) PURE;
-
-    STDMETHOD(Face)(THIS_ D3DCUBEMAP_FACES face, DWORD mipfilter) PURE;
-    STDMETHOD(End)(THIS_ DWORD mipfilter) PURE;
-
-    STDMETHOD(OnLostDevice)(THIS) PURE;
-    STDMETHOD(OnResetDevice)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define ID3DXRenderToEnvMap_QueryInterface(p,a,b)  (p)->lpVtbl->QueryInterface(p,a,b)
-#define ID3DXRenderToEnvMap_AddRef(p)              (p)->lpVtbl->AddRef(p)
-#define ID3DXRenderToEnvMap_Release(p)             (p)->lpVtbl->Release(p)
-/*** ID3DXRenderToEnvMap methods ***/
-#define ID3DXRenderToEnvMap_GetDevice(p,a)         (p)->lpVtbl->GetDevice(p,a)
-#define ID3DXRenderToEnvMap_GetDesc(p,a)           (p)->lpVtbl->GetDesc(p,a)
-#define ID3DXRenderToEnvMap_BeginCube(p,a)         (p)->lpVtbl->BeginCube(p,a)
-#define ID3DXRenderToEnvMap_BeginSphere(p,a)       (p)->lpVtbl->BeginSphere(p,a)
-#define ID3DXRenderToEnvMap_BeginHemisphere(p,a,b) (p)->lpVtbl->BeginHemisphere(p,a,b)
-#define ID3DXRenderToEnvMap_BeginParabolic(p,a,b)  (p)->lpVtbl->BeginParabolic(p,a,b)
-#define ID3DXRenderToEnvMap_Face(p,a,b)            (p)->lpVtbl->Face(p,a,b)
-#define ID3DXRenderToEnvMap_End(p,a)               (p)->lpVtbl->End(p,a)
-#define ID3DXRenderToEnvMap_OnLostDevice(p)        (p)->lpVtbl->OnLostDevice(p)
-#define ID3DXRenderToEnvMap_OnLostDevice(p)        (p)->lpVtbl->OnLostDevice(p)
-#else
-/*** IUnknown methods ***/
-#define ID3DXRenderToEnvMap_QueryInterface(p,a,b)  (p)->QueryInterface(a,b)
-#define ID3DXRenderToEnvMap_AddRef(p)              (p)->AddRef()
-#define ID3DXRenderToEnvMap_Release(p)             (p)->Release()
-/*** ID3DXRenderToEnvMap methods ***/
-#define ID3DXRenderToEnvMap_GetDevice(p,a)         (p)->GetDevice(a)
-#define ID3DXRenderToEnvMap_GetDesc(p,a)           (p)->GetDesc(a)
-#define ID3DXRenderToEnvMap_BeginCube(p,a)         (p)->BeginCube(a)
-#define ID3DXRenderToEnvMap_BeginSphere(p,a)       (p)->BeginSphere(a)
-#define ID3DXRenderToEnvMap_BeginHemisphere(p,a,b) (p)->BeginHemisphere(a,b)
-#define ID3DXRenderToEnvMap_BeginParabolic(p,a,b)  (p)->BeginParabolic(a,b)
-#define ID3DXRenderToEnvMap_Face(p,a,b)            (p)->Face(a,b)
-#define ID3DXRenderToEnvMap_End(p,a)               (p)->End(a)
-#define ID3DXRenderToEnvMap_OnLostDevice(p)        (p)->OnLostDevice()
-#define ID3DXRenderToEnvMap_OnLostDevice(p)        (p)->OnLostDevice()
-#endif
-
-typedef struct _D3DXRTS_DESC
-{
-    UINT Width;
-    UINT Height;
-    D3DFORMAT Format;
-    BOOL DepthStencil;
-    D3DFORMAT DepthStencilFormat;
-} D3DXRTS_DESC;
-
-#define INTERFACE ID3DXRenderToSurface
-DECLARE_INTERFACE_(ID3DXRenderToSurface, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID *object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-    /*** ID3DXRenderToSurface methods ***/
-    STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9 *device) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3DXRTS_DESC *desc) PURE;
-
-    STDMETHOD(BeginScene)(THIS_ LPDIRECT3DSURFACE9 surface, CONST D3DVIEWPORT9 *viewport) PURE;
-    STDMETHOD(EndScene)(THIS_ DWORD mipfilter) PURE;
-
-    STDMETHOD(OnLostDevice)(THIS) PURE;
-    STDMETHOD(OnResetDevice)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define ID3DXRenderToSurface_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define ID3DXRenderToSurface_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define ID3DXRenderToSurface_Release(p)            (p)->lpVtbl->Release(p)
-/*** ID3DXRenderToSurface methods ***/
-#define ID3DXRenderToSurface_GetDevice(p,a)        (p)->lpVtbl->GetDevice(p,a)
-#define ID3DXRenderToSurface_GetDesc(p,a)          (p)->lpVtbl->GetDesc(p,a)
-#define ID3DXRenderToSurface_BeginScene(p,a,b)     (p)->lpVtbl->BeginScene(p,a,b)
-#define ID3DXRenderToSurface_EndScene(p,a)         (p)->lpVtbl->EndScene(p,a)
-#define ID3DXRenderToSurface_OnLostDevice(p)       (p)->lpVtbl->OnLostDevice(p)
-#define ID3DXRenderToSurface_OnResetDevice(p)      (p)->lpVtbl->OnResetDevice(p)
-#else
-/*** IUnknown methods ***/
-#define ID3DXRenderToSurface_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define ID3DXRenderToSurface_AddRef(p)             (p)->AddRef()
-#define ID3DXRenderToSurface_Release(p)            (p)->Release()
-/*** ID3DXRenderToSurface methods ***/
-#define ID3DXRenderToSurface_GetDevice(p,a)        (p)->GetDevice(a)
-#define ID3DXRenderToSurface_GetDesc(p,a)          (p)->GetDesc(a)
-#define ID3DXRenderToSurface_BeginScene(p,a,b)     (p)->BeginScene(a,b)
-#define ID3DXRenderToSurface_EndScene(p,a)         (p)->EndScene(a)
-#define ID3DXRenderToSurface_OnLostDevice(p)       (p)->OnLostDevice()
-#define ID3DXRenderToSurface_OnResetDevice(p)      (p)->OnResetDevice()
-#endif
-
-#define INTERFACE ID3DXSprite
-DECLARE_INTERFACE_(ID3DXSprite, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-    /*** ID3DXSprite methods ***/
-    STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9 *device) PURE;
-
-    STDMETHOD(GetTransform)(THIS_ D3DXMATRIX *transform) PURE;
-    STDMETHOD(SetTransform)(THIS_ CONST D3DXMATRIX *transform) PURE;
-    STDMETHOD(SetWorldViewRH)(THIS_ CONST D3DXMATRIX *world, CONST D3DXMATRIX *view) PURE;
-    STDMETHOD(SetWorldViewLH)(THIS_ CONST D3DXMATRIX *world, CONST D3DXMATRIX *view) PURE;
-
-    STDMETHOD(Begin)(THIS_ DWORD flags) PURE;
-    STDMETHOD(Draw)(THIS_ LPDIRECT3DTEXTURE9 texture, CONST RECT *rect, CONST D3DXVECTOR3 *center, CONST D3DXVECTOR3 *position, D3DCOLOR color) PURE;
-    STDMETHOD(Flush)(THIS) PURE;
-    STDMETHOD(End)(THIS) PURE;
-
-    STDMETHOD(OnLostDevice)(THIS) PURE;
-    STDMETHOD(OnResetDevice)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define ID3DXSprite_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define ID3DXSprite_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define ID3DXSprite_Release(p)            (p)->lpVtbl->Release(p)
-/*** ID3DXSprite methods ***/
-#define ID3DXSprite_GetDevice(p,a)        (p)->lpVtbl->GetDevice(p,a)
-#define ID3DXSprite_GetTransform(p,a)     (p)->lpVtbl->GetTransform(p,a)
-#define ID3DXSprite_SetTransform(p,a)     (p)->lpVtbl->SetTransform(p,a)
-#define ID3DXSprite_SetWorldViewRH(p,a,b) (p)->lpVtbl->SetWorldViewRH(p,a,b)
-#define ID3DXSprite_SetWorldViewLH(p,a,b) (p)->lpVtbl->SetWorldViewLH(p,a,b)
-#define ID3DXSprite_Begin(p,a)            (p)->lpVtbl->Begin(p,a)
-#define ID3DXSprite_Draw(p,a,b,c,d,e)     (p)->lpVtbl->Draw(p,a,b,c,d,e)
-#define ID3DXSprite_Flush(p)              (p)->lpVtbl->Flush(p)
-#define ID3DXSprite_End(p)                (p)->lpVtbl->End(p)
-#define ID3DXSprite_OnLostDevice(p)       (p)->lpVtbl->OnLostDevice(p)
-#define ID3DXSprite_OnResetDevice(p)      (p)->lpVtbl->OnResetDevice(p)
-#else
-/*** IUnknown methods ***/
-#define ID3DXSprite_QueryInterface(p,a,b)    (p)->QueryInterface(a,b)
-#define ID3DXSprite_AddRef(p)                (p)->AddRef()
-#define ID3DXSprite_Release(p)               (p)->Release()
-/*** ID3DXSprite methods ***/
-#define ID3DXSprite_GetDevice(p,a)        (p)->GetDevice(a)
-#define ID3DXSprite_GetTransform(p,a)     (p)->GetTransform(a)
-#define ID3DXSprite_SetTransform(p,a)     (p)->SetTransform(a)
-#define ID3DXSprite_SetWorldViewRH(p,a,b) (p)->SetWorldViewRH(a,b)
-#define ID3DXSprite_SetWorldViewLH(p,a,b) (p)->SetWorldViewLH(a,b)
-#define ID3DXSprite_Begin(p,a)            (p)->Begin(a)
-#define ID3DXSprite_Draw(p,a,b,c,d,e)     (p)->Draw(a,b,c,d,e)
-#define ID3DXSprite_Flush(p)              (p)->Flush()
-#define ID3DXSprite_End(p)                (p)->End()
-#define ID3DXSprite_OnLostDevice(p)       (p)->OnLostDevice()
-#define ID3DXSprite_OnResetDevice(p)      (p)->OnResetDevice()
-#endif
-
-/**********************************************
- ****************** functions *****************
- **********************************************/
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-BOOL    WINAPI D3DXCheckVersion(UINT d3dsdkvers, UINT d3dxsdkvers);
-HRESULT WINAPI D3DXCreateFontA(LPDIRECT3DDEVICE9 device, INT height, UINT width, UINT weight, UINT miplevels, BOOL italic, DWORD charset,
-                               DWORD precision, DWORD quality, DWORD pitchandfamily, LPCSTR facename, LPD3DXFONT *font);
-HRESULT WINAPI D3DXCreateFontW(LPDIRECT3DDEVICE9 device, INT height, UINT width, UINT weight, UINT miplevels, BOOL italic, DWORD charset,
-                               DWORD precision, DWORD quality, DWORD pitchandfamily, LPCWSTR facename, LPD3DXFONT *font);
-#define        D3DXCreateFont WINELIB_NAME_AW(D3DXCreateFont)
-HRESULT WINAPI D3DXCreateFontIndirectA(LPDIRECT3DDEVICE9 device, CONST D3DXFONT_DESCA *desc, LPD3DXFONT *font);
-HRESULT WINAPI D3DXCreateFontIndirectW(LPDIRECT3DDEVICE9 device, CONST D3DXFONT_DESCW *desc, LPD3DXFONT *font);
-#define        D3DXCreateFontIndirect WINELIB_NAME_AW(D3DXCreateFontIndirect)
-HRESULT WINAPI D3DXCreateLine(LPDIRECT3DDEVICE9 device, LPD3DXLINE *line);
-HRESULT WINAPI D3DXCreateRenderToEnvMap(LPDIRECT3DDEVICE9 device, UINT size, UINT miplevels, D3DFORMAT format, BOOL stencil, D3DFORMAT stencil_format, LPD3DXRenderToEnvMap *rtem);
-HRESULT WINAPI D3DXCreateRenderToSurface(LPDIRECT3DDEVICE9 device, UINT width, UINT height, D3DFORMAT format, BOOL stencil, D3DFORMAT stencil_format, LPD3DXRENDERTOSURFACE *rts);
-HRESULT WINAPI D3DXCreateSprite(LPDIRECT3DDEVICE9 device, LPD3DXSPRITE *sprite);
-BOOL    WINAPI D3DXDebugMute(BOOL mute);
-UINT    WINAPI D3DXGetDriverLevel(LPDIRECT3DDEVICE9 device);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __WINE_D3DX9CORE_H */
diff --git a/misc/builddeps/win32/dx/include/d3dx9effect.h b/misc/builddeps/win32/dx/include/d3dx9effect.h
deleted file mode 100644 (file)
index 3bb2878..0000000
+++ /dev/null
@@ -1,394 +0,0 @@
-/*
- * Copyright 2010 Christian Costa
- *
- * 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
- */
-
-#include <d3dx9.h>
-
-#ifndef __D3DX9EFFECT_H__
-#define __D3DX9EFFECT_H__
-
-typedef struct _D3DXEFFECT_DESC {
-    LPCSTR Creator;
-    UINT Parameters;
-    UINT Techniques;
-    UINT Functions;
-} D3DXEFFECT_DESC;
-
-typedef struct _D3DXPARAMETER_DESC {
-    LPCSTR Name;
-    LPCSTR Semantic;
-    D3DXPARAMETER_CLASS Class;
-    D3DXPARAMETER_TYPE Type;
-    UINT Rows;
-    UINT Columns;
-    UINT Elements;
-    UINT Annotations;
-    UINT StructMembers;
-    DWORD Flags;
-    UINT Bytes;
-} D3DXPARAMETER_DESC;
-
-typedef struct _D3DXTECHNIQUE_DESC {
-    LPCSTR Name;
-    UINT Passes;
-    UINT Annotations;
-} D3DXTECHNIQUE_DESC;
-
-typedef struct _D3DXPASS_DESC {
-    LPCSTR Name;
-    UINT Annotations;
-    CONST DWORD *pVertexShaderFunction;
-    CONST DWORD *pPixelShaderFunction;
-} D3DXPASS_DESC;
-
-typedef struct _D3DXFUNCTION_DESC {
-    LPCSTR Name;
-    UINT Annotations;
-} D3DXFUNCTION_DESC;
-
-typedef struct ID3DXEffectPool *LPD3DXEFFECTPOOL;
-
-DEFINE_GUID(IID_ID3DXEffectPool, 0x9537ab04, 0x3250, 0x412e, 0x82, 0x13, 0xfc, 0xd2, 0xf8, 0x67, 0x79, 0x33);
-
-#undef INTERFACE
-#define INTERFACE ID3DXEffectPool
-
-DECLARE_INTERFACE_(ID3DXEffectPool, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID* object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-};
-
-typedef struct ID3DXBaseEffect *LPD3DXBASEEFFECT;
-
-DEFINE_GUID(IID_ID3DXBaseEffect, 0x17c18ac, 0x103f, 0x4417, 0x8c, 0x51, 0x6b, 0xf6, 0xef, 0x1e, 0x56, 0xbe);
-
-#undef INTERFACE
-#define INTERFACE ID3DXBaseEffect
-
-DECLARE_INTERFACE_(ID3DXBaseEffect, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID* object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-    /*** ID3DXBaseEffect methods ***/
-    STDMETHOD(GetDesc)(THIS_ D3DXEFFECT_DESC* desc) PURE;
-    STDMETHOD(GetParameterDesc)(THIS_ D3DXHANDLE parameter, D3DXPARAMETER_DESC* desc) PURE;
-    STDMETHOD(GetTechniqueDesc)(THIS_ D3DXHANDLE technique, D3DXTECHNIQUE_DESC* desc) PURE;
-    STDMETHOD(GetPassDesc)(THIS_ D3DXHANDLE pass, D3DXPASS_DESC* desc) PURE;
-    STDMETHOD(GetFunctionDesc)(THIS_ D3DXHANDLE shader, D3DXFUNCTION_DESC* desc) PURE;
-    STDMETHOD_(D3DXHANDLE, GetParameter)(THIS_ D3DXHANDLE parameter, UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetParameterByName)(THIS_ D3DXHANDLE parameter, LPCSTR name) PURE;
-    STDMETHOD_(D3DXHANDLE, GetParameterBySemantic)(THIS_ D3DXHANDLE parameter, LPCSTR semantic) PURE;
-    STDMETHOD_(D3DXHANDLE, GetParameterElement)(THIS_ D3DXHANDLE parameter, UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetTechnique)(THIS_ UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetTechniqueByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(D3DXHANDLE, GetPass)(THIS_ D3DXHANDLE technique, UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetPassByName)(THIS_ D3DXHANDLE technique, LPCSTR name) PURE;
-    STDMETHOD_(D3DXHANDLE, GetFunction)(THIS_ UINT index);
-    STDMETHOD_(D3DXHANDLE, GetFunctionByName)(THIS_ LPCSTR name);
-    STDMETHOD_(D3DXHANDLE, GetAnnotation)(THIS_ D3DXHANDLE object, UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetAnnotationByName)(THIS_ D3DXHANDLE object, LPCSTR name) PURE;
-    STDMETHOD(SetValue)(THIS_ D3DXHANDLE parameter, LPCVOID data, UINT bytes) PURE;
-    STDMETHOD(GetValue)(THIS_ D3DXHANDLE parameter, LPVOID data, UINT bytes) PURE;
-    STDMETHOD(SetBool)(THIS_ D3DXHANDLE parameter, BOOL b) PURE;
-    STDMETHOD(GetBool)(THIS_ D3DXHANDLE parameter, BOOL* b) PURE;
-    STDMETHOD(SetBoolArray)(THIS_ D3DXHANDLE parameter, CONST BOOL* b, UINT count) PURE;
-    STDMETHOD(GetBoolArray)(THIS_ D3DXHANDLE parameter, BOOL* b, UINT count) PURE;
-    STDMETHOD(SetInt)(THIS_ D3DXHANDLE parameter, INT n) PURE;
-    STDMETHOD(GetInt)(THIS_ D3DXHANDLE parameter, INT* n) PURE;
-    STDMETHOD(SetIntArray)(THIS_ D3DXHANDLE parameter, CONST INT* n, UINT count) PURE;
-    STDMETHOD(GetIntArray)(THIS_ D3DXHANDLE parameter, INT* n, UINT count) PURE;
-    STDMETHOD(SetFloat)(THIS_ D3DXHANDLE parameter, FLOAT f) PURE;
-    STDMETHOD(GetFloat)(THIS_ D3DXHANDLE parameter, FLOAT* f) PURE;
-    STDMETHOD(SetFloatArray)(THIS_ D3DXHANDLE parameter, CONST FLOAT* f, UINT count) PURE;
-    STDMETHOD(GetFloatArray)(THIS_ D3DXHANDLE parameter, FLOAT* f, UINT count) PURE;
-    STDMETHOD(SetVector)(THIS_ D3DXHANDLE parameter, CONST D3DXVECTOR4* vector) PURE;
-    STDMETHOD(GetVector)(THIS_ D3DXHANDLE parameter, D3DXVECTOR4* vector) PURE;
-    STDMETHOD(SetVectorArray)(THIS_ D3DXHANDLE parameter, CONST D3DXVECTOR4* vector, UINT count) PURE;
-    STDMETHOD(GetVectorArray)(THIS_ D3DXHANDLE parameter, D3DXVECTOR4* vector, UINT count) PURE;
-    STDMETHOD(SetMatrix)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix) PURE;
-    STDMETHOD(GetMatrix)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix) PURE;
-    STDMETHOD(SetMatrixArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix, UINT count) PURE;
-    STDMETHOD(GetMatrixArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix, UINT count) PURE;
-    STDMETHOD(SetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX** matrix, UINT count) PURE;
-    STDMETHOD(GetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX** matrix, UINT count) PURE;
-    STDMETHOD(SetMatrixTranspose)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix) PURE;
-    STDMETHOD(GetMatrixTranspose)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix) PURE;
-    STDMETHOD(SetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix, UINT count) PURE;
-    STDMETHOD(GetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix, UINT count) PURE;
-    STDMETHOD(SetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX** matrix, UINT count) PURE;
-    STDMETHOD(GetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX** matrix, UINT count) PURE;
-    STDMETHOD(SetString)(THIS_ D3DXHANDLE parameter, LPCSTR string) PURE;
-    STDMETHOD(GetString)(THIS_ D3DXHANDLE parameter, LPCSTR* string) PURE;
-    STDMETHOD(SetTexture)(THIS_ D3DXHANDLE parameter, LPDIRECT3DBASETEXTURE9 texture) PURE;
-    STDMETHOD(GetTexture)(THIS_ D3DXHANDLE parameter, LPDIRECT3DBASETEXTURE9* texture) PURE;
-    STDMETHOD(SetPixelShader)(THIS_ D3DXHANDLE parameter, LPDIRECT3DPIXELSHADER9 pshader) PURE;
-    STDMETHOD(GetPixelShader)(THIS_ D3DXHANDLE parameter, LPDIRECT3DPIXELSHADER9* pshader) PURE;
-    STDMETHOD(SetVertexShader)(THIS_ D3DXHANDLE parameter, LPDIRECT3DVERTEXSHADER9 vshader) PURE;
-    STDMETHOD(GetVertexShader)(THIS_ D3DXHANDLE parameter, LPDIRECT3DVERTEXSHADER9* vshader) PURE;
-    STDMETHOD(SetArrayRange)(THIS_ D3DXHANDLE parameter, UINT start, UINT end) PURE;
-};
-
-typedef struct ID3DXEffectStateManager *LPD3DXEFFECTSTATEMANAGER;
-
-DEFINE_GUID(IID_ID3DXEffectStateManager, 0x79aab587, 0x6dbc, 0x4fa7, 0x82, 0xde, 0x37, 0xfa, 0x17, 0x81, 0xc5, 0xce);
-
-#undef INTERFACE
-#define INTERFACE ID3DXEffectStateManager
-
-DECLARE_INTERFACE_(ID3DXEffectStateManager, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID* object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-    /*** ID3DXEffectStateManager methods ***/
-    STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE state, CONST D3DMATRIX* matrix) PURE;
-    STDMETHOD(SetMaterial)(THIS_ CONST D3DMATERIAL9* material) PURE;
-    STDMETHOD(SetLight)(THIS_ DWORD index, CONST D3DLIGHT9* light) PURE;
-    STDMETHOD(LightEnable)(THIS_ DWORD index, BOOL enable) PURE;
-    STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE state, DWORD value) PURE;
-    STDMETHOD(SetTexture)(THIS_ DWORD stage, LPDIRECT3DBASETEXTURE9 texture) PURE;
-    STDMETHOD(SetTextureStageState)(THIS_ DWORD stage, D3DTEXTURESTAGESTATETYPE type, DWORD value) PURE;
-    STDMETHOD(SetSamplerState)(THIS_ DWORD sampler, D3DSAMPLERSTATETYPE type, DWORD value) PURE;
-    STDMETHOD(SetNPatchMode)(THIS_ FLOAT num_segments) PURE;
-    STDMETHOD(SetFVF)(THIS_ DWORD format) PURE;
-    STDMETHOD(SetVertexShader)(THIS_ LPDIRECT3DVERTEXSHADER9 shader) PURE;
-    STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT register_index, CONST FLOAT* constant_data, UINT register_count) PURE;
-    STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT register_index, CONST INT* constant_data, UINT register_count) PURE;
-    STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT register_index, CONST BOOL* constant_data, UINT register_count) PURE;
-    STDMETHOD(SetPixelShader)(THIS_ LPDIRECT3DPIXELSHADER9 shader) PURE;
-    STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT register_index, CONST FLOAT* constant_data, UINT register_count) PURE;
-    STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT register_index, CONST INT * constant_data, UINT register_count) PURE;
-    STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT register_index, CONST BOOL* constant_data, UINT register_count) PURE;
-};
-
-typedef struct ID3DXEffect *LPD3DXEFFECT;
-
-DEFINE_GUID(IID_ID3DXEffect, 0xf6ceb4b3, 0x4e4c, 0x40dd, 0xb8, 0x83, 0x8d, 0x8d, 0xe5, 0xea, 0xc, 0xd5);
-
-#undef INTERFACE
-#define INTERFACE ID3DXEffect
-
-DECLARE_INTERFACE_(ID3DXEffect, ID3DXBaseEffect)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID* object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-    /*** ID3DXBaseEffect methods ***/
-    STDMETHOD(GetDesc)(THIS_ D3DXEFFECT_DESC* desc) PURE;
-    STDMETHOD(GetParameterDesc)(THIS_ D3DXHANDLE parameter, D3DXPARAMETER_DESC* desc) PURE;
-    STDMETHOD(GetTechniqueDesc)(THIS_ D3DXHANDLE technique, D3DXTECHNIQUE_DESC* desc) PURE;
-    STDMETHOD(GetPassDesc)(THIS_ D3DXHANDLE pass, D3DXPASS_DESC* desc) PURE;
-    STDMETHOD(GetFunctionDesc)(THIS_ D3DXHANDLE shader, D3DXFUNCTION_DESC* desc) PURE;
-    STDMETHOD_(D3DXHANDLE, GetParameter)(THIS_ D3DXHANDLE parameter, UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetParameterByName)(THIS_ D3DXHANDLE parameter, LPCSTR name) PURE;
-    STDMETHOD_(D3DXHANDLE, GetParameterBySemantic)(THIS_ D3DXHANDLE parameter, LPCSTR semantic) PURE;
-    STDMETHOD_(D3DXHANDLE, GetParameterElement)(THIS_ D3DXHANDLE parameter, UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetTechnique)(THIS_ UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetTechniqueByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(D3DXHANDLE, GetPass)(THIS_ D3DXHANDLE technique, UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetPassByName)(THIS_ D3DXHANDLE technique, LPCSTR name) PURE;
-    STDMETHOD_(D3DXHANDLE, GetFunction)(THIS_ UINT index);
-    STDMETHOD_(D3DXHANDLE, GetFunctionByName)(THIS_ LPCSTR name);
-    STDMETHOD_(D3DXHANDLE, GetAnnotation)(THIS_ D3DXHANDLE object, UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetAnnotationByName)(THIS_ D3DXHANDLE object, LPCSTR name) PURE;
-    STDMETHOD(SetValue)(THIS_ D3DXHANDLE parameter, LPCVOID data, UINT bytes) PURE;
-    STDMETHOD(GetValue)(THIS_ D3DXHANDLE parameter, LPVOID data, UINT bytes) PURE;
-    STDMETHOD(SetBool)(THIS_ D3DXHANDLE parameter, BOOL b) PURE;
-    STDMETHOD(GetBool)(THIS_ D3DXHANDLE parameter, BOOL* b) PURE;
-    STDMETHOD(SetBoolArray)(THIS_ D3DXHANDLE parameter, CONST BOOL* b, UINT count) PURE;
-    STDMETHOD(GetBoolArray)(THIS_ D3DXHANDLE parameter, BOOL* b, UINT count) PURE;
-    STDMETHOD(SetInt)(THIS_ D3DXHANDLE parameter, INT n) PURE;
-    STDMETHOD(GetInt)(THIS_ D3DXHANDLE parameter, INT* n) PURE;
-    STDMETHOD(SetIntArray)(THIS_ D3DXHANDLE parameter, CONST INT* n, UINT count) PURE;
-    STDMETHOD(GetIntArray)(THIS_ D3DXHANDLE parameter, INT* n, UINT count) PURE;
-    STDMETHOD(SetFloat)(THIS_ D3DXHANDLE parameter, FLOAT f) PURE;
-    STDMETHOD(GetFloat)(THIS_ D3DXHANDLE parameter, FLOAT* f) PURE;
-    STDMETHOD(SetFloatArray)(THIS_ D3DXHANDLE parameter, CONST FLOAT* f, UINT count) PURE;
-    STDMETHOD(GetFloatArray)(THIS_ D3DXHANDLE parameter, FLOAT* f, UINT count) PURE;
-    STDMETHOD(SetVector)(THIS_ D3DXHANDLE parameter, CONST D3DXVECTOR4* vector) PURE;
-    STDMETHOD(GetVector)(THIS_ D3DXHANDLE parameter, D3DXVECTOR4* vector) PURE;
-    STDMETHOD(SetVectorArray)(THIS_ D3DXHANDLE parameter, CONST D3DXVECTOR4* vector, UINT count) PURE;
-    STDMETHOD(GetVectorArray)(THIS_ D3DXHANDLE parameter, D3DXVECTOR4* vector, UINT count) PURE;
-    STDMETHOD(SetMatrix)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix) PURE;
-    STDMETHOD(GetMatrix)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix) PURE;
-    STDMETHOD(SetMatrixArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix, UINT count) PURE;
-    STDMETHOD(GetMatrixArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix, UINT count) PURE;
-    STDMETHOD(SetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX** matrix, UINT count) PURE;
-    STDMETHOD(GetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX** matrix, UINT count) PURE;
-    STDMETHOD(SetMatrixTranspose)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix) PURE;
-    STDMETHOD(GetMatrixTranspose)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix) PURE;
-    STDMETHOD(SetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix, UINT count) PURE;
-    STDMETHOD(GetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix, UINT count) PURE;
-    STDMETHOD(SetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX** matrix, UINT count) PURE;
-    STDMETHOD(GetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX** matrix, UINT count) PURE;
-    STDMETHOD(SetString)(THIS_ D3DXHANDLE parameter, LPCSTR string) PURE;
-    STDMETHOD(GetString)(THIS_ D3DXHANDLE parameter, LPCSTR* string) PURE;
-    STDMETHOD(SetTexture)(THIS_ D3DXHANDLE parameter, LPDIRECT3DBASETEXTURE9 texture) PURE;
-    STDMETHOD(GetTexture)(THIS_ D3DXHANDLE parameter, LPDIRECT3DBASETEXTURE9* texture) PURE;
-    STDMETHOD(GetPixelShader)(THIS_ D3DXHANDLE parameter, LPDIRECT3DPIXELSHADER9* pshader) PURE;
-    STDMETHOD(GetVertexShader)(THIS_ D3DXHANDLE parameter, LPDIRECT3DVERTEXSHADER9* vshader) PURE;
-    STDMETHOD(SetArrayRange)(THIS_ D3DXHANDLE parameter, UINT start, UINT end) PURE;
-    /*** ID3DXEffect methods ***/
-    STDMETHOD(GetPool)(THIS_ LPD3DXEFFECTPOOL* pool) PURE;
-    STDMETHOD(SetTechnique)(THIS_ D3DXHANDLE technique) PURE;
-    STDMETHOD_(D3DXHANDLE, GetCurrentTechnique)(THIS) PURE;
-    STDMETHOD(ValidateTechnique)(THIS_ D3DXHANDLE technique) PURE;
-    STDMETHOD(FindNextValidTechnique)(THIS_ D3DXHANDLE technique, D3DXHANDLE* next_technique) PURE;
-    STDMETHOD_(BOOL, IsParameterUsed)(THIS_ D3DXHANDLE parameter, D3DXHANDLE technique) PURE;
-    STDMETHOD(Begin)(THIS_ UINT *passes, DWORD flags) PURE;
-    STDMETHOD(BeginPass)(THIS_ UINT pass) PURE;
-    STDMETHOD(CommitChanges)(THIS) PURE;
-    STDMETHOD(EndPass)(THIS) PURE;
-    STDMETHOD(End)(THIS) PURE;
-    STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9* device) PURE;
-    STDMETHOD(OnLostDevice)(THIS) PURE;
-    STDMETHOD(OnResetDevice)(THIS) PURE;
-    STDMETHOD(SetStateManager)(THIS_ LPD3DXEFFECTSTATEMANAGER manager) PURE;
-    STDMETHOD(GetStateManager)(THIS_ LPD3DXEFFECTSTATEMANAGER* manager) PURE;
-    STDMETHOD(BeginParameterBlock)(THIS) PURE;
-    STDMETHOD_(D3DXHANDLE, EndParameterBlock)(THIS) PURE;
-    STDMETHOD(ApplyParameterBlock)(THIS_ D3DXHANDLE parameter_block) PURE;
-    STDMETHOD(DeleteParameterBlock)(THIS_ D3DXHANDLE parameter_block) PURE;
-    STDMETHOD(CloneEffect)(THIS_ LPDIRECT3DDEVICE9 device, LPD3DXEFFECT* effect) PURE;
-    STDMETHOD(SetRawValue)(THIS_ D3DXHANDLE parameter, LPCVOID data, UINT byte_offset, UINT bytes) PURE;
-};
-
-typedef struct ID3DXEffectCompiler *LPD3DXEFFECTCOMPILER;
-
-DEFINE_GUID(IID_ID3DXEffectCompiler, 0x51b8a949, 0x1a31, 0x47e6, 0xbe, 0xa0, 0x4b, 0x30, 0xdb, 0x53, 0xf1, 0xe0);
-
-#undef INTERFACE
-#define INTERFACE ID3DXEffectCompiler
-
-DECLARE_INTERFACE_(ID3DXEffectCompiler, ID3DXBaseEffect)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID* object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-    /*** ID3DXBaseEffect methods ***/
-    STDMETHOD(GetDesc)(THIS_ D3DXEFFECT_DESC* desc) PURE;
-    STDMETHOD(GetParameterDesc)(THIS_ D3DXHANDLE parameter, D3DXPARAMETER_DESC* desc) PURE;
-    STDMETHOD(GetTechniqueDesc)(THIS_ D3DXHANDLE technique, D3DXTECHNIQUE_DESC* desc) PURE;
-    STDMETHOD(GetPassDesc)(THIS_ D3DXHANDLE pass, D3DXPASS_DESC* desc) PURE;
-    STDMETHOD(GetFunctionDesc)(THIS_ D3DXHANDLE shader, D3DXFUNCTION_DESC* desc) PURE;
-    STDMETHOD_(D3DXHANDLE, GetParameter)(THIS_ D3DXHANDLE parameter, UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetParameterByName)(THIS_ D3DXHANDLE parameter, LPCSTR name) PURE;
-    STDMETHOD_(D3DXHANDLE, GetParameterBySemantic)(THIS_ D3DXHANDLE parameter, LPCSTR semantic) PURE;
-    STDMETHOD_(D3DXHANDLE, GetParameterElement)(THIS_ D3DXHANDLE parameter, UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetTechnique)(THIS_ UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetTechniqueByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(D3DXHANDLE, GetPass)(THIS_ D3DXHANDLE technique, UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetPassByName)(THIS_ D3DXHANDLE technique, LPCSTR name) PURE;
-    STDMETHOD_(D3DXHANDLE, GetFunction)(THIS_ UINT index);
-    STDMETHOD_(D3DXHANDLE, GetFunctionByName)(THIS_ LPCSTR name);
-    STDMETHOD_(D3DXHANDLE, GetAnnotation)(THIS_ D3DXHANDLE object, UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetAnnotationByName)(THIS_ D3DXHANDLE object, LPCSTR name) PURE;
-    STDMETHOD(SetValue)(THIS_ D3DXHANDLE parameter, LPCVOID data, UINT bytes) PURE;
-    STDMETHOD(GetValue)(THIS_ D3DXHANDLE parameter, LPVOID data, UINT bytes) PURE;
-    STDMETHOD(SetBool)(THIS_ D3DXHANDLE parameter, BOOL b) PURE;
-    STDMETHOD(GetBool)(THIS_ D3DXHANDLE parameter, BOOL* b) PURE;
-    STDMETHOD(SetBoolArray)(THIS_ D3DXHANDLE parameter, CONST BOOL* b, UINT count) PURE;
-    STDMETHOD(GetBoolArray)(THIS_ D3DXHANDLE parameter, BOOL* b, UINT count) PURE;
-    STDMETHOD(SetInt)(THIS_ D3DXHANDLE parameter, INT n) PURE;
-    STDMETHOD(GetInt)(THIS_ D3DXHANDLE parameter, INT* n) PURE;
-    STDMETHOD(SetIntArray)(THIS_ D3DXHANDLE parameter, CONST INT* n, UINT count) PURE;
-    STDMETHOD(GetIntArray)(THIS_ D3DXHANDLE parameter, INT* n, UINT count) PURE;
-    STDMETHOD(SetFloat)(THIS_ D3DXHANDLE parameter, FLOAT f) PURE;
-    STDMETHOD(GetFloat)(THIS_ D3DXHANDLE parameter, FLOAT* f) PURE;
-    STDMETHOD(SetFloatArray)(THIS_ D3DXHANDLE parameter, CONST FLOAT* f, UINT count) PURE;
-    STDMETHOD(GetFloatArray)(THIS_ D3DXHANDLE parameter, FLOAT* f, UINT count) PURE;
-    STDMETHOD(SetVector)(THIS_ D3DXHANDLE parameter, CONST D3DXVECTOR4* vector) PURE;
-    STDMETHOD(GetVector)(THIS_ D3DXHANDLE parameter, D3DXVECTOR4* vector) PURE;
-    STDMETHOD(SetVectorArray)(THIS_ D3DXHANDLE parameter, CONST D3DXVECTOR4* vector, UINT count) PURE;
-    STDMETHOD(GetVectorArray)(THIS_ D3DXHANDLE parameter, D3DXVECTOR4* vector, UINT count) PURE;
-    STDMETHOD(SetMatrix)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix) PURE;
-    STDMETHOD(GetMatrix)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix) PURE;
-    STDMETHOD(SetMatrixArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix, UINT count) PURE;
-    STDMETHOD(GetMatrixArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix, UINT count) PURE;
-    STDMETHOD(SetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX** matrix, UINT count) PURE;
-    STDMETHOD(GetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX** matrix, UINT count) PURE;
-    STDMETHOD(SetMatrixTranspose)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix) PURE;
-    STDMETHOD(GetMatrixTranspose)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix) PURE;
-    STDMETHOD(SetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix, UINT count) PURE;
-    STDMETHOD(GetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix, UINT count) PURE;
-    STDMETHOD(SetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX** matrix, UINT count) PURE;
-    STDMETHOD(GetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX** matrix, UINT count) PURE;
-    STDMETHOD(SetString)(THIS_ D3DXHANDLE parameter, LPCSTR string) PURE;
-    STDMETHOD(GetString)(THIS_ D3DXHANDLE parameter, LPCSTR* string) PURE;
-    STDMETHOD(SetTexture)(THIS_ D3DXHANDLE parameter, LPDIRECT3DBASETEXTURE9 texture) PURE;
-    STDMETHOD(GetTexture)(THIS_ D3DXHANDLE parameter, LPDIRECT3DBASETEXTURE9* texture) PURE;
-    STDMETHOD(SetPixelShader)(THIS_ D3DXHANDLE parameter, LPDIRECT3DPIXELSHADER9 pshader) PURE;
-    STDMETHOD(GetPixelShader)(THIS_ D3DXHANDLE parameter, LPDIRECT3DPIXELSHADER9* pshader) PURE;
-    STDMETHOD(SetVertexShader)(THIS_ D3DXHANDLE parameter, LPDIRECT3DVERTEXSHADER9 vshader) PURE;
-    STDMETHOD(GetVertexShader)(THIS_ D3DXHANDLE parameter, LPDIRECT3DVERTEXSHADER9* vshader) PURE;
-    STDMETHOD(SetArrayRange)(THIS_ D3DXHANDLE parameter, UINT start, UINT end) PURE;
-    /*** ID3DXEffectCompiler methods ***/
-    STDMETHOD(SetLiteral)(THIS_ D3DXHANDLE parameter, BOOL literal) PURE;
-    STDMETHOD(GetLiteral)(THIS_ D3DXHANDLE parameter, BOOL* literal) PURE;
-    STDMETHOD(CompileEffect)(THIS_ DWORD flags, LPD3DXBUFFER* effect, LPD3DXBUFFER* error_msgs) PURE;
-    STDMETHOD(CompileShader)(THIS_ D3DXHANDLE function, LPCSTR target, DWORD flags, LPD3DXBUFFER* shader,
-        LPD3DXBUFFER* error_msgs, LPD3DXCONSTANTTABLE* constant_table) PURE;
-};
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-HRESULT WINAPI D3DXCreateEffectPool(LPD3DXEFFECTPOOL* pool);
-
-HRESULT WINAPI D3DXCreateEffect(LPDIRECT3DDEVICE9 device,
-                                LPCVOID srcdata,
-                                UINT srcdatalen,
-                                CONST D3DXMACRO* defines,
-                                LPD3DXINCLUDE include,
-                                DWORD flags,
-                                LPD3DXEFFECTPOOL pool,
-                                LPD3DXEFFECT* effect,
-                                LPD3DXBUFFER* compilation_errors);
-
-HRESULT WINAPI D3DXCreateEffectEx(LPDIRECT3DDEVICE9 device,
-                                  LPCVOID srcdata,
-                                  UINT srcdatalen,
-                                  CONST D3DXMACRO* defines,
-                                  LPD3DXINCLUDE include,
-                                  LPCSTR skip_constants,
-                                  DWORD flags,
-                                  LPD3DXEFFECTPOOL pool,
-                                  LPD3DXEFFECT* effect,
-                                  LPD3DXBUFFER* compilation_errors);
-
-HRESULT WINAPI D3DXCreateEffectCompiler(LPCSTR srcdata,
-                                        UINT srcdatalen,
-                                        CONST D3DXMACRO* defines,
-                                        LPD3DXINCLUDE include,
-                                        DWORD flags,
-                                        LPD3DXEFFECTCOMPILER* compiler,
-                                        LPD3DXBUFFER* parse_errors);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __D3DX9EFFECT_H__ */
diff --git a/misc/builddeps/win32/dx/include/d3dx9math.h b/misc/builddeps/win32/dx/include/d3dx9math.h
deleted file mode 100644 (file)
index f842e3e..0000000
+++ /dev/null
@@ -1,432 +0,0 @@
-/*
- * Copyright (C) 2007 David Adam
- * Copyright (C) 2007 Tony Wasserka
- *
- * 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
- */
-
-#include <d3dx9.h>
-
-#ifndef __D3DX9MATH_H__
-#define __D3DX9MATH_H__
-
-#include <math.h>
-
-#define D3DX_PI    ((FLOAT)3.141592654)
-#define D3DX_1BYPI ((FLOAT)0.318309886)
-
-#define D3DXToRadian(degree) ((degree) * (D3DX_PI / 180.0f))
-#define D3DXToDegree(radian) ((radian) * (180.0f / D3DX_PI))
-
-
-
-typedef struct D3DXVECTOR2
-{
-#ifdef __cplusplus
-    D3DXVECTOR2();
-    D3DXVECTOR2(CONST FLOAT *pf);
-    D3DXVECTOR2(FLOAT fx, FLOAT fy);
-
-    operator FLOAT* ();
-    operator CONST FLOAT* () const;
-
-    D3DXVECTOR2& operator += (CONST D3DXVECTOR2&);
-    D3DXVECTOR2& operator -= (CONST D3DXVECTOR2&);
-    D3DXVECTOR2& operator *= (FLOAT);
-    D3DXVECTOR2& operator /= (FLOAT);
-
-    D3DXVECTOR2 operator + () const;
-    D3DXVECTOR2 operator - () const;
-
-    D3DXVECTOR2 operator + (CONST D3DXVECTOR2&) const;
-    D3DXVECTOR2 operator - (CONST D3DXVECTOR2&) const;
-    D3DXVECTOR2 operator * (FLOAT) const;
-    D3DXVECTOR2 operator / (FLOAT) const;
-
-    friend D3DXVECTOR2 operator * (FLOAT, CONST D3DXVECTOR2&);
-
-    BOOL operator == (CONST D3DXVECTOR2&) const;
-    BOOL operator != (CONST D3DXVECTOR2&) const;
-#endif /* __cplusplus */
-    FLOAT x, y;
-} D3DXVECTOR2, *LPD3DXVECTOR2;
-
-#ifdef __cplusplus
-typedef struct D3DXVECTOR3 : public D3DVECTOR
-{
-    D3DXVECTOR3();
-    D3DXVECTOR3(CONST FLOAT *pf);
-    D3DXVECTOR3(CONST D3DVECTOR& v);
-    D3DXVECTOR3(FLOAT fx, FLOAT fy, FLOAT fz);
-
-    operator FLOAT* ();
-    operator CONST FLOAT* () const;
-
-    D3DXVECTOR3& operator += (CONST D3DXVECTOR3&);
-    D3DXVECTOR3& operator -= (CONST D3DXVECTOR3&);
-    D3DXVECTOR3& operator *= (FLOAT);
-    D3DXVECTOR3& operator /= (FLOAT);
-
-    D3DXVECTOR3 operator + () const;
-    D3DXVECTOR3 operator - () const;
-
-    D3DXVECTOR3 operator + (CONST D3DXVECTOR3&) const;
-    D3DXVECTOR3 operator - (CONST D3DXVECTOR3&) const;
-    D3DXVECTOR3 operator * (FLOAT) const;
-    D3DXVECTOR3 operator / (FLOAT) const;
-
-    friend D3DXVECTOR3 operator * (FLOAT, CONST struct D3DXVECTOR3&);
-
-    BOOL operator == (CONST D3DXVECTOR3&) const;
-    BOOL operator != (CONST D3DXVECTOR3&) const;
-} D3DXVECTOR3, *LPD3DXVECTOR3;
-#else /* !__cplusplus */
-typedef struct _D3DVECTOR D3DXVECTOR3, *LPD3DXVECTOR3;
-#endif /* !__cplusplus */
-
-typedef struct D3DXVECTOR4
-{
-#ifdef __cplusplus
-    D3DXVECTOR4();
-    D3DXVECTOR4(CONST FLOAT *pf);
-    D3DXVECTOR4(FLOAT fx, FLOAT fy, FLOAT fz, FLOAT fw);
-
-    operator FLOAT* ();
-    operator CONST FLOAT* () const;
-
-    D3DXVECTOR4& operator += (CONST D3DXVECTOR4&);
-    D3DXVECTOR4& operator -= (CONST D3DXVECTOR4&);
-    D3DXVECTOR4& operator *= (FLOAT);
-    D3DXVECTOR4& operator /= (FLOAT);
-
-    D3DXVECTOR4 operator + () const;
-    D3DXVECTOR4 operator - () const;
-
-    D3DXVECTOR4 operator + (CONST D3DXVECTOR4&) const;
-    D3DXVECTOR4 operator - (CONST D3DXVECTOR4&) const;
-    D3DXVECTOR4 operator * (FLOAT) const;
-    D3DXVECTOR4 operator / (FLOAT) const;
-
-    friend D3DXVECTOR4 operator * (FLOAT, CONST D3DXVECTOR4&);
-
-    BOOL operator == (CONST D3DXVECTOR4&) const;
-    BOOL operator != (CONST D3DXVECTOR4&) const;
-#endif /* __cplusplus */
-    FLOAT x, y, z, w;
-} D3DXVECTOR4, *LPD3DXVECTOR4;
-
-#ifdef __cplusplus
-typedef struct D3DXMATRIX : public D3DMATRIX
-{
-    D3DXMATRIX();
-    D3DXMATRIX(CONST FLOAT *pf);
-    D3DXMATRIX(CONST D3DMATRIX& mat);
-    D3DXMATRIX(FLOAT f11, FLOAT f12, FLOAT f13, FLOAT f14,
-               FLOAT f21, FLOAT f22, FLOAT f23, FLOAT f24,
-               FLOAT f31, FLOAT f32, FLOAT f33, FLOAT f34,
-               FLOAT f41, FLOAT f42, FLOAT f43, FLOAT f44);
-
-    FLOAT& operator () (UINT row, UINT col);
-    FLOAT operator () (UINT row, UINT col) const;
-
-    operator FLOAT* ();
-    operator CONST FLOAT* () const;
-
-    D3DXMATRIX& operator *= (CONST D3DXMATRIX&);
-    D3DXMATRIX& operator += (CONST D3DXMATRIX&);
-    D3DXMATRIX& operator -= (CONST D3DXMATRIX&);
-    D3DXMATRIX& operator *= (FLOAT);
-    D3DXMATRIX& operator /= (FLOAT);
-
-    D3DXMATRIX operator + () const;
-    D3DXMATRIX operator - () const;
-
-    D3DXMATRIX operator * (CONST D3DXMATRIX&) const;
-    D3DXMATRIX operator + (CONST D3DXMATRIX&) const;
-    D3DXMATRIX operator - (CONST D3DXMATRIX&) const;
-    D3DXMATRIX operator * (FLOAT) const;
-    D3DXMATRIX operator / (FLOAT) const;
-
-    friend D3DXMATRIX operator * (FLOAT, CONST D3DXMATRIX&);
-
-    BOOL operator == (CONST D3DXMATRIX&) const;
-    BOOL operator != (CONST D3DXMATRIX&) const;
-} D3DXMATRIX, *LPD3DXMATRIX;
-#else /* !__cplusplus */
-typedef struct _D3DMATRIX D3DXMATRIX, *LPD3DXMATRIX;
-#endif /* !__cplusplus */
-
-typedef struct D3DXQUATERNION
-{
-#ifdef __cplusplus
-    D3DXQUATERNION();
-    D3DXQUATERNION(CONST FLOAT *pf);
-    D3DXQUATERNION(FLOAT fx, FLOAT fy, FLOAT fz, FLOAT fw);
-
-    operator FLOAT* ();
-    operator CONST FLOAT* () const;
-
-    D3DXQUATERNION& operator += (CONST D3DXQUATERNION&);
-    D3DXQUATERNION& operator -= (CONST D3DXQUATERNION&);
-    D3DXQUATERNION& operator *= (CONST D3DXQUATERNION&);
-    D3DXQUATERNION& operator *= (FLOAT);
-    D3DXQUATERNION& operator /= (FLOAT);
-
-    D3DXQUATERNION  operator + () const;
-    D3DXQUATERNION  operator - () const;
-
-    D3DXQUATERNION operator + (CONST D3DXQUATERNION&) const;
-    D3DXQUATERNION operator - (CONST D3DXQUATERNION&) const;
-    D3DXQUATERNION operator * (CONST D3DXQUATERNION&) const;
-    D3DXQUATERNION operator * (FLOAT) const;
-    D3DXQUATERNION operator / (FLOAT) const;
-
-    friend D3DXQUATERNION operator * (FLOAT, CONST D3DXQUATERNION&);
-
-    BOOL operator == (CONST D3DXQUATERNION&) const;
-    BOOL operator != (CONST D3DXQUATERNION&) const;
-#endif /* __cplusplus */
-    FLOAT x, y, z, w;
-} D3DXQUATERNION, *LPD3DXQUATERNION;
-
-typedef struct D3DXPLANE
-{
-#ifdef __cplusplus
-    D3DXPLANE();
-    D3DXPLANE(CONST FLOAT *pf);
-    D3DXPLANE(FLOAT fa, FLOAT fb, FLOAT fc, FLOAT fd);
-
-    operator FLOAT* ();
-    operator CONST FLOAT* () const;
-
-    D3DXPLANE operator + () const;
-    D3DXPLANE operator - () const;
-
-    BOOL operator == (CONST D3DXPLANE&) const;
-    BOOL operator != (CONST D3DXPLANE&) const;
-#endif /* __cplusplus */
-    FLOAT a, b, c, d;
-} D3DXPLANE, *LPD3DXPLANE;
-
-typedef struct D3DXCOLOR
-{
-#ifdef __cplusplus
-    D3DXCOLOR();
-    D3DXCOLOR(DWORD col);
-    D3DXCOLOR(CONST FLOAT *pf);
-    D3DXCOLOR(CONST D3DCOLORVALUE& col);
-    D3DXCOLOR(FLOAT fr, FLOAT fg, FLOAT fb, FLOAT fa);
-
-    operator DWORD () const;
-
-    operator FLOAT* ();
-    operator CONST FLOAT* () const;
-
-    operator D3DCOLORVALUE* ();
-    operator CONST D3DCOLORVALUE* () const;
-
-    operator D3DCOLORVALUE& ();
-    operator CONST D3DCOLORVALUE& () const;
-
-    D3DXCOLOR& operator += (CONST D3DXCOLOR&);
-    D3DXCOLOR& operator -= (CONST D3DXCOLOR&);
-    D3DXCOLOR& operator *= (FLOAT);
-    D3DXCOLOR& operator /= (FLOAT);
-
-    D3DXCOLOR operator + () const;
-    D3DXCOLOR operator - () const;
-
-    D3DXCOLOR operator + (CONST D3DXCOLOR&) const;
-    D3DXCOLOR operator - (CONST D3DXCOLOR&) const;
-    D3DXCOLOR operator * (FLOAT) const;
-    D3DXCOLOR operator / (FLOAT) const;
-
-    friend D3DXCOLOR operator * (FLOAT, CONST D3DXCOLOR&);
-
-    BOOL operator == (CONST D3DXCOLOR&) const;
-    BOOL operator != (CONST D3DXCOLOR&) const;
-#endif /* __cplusplus */
-    FLOAT r, g, b, a;
-} D3DXCOLOR, *LPD3DXCOLOR;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-D3DXCOLOR* WINAPI D3DXColorAdjustContrast(D3DXCOLOR *pout, CONST D3DXCOLOR *pc, FLOAT s);
-D3DXCOLOR* WINAPI D3DXColorAdjustSaturation(D3DXCOLOR *pout, CONST D3DXCOLOR *pc, FLOAT s);
-
-FLOAT WINAPI D3DXFresnelTerm(FLOAT costheta, FLOAT refractionindex);
-
-D3DXMATRIX* WINAPI D3DXMatrixAffineTransformation(D3DXMATRIX *pout, FLOAT scaling, CONST D3DXVECTOR3 *rotationcenter, CONST D3DXQUATERNION *rotation, CONST D3DXVECTOR3 *translation);
-D3DXMATRIX* WINAPI D3DXMatrixAffineTransformation2D(D3DXMATRIX *pout, FLOAT scaling, CONST D3DXVECTOR2 *protationcenter, FLOAT rotation, CONST D3DXVECTOR2 *ptranslation);
-HRESULT WINAPI D3DXMatrixDecompose(D3DXVECTOR3 *poutscale, D3DXQUATERNION *poutrotation, D3DXVECTOR3 *pouttranslation, CONST D3DXMATRIX *pm);
-FLOAT WINAPI D3DXMatrixDeterminant(CONST D3DXMATRIX *pm);
-D3DXMATRIX* WINAPI D3DXMatrixInverse(D3DXMATRIX *pout, FLOAT *pdeterminant, CONST D3DXMATRIX *pm);
-D3DXMATRIX* WINAPI D3DXMatrixLookAtLH(D3DXMATRIX *pout, CONST D3DXVECTOR3 *peye, CONST D3DXVECTOR3 *pat, CONST D3DXVECTOR3 *pup);
-D3DXMATRIX* WINAPI D3DXMatrixLookAtRH(D3DXMATRIX *pout, CONST D3DXVECTOR3 *peye, CONST D3DXVECTOR3 *pat, CONST D3DXVECTOR3 *pup);
-D3DXMATRIX* WINAPI D3DXMatrixMultiply(D3DXMATRIX *pout, CONST D3DXMATRIX *pm1, CONST D3DXMATRIX *pm2);
-D3DXMATRIX* WINAPI D3DXMatrixMultiplyTranspose(D3DXMATRIX *pout, CONST D3DXMATRIX *pm1, CONST D3DXMATRIX *pm2);
-D3DXMATRIX* WINAPI D3DXMatrixOrthoLH(D3DXMATRIX *pout, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf);
-D3DXMATRIX* WINAPI D3DXMatrixOrthoOffCenterLH(D3DXMATRIX *pout, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf);
-D3DXMATRIX* WINAPI D3DXMatrixOrthoOffCenterRH(D3DXMATRIX *pout, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf);
-D3DXMATRIX* WINAPI D3DXMatrixOrthoLH(D3DXMATRIX *pout, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf);
-D3DXMATRIX* WINAPI D3DXMatrixOrthoRH(D3DXMATRIX *pout, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf);
-D3DXMATRIX* WINAPI D3DXMatrixPerspectiveFovLH(D3DXMATRIX *pout, FLOAT fovy, FLOAT aspect, FLOAT zn, FLOAT zf);
-D3DXMATRIX* WINAPI D3DXMatrixPerspectiveFovRH(D3DXMATRIX *pout, FLOAT fovy, FLOAT aspect, FLOAT zn, FLOAT zf);
-D3DXMATRIX* WINAPI D3DXMatrixPerspectiveLH(D3DXMATRIX *pout, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf);
-D3DXMATRIX* WINAPI D3DXMatrixPerspectiveOffCenterLH(D3DXMATRIX *pout, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf);
-D3DXMATRIX* WINAPI D3DXMatrixPerspectiveOffCenterRH(D3DXMATRIX *pout, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf);
-D3DXMATRIX* WINAPI D3DXMatrixPerspectiveRH(D3DXMATRIX *pout, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf);
-D3DXMATRIX* WINAPI D3DXMatrixReflect(D3DXMATRIX *pout, CONST D3DXPLANE *pplane);
-D3DXMATRIX* WINAPI D3DXMatrixRotationAxis(D3DXMATRIX *pout, CONST D3DXVECTOR3 *pv, FLOAT angle);
-D3DXMATRIX* WINAPI D3DXMatrixRotationQuaternion(D3DXMATRIX *pout, CONST D3DXQUATERNION *pq);
-D3DXMATRIX* WINAPI D3DXMatrixRotationX(D3DXMATRIX *pout, FLOAT angle);
-D3DXMATRIX* WINAPI D3DXMatrixRotationY(D3DXMATRIX *pout, FLOAT angle);
-D3DXMATRIX* WINAPI D3DXMatrixRotationYawPitchRoll(D3DXMATRIX *pout, FLOAT yaw, FLOAT pitch, FLOAT roll);
-D3DXMATRIX* WINAPI D3DXMatrixRotationZ(D3DXMATRIX *pout, FLOAT angle);
-D3DXMATRIX* WINAPI D3DXMatrixScaling(D3DXMATRIX *pout, FLOAT sx, FLOAT sy, FLOAT sz);
-D3DXMATRIX* WINAPI D3DXMatrixShadow(D3DXMATRIX *pout, CONST D3DXVECTOR4 *plight, CONST D3DXPLANE *pPlane);
-D3DXMATRIX* WINAPI D3DXMatrixTransformation(D3DXMATRIX *pout, CONST D3DXVECTOR3 *pscalingcenter, CONST D3DXQUATERNION *pscalingrotation, CONST D3DXVECTOR3 *pscaling, CONST D3DXVECTOR3 *protationcenter, CONST D3DXQUATERNION *protation, CONST D3DXVECTOR3 *ptranslation);
-D3DXMATRIX* WINAPI D3DXMatrixTransformation2D(D3DXMATRIX *pout, CONST D3DXVECTOR2 *pscalingcenter, FLOAT scalingrotation, CONST D3DXVECTOR2 *pscaling, CONST D3DXVECTOR2 *protationcenter, FLOAT rotation, CONST D3DXVECTOR2 *ptranslation);
-D3DXMATRIX* WINAPI D3DXMatrixTranslation(D3DXMATRIX *pout, FLOAT x, FLOAT y, FLOAT z);
-D3DXMATRIX* WINAPI D3DXMatrixTranspose(D3DXMATRIX *pout, CONST D3DXMATRIX *pm);
-
-D3DXPLANE* WINAPI D3DXPlaneFromPointNormal(D3DXPLANE *pout, CONST D3DXVECTOR3 *pvpoint, CONST D3DXVECTOR3 *pvnormal);
-D3DXPLANE* WINAPI D3DXPlaneFromPoints(D3DXPLANE *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2, CONST D3DXVECTOR3 *pv3);
-D3DXVECTOR3* WINAPI D3DXPlaneIntersectLine(D3DXVECTOR3 *pout, CONST D3DXPLANE *pp, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2);
-D3DXPLANE* WINAPI D3DXPlaneNormalize(D3DXPLANE *pout, CONST D3DXPLANE *pp);
-D3DXPLANE* WINAPI D3DXPlaneTransform(D3DXPLANE *pout, CONST D3DXPLANE *pplane, CONST D3DXMATRIX *pm);
-D3DXPLANE* WINAPI D3DXPlaneTransformArray(D3DXPLANE *pout, UINT outstride, CONST D3DXPLANE *pplane, UINT pstride, CONST D3DXMATRIX *pm, UINT n);
-
-D3DXQUATERNION* WINAPI D3DXQuaternionBaryCentric(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq1, CONST D3DXQUATERNION *pq2, CONST D3DXQUATERNION *pq3, FLOAT f, FLOAT g);
-D3DXQUATERNION* WINAPI D3DXQuaternionExp(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq);
-D3DXQUATERNION* WINAPI D3DXQuaternionInverse(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq);
-D3DXQUATERNION* WINAPI D3DXQuaternionLn(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq);
-D3DXQUATERNION* WINAPI D3DXQuaternionMultiply(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq1, CONST D3DXQUATERNION *pq2);
-D3DXQUATERNION* WINAPI D3DXQuaternionNormalize(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq);
-D3DXQUATERNION* WINAPI D3DXQuaternionRotationAxis(D3DXQUATERNION *pout, CONST D3DXVECTOR3 *pv, FLOAT angle);
-D3DXQUATERNION* WINAPI D3DXQuaternionRotationMatrix(D3DXQUATERNION *pout, CONST D3DXMATRIX *pm);
-D3DXQUATERNION* WINAPI D3DXQuaternionRotationYawPitchRoll(D3DXQUATERNION *pout, FLOAT yaw, FLOAT pitch, FLOAT roll);
-D3DXQUATERNION* WINAPI D3DXQuaternionSlerp(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq1, CONST D3DXQUATERNION *pq2, FLOAT t);
-D3DXQUATERNION* WINAPI D3DXQuaternionSquad(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq1, CONST D3DXQUATERNION *pq2, CONST D3DXQUATERNION *pq3, CONST D3DXQUATERNION *pq4, FLOAT t);
-void WINAPI D3DXQuaternionToAxisAngle(CONST D3DXQUATERNION *pq, D3DXVECTOR3 *paxis, FLOAT *pangle);
-
-D3DXVECTOR2* WINAPI D3DXVec2BaryCentric(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2, CONST D3DXVECTOR2 *pv3, FLOAT f, FLOAT g);
-D3DXVECTOR2* WINAPI D3DXVec2CatmullRom(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv0, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2, CONST D3DXVECTOR2 *pv3, FLOAT s);
-D3DXVECTOR2* WINAPI D3DXVec2Hermite(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pt1, CONST D3DXVECTOR2 *pv2, CONST D3DXVECTOR2 *pt2, FLOAT s);
-D3DXVECTOR2* WINAPI D3DXVec2Normalize(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv);
-D3DXVECTOR4* WINAPI D3DXVec2Transform(D3DXVECTOR4 *pout, CONST D3DXVECTOR2 *pv, CONST D3DXMATRIX *pm);
-D3DXVECTOR4* WINAPI D3DXVec2TransformArray(D3DXVECTOR4 *pout, UINT outstride, CONST D3DXVECTOR2 *pv, UINT vstride, CONST D3DXMATRIX *pm, UINT n);
-D3DXVECTOR2* WINAPI D3DXVec2TransformCoord(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv, CONST D3DXMATRIX *pm);
-D3DXVECTOR2* WINAPI D3DXVec2TransformCoordArray(D3DXVECTOR2 *pout, UINT outstride, CONST D3DXVECTOR2 *pv, UINT vstride, CONST D3DXMATRIX *pm, UINT n);
-D3DXVECTOR2* WINAPI D3DXVec2TransformNormal(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv, CONST D3DXMATRIX *pm);
-D3DXVECTOR2* WINAPI D3DXVec2TransformNormalArray(D3DXVECTOR2 *pout, UINT outstride, CONST D3DXVECTOR2 *pv, UINT vstride, CONST D3DXMATRIX *pm, UINT n);
-
-D3DXVECTOR3* WINAPI D3DXVec3BaryCentric(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2, CONST D3DXVECTOR3 *pv3, FLOAT f, FLOAT g);
-D3DXVECTOR3* WINAPI D3DXVec3CatmullRom( D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv0, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2, CONST D3DXVECTOR3 *pv3, FLOAT s);
-D3DXVECTOR3* WINAPI D3DXVec3Hermite(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pt1, CONST D3DXVECTOR3 *pv2, CONST D3DXVECTOR3 *pt2, FLOAT s);
-D3DXVECTOR3* WINAPI D3DXVec3Normalize(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv);
-D3DXVECTOR3* WINAPI D3DXVec3Project(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv, CONST D3DVIEWPORT9 *pviewport, CONST D3DXMATRIX *pprojection, CONST D3DXMATRIX *pview, CONST D3DXMATRIX *pworld);
-D3DXVECTOR3* WINAPI D3DXVec3ProjectArray(D3DXVECTOR3 *pout, UINT outstride, CONST D3DXVECTOR3 *pv, UINT vstride, CONST D3DVIEWPORT9 *pviewport, CONST D3DXMATRIX *pprojection, CONST D3DXMATRIX *pview, CONST D3DXMATRIX *pworld, UINT n);
-D3DXVECTOR4* WINAPI D3DXVec3Transform(D3DXVECTOR4 *pout, CONST D3DXVECTOR3 *pv, CONST D3DXMATRIX *pm);
-D3DXVECTOR4* WINAPI D3DXVec3TransformArray(D3DXVECTOR4 *pout, UINT outstride, CONST D3DXVECTOR3 *pv, UINT vstride, CONST D3DXMATRIX *pm, UINT n);
-D3DXVECTOR3* WINAPI D3DXVec3TransformCoord(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv, CONST D3DXMATRIX *pm);
-D3DXVECTOR3* WINAPI D3DXVec3TransformCoordArray(D3DXVECTOR3 *pout, UINT outstride, CONST D3DXVECTOR3 *pv, UINT vstride, CONST D3DXMATRIX *pm, UINT n);
-D3DXVECTOR3* WINAPI D3DXVec3TransformNormal(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv, CONST D3DXMATRIX *pm);
-D3DXVECTOR3* WINAPI D3DXVec3TransformNormalArray(D3DXVECTOR3 *pout, UINT outstride, CONST D3DXVECTOR3 *pv, UINT vstride, CONST D3DXMATRIX *pm, UINT n);
-D3DXVECTOR3* WINAPI D3DXVec3Unproject(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv, CONST D3DVIEWPORT9 *pviewport, CONST D3DXMATRIX *pprojection, CONST D3DXMATRIX *pview, CONST D3DXMATRIX *pworld);
-D3DXVECTOR3* WINAPI D3DXVec3UnprojectArray(D3DXVECTOR3 *pout, UINT outstride, CONST D3DXVECTOR3 *pv, UINT vstride, CONST D3DVIEWPORT9 *pviewport, CONST D3DXMATRIX *pprojection, CONST D3DXMATRIX *pview, CONST D3DXMATRIX *pworld, UINT n);
-
-D3DXVECTOR4* WINAPI D3DXVec4BaryCentric(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2, CONST D3DXVECTOR4 *pv3, FLOAT f, FLOAT g);
-D3DXVECTOR4* WINAPI D3DXVec4CatmullRom(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv0, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2, CONST D3DXVECTOR4 *pv3, FLOAT s);
-D3DXVECTOR4* WINAPI D3DXVec4Cross(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2, CONST D3DXVECTOR4 *pv3);
-D3DXVECTOR4* WINAPI D3DXVec4Hermite(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pt1, CONST D3DXVECTOR4 *pv2, CONST D3DXVECTOR4 *pt2, FLOAT s);
-D3DXVECTOR4* WINAPI D3DXVec4Normalize(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv);
-D3DXVECTOR4* WINAPI D3DXVec4Transform(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv, CONST D3DXMATRIX *pm);
-D3DXVECTOR4* WINAPI D3DXVec4TransformArray(D3DXVECTOR4 *pout, UINT outstride, CONST D3DXVECTOR4 *pv, UINT vstride, CONST D3DXMATRIX *pm, UINT n);
-
-#ifdef __cplusplus
-}
-#endif
-
-typedef interface ID3DXMatrixStack *LPD3DXMATRIXSTACK;
-
-DEFINE_GUID(IID_ID3DXMatrixStack,
-0xc7885ba7, 0xf990, 0x4fe7, 0x92, 0x2d, 0x85, 0x15, 0xe4, 0x77, 0xdd, 0x85);
-
-#undef INTERFACE
-#define INTERFACE ID3DXMatrixStack
-
-DECLARE_INTERFACE_(ID3DXMatrixStack, IUnknown)
-{
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    STDMETHOD(Pop)(THIS) PURE;
-    STDMETHOD(Push)(THIS) PURE;
-    STDMETHOD(LoadIdentity)(THIS) PURE;
-    STDMETHOD(LoadMatrix)(THIS_ CONST D3DXMATRIX* pM ) PURE;
-    STDMETHOD(MultMatrix)(THIS_ CONST D3DXMATRIX* pM ) PURE;
-    STDMETHOD(MultMatrixLocal)(THIS_ CONST D3DXMATRIX* pM ) PURE;
-    STDMETHOD(RotateAxis)(THIS_ CONST D3DXVECTOR3* pV, FLOAT Angle) PURE;
-    STDMETHOD(RotateAxisLocal)(THIS_ CONST D3DXVECTOR3* pV, FLOAT Angle) PURE;
-    STDMETHOD(RotateYawPitchRoll)(THIS_ FLOAT Yaw, FLOAT Pitch, FLOAT Roll) PURE;
-    STDMETHOD(RotateYawPitchRollLocal)(THIS_ FLOAT Yaw, FLOAT Pitch, FLOAT Roll) PURE;
-    STDMETHOD(Scale)(THIS_ FLOAT x, FLOAT y, FLOAT z) PURE;
-    STDMETHOD(ScaleLocal)(THIS_ FLOAT x, FLOAT y, FLOAT z) PURE;
-    STDMETHOD(Translate)(THIS_ FLOAT x, FLOAT y, FLOAT z ) PURE;
-    STDMETHOD(TranslateLocal)(THIS_ FLOAT x, FLOAT y, FLOAT z) PURE;
-    STDMETHOD_(D3DXMATRIX*, GetTop)(THIS) PURE;
-};
-
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-
-#define ID3DXMatrixStack_QueryInterface(p,a,b)            (p)->lpVtbl->QueryInterface(p,a,b)
-#define ID3DXMatrixStack_AddRef(p)                        (p)->lpVtbl->AddRef(p)
-#define ID3DXMatrixStack_Release(p)                       (p)->lpVtbl->Release(p)
-#define ID3DXMatrixStack_Pop(p)                           (p)->lpVtbl->Pop(p)
-#define ID3DXMatrixStack_Push(p)                          (p)->lpVtbl->Push(p)
-#define ID3DXMatrixStack_LoadIdentity(p)                  (p)->lpVtbl->LoadIdentity(p)
-#define ID3DXMatrixStack_LoadMatrix(p,a)                  (p)->lpVtbl->LoadMatrix(p,a)
-#define ID3DXMatrixStack_MultMatrix(p,a)                  (p)->lpVtbl->MultMatrix(p,a)
-#define ID3DXMatrixStack_MultMatrixLocal(p,a)             (p)->lpVtbl->MultMatrixLocal(p,a)
-#define ID3DXMatrixStack_RotateAxis(p,a,b)                (p)->lpVtbl->RotateAxis(p,a,b)
-#define ID3DXMatrixStack_RotateAxisLocal(p,a,b)           (p)->lpVtbl->RotateAxisLocal(p,a,b)
-#define ID3DXMatrixStack_RotateYawPitchRoll(p,a,b,c)      (p)->lpVtbl->RotateYawPitchRoll(p,a,b,c)
-#define ID3DXMatrixStack_RotateYawPitchRollLocal(p,a,b,c) (p)->lpVtbl->RotateYawPitchRollLocal(p,a,b,c)
-#define ID3DXMatrixStack_Scale(p,a,b,c)                   (p)->lpVtbl->Scale(p,a,b,c)
-#define ID3DXMatrixStack_ScaleLocal(p,a,b,c)              (p)->lpVtbl->ScaleLocal(p,a,b,c)
-#define ID3DXMatrixStack_Translate(p,a,b,c)               (p)->lpVtbl->Translate(p,a,b,c)
-#define ID3DXMatrixStack_TranslateLocal(p,a,b,c)          (p)->lpVtbl->TranslateLocal(p,a,b,c)
-#define ID3DXMatrixStack_GetTop(p)                        (p)->lpVtbl->GetTop(p)
-
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-HRESULT WINAPI D3DXCreateMatrixStack(DWORD flags, LPD3DXMATRIXSTACK* ppstack);
-
-#ifdef __cplusplus
-}
-#endif
-
-#include <d3dx9math.inl>
-
-#endif /* __D3DX9MATH_H__ */
diff --git a/misc/builddeps/win32/dx/include/d3dx9math.inl b/misc/builddeps/win32/dx/include/d3dx9math.inl
deleted file mode 100644 (file)
index 3cd078a..0000000
+++ /dev/null
@@ -1,1268 +0,0 @@
-/*
- * Copyright (C) 2007 David Adam
- * Copyright (C) 2007 Tony Wasserka
- *
- * 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 __D3DX9MATH_INL__
-#define __D3DX9MATH_INL__
-
-/* constructors & operators */
-#ifdef __cplusplus
-
-inline D3DXVECTOR2::D3DXVECTOR2()
-{
-}
-
-inline D3DXVECTOR2::D3DXVECTOR2(CONST FLOAT *pf)
-{
-    if(!pf) return;
-    x = pf[0];
-    y = pf[1];
-}
-
-inline D3DXVECTOR2::D3DXVECTOR2(FLOAT fx, FLOAT fy)
-{
-    x = fx;
-    y = fy;
-}
-
-inline D3DXVECTOR2::operator FLOAT* ()
-{
-    return (FLOAT*)&x;
-}
-
-inline D3DXVECTOR2::operator CONST FLOAT* () const
-{
-    return (CONST FLOAT*)&x;
-}
-
-inline D3DXVECTOR2& D3DXVECTOR2::operator += (CONST D3DXVECTOR2& v)
-{
-    x += v.x;
-    y += v.y;
-    return *this;
-}
-
-inline D3DXVECTOR2& D3DXVECTOR2::operator -= (CONST D3DXVECTOR2& v)
-{
-    x -= v.x;
-    y -= v.y;
-    return *this;
-}
-
-inline D3DXVECTOR2& D3DXVECTOR2::operator *= (FLOAT f)
-{
-    x *= f;
-    y *= f;
-    return *this;
-}
-
-inline D3DXVECTOR2& D3DXVECTOR2::operator /= (FLOAT f)
-{
-    x /= f;
-    y /= f;
-    return *this;
-}
-
-inline D3DXVECTOR2 D3DXVECTOR2::operator + () const
-{
-    return *this;
-}
-
-inline D3DXVECTOR2 D3DXVECTOR2::operator - () const
-{
-    return D3DXVECTOR2(-x, -y);
-}
-
-inline D3DXVECTOR2 D3DXVECTOR2::operator + (CONST D3DXVECTOR2& v) const
-{
-    return D3DXVECTOR2(x + v.x, y + v.y);
-}
-
-inline D3DXVECTOR2 D3DXVECTOR2::operator - (CONST D3DXVECTOR2& v) const
-{
-    return D3DXVECTOR2(x - v.x, y - v.y);
-}
-
-inline D3DXVECTOR2 D3DXVECTOR2::operator * (FLOAT f) const
-{
-    return D3DXVECTOR2(x * f, y * f);
-}
-
-inline D3DXVECTOR2 D3DXVECTOR2::operator / (FLOAT f) const
-{
-    return D3DXVECTOR2(x / f, y / f);
-}
-
-inline D3DXVECTOR2 operator * (FLOAT f, CONST D3DXVECTOR2& v)
-{
-    return D3DXVECTOR2(f * v.x, f * v.y);
-}
-
-inline BOOL D3DXVECTOR2::operator == (CONST D3DXVECTOR2& v) const
-{
-    return x == v.x && y == v.y;
-}
-
-inline BOOL D3DXVECTOR2::operator != (CONST D3DXVECTOR2& v) const
-{
-    return x != v.x || y != v.y;
-}
-
-inline D3DXVECTOR3::D3DXVECTOR3()
-{
-}
-
-inline D3DXVECTOR3::D3DXVECTOR3(CONST FLOAT *pf)
-{
-    if(!pf) return;
-    x = pf[0];
-    y = pf[1];
-    z = pf[2];
-}
-
-inline D3DXVECTOR3::D3DXVECTOR3(CONST D3DVECTOR& v)
-{
-    x = v.x;
-    y = v.y;
-    z = v.z;
-}
-
-inline D3DXVECTOR3::D3DXVECTOR3(FLOAT fx, FLOAT fy, FLOAT fz)
-{
-    x = fx;
-    y = fy;
-    z = fz;
-}
-
-inline D3DXVECTOR3::operator FLOAT* ()
-{
-    return (FLOAT*)&x;
-}
-
-inline D3DXVECTOR3::operator CONST FLOAT* () const
-{
-    return (CONST FLOAT*)&x;
-}
-
-inline D3DXVECTOR3& D3DXVECTOR3::operator += (CONST D3DXVECTOR3& v)
-{
-    x += v.x;
-    y += v.y;
-    z += v.z;
-    return *this;
-}
-
-inline D3DXVECTOR3& D3DXVECTOR3::operator -= (CONST D3DXVECTOR3& v)
-{
-    x -= v.x;
-    y -= v.y;
-    z -= v.z;
-    return *this;
-}
-
-inline D3DXVECTOR3& D3DXVECTOR3::operator *= (FLOAT f)
-{
-    x *= f;
-    y *= f;
-    z *= f;
-    return *this;
-}
-
-inline D3DXVECTOR3& D3DXVECTOR3::operator /= (FLOAT f)
-{
-    x /= f;
-    y /= f;
-    z /= f;
-    return *this;
-}
-
-inline D3DXVECTOR3 D3DXVECTOR3::operator + () const
-{
-    return *this;
-}
-
-inline D3DXVECTOR3 D3DXVECTOR3::operator - () const
-{
-    return D3DXVECTOR3(-x, -y, -z);
-}
-
-inline D3DXVECTOR3 D3DXVECTOR3::operator + (CONST D3DXVECTOR3& v) const
-{
-    return D3DXVECTOR3(x + v.x, y + v.y, z + v.z);
-}
-
-inline D3DXVECTOR3 D3DXVECTOR3::operator - (CONST D3DXVECTOR3& v) const
-{
-    return D3DXVECTOR3(x - v.x, y - v.y, z - v.z);
-}
-
-inline D3DXVECTOR3 D3DXVECTOR3::operator * (FLOAT f) const
-{
-    return D3DXVECTOR3(x * f, y * f, z * f);
-}
-
-inline D3DXVECTOR3 D3DXVECTOR3::operator / (FLOAT f) const
-{
-    return D3DXVECTOR3(x / f, y / f, z / f);
-}
-
-inline D3DXVECTOR3 operator * (FLOAT f, CONST D3DXVECTOR3& v)
-{
-    return D3DXVECTOR3(f * v.x, f * v.y, f * v.z);
-}
-
-inline BOOL D3DXVECTOR3::operator == (CONST D3DXVECTOR3& v) const
-{
-    return x == v.x && y == v.y && z == v.z;
-}
-
-inline BOOL D3DXVECTOR3::operator != (CONST D3DXVECTOR3& v) const
-{
-    return x != v.x || y != v.y || z != v.z;
-}
-
-inline D3DXVECTOR4::D3DXVECTOR4()
-{
-}
-
-inline D3DXVECTOR4::D3DXVECTOR4(CONST FLOAT *pf)
-{
-    if(!pf) return;
-    x = pf[0];
-    y = pf[1];
-    z = pf[2];
-    w = pf[3];
-}
-
-inline D3DXVECTOR4::D3DXVECTOR4(FLOAT fx, FLOAT fy, FLOAT fz, FLOAT fw)
-{
-    x = fx;
-    y = fy;
-    z = fz;
-    w = fw;
-}
-
-inline D3DXVECTOR4::operator FLOAT* ()
-{
-    return (FLOAT*)&x;
-}
-
-inline D3DXVECTOR4::operator CONST FLOAT* () const
-{
-    return (CONST FLOAT*)&x;
-}
-
-inline D3DXVECTOR4& D3DXVECTOR4::operator += (CONST D3DXVECTOR4& v)
-{
-    x += v.x;
-    y += v.y;
-    z += v.z;
-    w += v.w;
-    return *this;
-}
-
-inline D3DXVECTOR4& D3DXVECTOR4::operator -= (CONST D3DXVECTOR4& v)
-{
-    x -= v.x;
-    y -= v.y;
-    z -= v.z;
-    w -= v.w;
-    return *this;
-}
-
-inline D3DXVECTOR4& D3DXVECTOR4::operator *= (FLOAT f)
-{
-    x *= f;
-    y *= f;
-    z *= f;
-    w *= f;
-    return *this;
-}
-
-inline D3DXVECTOR4& D3DXVECTOR4::operator /= (FLOAT f)
-{
-    x /= f;
-    y /= f;
-    z /= f;
-    w /= f;
-    return *this;
-}
-
-inline D3DXVECTOR4 D3DXVECTOR4::operator + () const
-{
-    return *this;
-}
-
-inline D3DXVECTOR4 D3DXVECTOR4::operator - () const
-{
-    return D3DXVECTOR4(-x, -y, -z, -w);
-}
-
-inline D3DXVECTOR4 D3DXVECTOR4::operator + (CONST D3DXVECTOR4& v) const
-{
-    return D3DXVECTOR4(x + v.x, y + v.y, z + v.z, w + v.w);
-}
-
-inline D3DXVECTOR4 D3DXVECTOR4::operator - (CONST D3DXVECTOR4& v) const
-{
-    return D3DXVECTOR4(x - v.x, y - v.y, z - v.z, w - v.w);
-}
-
-inline D3DXVECTOR4 D3DXVECTOR4::operator * (FLOAT f) const
-{
-    return D3DXVECTOR4(x * f, y * f, z * f, w * f);
-}
-
-inline D3DXVECTOR4 D3DXVECTOR4::operator / (FLOAT f) const
-{
-    return D3DXVECTOR4(x / f, y / f, z / f, w / f);
-}
-
-inline D3DXVECTOR4 operator * (FLOAT f, CONST D3DXVECTOR4& v)
-{
-    return D3DXVECTOR4(f * v.x, f * v.y, f * v.z, f * v.w);
-}
-
-inline BOOL D3DXVECTOR4::operator == (CONST D3DXVECTOR4& v) const
-{
-    return x == v.x && y == v.y && z == v.z && w == v.w;
-}
-
-inline BOOL D3DXVECTOR4::operator != (CONST D3DXVECTOR4& v) const
-{
-    return x != v.x || y != v.y || z != v.z || w != v.w;
-}
-
-inline D3DXMATRIX::D3DXMATRIX()
-{
-}
-
-inline D3DXMATRIX::D3DXMATRIX(CONST FLOAT *pf)
-{
-    if(!pf) return;
-    memcpy(&_11, pf, sizeof(D3DXMATRIX));
-}
-
-inline D3DXMATRIX::D3DXMATRIX(CONST D3DMATRIX& mat)
-{
-    memcpy(&_11, &mat, sizeof(D3DXMATRIX));
-}
-
-inline D3DXMATRIX::D3DXMATRIX(FLOAT f11, FLOAT f12, FLOAT f13, FLOAT f14,
-                              FLOAT f21, FLOAT f22, FLOAT f23, FLOAT f24,
-                              FLOAT f31, FLOAT f32, FLOAT f33, FLOAT f34,
-                              FLOAT f41, FLOAT f42, FLOAT f43, FLOAT f44)
-{
-    _11 = f11; _12 = f12; _13 = f13; _14 = f14;
-    _21 = f21; _22 = f22; _23 = f23; _24 = f24;
-    _31 = f31; _32 = f32; _33 = f33; _34 = f34;
-    _41 = f41; _42 = f42; _43 = f43; _44 = f44;
-}
-
-inline FLOAT& D3DXMATRIX::operator () (UINT row, UINT col)
-{
-    return m[row][col];
-}
-
-inline FLOAT D3DXMATRIX::operator () (UINT row, UINT col) const
-{
-    return m[row][col];
-}
-
-inline D3DXMATRIX::operator FLOAT* ()
-{
-    return (FLOAT*)&_11;
-}
-
-inline D3DXMATRIX::operator CONST FLOAT* () const
-{
-    return (CONST FLOAT*)&_11;
-}
-
-inline D3DXMATRIX& D3DXMATRIX::operator *= (CONST D3DXMATRIX& mat)
-{
-    D3DXMatrixMultiply(this, this, &mat);
-    return *this;
-}
-
-inline D3DXMATRIX& D3DXMATRIX::operator += (CONST D3DXMATRIX& mat)
-{
-    _11 += mat._11; _12 += mat._12; _13 += mat._13; _14 += mat._14;
-    _21 += mat._21; _22 += mat._22; _23 += mat._23; _24 += mat._24;
-    _31 += mat._31; _32 += mat._32; _33 += mat._33; _34 += mat._34;
-    _41 += mat._41; _42 += mat._42; _43 += mat._43; _44 += mat._44;
-    return *this;
-}
-
-inline D3DXMATRIX& D3DXMATRIX::operator -= (CONST D3DXMATRIX& mat)
-{
-    _11 -= mat._11; _12 -= mat._12; _13 -= mat._13; _14 -= mat._14;
-    _21 -= mat._21; _22 -= mat._22; _23 -= mat._23; _24 -= mat._24;
-    _31 -= mat._31; _32 -= mat._32; _33 -= mat._33; _34 -= mat._34;
-    _41 -= mat._41; _42 -= mat._42; _43 -= mat._43; _44 -= mat._44;
-    return *this;
-}
-
-inline D3DXMATRIX& D3DXMATRIX::operator *= (FLOAT f)
-{
-    _11 *= f; _12 *= f; _13 *= f; _14 *= f;
-    _21 *= f; _22 *= f; _23 *= f; _24 *= f;
-    _31 *= f; _32 *= f; _33 *= f; _34 *= f;
-    _41 *= f; _42 *= f; _43 *= f; _44 *= f;
-    return *this;
-}
-
-inline D3DXMATRIX& D3DXMATRIX::operator /= (FLOAT f)
-{
-    FLOAT inv = 1.0f / f;
-    _11 *= inv; _12 *= inv; _13 *= inv; _14 *= inv;
-    _21 *= inv; _22 *= inv; _23 *= inv; _24 *= inv;
-    _31 *= inv; _32 *= inv; _33 *= inv; _34 *= inv;
-    _41 *= inv; _42 *= inv; _43 *= inv; _44 *= inv;
-    return *this;
-}
-
-inline D3DXMATRIX D3DXMATRIX::operator + () const
-{
-    return *this;
-}
-
-inline D3DXMATRIX D3DXMATRIX::operator - () const
-{
-    return D3DXMATRIX(-_11, -_12, -_13, -_14,
-                      -_21, -_22, -_23, -_24,
-                      -_31, -_32, -_33, -_34,
-                      -_41, -_42, -_43, -_44);
-}
-
-inline D3DXMATRIX D3DXMATRIX::operator * (CONST D3DXMATRIX& mat) const
-{
-    D3DXMATRIX buf;
-    D3DXMatrixMultiply(&buf, this, &mat);
-    return buf;
-}
-
-inline D3DXMATRIX D3DXMATRIX::operator + (CONST D3DXMATRIX& mat) const
-{
-    return D3DXMATRIX(_11 + mat._11, _12 + mat._12, _13 + mat._13, _14 + mat._14,
-                      _21 + mat._21, _22 + mat._22, _23 + mat._23, _24 + mat._24,
-                      _31 + mat._31, _32 + mat._32, _33 + mat._33, _34 + mat._34,
-                      _41 + mat._41, _42 + mat._42, _43 + mat._43, _44 + mat._44);
-}
-
-inline D3DXMATRIX D3DXMATRIX::operator - (CONST D3DXMATRIX& mat) const
-{
-    return D3DXMATRIX(_11 - mat._11, _12 - mat._12, _13 - mat._13, _14 - mat._14,
-                      _21 - mat._21, _22 - mat._22, _23 - mat._23, _24 - mat._24,
-                      _31 - mat._31, _32 - mat._32, _33 - mat._33, _34 - mat._34,
-                      _41 - mat._41, _42 - mat._42, _43 - mat._43, _44 - mat._44);
-}
-
-inline D3DXMATRIX D3DXMATRIX::operator * (FLOAT f) const
-{
-    return D3DXMATRIX(_11 * f, _12 * f, _13 * f, _14 * f,
-                      _21 * f, _22 * f, _23 * f, _24 * f,
-                      _31 * f, _32 * f, _33 * f, _34 * f,
-                      _41 * f, _42 * f, _43 * f, _44 * f);
-}
-
-inline D3DXMATRIX D3DXMATRIX::operator / (FLOAT f) const
-{
-    FLOAT inv = 1.0f / f;
-    return D3DXMATRIX(_11 * inv, _12 * inv, _13 * inv, _14 * inv,
-                      _21 * inv, _22 * inv, _23 * inv, _24 * inv,
-                      _31 * inv, _32 * inv, _33 * inv, _34 * inv,
-                      _41 * inv, _42 * inv, _43 * inv, _44 * inv);
-}
-
-inline D3DXMATRIX operator * (FLOAT f, CONST D3DXMATRIX& mat)
-{
-    return D3DXMATRIX(f * mat._11, f * mat._12, f * mat._13, f * mat._14,
-                      f * mat._21, f * mat._22, f * mat._23, f * mat._24,
-                      f * mat._31, f * mat._32, f * mat._33, f * mat._34,
-                      f * mat._41, f * mat._42, f * mat._43, f * mat._44);
-}
-
-inline BOOL D3DXMATRIX::operator == (CONST D3DXMATRIX& mat) const
-{
-    return (memcmp(this, &mat, sizeof(D3DXMATRIX)) == 0);
-}
-
-inline BOOL D3DXMATRIX::operator != (CONST D3DXMATRIX& mat) const
-{
-    return (memcmp(this, &mat, sizeof(D3DXMATRIX)) != 0);
-}
-
-inline D3DXQUATERNION::D3DXQUATERNION()
-{
-}
-
-inline D3DXQUATERNION::D3DXQUATERNION(CONST FLOAT *pf)
-{
-    if(!pf) return;
-    x = pf[0];
-    y = pf[1];
-    z = pf[2];
-    w = pf[3];
-}
-
-inline D3DXQUATERNION::D3DXQUATERNION(FLOAT fx, FLOAT fy, FLOAT fz, FLOAT fw)
-{
-    x = fx;
-    y = fy;
-    z = fz;
-    w = fw;
-}
-
-inline D3DXQUATERNION::operator FLOAT* ()
-{
-    return (FLOAT*)&x;
-}
-
-inline D3DXQUATERNION::operator CONST FLOAT* () const
-{
-    return (CONST FLOAT*)&x;
-}
-
-inline D3DXQUATERNION& D3DXQUATERNION::operator += (CONST D3DXQUATERNION& quat)
-{
-    x += quat.x;
-    y += quat.y;
-    z += quat.z;
-    w += quat.w;
-    return *this;
-}
-
-inline D3DXQUATERNION& D3DXQUATERNION::operator -= (CONST D3DXQUATERNION& quat)
-{
-    x -= quat.x;
-    y -= quat.y;
-    z -= quat.z;
-    w -= quat.w;
-    return *this;
-}
-
-/* TODO: uncomment this when D3DXQuaternionMultiply has been implemented
-inline D3DXQUATERNION& D3DXQUATERNION::operator *= (CONST D3DXQUATERNION& quat)
-{
-    D3DXQuaternionMultiply(this, this, &quat);
-    return *this;
-}
-*/
-
-inline D3DXQUATERNION& D3DXQUATERNION::operator *= (FLOAT f)
-{
-    x *= f;
-    y *= f;
-    z *= f;
-    w *= f;
-    return *this;
-}
-
-inline D3DXQUATERNION& D3DXQUATERNION::operator /= (FLOAT f)
-{
-    FLOAT inv = 1.0f / f;
-    x *= inv;
-    y *= inv;
-    z *= inv;
-    w *= inv;
-    return *this;
-}
-
-inline D3DXQUATERNION D3DXQUATERNION::operator + () const
-{
-    return *this;
-}
-
-inline D3DXQUATERNION D3DXQUATERNION::operator - () const
-{
-    return D3DXQUATERNION(-x, -y, -z, -w);
-}
-
-inline D3DXQUATERNION D3DXQUATERNION::operator + (CONST D3DXQUATERNION& quat) const
-{
-    return D3DXQUATERNION(x + quat.x, y + quat.y, z + quat.z, w + quat.w);
-}
-
-inline D3DXQUATERNION D3DXQUATERNION::operator - (CONST D3DXQUATERNION& quat) const
-{
-    return D3DXQUATERNION(x - quat.x, y - quat.y, z - quat.z, w - quat.w);
-}
-
-/* TODO: uncomment this when D3DXQuaternionMultiply has been implemented
-inline D3DXQUATERNION D3DXQUATERNION::operator * (CONST D3DXQUATERNION& quat) const
-{
-    D3DXQUATERNION buf;
-    D3DXQuaternionMultiply(&buf, this, &quat);
-    return buf;
-}
-*/
-
-inline D3DXQUATERNION D3DXQUATERNION::operator * (FLOAT f) const
-{
-    return D3DXQUATERNION(x * f, y * f, z * f, w * f);
-}
-
-inline D3DXQUATERNION D3DXQUATERNION::operator / (FLOAT f) const
-{
-    FLOAT inv = 1.0f / f;
-    return D3DXQUATERNION(x * inv, y * inv, z * inv, w * inv);
-}
-
-inline D3DXQUATERNION operator * (FLOAT f, CONST D3DXQUATERNION& quat)
-{
-    return D3DXQUATERNION(f * quat.x, f * quat.y, f * quat.z, f * quat.w);
-}
-
-inline BOOL D3DXQUATERNION::operator == (CONST D3DXQUATERNION& quat) const
-{
-    return x == quat.x && y == quat.y && z == quat.z && w == quat.w;
-}
-
-inline BOOL D3DXQUATERNION::operator != (CONST D3DXQUATERNION& quat) const
-{
-    return x != quat.x || y != quat.y || z != quat.z || w != quat.w;
-}
-
-inline D3DXPLANE::D3DXPLANE()
-{
-}
-
-inline D3DXPLANE::D3DXPLANE(CONST FLOAT *pf)
-{
-    if(!pf) return;
-    a = pf[0];
-    b = pf[1];
-    c = pf[2];
-    d = pf[3];
-}
-
-inline D3DXPLANE::D3DXPLANE(FLOAT fa, FLOAT fb, FLOAT fc, FLOAT fd)
-{
-    a = fa;
-    b = fb;
-    c = fc;
-    d = fd;
-}
-
-inline D3DXPLANE::operator FLOAT* ()
-{
-    return (FLOAT*)&a;
-}
-
-inline D3DXPLANE::operator CONST FLOAT* () const
-{
-    return (CONST FLOAT*)&a;
-}
-
-inline D3DXPLANE D3DXPLANE::operator + () const
-{
-    return *this;
-}
-
-inline D3DXPLANE D3DXPLANE::operator - () const
-{
-    return D3DXPLANE(-a, -b, -c, -d);
-}
-
-inline BOOL D3DXPLANE::operator == (CONST D3DXPLANE& pl) const
-{
-    return a == pl.a && b == pl.b && c == pl.c && d == pl.d;
-}
-
-inline BOOL D3DXPLANE::operator != (CONST D3DXPLANE& pl) const
-{
-    return a != pl.a || b != pl.b || c != pl.c || d != pl.d;
-}
-
-inline D3DXCOLOR::D3DXCOLOR()
-{
-}
-
-inline D3DXCOLOR::D3DXCOLOR(DWORD col)
-{
-    CONST FLOAT f = 1.0f / 255.0f;
-    r = f * (FLOAT)(unsigned char)(col >> 16);
-    g = f * (FLOAT)(unsigned char)(col >>  8);
-    b = f * (FLOAT)(unsigned char)col;
-    a = f * (FLOAT)(unsigned char)(col >> 24);
-}
-
-inline D3DXCOLOR::D3DXCOLOR(CONST FLOAT *pf)
-{
-    if(!pf) return;
-    r = pf[0];
-    g = pf[1];
-    b = pf[2];
-    a = pf[3];
-}
-
-inline D3DXCOLOR::D3DXCOLOR(CONST D3DCOLORVALUE& col)
-{
-    r = col.r;
-    g = col.g;
-    b = col.b;
-    a = col.a;
-}
-
-inline D3DXCOLOR::D3DXCOLOR(FLOAT fr, FLOAT fg, FLOAT fb, FLOAT fa)
-{
-    r = fr;
-    g = fg;
-    b = fb;
-    a = fa;
-}
-
-inline D3DXCOLOR::operator DWORD () const
-{
-    DWORD _r = r >= 1.0f ? 0xff : r <= 0.0f ? 0x00 : (DWORD)(r * 255.0f + 0.5f);
-    DWORD _g = g >= 1.0f ? 0xff : g <= 0.0f ? 0x00 : (DWORD)(g * 255.0f + 0.5f);
-    DWORD _b = b >= 1.0f ? 0xff : b <= 0.0f ? 0x00 : (DWORD)(b * 255.0f + 0.5f);
-    DWORD _a = a >= 1.0f ? 0xff : a <= 0.0f ? 0x00 : (DWORD)(a * 255.0f + 0.5f);
-
-    return (_a << 24) | (_r << 16) | (_g << 8) | _b;
-}
-
-inline D3DXCOLOR::operator FLOAT * ()
-{
-    return (FLOAT*)&r;
-}
-
-inline D3DXCOLOR::operator CONST FLOAT * () const
-{
-    return (CONST FLOAT*)&r;
-}
-
-inline D3DXCOLOR::operator D3DCOLORVALUE * ()
-{
-    return (D3DCOLORVALUE*)&r;
-}
-
-inline D3DXCOLOR::operator CONST D3DCOLORVALUE * () const
-{
-    return (CONST D3DCOLORVALUE*)&r;
-}
-
-inline D3DXCOLOR::operator D3DCOLORVALUE& ()
-{
-    return *((D3DCOLORVALUE*)&r);
-}
-
-inline D3DXCOLOR::operator CONST D3DCOLORVALUE& () const
-{
-    return *((CONST D3DCOLORVALUE*)&r);
-}
-
-inline D3DXCOLOR& D3DXCOLOR::operator += (CONST D3DXCOLOR& col)
-{
-    r += col.r;
-    g += col.g;
-    b += col.b;
-    a += col.a;
-    return *this;
-}
-
-inline D3DXCOLOR& D3DXCOLOR::operator -= (CONST D3DXCOLOR& col)
-{
-    r -= col.r;
-    g -= col.g;
-    b -= col.b;
-    a -= col.a;
-    return *this;
-}
-
-inline D3DXCOLOR& D3DXCOLOR::operator *= (FLOAT f)
-{
-    r *= f;
-    g *= f;
-    b *= f;
-    a *= f;
-    return *this;
-}
-
-inline D3DXCOLOR& D3DXCOLOR::operator /= (FLOAT f)
-{
-    FLOAT inv = 1.0f / f;
-    r *= inv;
-    g *= inv;
-    b *= inv;
-    a *= inv;
-    return *this;
-}
-
-inline D3DXCOLOR D3DXCOLOR::operator + () const
-{
-    return *this;
-}
-
-inline D3DXCOLOR D3DXCOLOR::operator - () const
-{
-    return D3DXCOLOR(-r, -g, -b, -a);
-}
-
-inline D3DXCOLOR D3DXCOLOR::operator + (CONST D3DXCOLOR& col) const
-{
-    return D3DXCOLOR(r + col.r, g + col.g, b + col.b, a + col.a);
-}
-
-inline D3DXCOLOR D3DXCOLOR::operator - (CONST D3DXCOLOR& col) const
-{
-    return D3DXCOLOR(r - col.r, g - col.g, b - col.b, a - col.a);
-}
-
-inline D3DXCOLOR D3DXCOLOR::operator * (FLOAT f) const
-{
-    return D3DXCOLOR(r * f, g * f, b * f, a * f);
-}
-
-inline D3DXCOLOR D3DXCOLOR::operator / (FLOAT f) const
-{
-    FLOAT inv = 1.0f / f;
-    return D3DXCOLOR(r * inv, g * inv, b * inv, a * inv);
-}
-
-inline D3DXCOLOR operator * (FLOAT f, CONST D3DXCOLOR& col)
-{
-    return D3DXCOLOR(f * col.r, f * col.g, f * col.b, f * col.a);
-}
-
-inline BOOL D3DXCOLOR::operator == (CONST D3DXCOLOR& col) const
-{
-    return r == col.r && g == col.g && b == col.b && a == col.a;
-}
-
-inline BOOL D3DXCOLOR::operator != (CONST D3DXCOLOR& col) const
-{
-    return r != col.r || g != col.g || b != col.b || a != col.a;
-}
-
-#endif /* __cplusplus */
-
-/*_______________D3DXCOLOR_____________________*/
-
-static inline D3DXCOLOR* D3DXColorAdd(D3DXCOLOR *pout, CONST D3DXCOLOR *pc1, CONST D3DXCOLOR *pc2)
-{
-    if ( !pout || !pc1 || !pc2 ) return NULL;
-    pout->r = (pc1->r) + (pc2->r);
-    pout->g = (pc1->g) + (pc2->g);
-    pout->b = (pc1->b) + (pc2->b);
-    pout->a = (pc1->a) + (pc2->a);
-    return pout;
-}
-
-static inline D3DXCOLOR* D3DXColorLerp(D3DXCOLOR *pout, CONST D3DXCOLOR *pc1, CONST D3DXCOLOR *pc2, FLOAT s)
-{
-    if ( !pout || !pc1 || !pc2 ) return NULL;
-    pout->r = (1-s) * (pc1->r) + s *(pc2->r);
-    pout->g = (1-s) * (pc1->g) + s *(pc2->g);
-    pout->b = (1-s) * (pc1->b) + s *(pc2->b);
-    pout->a = (1-s) * (pc1->a) + s *(pc2->a);
-    return pout;
-}
-
-static inline D3DXCOLOR* D3DXColorModulate(D3DXCOLOR *pout, CONST D3DXCOLOR *pc1, CONST D3DXCOLOR *pc2)
-{
-    if ( !pout || !pc1 || !pc2 ) return NULL;
-    pout->r = (pc1->r) * (pc2->r);
-    pout->g = (pc1->g) * (pc2->g);
-    pout->b = (pc1->b) * (pc2->b);
-    pout->a = (pc1->a) * (pc2->a);
-    return pout;
-}
-
-static inline D3DXCOLOR* D3DXColorNegative(D3DXCOLOR *pout, CONST D3DXCOLOR *pc)
-{
-    if ( !pout || !pc ) return NULL;
-    pout->r = 1.0f - pc->r;
-    pout->g = 1.0f - pc->g;
-    pout->b = 1.0f - pc->b;
-    pout->a = pc->a;
-    return pout;
-}
-
-static inline D3DXCOLOR* D3DXColorScale(D3DXCOLOR *pout, CONST D3DXCOLOR *pc, FLOAT s)
-{
-    if ( !pout || !pc ) return NULL;
-    pout->r = s* (pc->r);
-    pout->g = s* (pc->g);
-    pout->b = s* (pc->b);
-    pout->a = s* (pc->a);
-    return pout;
-}
-
-static inline D3DXCOLOR* D3DXColorSubtract(D3DXCOLOR *pout, CONST D3DXCOLOR *pc1, CONST D3DXCOLOR *pc2)
-{
-    if ( !pout || !pc1 || !pc2 ) return NULL;
-    pout->r = (pc1->r) - (pc2->r);
-    pout->g = (pc1->g) - (pc2->g);
-    pout->b = (pc1->b) - (pc2->b);
-    pout->a = (pc1->a) - (pc2->a);
-    return pout;
-}
-
-/*_______________D3DXVECTOR2________________________*/
-
-static inline D3DXVECTOR2* D3DXVec2Add(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = pv1->x + pv2->x;
-    pout->y = pv1->y + pv2->y;
-    return pout;
-}
-
-static inline FLOAT D3DXVec2CCW(CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2)
-{
-    if ( !pv1 || !pv2) return 0.0f;
-    return ( (pv1->x) * (pv2->y) - (pv1->y) * (pv2->x) );
-}
-
-static inline FLOAT D3DXVec2Dot(CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2)
-{
-    if ( !pv1 || !pv2) return 0.0f;
-    return ( (pv1->x * pv2->x + pv1->y * pv2->y) );
-}
-
-static inline FLOAT D3DXVec2Length(CONST D3DXVECTOR2 *pv)
-{
-    if (!pv) return 0.0f;
-    return sqrt( (pv->x) * (pv->x) + (pv->y) * (pv->y) );
-}
-
-static inline FLOAT D3DXVec2LengthSq(CONST D3DXVECTOR2 *pv)
-{
-    if (!pv) return 0.0f;
-    return( (pv->x) * (pv->x) + (pv->y) * (pv->y) );
-}
-
-static inline D3DXVECTOR2* D3DXVec2Lerp(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2, FLOAT s)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = (1-s) * (pv1->x) + s * (pv2->x);
-    pout->y = (1-s) * (pv1->y) + s * (pv2->y);
-    return pout;
-}
-
-static inline D3DXVECTOR2* D3DXVec2Maximize(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = max(pv1->x , pv2->x);
-    pout->y = max(pv1->y , pv2->y);
-    return pout;
-}
-
-static inline D3DXVECTOR2* D3DXVec2Minimize(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = min(pv1->x , pv2->x);
-    pout->y = min(pv1->y , pv2->y);
-    return pout;
-}
-
-static inline D3DXVECTOR2* D3DXVec2Scale(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv, FLOAT s)
-{
-    if ( !pout || !pv) return NULL;
-    pout->x = s * (pv->x);
-    pout->y = s * (pv->y);
-    return pout;
-}
-
-static inline D3DXVECTOR2* D3DXVec2Subtract(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = pv1->x - pv2->x;
-    pout->y = pv1->y - pv2->y;
-    return pout;
-}
-
-/*__________________D3DXVECTOR3_______________________*/
-
-static inline D3DXVECTOR3* D3DXVec3Add(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = pv1->x + pv2->x;
-    pout->y = pv1->y + pv2->y;
-    pout->z = pv1->z + pv2->z;
-    return pout;
-}
-
-static inline D3DXVECTOR3* D3DXVec3Cross(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = (pv1->y) * (pv2->z) - (pv1->z) * (pv2->y);
-    pout->y = (pv1->z) * (pv2->x) - (pv1->x) * (pv2->z);
-    pout->z = (pv1->x) * (pv2->y) - (pv1->y) * (pv2->x);
-    return pout;
-}
-
-static inline FLOAT D3DXVec3Dot(CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2)
-{
-    if ( !pv1 || !pv2 ) return 0.0f;
-    return (pv1->x) * (pv2->x) + (pv1->y) * (pv2->y) + (pv1->z) * (pv2->z);
-}
-
-static inline FLOAT D3DXVec3Length(CONST D3DXVECTOR3 *pv)
-{
-    if (!pv) return 0.0f;
-    return sqrt( (pv->x) * (pv->x) + (pv->y) * (pv->y) + (pv->z) * (pv->z) );
-}
-
-static inline FLOAT D3DXVec3LengthSq(CONST D3DXVECTOR3 *pv)
-{
-    if (!pv) return 0.0f;
-    return (pv->x) * (pv->x) + (pv->y) * (pv->y) + (pv->z) * (pv->z);
-}
-
-static inline D3DXVECTOR3* D3DXVec3Lerp(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2, FLOAT s)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = (1-s) * (pv1->x) + s * (pv2->x);
-    pout->y = (1-s) * (pv1->y) + s * (pv2->y);
-    pout->z = (1-s) * (pv1->z) + s * (pv2->z);
-    return pout;
-}
-
-static inline D3DXVECTOR3* D3DXVec3Maximize(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = max(pv1->x , pv2->x);
-    pout->y = max(pv1->y , pv2->y);
-    pout->z = max(pv1->z , pv2->z);
-    return pout;
-}
-
-static inline D3DXVECTOR3* D3DXVec3Minimize(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = min(pv1->x , pv2->x);
-    pout->y = min(pv1->y , pv2->y);
-    pout->z = min(pv1->z , pv2->z);
-    return pout;
-}
-
-static inline D3DXVECTOR3* D3DXVec3Scale(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv, FLOAT s)
-{
-    if ( !pout || !pv) return NULL;
-    pout->x = s * (pv->x);
-    pout->y = s * (pv->y);
-    pout->z = s * (pv->z);
-    return pout;
-}
-
-static inline D3DXVECTOR3* D3DXVec3Subtract(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = pv1->x - pv2->x;
-    pout->y = pv1->y - pv2->y;
-    pout->z = pv1->z - pv2->z;
-    return pout;
-}
-/*__________________D3DXVECTOR4_______________________*/
-
-static inline D3DXVECTOR4* D3DXVec4Add(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = pv1->x + pv2->x;
-    pout->y = pv1->y + pv2->y;
-    pout->z = pv1->z + pv2->z;
-    pout->w = pv1->w + pv2->w;
-    return pout;
-}
-
-static inline FLOAT D3DXVec4Dot(CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2)
-{
-    if (!pv1 || !pv2 ) return 0.0f;
-    return (pv1->x) * (pv2->x) + (pv1->y) * (pv2->y) + (pv1->z) * (pv2->z) + (pv1->w) * (pv2->w);
-}
-
-static inline FLOAT D3DXVec4Length(CONST D3DXVECTOR4 *pv)
-{
-    if (!pv) return 0.0f;
-    return sqrt( (pv->x) * (pv->x) + (pv->y) * (pv->y) + (pv->z) * (pv->z) + (pv->w) * (pv->w) );
-}
-
-static inline FLOAT D3DXVec4LengthSq(CONST D3DXVECTOR4 *pv)
-{
-    if (!pv) return 0.0f;
-    return (pv->x) * (pv->x) + (pv->y) * (pv->y) + (pv->z) * (pv->z) + (pv->w) * (pv->w);
-}
-
-static inline D3DXVECTOR4* D3DXVec4Lerp(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2, FLOAT s)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = (1-s) * (pv1->x) + s * (pv2->x);
-    pout->y = (1-s) * (pv1->y) + s * (pv2->y);
-    pout->z = (1-s) * (pv1->z) + s * (pv2->z);
-    pout->w = (1-s) * (pv1->w) + s * (pv2->w);
-    return pout;
-}
-
-
-static inline D3DXVECTOR4* D3DXVec4Maximize(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = max(pv1->x , pv2->x);
-    pout->y = max(pv1->y , pv2->y);
-    pout->z = max(pv1->z , pv2->z);
-    pout->w = max(pv1->w , pv2->w);
-    return pout;
-}
-
-static inline D3DXVECTOR4* D3DXVec4Minimize(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = min(pv1->x , pv2->x);
-    pout->y = min(pv1->y , pv2->y);
-    pout->z = min(pv1->z , pv2->z);
-    pout->w = min(pv1->w , pv2->w);
-    return pout;
-}
-
-static inline D3DXVECTOR4* D3DXVec4Scale(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv, FLOAT s)
-{
-    if ( !pout || !pv) return NULL;
-    pout->x = s * (pv->x);
-    pout->y = s * (pv->y);
-    pout->z = s * (pv->z);
-    pout->w = s * (pv->w);
-    return pout;
-}
-
-static inline D3DXVECTOR4* D3DXVec4Subtract(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = pv1->x - pv2->x;
-    pout->y = pv1->y - pv2->y;
-    pout->z = pv1->z - pv2->z;
-    pout->w = pv1->w - pv2->w;
-    return pout;
-}
-
-/*__________________D3DXMatrix____________________*/
-#ifdef NONAMELESSUNION
-# define D3DX_U(x)  (x).u
-#else
-# define D3DX_U(x)  (x)
-#endif
-
-static inline D3DXMATRIX* D3DXMatrixIdentity(D3DXMATRIX *pout)
-{
-    if ( !pout ) return NULL;
-    D3DX_U(*pout).m[0][1] = 0.0f;
-    D3DX_U(*pout).m[0][2] = 0.0f;
-    D3DX_U(*pout).m[0][3] = 0.0f;
-    D3DX_U(*pout).m[1][0] = 0.0f;
-    D3DX_U(*pout).m[1][2] = 0.0f;
-    D3DX_U(*pout).m[1][3] = 0.0f;
-    D3DX_U(*pout).m[2][0] = 0.0f;
-    D3DX_U(*pout).m[2][1] = 0.0f;
-    D3DX_U(*pout).m[2][3] = 0.0f;
-    D3DX_U(*pout).m[3][0] = 0.0f;
-    D3DX_U(*pout).m[3][1] = 0.0f;
-    D3DX_U(*pout).m[3][2] = 0.0f;
-    D3DX_U(*pout).m[0][0] = 1.0f;
-    D3DX_U(*pout).m[1][1] = 1.0f;
-    D3DX_U(*pout).m[2][2] = 1.0f;
-    D3DX_U(*pout).m[3][3] = 1.0f;
-    return pout;
-}
-
-static inline BOOL D3DXMatrixIsIdentity(D3DXMATRIX *pm)
-{
-    int i,j;
-    D3DXMATRIX testmatrix;
-
-    if ( !pm ) return FALSE;
-    D3DXMatrixIdentity(&testmatrix);
-    for (i=0; i<4; i++)
-    {
-     for (j=0; j<4; j++)
-     {
-      if ( D3DX_U(*pm).m[i][j] != D3DX_U(testmatrix).m[i][j] ) return FALSE;
-     }
-    }
-    return TRUE;
-}
-#undef D3DX_U
-
-/*__________________D3DXPLANE____________________*/
-
-static inline FLOAT D3DXPlaneDot(CONST D3DXPLANE *pp, CONST D3DXVECTOR4 *pv)
-{
-    if ( !pp || !pv ) return 0.0f;
-    return ( (pp->a) * (pv->x) + (pp->b) * (pv->y) + (pp->c) * (pv->z) + (pp->d) * (pv->w) );
-}
-
-static inline FLOAT D3DXPlaneDotCoord(CONST D3DXPLANE *pp, CONST D3DXVECTOR4 *pv)
-{
-    if ( !pp || !pv ) return 0.0f;
-    return ( (pp->a) * (pv->x) + (pp->b) * (pv->y) + (pp->c) * (pv->z) + (pp->d) );
-}
-
-static inline FLOAT D3DXPlaneDotNormal(CONST D3DXPLANE *pp, CONST D3DXVECTOR4 *pv)
-{
-    if ( !pp || !pv ) return 0.0f;
-    return ( (pp->a) * (pv->x) + (pp->b) * (pv->y) + (pp->c) * (pv->z) );
-}
-
-/*__________________D3DXQUATERNION____________________*/
-
-static inline D3DXQUATERNION* D3DXQuaternionConjugate(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq)
-{
-    if ( !pout || !pq) return NULL;
-    pout->x = -pq->x;
-    pout->y = -pq->y;
-    pout->z = -pq->z;
-    pout->w = pq->w;
-    return pout;
-}
-
-static inline FLOAT D3DXQuaternionDot(CONST D3DXQUATERNION *pq1, CONST D3DXQUATERNION *pq2)
-{
-    if ( !pq1 || !pq2 ) return 0.0f;
-    return (pq1->x) * (pq2->x) + (pq1->y) * (pq2->y) + (pq1->z) * (pq2->z) + (pq1->w) * (pq2->w);
-}
-
-static inline D3DXQUATERNION* D3DXQuaternionIdentity(D3DXQUATERNION *pout)
-{
-    if ( !pout) return NULL;
-    pout->x = 0.0f;
-    pout->y = 0.0f;
-    pout->z = 0.0f;
-    pout->w = 1.0f;
-    return pout;
-}
-
-static inline BOOL D3DXQuaternionIsIdentity(D3DXQUATERNION *pq)
-{
-    if ( !pq) return FALSE;
-    return ( (pq->x == 0.0f) && (pq->y == 0.0f) && (pq->z == 0.0f) && (pq->w == 1.0f) );
-}
-
-static inline FLOAT D3DXQuaternionLength(CONST D3DXQUATERNION *pq)
-{
-    if (!pq) return 0.0f;
-    return sqrt( (pq->x) * (pq->x) + (pq->y) * (pq->y) + (pq->z) * (pq->z) + (pq->w) * (pq->w) );
-}
-
-static inline FLOAT D3DXQuaternionLengthSq(CONST D3DXQUATERNION *pq)
-{
-    if (!pq) return 0.0f;
-    return (pq->x) * (pq->x) + (pq->y) * (pq->y) + (pq->z) * (pq->z) + (pq->w) * (pq->w);
-}
-
-#endif
diff --git a/misc/builddeps/win32/dx/include/d3dx9mesh.h b/misc/builddeps/win32/dx/include/d3dx9mesh.h
deleted file mode 100644 (file)
index 5773d24..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (C) 2009 David Adam
- * Copyright (C) 2010 Tony Wasserka
- *
- * 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
- */
-
-#include <d3dx9.h>
-
-#ifndef __WINE_D3DX9MESH_H
-#define __WINE_D3DX9MESH_H
-
-DEFINE_GUID(IID_ID3DXBaseMesh, 0x7ed943dd, 0x52e8, 0x40b5, 0xa8, 0xd8, 0x76, 0x68, 0x5c, 0x40, 0x63, 0x30);
-DEFINE_GUID(IID_ID3DXMesh,     0x4020e5c2, 0x1403, 0x4929, 0x88, 0x3f, 0xe2, 0xe8, 0x49, 0xfa, 0xc1, 0x95);
-
-enum _MAX_FVF_DECL_SIZE
-{
-    MAX_FVF_DECL_SIZE = MAXD3DDECLLENGTH + 1
-};
-
-typedef struct ID3DXBaseMesh* LPD3DXBASEMESH;
-typedef struct ID3DXMesh* LPD3DXMESH;
-
-typedef struct _D3DXATTRIBUTERANGE {
-    DWORD AttribId;
-    DWORD FaceStart;
-    DWORD FaceCount;
-    DWORD VertexStart;
-    DWORD VertexCount;
-} D3DXATTRIBUTERANGE;
-
-typedef D3DXATTRIBUTERANGE* LPD3DXATTRIBUTERANGE;
-
-#undef INTERFACE
-#define INTERFACE ID3DXBaseMesh
-
-DECLARE_INTERFACE_(ID3DXBaseMesh, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID* object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-    /*** ID3DXBaseMesh ***/
-    STDMETHOD(DrawSubset)(THIS_ DWORD attrib_id) PURE;
-    STDMETHOD_(DWORD, GetNumFaces)(THIS) PURE;
-    STDMETHOD_(DWORD, GetNumVertices)(THIS) PURE;
-    STDMETHOD_(DWORD, GetFVF)(THIS) PURE;
-    STDMETHOD(GetDeclaration)(THIS_ D3DVERTEXELEMENT9 declaration[MAX_FVF_DECL_SIZE]) PURE;
-    STDMETHOD_(DWORD, GetNumBytesPerVertex)(THIS) PURE;
-    STDMETHOD_(DWORD, GetOptions)(THIS) PURE;
-    STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9* device) PURE;
-    STDMETHOD(CloneMeshFVF)(THIS_ DWORD options, DWORD fvf, LPDIRECT3DDEVICE9 device, LPD3DXMESH* clone_mesh) PURE;
-    STDMETHOD(CloneMesh)(THIS_ DWORD options, CONST D3DVERTEXELEMENT9* declaration, LPDIRECT3DDEVICE9 device,
-        LPD3DXMESH* clone_mesh) PURE;
-    STDMETHOD(GetVertexBuffer)(THIS_ LPDIRECT3DVERTEXBUFFER9* vertex_buffer) PURE;
-    STDMETHOD(GetIndexBuffer)(THIS_ LPDIRECT3DINDEXBUFFER9* index_buffer) PURE;
-    STDMETHOD(LockVertexBuffer)(THIS_ DWORD flags, LPVOID* data) PURE;
-    STDMETHOD(UnlockVertexBuffer)(THIS) PURE;
-    STDMETHOD(LockIndexBuffer)(THIS_ DWORD flags, LPVOID* data) PURE;
-    STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
-    STDMETHOD(GetAttributeTable)(THIS_ D3DXATTRIBUTERANGE* attrib_table, DWORD* attrib_table_size) PURE;
-    STDMETHOD(ConvertPointRepsToAdjacency)(THIS_ CONST DWORD* point_reps, DWORD* adjacency) PURE;
-    STDMETHOD(ConvertAdjacencyToPointReps)(THIS_ CONST DWORD* adjacency, DWORD* point_reps) PURE;
-    STDMETHOD(GenerateAdjacency)(THIS_ FLOAT epsilon, DWORD* adjacency) PURE;
-    STDMETHOD(UpdateSemantics)(THIS_ D3DVERTEXELEMENT9 declaration[MAX_FVF_DECL_SIZE]) PURE;
-};
-
-
-#undef INTERFACE
-#define INTERFACE ID3DXMesh
-
-DECLARE_INTERFACE_(ID3DXMesh, ID3DXBaseMesh)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID* object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-    /*** ID3DXBaseMesh ***/
-    STDMETHOD(DrawSubset)(THIS_ DWORD attrib_id) PURE;
-    STDMETHOD_(DWORD, GetNumFaces)(THIS) PURE;
-    STDMETHOD_(DWORD, GetNumVertices)(THIS) PURE;
-    STDMETHOD_(DWORD, GetFVF)(THIS) PURE;
-    STDMETHOD(GetDeclaration)(THIS_ D3DVERTEXELEMENT9 declaration[MAX_FVF_DECL_SIZE]) PURE;
-    STDMETHOD_(DWORD, GetNumBytesPerVertex)(THIS) PURE;
-    STDMETHOD_(DWORD, GetOptions)(THIS) PURE;
-    STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9* device) PURE;
-    STDMETHOD(CloneMeshFVF)(THIS_ DWORD options, DWORD fvf, LPDIRECT3DDEVICE9 device, LPD3DXMESH* clone_mesh) PURE;
-    STDMETHOD(CloneMesh)(THIS_ DWORD options, CONST D3DVERTEXELEMENT9* declaration, LPDIRECT3DDEVICE9 device,
-        LPD3DXMESH* clone_mesh) PURE;
-    STDMETHOD(GetVertexBuffer)(THIS_ LPDIRECT3DVERTEXBUFFER9* vertex_buffer) PURE;
-    STDMETHOD(GetIndexBuffer)(THIS_ LPDIRECT3DINDEXBUFFER9* index_buffer) PURE;
-    STDMETHOD(LockVertexBuffer)(THIS_ DWORD flags, LPVOID* data) PURE;
-    STDMETHOD(UnlockVertexBuffer)(THIS) PURE;
-    STDMETHOD(LockIndexBuffer)(THIS_ DWORD flags, LPVOID* data) PURE;
-    STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
-    STDMETHOD(GetAttributeTable)(THIS_ D3DXATTRIBUTERANGE* attrib_table, DWORD* attrib_table_size) PURE;
-    STDMETHOD(ConvertPointRepsToAdjacency)(THIS_ CONST DWORD* point_reps, DWORD* adjacency) PURE;
-    STDMETHOD(ConvertAdjacencyToPointReps)(THIS_ CONST DWORD* adjacency, DWORD* point_reps) PURE;
-    STDMETHOD(GenerateAdjacency)(THIS_ FLOAT epsilon, DWORD* adjacency) PURE;
-    STDMETHOD(UpdateSemantics)(THIS_ D3DVERTEXELEMENT9 declaration[MAX_FVF_DECL_SIZE]) PURE;
-    /*** ID3DXMesh ***/
-    STDMETHOD(LockAttributeBuffer)(THIS_ DWORD flags, DWORD** data) PURE;
-    STDMETHOD(UnlockAttributeBuffer)(THIS) PURE;
-    STDMETHOD(Optimize)(THIS_ DWORD flags, CONST DWORD* adjacency_in, DWORD* adjacency_out,
-        DWORD* face_remap, LPD3DXBUFFER* vertex_remap, LPD3DXMESH* opt_mesh) PURE;
-    STDMETHOD(OptimizeInplace)(THIS_ DWORD flags, CONST DWORD* adjacency_in, DWORD* adjacency_out,
-                     DWORD* face_remap, LPD3DXBUFFER* vertex_remap) PURE;
-    STDMETHOD(SetAttributeTable)(THIS_ CONST D3DXATTRIBUTERANGE* attrib_table, DWORD attrib_table_size) PURE;
-};
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-HRESULT WINAPI D3DXCreateBuffer(DWORD, LPD3DXBUFFER*);
-UINT    WINAPI D3DXGetDeclVertexSize(const D3DVERTEXELEMENT9 *decl, DWORD stream_idx);
-UINT    WINAPI D3DXGetFVFVertexSize(DWORD);
-BOOL    WINAPI D3DXBoxBoundProbe(CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *);
-BOOL    WINAPI D3DXSphereBoundProbe(CONST D3DXVECTOR3 *,FLOAT,CONST D3DXVECTOR3 *,CONST D3DXVECTOR3 *);
-HRESULT WINAPI D3DXComputeBoundingBox(CONST D3DXVECTOR3 *, DWORD, DWORD, D3DXVECTOR3 *, D3DXVECTOR3 *);
-HRESULT WINAPI D3DXComputeBoundingSphere(CONST D3DXVECTOR3 *, DWORD, DWORD, D3DXVECTOR3 *, FLOAT *);
-HRESULT WINAPI D3DXDeclaratorFromFVF(DWORD, D3DVERTEXELEMENT9[MAX_FVF_DECL_SIZE]);
-BOOL    WINAPI D3DXIntersectTri(CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3*, FLOAT *, FLOAT *, FLOAT *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __WINE_D3DX9MESH_H */
diff --git a/misc/builddeps/win32/dx/include/d3dx9shader.h b/misc/builddeps/win32/dx/include/d3dx9shader.h
deleted file mode 100644 (file)
index c8380bc..0000000
+++ /dev/null
@@ -1,349 +0,0 @@
-/*
- * Copyright 2008 Luis Busquets
- *
- * 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
- */
-
-#include "d3dx9.h"
-
-#ifndef __D3DX9SHADER_H__
-#define __D3DX9SHADER_H__
-
-#define D3DXSHADER_DEBUG                          0x1
-#define D3DXSHADER_SKIPVALIDATION                 0x2
-#define D3DXSHADER_SKIPOPTIMIZATION               0x4
-#define D3DXSHADER_PACKMATRIX_ROWMAJOR            0x8
-#define D3DXSHADER_PACKMATRIX_COLUMNMAJOR         0x10
-#define D3DXSHADER_PARTIALPRECISION               0x20
-#define D3DXSHADER_FORCE_VS_SOFTWARE_NOOPT        0x40
-#define D3DXSHADER_FORCE_PS_SOFTWARE_NOOPT        0x80
-#define D3DXSHADER_NO_PRESHADER                   0x100
-#define D3DXSHADER_AVOID_FLOW_CONTROL             0x200
-#define D3DXSHADER_PREFER_FLOW_CONTROL            0x400
-#define D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY 0x1000
-#define D3DXSHADER_IEEE_STRICTNESS                0x2000
-
-#define D3DXSHADER_OPTIMIZATION_LEVEL0            0x4000
-#define D3DXSHADER_OPTIMIZATION_LEVEL1            0x0
-#define D3DXSHADER_OPTIMIZATION_LEVEL2            0xC000
-#define D3DXSHADER_OPTIMIZATION_LEVEL3            0x8000
-
-#define D3DXSHADER_USE_LEGACY_D3DX9_31_DLL        0x10000
-
-typedef LPCSTR D3DXHANDLE;
-
-typedef enum _D3DXREGISTER_SET
-{
-    D3DXRS_BOOL,
-    D3DXRS_INT4,
-    D3DXRS_FLOAT4,
-    D3DXRS_SAMPLER,
-    D3DXRS_FORCE_DWORD = 0x7fffffff
-} D3DXREGISTER_SET, *LPD3DXREGISTER_SET;
-
-typedef enum D3DXPARAMETER_CLASS
-{
-    D3DXPC_SCALAR,
-    D3DXPC_VECTOR,
-    D3DXPC_MATRIX_ROWS,
-    D3DXPC_MATRIX_COLUMNS,
-    D3DXPC_OBJECT,
-    D3DXPC_STRUCT,
-    D3DXPC_FORCE_DWORD = 0x7fffffff,
-} D3DXPARAMETER_CLASS, *LPD3DXPARAMETER_CLASS;
-
-typedef enum D3DXPARAMETER_TYPE
-{
-    D3DXPT_VOID,
-    D3DXPT_BOOL,
-    D3DXPT_INT,
-    D3DXPT_FLOAT,
-    D3DXPT_STRING,
-    D3DXPT_TEXTURE,
-    D3DXPT_TEXTURE1D,
-    D3DXPT_TEXTURE2D,
-    D3DXPT_TEXTURE3D,
-    D3DXPT_TEXTURECUBE,
-    D3DXPT_SAMPLER,
-    D3DXPT_SAMPLER1D,
-    D3DXPT_SAMPLER2D,
-    D3DXPT_SAMPLER3D,
-    D3DXPT_SAMPLERCUBE,
-    D3DXPT_PIXELSHADER,
-    D3DXPT_VERTEXSHADER,
-    D3DXPT_PIXELFRAGMENT,
-    D3DXPT_VERTEXFRAGMENT,
-    D3DXPT_UNSUPPORTED,
-    D3DXPT_FORCE_DWORD = 0x7fffffff,
-} D3DXPARAMETER_TYPE, *LPD3DXPARAMETER_TYPE;
-
-typedef struct _D3DXCONSTANTTABLE_DESC
-{
-    LPCSTR Creator;
-    DWORD Version;
-    UINT Constants;
-} D3DXCONSTANTTABLE_DESC, *LPD3DXCONSTANTTABLE_DESC;
-
-typedef struct _D3DXCONSTANT_DESC
-{
-    LPCSTR Name;
-    D3DXREGISTER_SET RegisterSet;
-    UINT RegisterIndex;
-    UINT RegisterCount;
-    D3DXPARAMETER_CLASS Class;
-    D3DXPARAMETER_TYPE Type;
-    UINT Rows;
-    UINT Columns;
-    UINT Elements;
-    UINT StructMembers;
-    UINT Bytes;
-    LPCVOID DefaultValue;
-} D3DXCONSTANT_DESC, *LPD3DXCONSTANT_DESC;
-
-DEFINE_GUID(IID_ID3DXConstantTable, 0x9dca3190, 0x38b9, 0x4fc3, 0x92, 0xe3, 0x39, 0xc6, 0xdd, 0xfb, 0x35, 0x8b);
-
-#undef INTERFACE
-#define INTERFACE ID3DXConstantTable
-
-DECLARE_INTERFACE_(ID3DXConstantTable, ID3DXBuffer)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-    /*** ID3DXBuffer methods ***/
-    STDMETHOD_(LPVOID, GetBufferPointer)(THIS) PURE;
-    STDMETHOD_(DWORD, GetBufferSize)(THIS) PURE;
-    /*** ID3DXConstantTable methods ***/
-    STDMETHOD(GetDesc)(THIS_ D3DXCONSTANTTABLE_DESC *pDesc) PURE;
-    STDMETHOD(GetConstantDesc)(THIS_ D3DXHANDLE hConstant, D3DXCONSTANT_DESC *pConstantDesc, UINT *pCount) PURE;
-    STDMETHOD_(UINT, GetSamplerIndex)(THIS_ D3DXHANDLE hConstant) PURE;
-    STDMETHOD_(D3DXHANDLE, GetConstant)(THIS_ D3DXHANDLE hConstant, UINT Index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetConstantByName)(THIS_ D3DXHANDLE hConstant, LPCSTR pName) PURE;
-    STDMETHOD_(D3DXHANDLE, GetConstantElement)(THIS_ D3DXHANDLE hConstant, UINT Index) PURE;
-    STDMETHOD(SetDefaults)(THIS_ LPDIRECT3DDEVICE9 pDevice) PURE;
-    STDMETHOD(SetValue)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, LPCVOID pData, UINT Bytes) PURE;
-    STDMETHOD(SetBool)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, BOOL b) PURE;
-    STDMETHOD(SetBoolArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST BOOL* pb, UINT Count) PURE;
-    STDMETHOD(SetInt)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, INT n) PURE;
-    STDMETHOD(SetIntArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST INT* pn, UINT Count) PURE;
-    STDMETHOD(SetFloat)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, FLOAT f) PURE;
-    STDMETHOD(SetFloatArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST FLOAT* pf, UINT Count) PURE;
-    STDMETHOD(SetVector)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXVECTOR4* pVector) PURE;
-    STDMETHOD(SetVectorArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXVECTOR4* pVector, UINT Count) PURE;
-    STDMETHOD(SetMatrix)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXMATRIX* pMatrix) PURE;
-    STDMETHOD(SetMatrixArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXMATRIX* pMatrix, UINT Count) PURE;
-    STDMETHOD(SetMatrixPointerArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXMATRIX** ppMatrix, UINT Count) PURE;
-    STDMETHOD(SetMatrixTranspose)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXMATRIX* pMatrix) PURE;
-    STDMETHOD(SetMatrixTransposeArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXMATRIX* pMatrix, UINT Count) PURE;
-    STDMETHOD(SetMatrixTransposePointerArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXMATRIX** ppMatrix, UINT Count) PURE;
-};
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define ID3DXConstantTable_QueryInterface(p,a,b)                      (p)->lpVtbl->QueryInterface(p,a,b)
-#define ID3DXConstantTable_AddRef(p)                                  (p)->lpVtbl->AddRef(p)
-#define ID3DXConstantTable_Release(p)                                 (p)->lpVtbl->Release(p)
-/*** ID3DXBuffer methods ***/
-#define ID3DXConstantTable_GetBufferPointer(p)                        (p)->lpVtbl->GetBufferPointer(p)
-#define ID3DXConstantTable_GetBufferSize(p)                           (p)->lpVtbl->GetBufferSize(p)
-/*** ID3DXConstantTable methods ***/
-#define ID3DXConstantTable_GetDesc(p,a)                               (p)->lpVtbl->GetDesc(p,a)
-#define ID3DXConstantTable_GetConstantDesc(p,a,b,c)                   (p)->lpVtbl->GetConstantDesc(p,a,b,c)
-#define ID3DXConstantTable_GetSamplerIndex(p,a)                       (p)->lpVtbl->GetSamplerIndex(p,a)
-#define ID3DXConstantTable_GetConstant(p,a,b)                         (p)->lpVtbl->GetConstant(p,a,b)
-#define ID3DXConstantTable_GetConstantByName(p,a,b)                   (p)->lpVtbl->GetConstantByName(p,a,b)
-#define ID3DXConstantTable_GetConstantElement(p,a,b)                  (p)->lpVtbl->GetConstantElement(p,a,b)
-#define ID3DXConstantTable_SetDefaults(p,a)                           (p)->lpVtbl->SetDefaults(p,a)
-#define ID3DXConstantTable_SetValue(p,a,b,c,d)                        (p)->lpVtbl->SetValue(p,a,b,c,d)
-#define ID3DXConstantTable_SetBool(p,a,b,c)                           (p)->lpVtbl->SetBool(p,a,b,c)
-#define ID3DXConstantTable_SetBoolArray(p,a,b,c,d)                    (p)->lpVtbl->SetBoolArray(p,a,b,c,d)
-#define ID3DXConstantTable_SetInt(p,a,b,c)                            (p)->lpVtbl->SetInt(p,a,b,c)
-#define ID3DXConstantTable_SetIntArray(p,a,b,c,d)                     (p)->lpVtbl->SetIntArray(p,a,b,c,d)
-#define ID3DXConstantTable_SetFloat(p,a,b,c)                          (p)->lpVtbl->SetFloat(p,a,b,c)
-#define ID3DXConstantTable_SetFloatArray(p,a,b,c,d)                   (p)->lpVtbl->SetFloatArray(p,a,b,c,d)
-#define ID3DXConstantTable_SetVector(p,a,b,c)                         (p)->lpVtbl->SetVector(p,a,b,c)
-#define ID3DXConstantTable_SetVectorArray(p,a,b,c,d)                  (p)->lpVtbl->SetVectorArray(p,a,b,c,d)
-#define ID3DXConstantTable_SetMatrix(p,a,b,c)                         (p)->lpVtbl->SetMatrix(p,a,b,c)
-#define ID3DXConstantTable_SetMatrixArray(p,a,b,c,d)                  (p)->lpVtbl->SetMatrixArray(p,a,b,c,d)
-#define ID3DXConstantTable_SetMatrixPointerArray(p,a,b,c,d)           (p)->lpVtbl->SetMatrixPointerArray(p,a,b,c,d)
-#define ID3DXConstantTable_SetMatrixTranspose(p,a,b,c)                (p)->lpVtbl->SetMatrixTranspose(p,a,b,c)
-#define ID3DXConstantTable_SetMatrixTransposeArray(p,a,b,c,d)         (p)->lpVtbl->SetMatrixTransposeArray(p,a,b,c,d)
-#define ID3DXConstantTable_SetMatrixTransposePointerArray(p,a,b,c,d)  (p)->lpVtbl->SetMatrixTransposePointerArray(p,a,b,c,d)
-#else
-/*** IUnknown methods ***/
-#define ID3DXConstantTable_QueryInterface(p,a,b)                      (p)->QueryInterface(a,b)
-#define ID3DXConstantTable_AddRef(p)                                  (p)->AddRef()
-#define ID3DXConstantTable_Release(p)                                 (p)->Release()
-/*** ID3DXBuffer methods ***/
-#define ID3DXConstantTable_GetBufferPointer(p)                        (p)->GetBufferPointer()
-#define ID3DXConstantTable_GetBufferSize(p)                           (p)->GetBufferSize()
-/*** ID3DXConstantTable methods ***/
-#define ID3DXConstantTable_GetDesc(p,a)                               (p)->GetDesc(a)
-#define ID3DXConstantTable_GetConstantDesc(p,a,b,c)                   (p)->GetConstantDesc(a,b,c)
-#define ID3DXConstantTable_GetSamplerIndex(p,a)                       (p)->GetConstantDesc(a)
-#define ID3DXConstantTable_GetConstant(p,a,b)                         (p)->GetConstant(a,b)
-#define ID3DXConstantTable_GetConstantByName(p,a,b)                   (p)->GetConstantByName(a,b)
-#define ID3DXConstantTable_GetConstantElement(p,a,b)                  (p)->GetConstantElement(a,b)
-#define ID3DXConstantTable_SetDefaults(p,a)                           (p)->SetDefaults(a)
-#define ID3DXConstantTable_SetValue(p,a,b,c,d)                        (p)->SetValue(a,b,c,d)
-#define ID3DXConstantTable_SetBool(p,a,b,c)                           (p)->SetBool(a,b,c)
-#define ID3DXConstantTable_SetBoolArray(p,a,b,c,d)                    (p)->SetBoolArray(a,b,c,d)
-#define ID3DXConstantTable_SetInt(p,a,b,c)                            (p)->SetInt(a,b,c)
-#define ID3DXConstantTable_SetIntArray(p,a,b,c,d)                     (p)->SetIntArray(a,b,c,d)
-#define ID3DXConstantTable_SetFloat(p,a,b,c)                          (p)->SetFloat(a,b,c)
-#define ID3DXConstantTable_SetFloatArray(p,a,b,c,d)                   (p)->SetFloatArray(a,b,c,d)
-#define ID3DXConstantTable_SetVector(p,a,b,c)                         (p)->SetVector(a,b,c)
-#define ID3DXConstantTable_SetVectorArray(p,a,b,c,d)                  (p)->SetVectorArray(a,b,c,d)
-#define ID3DXConstantTable_SetMatrix(p,a,b,c)                         (p)->SetMatrix(a,b,c)
-#define ID3DXConstantTable_SetMatrixArray(p,a,b,c,d)                  (p)->SetMatrixArray(a,b,c,d)
-#define ID3DXConstantTable_SetMatrixPointerArray(p,a,b,c,d)           (p)->SetMatrixPointerArray(a,b,c,d)
-#define ID3DXConstantTable_SetMatrixTranspose(p,a,b,c)                (p)->SetMatrixTranspose(a,b,c)
-#define ID3DXConstantTable_SetMatrixTransposeArray(p,a,b,c,d)         (p)->SetMatrixTransposeArray(a,b,c,d)
-#define ID3DXConstantTable_SetMatrixTransposePointerArray(p,a,b,c,d)  (p)->SetMatrixTransposePointerArray(a,b,c,d)
-#endif
-
-typedef struct ID3DXConstantTable *LPD3DXCONSTANTTABLE;
-
-typedef struct _D3DXMACRO {
-    LPCSTR Name;
-    LPCSTR Definition;
-} D3DXMACRO, *LPD3DXMACRO;
-
-typedef struct _D3DXSEMANTIC {
-    UINT Usage;
-    UINT UsageIndex;
-} D3DXSEMANTIC, *LPD3DXSEMANTIC;
-
-typedef enum _D3DXINCLUDE_TYPE
-{
-    D3DXINC_LOCAL,
-    D3DXINC_SYSTEM,
-    D3DXINC_FORCE_DWORD = 0x7fffffff,
-} D3DXINCLUDE_TYPE, *LPD3DXINCLUDE_TYPE;
-
-#undef INTERFACE
-#define INTERFACE ID3DXInclude
-
-DECLARE_INTERFACE(ID3DXInclude)
-{
-    STDMETHOD(Open)(THIS_ D3DXINCLUDE_TYPE include_type, LPCSTR filename, LPCVOID parent_data, LPCVOID *data, UINT *bytes) PURE;
-    STDMETHOD(Close)(THIS_ LPCVOID data) PURE;
-};
-
-#define ID3DXInclude_Open(p,a,b,c,d,e)  (p)->lpVtbl->Open(p,a,b,c,d,e)
-#define ID3DXInclude_Close(p,a)         (p)->lpVtbl->Close(p,a)
-
-typedef struct ID3DXInclude *LPD3DXINCLUDE;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-LPCSTR WINAPI D3DXGetPixelShaderProfile(LPDIRECT3DDEVICE9 device);
-UINT WINAPI D3DXGetShaderSize(const DWORD *byte_code);
-DWORD WINAPI D3DXGetShaderVersion(const DWORD *byte_code);
-LPCSTR WINAPI D3DXGetVertexShaderProfile(LPDIRECT3DDEVICE9 device);
-HRESULT WINAPI D3DXFindShaderComment(CONST DWORD* byte_code, DWORD fourcc, LPCVOID* data, UINT* size);
-
-HRESULT WINAPI D3DXAssembleShaderFromFileA(LPCSTR filename,
-                                           CONST D3DXMACRO* defines,
-                                           LPD3DXINCLUDE include,
-                                           DWORD flags,
-                                           LPD3DXBUFFER* shader,
-                                           LPD3DXBUFFER* error_messages);
-
-HRESULT WINAPI D3DXAssembleShaderFromFileW(LPCWSTR filename,
-                                           CONST D3DXMACRO* defines,
-                                           LPD3DXINCLUDE include,
-                                           DWORD flags,
-                                           LPD3DXBUFFER* shader,
-                                           LPD3DXBUFFER* error_messages);
-
-HRESULT WINAPI D3DXAssembleShaderFromResourceA(HMODULE module,
-                                               LPCSTR resource,
-                                               CONST D3DXMACRO* defines,
-                                               LPD3DXINCLUDE include,
-                                               DWORD flags,
-                                               LPD3DXBUFFER* shader,
-                                               LPD3DXBUFFER* error_messages);
-
-HRESULT WINAPI D3DXAssembleShaderFromResourceW(HMODULE module,
-                                               LPCWSTR resource,
-                                               CONST D3DXMACRO* defines,
-                                               LPD3DXINCLUDE include,
-                                               DWORD flags,
-                                               LPD3DXBUFFER* shader,
-                                               LPD3DXBUFFER* error_messages);
-
-HRESULT WINAPI D3DXAssembleShader(LPCSTR data,
-                                  UINT data_len,
-                                  CONST D3DXMACRO* defines,
-                                  LPD3DXINCLUDE include,
-                                  DWORD flags,
-                                  LPD3DXBUFFER* shader,
-                                  LPD3DXBUFFER* error_messages);
-
-HRESULT WINAPI D3DXGetShaderConstantTableEx(CONST DWORD* byte_code,
-                                            DWORD flags,
-                                            LPD3DXCONSTANTTABLE* constant_table);
-
-HRESULT WINAPI D3DXGetShaderConstantTable(CONST DWORD* byte_code,
-                                          LPD3DXCONSTANTTABLE* constant_table);
-
-#ifdef __cplusplus
-}
-#endif
-
-typedef struct _D3DXSHADER_CONSTANTTABLE
-{
-    DWORD Size;
-    DWORD Creator;
-    DWORD Version;
-    DWORD Constants;
-    DWORD ConstantInfo;
-    DWORD Flags;
-    DWORD Target;
-} D3DXSHADER_CONSTANTTABLE, *LPD3DXSHADER_CONSTANTTABLE;
-
-typedef struct _D3DXSHADER_CONSTANTINFO
-{
-    DWORD Name;
-    WORD  RegisterSet;
-    WORD  RegisterIndex;
-    WORD  RegisterCount;
-    WORD  Reserved;
-    DWORD TypeInfo;
-    DWORD DefaultValue;
-} D3DXSHADER_CONSTANTINFO, *LPD3DXSHADER_CONSTANTINFO;
-
-typedef struct _D3DXSHADER_TYPEINFO
-{
-    WORD  Class;
-    WORD  Type;
-    WORD  Rows;
-    WORD  Columns;
-    WORD  Elements;
-    WORD  StructMembers;
-    DWORD StructMemberInfo;
-} D3DXSHADER_TYPEINFO, *LPD3DXSHADER_TYPEINFO;
-
-typedef struct _D3DXSHADER_STRUCTMEMBERINFO
-{
-    DWORD Name;
-    DWORD TypeInfo;
-} D3DXSHADER_STRUCTMEMBERINFO, *LPD3DXSHADER_STRUCTMEMBERINFO;
-
-#endif /* __D3DX9SHADER_H__ */
diff --git a/misc/builddeps/win32/dx/include/d3dx9shape.h b/misc/builddeps/win32/dx/include/d3dx9shape.h
deleted file mode 100644 (file)
index e1bf231..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright 2010 Christian Costa
- *
- * 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
- */
-
-#include "d3dx9.h"
-
-#ifndef __D3DX9SHAPE_H__
-#define __D3DX9SHAPE_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-HRESULT WINAPI D3DXCreateBox(LPDIRECT3DDEVICE9 device,
-                             FLOAT width,
-                             FLOAT height,
-                             FLOAT depth,
-                             LPD3DXMESH* mesh,
-                             LPD3DXBUFFER* adjacency);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __D3DX9SHAPE_H__ */
diff --git a/misc/builddeps/win32/dx/include/d3dx9tex.h b/misc/builddeps/win32/dx/include/d3dx9tex.h
deleted file mode 100644 (file)
index 019a4da..0000000
+++ /dev/null
@@ -1,698 +0,0 @@
-/*
- * Copyright (C) 2008 Tony Wasserka
- *
- * 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
- */
-
-#include <_mingw_dxhelper.h>
-#include <d3dx9.h>
-
-#ifndef __WINE_D3DX9TEX_H
-#define __WINE_D3DX9TEX_H
-
-/**********************************************
- ***************** Definitions ****************
- **********************************************/
-#define D3DX_FILTER_NONE                 0x00000001
-#define D3DX_FILTER_POINT                0x00000002
-#define D3DX_FILTER_LINEAR               0x00000003
-#define D3DX_FILTER_TRIANGLE             0x00000004
-#define D3DX_FILTER_BOX                  0x00000005
-#define D3DX_FILTER_MIRROR_U             0x00010000
-#define D3DX_FILTER_MIRROR_V             0x00020000
-#define D3DX_FILTER_MIRROR_W             0x00040000
-#define D3DX_FILTER_MIRROR               0x00070000
-#define D3DX_FILTER_DITHER               0x00080000
-#define D3DX_FILTER_DITHER_DIFFUSION     0x00100000
-#define D3DX_FILTER_SRGB_IN              0x00200000
-#define D3DX_FILTER_SRGB_OUT             0x00400000
-#define D3DX_FILTER_SRGB                 0x00600000
-
-#define D3DX_NORMALMAP_MIRROR_U          0x00010000
-#define D3DX_NORMALMAP_MIRROR_V          0x00020000
-#define D3DX_NORMALMAP_MIRROR            0x00030000
-#define D3DX_NORMALMAP_INVERTSIGN        0x00080000
-#define D3DX_NORMALMAP_COMPUTE_OCCLUSION 0x00100000
-
-#define D3DX_CHANNEL_RED                 0x00000001
-#define D3DX_CHANNEL_BLUE                0x00000002
-#define D3DX_CHANNEL_GREEN               0x00000004
-#define D3DX_CHANNEL_ALPHA               0x00000008
-#define D3DX_CHANNEL_LUMINANCE           0x00000010
-
-/**********************************************
- **************** Typedefs ****************
- **********************************************/
-typedef enum _D3DXIMAGE_FILEFORMAT
-{
-    D3DXIFF_BMP,
-    D3DXIFF_JPG,
-    D3DXIFF_TGA,
-    D3DXIFF_PNG,
-    D3DXIFF_DDS,
-    D3DXIFF_PPM,
-    D3DXIFF_DIB,
-    D3DXIFF_FORCE_DWORD = 0x7fffffff
-} D3DXIMAGE_FILEFORMAT;
-
-typedef struct _D3DXIMAGE_INFO
-{
-    UINT Width;
-    UINT Height;
-    UINT Depth;
-    UINT MipLevels;
-    D3DFORMAT Format;
-    D3DRESOURCETYPE ResourceType;
-    D3DXIMAGE_FILEFORMAT ImageFileFormat;
-} D3DXIMAGE_INFO;
-
-/**********************************************
- ****************** Functions *****************
- **********************************************/
-/* Typedefs for callback functions */
-typedef VOID (WINAPI *LPD3DXFILL2D)(D3DXVECTOR4 *out, CONST D3DXVECTOR2 *texcoord, CONST D3DXVECTOR2 *texelsize, LPVOID data);
-typedef VOID (WINAPI *LPD3DXFILL3D)(D3DXVECTOR4 *out, CONST D3DXVECTOR3 *texcoord, CONST D3DXVECTOR3 *texelsize, LPVOID data);
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Image Information */
-HRESULT WINAPI D3DXGetImageInfoFromFileA(LPCSTR file, D3DXIMAGE_INFO *info);
-HRESULT WINAPI D3DXGetImageInfoFromFileW(LPCWSTR file, D3DXIMAGE_INFO *info);
-#define        D3DXGetImageInfoFromFile WINELIB_NAME_AW(D3DXGetImageInfoFromFile)
-
-HRESULT WINAPI D3DXGetImageInfoFromResourceA(HMODULE module, LPCSTR resource, D3DXIMAGE_INFO *info);
-HRESULT WINAPI D3DXGetImageInfoFromResourceW(HMODULE module, LPCWSTR resource, D3DXIMAGE_INFO *info);
-#define        D3DXGetImageInfoFromResource WINELIB_NAME_AW(D3DXGetImageInfoFromResource)
-
-HRESULT WINAPI D3DXGetImageInfoFromFileInMemory(LPCVOID data, UINT datasize, D3DXIMAGE_INFO *info);
-
-
-/* Surface Loading/Saving */
-HRESULT WINAPI D3DXLoadSurfaceFromFileA(       LPDIRECT3DSURFACE9 destsurface,
-                                               CONST PALETTEENTRY *destpalette,
-                                               CONST RECT *destrect,
-                                               LPCSTR srcfile,
-                                               CONST RECT *srcrect,
-                                               DWORD filter,
-                                               D3DCOLOR colorkey,
-                                               D3DXIMAGE_INFO *srcinfo);
-
-HRESULT WINAPI D3DXLoadSurfaceFromFileW(       LPDIRECT3DSURFACE9 destsurface,
-                                               CONST PALETTEENTRY *destpalette,
-                                               CONST RECT *destrect,
-                                               LPCWSTR srcfile,
-                                               CONST RECT *srcrect,
-                                               DWORD filter,
-                                               D3DCOLOR colorkey,
-                                               D3DXIMAGE_INFO *srcinfo);
-#define        D3DXLoadSurfaceFromFile WINELIB_NAME_AW(D3DXLoadSurfaceFromFile)
-
-HRESULT WINAPI D3DXLoadSurfaceFromResourceA(   LPDIRECT3DSURFACE9 destsurface,
-                                               CONST PALETTEENTRY *destpalette,
-                                               CONST RECT *destrect,
-                                               HMODULE srcmodule,
-                                               LPCSTR resource,
-                                               CONST RECT *srcrect,
-                                               DWORD filter,
-                                               D3DCOLOR colorkey,
-                                               D3DXIMAGE_INFO *srcinfo);
-
-HRESULT WINAPI D3DXLoadSurfaceFromResourceW(   LPDIRECT3DSURFACE9 destsurface,
-                                               CONST PALETTEENTRY *destpalette,
-                                               CONST RECT *destrect,
-                                               HMODULE srcmodule,
-                                               LPCWSTR resource,
-                                               CONST RECT *srcrect,
-                                               DWORD filter,
-                                               D3DCOLOR colorkey,
-                                               D3DXIMAGE_INFO *srcinfo);
-#define        D3DXLoadSurfaceFromResource WINELIB_NAME_AW(D3DXLoadSurfaceFromResource)
-
-HRESULT WINAPI D3DXLoadSurfaceFromFileInMemory(LPDIRECT3DSURFACE9 destsurface,
-                                               CONST PALETTEENTRY *destpalette,
-                                               CONST RECT*destrect,
-                                               LPCVOID srcdata,
-                                               UINT srcdatasize,
-                                               CONST RECT *srcrect,
-                                               DWORD filter,
-                                               D3DCOLOR colorkey,
-                                               D3DXIMAGE_INFO *srcinfo);
-
-HRESULT WINAPI D3DXLoadSurfaceFromSurface(     LPDIRECT3DSURFACE9 destsurface,
-                                               CONST PALETTEENTRY *destpalette,
-                                               CONST RECT *destrect,
-                                               LPDIRECT3DSURFACE9 srcsurface,
-                                               CONST PALETTEENTRY *srcpalette,
-                                               CONST RECT *srcrect,
-                                               DWORD filter,
-                                               D3DCOLOR colorkey);
-
-HRESULT WINAPI D3DXLoadSurfaceFromMemory(      LPDIRECT3DSURFACE9 destsurface,
-                                               CONST PALETTEENTRY *destpalette,
-                                               CONST RECT *destrect,
-                                               LPCVOID srcmemory,
-                                               D3DFORMAT srcformat,
-                                               UINT srcpitch,
-                                               CONST PALETTEENTRY *srcpalette,
-                                               CONST RECT *srcrect,
-                                               DWORD filter,
-                                               D3DCOLOR colorkey);
-
-HRESULT WINAPI D3DXSaveSurfaceToFileA(         LPCSTR destfile,
-                                               D3DXIMAGE_FILEFORMAT destformat,
-                                               LPDIRECT3DSURFACE9 srcsurface,
-                                               CONST PALETTEENTRY *srcpalette,
-                                               CONST RECT *srcrect);
-
-HRESULT WINAPI D3DXSaveSurfaceToFileW(         LPCWSTR destfile,
-                                               D3DXIMAGE_FILEFORMAT destformat,
-                                               LPDIRECT3DSURFACE9 srcsurface,
-                                               CONST PALETTEENTRY *srcpalette,
-                                               CONST RECT *srcrect);
-#define        D3DXSaveSurfaceToFile WINELIB_NAME_AW(D3DXSaveSurfaceToFile)
-
-
-/* Volume Loading/Saving */
-HRESULT WINAPI D3DXLoadVolumeFromFileA(       LPDIRECT3DVOLUME9 destvolume,
-                                              CONST PALETTEENTRY *destpalette,
-                                              CONST D3DBOX *destbox,
-                                              LPCSTR srcfile,
-                                              CONST D3DBOX *srcbox,
-                                              DWORD filter,
-                                              D3DCOLOR colorkey,
-                                              D3DXIMAGE_INFO *srcinfo);
-
-HRESULT WINAPI D3DXLoadVolumeFromFileW(       LPDIRECT3DVOLUME9 destVolume,
-                                              CONST PALETTEENTRY *destpalette,
-                                              CONST D3DBOX *destbox,
-                                              LPCWSTR srcfile,
-                                              CONST D3DBOX *srcbox,
-                                              DWORD filter,
-                                              D3DCOLOR colorkey,
-                                              D3DXIMAGE_INFO *srcinfo);
-#define        D3DXLoadVolumeFromFile WINELIB_NAME_AW(D3DXLoadVolumeFromFile)
-
-HRESULT WINAPI D3DXLoadVolumeFromResourceA(   LPDIRECT3DVOLUME9 destVolume,
-                                              CONST PALETTEENTRY *destpalette,
-                                              CONST D3DBOX *destbox,
-                                              HMODULE srcmodule,
-                                              LPCSTR resource,
-                                              CONST D3DBOX *srcbox,
-                                              DWORD filter,
-                                              D3DCOLOR colorkey,
-                                              D3DXIMAGE_INFO *srcinfo);
-
-HRESULT WINAPI D3DXLoadVolumeFromResourceW(   LPDIRECT3DVOLUME9 destVolume,
-                                              CONST PALETTEENTRY *destpalette,
-                                              CONST D3DBOX *destbox,
-                                              HMODULE srcmodule,
-                                              LPCWSTR resource,
-                                              CONST D3DBOX *srcbox,
-                                              DWORD filter,
-                                              D3DCOLOR colorkey,
-                                              D3DXIMAGE_INFO *srcinfo);
-#define        D3DXLoadVolumeFromResource WINELIB_NAME_AW(D3DXLoadVolumeFromResource)
-
-HRESULT WINAPI D3DXLoadVolumeFromFileInMemory(LPDIRECT3DVOLUME9 destvolume,
-                                              CONST PALETTEENTRY *destpalette,
-                                              CONST D3DBOX *destbox,
-                                              LPCVOID srcdata,
-                                              UINT srcdatasize,
-                                              CONST D3DBOX *srcbox,
-                                              DWORD filter,
-                                              D3DCOLOR colorkey,
-                                              D3DXIMAGE_INFO *srcinfo);
-
-HRESULT WINAPI D3DXLoadVolumeFromVolume(      LPDIRECT3DVOLUME9 destvolume,
-                                              CONST PALETTEENTRY *destpalette,
-                                              CONST D3DBOX *destbox,
-                                              LPDIRECT3DVOLUME9 srcvolume,
-                                              CONST PALETTEENTRY *srcpalette,
-                                              CONST D3DBOX *srcbox,
-                                              DWORD filter,
-                                              D3DCOLOR colorkey);
-
-HRESULT WINAPI D3DXLoadVolumeFromMemory(      LPDIRECT3DVOLUME9 destvolume,
-                                              CONST PALETTEENTRY *destpalette,
-                                              CONST D3DBOX *destbox,
-                                              LPCVOID srcmemory,
-                                              D3DFORMAT srcformat,
-                                              UINT srcrowpitch,
-                                              UINT srcslicepitch,
-                                              CONST PALETTEENTRY *srcpalette,
-                                              CONST D3DBOX *srcbox,
-                                              DWORD filter,
-                                              D3DCOLOR colorkey);
-
-HRESULT WINAPI D3DXSaveVolumeToFileA(         LPCSTR destfile,
-                                              D3DXIMAGE_FILEFORMAT destformat,
-                                              LPDIRECT3DVOLUME9 srcvolume,
-                                              CONST PALETTEENTRY *srcpalette,
-                                              CONST D3DBOX *srcbox);
-
-HRESULT WINAPI D3DXSaveVolumeToFileW(         LPCWSTR destfile,
-                                              D3DXIMAGE_FILEFORMAT destformat,
-                                              LPDIRECT3DVOLUME9 srcvolume,
-                                              CONST PALETTEENTRY *srcpalette,
-                                              CONST D3DBOX *srcbox);
-#define        D3DXSaveVolumeToFile WINELIB_NAME_AW(D3DXSaveVolumeToFile)
-
-
-/* Texture, cube texture and volume texture creation */
-HRESULT WINAPI D3DXCheckTextureRequirements(      LPDIRECT3DDEVICE9 device,
-                                                  UINT *width,
-                                                  UINT *height,
-                                                  UINT *miplevels,
-                                                  DWORD usage,
-                                                  D3DFORMAT *format,
-                                                  D3DPOOL pool);
-HRESULT WINAPI D3DXCheckCubeTextureRequirements(  LPDIRECT3DDEVICE9 device,
-                                                  UINT *size,
-                                                  UINT *miplevels,
-                                                  DWORD usage,
-                                                  D3DFORMAT *format,
-                                                  D3DPOOL pool);
-
-HRESULT WINAPI D3DXCheckVolumeTextureRequirements(LPDIRECT3DDEVICE9 device,
-                                                  UINT *width,
-                                                  UINT *height,
-                                                  UINT *depth,
-                                                  UINT *miplevels,
-                                                  DWORD usage,
-                                                  D3DFORMAT *format,
-                                                  D3DPOOL pool);
-
-HRESULT WINAPI D3DXCreateTexture(      LPDIRECT3DDEVICE9 device,
-                                       UINT width,
-                                       UINT height,
-                                       UINT miplevels,
-                                       DWORD usage,
-                                       D3DFORMAT format,
-                                       D3DPOOL pool,
-                                       LPDIRECT3DTEXTURE9 *texture);
-
-HRESULT WINAPI D3DXCreateCubeTexture(  LPDIRECT3DDEVICE9 device,
-                                       UINT size,
-                                       UINT miplevels,
-                                       DWORD usage,
-                                       D3DFORMAT format,
-                                       D3DPOOL pool,
-                                       LPDIRECT3DCUBETEXTURE9 *cube);
-
-HRESULT WINAPI D3DXCreateVolumeTexture(LPDIRECT3DDEVICE9 device,
-                                       UINT width,
-                                       UINT height,
-                                       UINT depth,
-                                       UINT miplevels,
-                                       DWORD usage,
-                                       D3DFORMAT format,
-                                       D3DPOOL pool,
-                                       LPDIRECT3DVOLUMETEXTURE9 *volume);
-
-HRESULT WINAPI D3DXCreateTextureFromFileA(      LPDIRECT3DDEVICE9 device,
-                                                LPCSTR srcfile,
-                                                LPDIRECT3DTEXTURE9 *texture);
-
-HRESULT WINAPI D3DXCreateTextureFromFileW(      LPDIRECT3DDEVICE9 device,
-                                                LPCWSTR srcfile,
-                                                LPDIRECT3DTEXTURE9 *texture);
-#define        D3DXCreateTextureFromFile WINELIB_NAME_AW(D3DXCreateTextureFromFile)
-
-HRESULT WINAPI D3DXCreateCubeTextureFromFileA(  LPDIRECT3DDEVICE9 device,
-                                                LPCSTR srcfile,
-                                                LPDIRECT3DCUBETEXTURE9 *cube);
-
-HRESULT WINAPI D3DXCreateCubeTextureFromFileW(  LPDIRECT3DDEVICE9 device,
-                                                LPCWSTR srcfile,
-                                                LPDIRECT3DCUBETEXTURE9 *cube);
-#define        D3DXCreateCubeTextureFromFile WINELIB_NAME_AW(D3DXCreateCubeTextureFromFile)
-
-HRESULT WINAPI D3DXCreateVolumeTextureFromFileA(LPDIRECT3DDEVICE9 device,
-                                                LPCSTR srcfile,
-                                                LPDIRECT3DVOLUMETEXTURE9 *volume);
-
-HRESULT WINAPI D3DXCreateVolumeTextureFromFileW(LPDIRECT3DDEVICE9 device,
-                                                LPCWSTR srcfile,
-                                                LPDIRECT3DVOLUMETEXTURE9 *volume);
-#define        D3DXCreateVolumeTextureFromFile WINELIB_NAME_AW(D3DXCreateVolumeTextureFromFile)
-
-HRESULT WINAPI D3DXCreateTextureFromResourceA(      LPDIRECT3DDEVICE9 device,
-                                                    HMODULE srcmodule,
-                                                    LPCSTR resource,
-                                                    LPDIRECT3DTEXTURE9 *texture);
-
-HRESULT WINAPI D3DXCreateTextureFromResourceW(      LPDIRECT3DDEVICE9 device,
-                                                    HMODULE srcmodule,
-                                                    LPCWSTR resource,
-                                                    LPDIRECT3DTEXTURE9 *texture);
-#define        D3DXCreateTextureFromResource WINELIB_NAME_AW(D3DXCreateTextureFromResource)
-
-HRESULT WINAPI D3DXCreateCubeTextureFromResourceA(  LPDIRECT3DDEVICE9 device,
-                                                    HMODULE srcmodule,
-                                                    LPCSTR resource,
-                                                    LPDIRECT3DCUBETEXTURE9 *cube);
-HRESULT WINAPI D3DXCreateCubeTextureFromResourceW(  LPDIRECT3DDEVICE9 device,
-                                                    HMODULE srcmodule,
-                                                    LPCWSTR resource,
-                                                    LPDIRECT3DCUBETEXTURE9 *cube);
-#define        D3DXCreateCubeTextureFromResource WINELIB_NAME_AW(D3DXCreateCubeTextureFromResource)
-
-HRESULT WINAPI D3DXCreateVolumeTextureFromResourceA(LPDIRECT3DDEVICE9 device,
-                                                    HMODULE srcmodule,
-                                                    LPCSTR resource,
-                                                    LPDIRECT3DVOLUMETEXTURE9 *volume);
-HRESULT WINAPI D3DXCreateVolumeTextureFromResourceW(LPDIRECT3DDEVICE9 device,
-                                                    HMODULE srcmodule,
-                                                    LPCWSTR resource,
-                                                    LPDIRECT3DVOLUMETEXTURE9 *volume);
-#define        D3DXCreateVolumeTextureFromResource WINELIB_NAME_AW(D3DXCreateVolumeTextureFromResource)
-
-HRESULT WINAPI D3DXCreateTextureFromFileExA(      LPDIRECT3DDEVICE9 device,
-                                                  LPCSTR srcfile,
-                                                  UINT width,
-                                                  UINT height,
-                                                  UINT miplevels,
-                                                  DWORD usage,
-                                                  D3DFORMAT format,
-                                                  D3DPOOL pool,
-                                                  DWORD filter,
-                                                  DWORD mipfilter,
-                                                  D3DCOLOR colorkey,
-                                                  D3DXIMAGE_INFO *srcinfo,
-                                                  PALETTEENTRY *palette,
-                                                  LPDIRECT3DTEXTURE9 *texture);
-
-HRESULT WINAPI D3DXCreateTextureFromFileExW(      LPDIRECT3DDEVICE9 device,
-                                                  LPCWSTR srcfile,
-                                                  UINT width,
-                                                  UINT height,
-                                                  UINT miplevels,
-                                                  DWORD usage,
-                                                  D3DFORMAT format,
-                                                  D3DPOOL pool,
-                                                  DWORD filter,
-                                                  DWORD mipfilter,
-                                                  D3DCOLOR colorkey,
-                                                  D3DXIMAGE_INFO *srcinfo,
-                                                  PALETTEENTRY *palette,
-                                                  LPDIRECT3DTEXTURE9 *texture);
-#define        D3DXCreateTextureFromFileEx WINELIB_NAME_AW(D3DXCreateTextureFromFileEx)
-
-HRESULT WINAPI D3DXCreateCubeTextureFromFileExA(  LPDIRECT3DDEVICE9 device,
-                                                  LPCSTR srcfile,
-                                                  UINT size,
-                                                  UINT miplevels,
-                                                  DWORD usage,
-                                                  D3DFORMAT format,
-                                                  D3DPOOL pool,
-                                                  DWORD filter,
-                                                  DWORD mipfilter,
-                                                  D3DCOLOR colorkey,
-                                                  D3DXIMAGE_INFO *srcinfo,
-                                                  PALETTEENTRY *palette,
-                                                  LPDIRECT3DCUBETEXTURE9 *cube);
-
-HRESULT WINAPI D3DXCreateCubeTextureFromFileExW(  LPDIRECT3DDEVICE9 device,
-                                                  LPCWSTR srcfile,
-                                                  UINT size,
-                                                  UINT miplevels,
-                                                  DWORD usage,
-                                                  D3DFORMAT format,
-                                                  D3DPOOL pool,
-                                                  DWORD filter,
-                                                  DWORD mipfilter,
-                                                  D3DCOLOR colorkey,
-                                                  D3DXIMAGE_INFO *srcinfo,
-                                                  PALETTEENTRY *palette,
-                                                  LPDIRECT3DCUBETEXTURE9 *cube);
-#define        D3DXCreateCubeTextureFromFileEx WINELIB_NAME_AW(D3DXCreateCubeTextureFromFileEx)
-
-HRESULT WINAPI D3DXCreateVolumeTextureFromFileExA(LPDIRECT3DDEVICE9 device,
-                                                  LPCSTR srcfile,
-                                                  UINT width,
-                                                  UINT height,
-                                                  UINT depth,
-                                                  UINT miplevels,
-                                                  DWORD usage,
-                                                  D3DFORMAT format,
-                                                  D3DPOOL pool,
-                                                  DWORD filter,
-                                                  DWORD mipfilter,
-                                                  D3DCOLOR colorkey,
-                                                  D3DXIMAGE_INFO *srcinfo,
-                                                  PALETTEENTRY *palette,
-                                                  LPDIRECT3DVOLUMETEXTURE9 *volume);
-
-HRESULT WINAPI D3DXCreateVolumeTextureFromFileExW(LPDIRECT3DDEVICE9 device,
-                                                  LPCWSTR srcfile,
-                                                  UINT width,
-                                                  UINT height,
-                                                  UINT depth,
-                                                  UINT miplevels,
-                                                  DWORD usage,
-                                                  D3DFORMAT format,
-                                                  D3DPOOL pool,
-                                                  DWORD filter,
-                                                  DWORD mipfilter,
-                                                  D3DCOLOR colorkey,
-                                                  D3DXIMAGE_INFO *srcinfo,
-                                                  PALETTEENTRY *palette,
-                                                  LPDIRECT3DVOLUMETEXTURE9 *volume);
-#define        D3DXCreateVolumeTextureFromFileEx WINELIB_NAME_AW(D3DXCreateVolumeTextureFromFileEx)
-
-HRESULT WINAPI D3DXCreateTextureFromResourceExA(      LPDIRECT3DDEVICE9 device,
-                                                      HMODULE srcmodule,
-                                                      LPCSTR resource,
-                                                      UINT width,
-                                                      UINT height,
-                                                      UINT miplevels,
-                                                      DWORD usage,
-                                                      D3DFORMAT format,
-                                                      D3DPOOL pool,
-                                                      DWORD filter,
-                                                      DWORD mipfilter,
-                                                      D3DCOLOR colorkey,
-                                                      D3DXIMAGE_INFO *srcinfo,
-                                                      PALETTEENTRY *palette,
-                                                      LPDIRECT3DTEXTURE9 *texture);
-
-HRESULT WINAPI D3DXCreateTextureFromResourceExW(      LPDIRECT3DDEVICE9 device,
-                                                      HMODULE srcmodule,
-                                                      LPCWSTR resource,
-                                                      UINT width,
-                                                      UINT height,
-                                                      UINT miplevels,
-                                                      DWORD usage,
-                                                      D3DFORMAT format,
-                                                      D3DPOOL pool,
-                                                      DWORD filter,
-                                                      DWORD mipfilter,
-                                                      D3DCOLOR colorkey,
-                                                      D3DXIMAGE_INFO *srcinfo,
-                                                      PALETTEENTRY *palette,
-                                                      LPDIRECT3DTEXTURE9 *texture);
-#define        D3DXCreateTextureFromResourceEx WINELIB_NAME_AW(D3DXCreateTextureFromResourceEx)
-
-HRESULT WINAPI D3DXCreateCubeTextureFromResourceExA(  LPDIRECT3DDEVICE9 device,
-                                                      HMODULE srcmodule,
-                                                      LPCSTR resource,
-                                                      UINT size,
-                                                      UINT miplevels,
-                                                      DWORD usage,
-                                                      D3DFORMAT format,
-                                                      D3DPOOL pool,
-                                                      DWORD filter,
-                                                      DWORD mipfilter,
-                                                      D3DCOLOR colorkey,
-                                                      D3DXIMAGE_INFO *srcinfo,
-                                                      PALETTEENTRY *palette,
-                                                      LPDIRECT3DCUBETEXTURE9 *cube);
-
-HRESULT WINAPI D3DXCreateCubeTextureFromResourceExW(  LPDIRECT3DDEVICE9 device,
-                                                      HMODULE srcmodule,
-                                                      LPCWSTR resource,
-                                                      UINT size,
-                                                      UINT miplevels,
-                                                      DWORD usage,
-                                                      D3DFORMAT format,
-                                                      D3DPOOL pool,
-                                                      DWORD filter,
-                                                      DWORD mipfilter,
-                                                      D3DCOLOR colorkey,
-                                                      D3DXIMAGE_INFO *srcinfo,
-                                                      PALETTEENTRY *palette,
-                                                      LPDIRECT3DCUBETEXTURE9 *cube);
-#define        D3DXCreateCubeTextureFromResourceEx WINELIB_NAME_AW(D3DXCreateCubeTextureFromResourceEx)
-
-HRESULT WINAPI D3DXCreateVolumeTextureFromResourceExA(LPDIRECT3DDEVICE9 device,
-                                                      HMODULE srcmodule,
-                                                      LPCSTR resource,
-                                                      UINT width,
-                                                      UINT height,
-                                                      UINT depth,
-                                                      UINT miplevels,
-                                                      DWORD usage,
-                                                      D3DFORMAT format,
-                                                      D3DPOOL pool,
-                                                      DWORD filter,
-                                                      DWORD mipfilter,
-                                                      D3DCOLOR colorkey,
-                                                      D3DXIMAGE_INFO *srcinfo,
-                                                      PALETTEENTRY *palette,
-                                                      LPDIRECT3DVOLUMETEXTURE9 *volume);
-
-HRESULT WINAPI D3DXCreateVolumeTextureFromResourceExW(LPDIRECT3DDEVICE9 device,
-                                                      HMODULE srcmodule,
-                                                      LPCWSTR resource,
-                                                      UINT width,
-                                                      UINT height,
-                                                      UINT depth,
-                                                      UINT miplevels,
-                                                      DWORD usage,
-                                                      D3DFORMAT format,
-                                                      D3DPOOL pool,
-                                                      DWORD filter,
-                                                      DWORD mipfilter,
-                                                      D3DCOLOR colorkey,
-                                                      D3DXIMAGE_INFO *srcinfo,
-                                                      PALETTEENTRY *palette,
-                                                      LPDIRECT3DVOLUMETEXTURE9 *volume);
-#define        D3DXCreateVolumeTextureFromResourceEx WINELIB_NAME_AW(D3DXCreateVolumeTextureFromResourceEx)
-
-HRESULT WINAPI D3DXCreateTextureFromFileInMemory(      LPDIRECT3DDEVICE9 device,
-                                                       LPCVOID srcdata,
-                                                       UINT srcdatasize,
-                                                       LPDIRECT3DTEXTURE9* texture);
-
-HRESULT WINAPI D3DXCreateCubeTextureFromFileInMemory(  LPDIRECT3DDEVICE9 device,
-                                                       LPCVOID srcdata,
-                                                       UINT srcdatasize,
-                                                       LPDIRECT3DCUBETEXTURE9* cube);
-
-HRESULT WINAPI D3DXCreateVolumeTextureFromFileInMemory(LPDIRECT3DDEVICE9 device,
-                                                       LPCVOID srcdata,
-                                                       UINT srcdatasize,
-                                                       LPDIRECT3DVOLUMETEXTURE9 *volume);
-
-HRESULT WINAPI D3DXCreateTextureFromFileInMemoryEx(      LPDIRECT3DDEVICE9 device,
-                                                         LPCVOID srcdata,
-                                                         UINT srcdatasize,
-                                                         UINT width,
-                                                         UINT height,
-                                                         UINT miplevels,
-                                                         DWORD usage,
-                                                         D3DFORMAT format,
-                                                         D3DPOOL pool,
-                                                         DWORD filter,
-                                                         DWORD mipfilter,
-                                                         D3DCOLOR colorkey,
-                                                         D3DXIMAGE_INFO *srcinfo,
-                                                         PALETTEENTRY *palette,
-                                                         LPDIRECT3DTEXTURE9 *texture);
-
-HRESULT WINAPI D3DXCreateCubeTextureFromFileInMemoryEx(  LPDIRECT3DDEVICE9 device,
-                                                         LPCVOID srcdata,
-                                                         UINT srcdatasize,
-                                                         UINT size,
-                                                         UINT miplevels,
-                                                         DWORD usage,
-                                                         D3DFORMAT format,
-                                                         D3DPOOL pool,
-                                                         DWORD filter,
-                                                         DWORD mipfilter,
-                                                         D3DCOLOR colorkey,
-                                                         D3DXIMAGE_INFO *srcinfo,
-                                                         PALETTEENTRY *palette,
-                                                         LPDIRECT3DCUBETEXTURE9 *cube);
-
-HRESULT WINAPI D3DXCreateVolumeTextureFromFileInMemoryEx(LPDIRECT3DDEVICE9 device,
-                                                         LPCVOID srcdata,
-                                                         UINT srcdatasize,
-                                                         UINT width,
-                                                         UINT height,
-                                                         UINT depth,
-                                                         UINT miplevels,
-                                                         DWORD usage,
-                                                         D3DFORMAT format,
-                                                         D3DPOOL pool,
-                                                         DWORD filter,
-                                                         DWORD mipfilter,
-                                                         D3DCOLOR colorkey,
-                                                         D3DXIMAGE_INFO *srcinfo,
-                                                         PALETTEENTRY *palette,
-                                                         LPDIRECT3DVOLUMETEXTURE9 *volume);
-
-HRESULT WINAPI D3DXSaveTextureToFileA(LPCSTR destfile,
-                                      D3DXIMAGE_FILEFORMAT destformat,
-                                      LPDIRECT3DBASETEXTURE9 srctexture,
-                                      CONST PALETTEENTRY *srcpalette);
-HRESULT WINAPI D3DXSaveTextureToFileW(LPCWSTR destfile,
-                                      D3DXIMAGE_FILEFORMAT destformat,
-                                      LPDIRECT3DBASETEXTURE9 srctexture,
-                                      CONST PALETTEENTRY *srcpalette);
-#define        D3DXSaveTextureToFile WINELIB_NAME_AW(D3DXSaveTextureToFile)
-
-
-/* Other functions */
-HRESULT WINAPI D3DXFilterTexture(      LPDIRECT3DBASETEXTURE9 texture,
-                                       CONST PALETTEENTRY *palette,
-                                       UINT srclevel,
-                                       DWORD filter);
-#define D3DXFilterCubeTexture D3DXFilterTexture
-#define D3DXFilterVolumeTexture D3DXFilterTexture
-
-HRESULT WINAPI D3DXFillTexture(        LPDIRECT3DTEXTURE9 texture,
-                                       LPD3DXFILL2D function,
-                                       LPVOID data);
-
-HRESULT WINAPI D3DXFillCubeTexture(    LPDIRECT3DCUBETEXTURE9 cube,
-                                       LPD3DXFILL3D function,
-                                       LPVOID data);
-
-HRESULT WINAPI D3DXFillVolumeTexture(  LPDIRECT3DVOLUMETEXTURE9 volume,
-                                       LPD3DXFILL3D function,
-                                       LPVOID data);
-
-HRESULT WINAPI D3DXFillTextureTX(      LPDIRECT3DTEXTURE9 texture,
-                                       CONST DWORD *function,
-                                       CONST D3DXVECTOR4 *constants,
-                                       UINT numconstants);
-
-HRESULT WINAPI D3DXFillCubeTextureTX(  LPDIRECT3DCUBETEXTURE9 cube,
-                                       CONST DWORD *function,
-                                       CONST D3DXVECTOR4 *constants,
-                                       UINT numconstants);
-
-HRESULT WINAPI D3DXFillVolumeTextureTX(LPDIRECT3DVOLUMETEXTURE9 volume,
-                                       CONST DWORD *function,
-                                       CONST D3DXVECTOR4 *constants,
-                                       UINT numconstants);
-
-HRESULT WINAPI D3DXComputeNormalMap(   LPDIRECT3DTEXTURE9 texture,
-                                       LPDIRECT3DTEXTURE9 srctexture,
-                                       CONST PALETTEENTRY *srcpalette,
-                                       DWORD flags,
-                                       DWORD channel,
-                                       FLOAT amplitude);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __WINE_D3DX9TEX_H */
diff --git a/misc/builddeps/win32/dx/include/ddraw.h b/misc/builddeps/win32/dx/include/ddraw.h
deleted file mode 100644 (file)
index feaec69..0000000
+++ /dev/null
@@ -1,4844 +0,0 @@
-/*==========================================================================;
- *
- *  Copyright (C) 1994-1997 Microsoft Corporation.  All Rights Reserved.
- *
- *  File:      ddraw.h
- *  Content:   DirectDraw include file
- *
- ***************************************************************************/
-
-#ifndef __DDRAW_INCLUDED__
-#define __DDRAW_INCLUDED__
-
-/*
- * If you wish an application built against the newest version of DirectDraw
- * to run against an older DirectDraw run time then define DIRECTDRAW_VERSION
- * to be the earlies version of DirectDraw you wish to run against. For,
- * example if you wish an application to run against a DX 3 runtime define
- * DIRECTDRAW_VERSION to be 0x0300.
- */
-#ifndef   DIRECTDRAW_VERSION
-#define   DIRECTDRAW_VERSION 0x0600
-#endif /* DIRECTDRAW_VERSION */
-
-#if defined( _WIN32 )  && !defined( _NO_COM )
-#define COM_NO_WINDOWS_H
-#include <objbase.h>
-#else
-#define IUnknown           void
-#if !defined( NT_BUILD_ENVIRONMENT ) && !defined(WINNT)
-       #define CO_E_NOTINITIALIZED 0x800401F0L
-#endif
-#endif
-
-#define _FACDD 0x876
-#define MAKE_DDHRESULT( code ) MAKE_HRESULT( 1, _FACDD, code )
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-//
-// For compilers that don't support nameless unions, do a
-//
-// #define NONAMELESSUNION
-//
-// before #include <ddraw.h>
-//
-#ifndef DUMMYUNIONNAMEN
-#if defined(__cplusplus) || !defined(NONAMELESSUNION)
-#define DUMMYUNIONNAMEN(n)
-#else
-#define DUMMYUNIONNAMEN(n)      u##n
-#endif
-#endif
-
-#ifndef MAKEFOURCC
-    #define MAKEFOURCC(ch0, ch1, ch2, ch3)                              \
-                ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) |   \
-                ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 ))
-#endif //defined(MAKEFOURCC)
-
-/*
- * FOURCC codes for DX compressed-texture pixel formats
- */
-#define FOURCC_DXT1  (MAKEFOURCC('D','X','T','1'))
-#define FOURCC_DXT2  (MAKEFOURCC('D','X','T','2'))
-#define FOURCC_DXT3  (MAKEFOURCC('D','X','T','3'))
-#define FOURCC_DXT4  (MAKEFOURCC('D','X','T','4'))
-#define FOURCC_DXT5  (MAKEFOURCC('D','X','T','5'))
-
-/*
- * GUIDS used by DirectDraw objects
- */
-#if defined( _WIN32 ) && !defined( _NO_COM )
-
-DEFINE_GUID( CLSID_DirectDraw,                 0xD7B70EE0,0x4340,0x11CF,0xB0,0x63,0x00,0x20,0xAF,0xC2,0xCD,0x35 );
-DEFINE_GUID( CLSID_DirectDrawClipper,           0x593817A0,0x7DB3,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xb9,0x33,0x56 );
-DEFINE_GUID( IID_IDirectDraw,                  0x6C14DB80,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 );
-DEFINE_GUID( IID_IDirectDraw2,                  0xB3A6F3E0,0x2B43,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xB9,0x33,0x56 );
-DEFINE_GUID( IID_IDirectDraw4,                  0x9c59509a,0x39bd,0x11d1,0x8c,0x4a,0x00,0xc0,0x4f,0xd9,0x30,0xc5 );
-DEFINE_GUID( IID_IDirectDrawSurface,           0x6C14DB81,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 );
-DEFINE_GUID( IID_IDirectDrawSurface2,          0x57805885,0x6eec,0x11cf,0x94,0x41,0xa8,0x23,0x03,0xc1,0x0e,0x27 );
-DEFINE_GUID( IID_IDirectDrawSurface3,           0xDA044E00,0x69B2,0x11D0,0xA1,0xD5,0x00,0xAA,0x00,0xB8,0xDF,0xBB );
-DEFINE_GUID( IID_IDirectDrawSurface4,           0x0B2B8630,0xAD35,0x11D0,0x8E,0xA6,0x00,0x60,0x97,0x97,0xEA,0x5B );
-
-DEFINE_GUID( IID_IDirectDrawPalette,           0x6C14DB84,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 );
-DEFINE_GUID( IID_IDirectDrawClipper,           0x6C14DB85,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 );
-DEFINE_GUID( IID_IDirectDrawColorControl,      0x4B9F0EE0,0x0D7E,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8 );
-DEFINE_GUID( IID_IDirectDrawGammaControl,       0x69C11C3E,0xB46B,0x11D1,0xAD,0x7A,0x00,0xC0,0x4F,0xC2,0x9B,0x4E );
-
-#endif
-
-/*============================================================================
- *
- * DirectDraw Structures
- *
- * Various structures used to invoke DirectDraw.
- *
- *==========================================================================*/
-
-struct IDirectDraw;
-struct IDirectDrawSurface;
-struct IDirectDrawPalette;
-struct IDirectDrawClipper;
-
-typedef struct IDirectDraw              FAR *LPDIRECTDRAW;
-typedef struct IDirectDraw2             FAR *LPDIRECTDRAW2;
-typedef struct IDirectDraw4             FAR *LPDIRECTDRAW4;
-typedef struct IDirectDrawSurface       FAR *LPDIRECTDRAWSURFACE;
-typedef struct IDirectDrawSurface2      FAR *LPDIRECTDRAWSURFACE2;
-typedef struct IDirectDrawSurface3      FAR *LPDIRECTDRAWSURFACE3;
-typedef struct IDirectDrawSurface4      FAR *LPDIRECTDRAWSURFACE4;
-
-typedef struct IDirectDrawPalette              FAR *LPDIRECTDRAWPALETTE;
-typedef struct IDirectDrawClipper              FAR *LPDIRECTDRAWCLIPPER;
-typedef struct IDirectDrawColorControl         FAR *LPDIRECTDRAWCOLORCONTROL;
-typedef struct IDirectDrawGammaControl          FAR *LPDIRECTDRAWGAMMACONTROL;
-
-typedef struct _DDFXROP                        FAR *LPDDFXROP;
-typedef struct _DDSURFACEDESC          FAR *LPDDSURFACEDESC;
-typedef struct _DDSURFACEDESC2         FAR *LPDDSURFACEDESC2;
-typedef struct _DDCOLORCONTROL                 FAR *LPDDCOLORCONTROL;
-
-/*
- * API's
- */
-#if (defined (WIN32) || defined( _WIN32 ) ) && !defined( _NO_COM )
-//#if defined( _WIN32 ) && !defined( _NO_ENUM )
-    typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKA)(GUID FAR *, LPSTR, LPSTR, LPVOID);
-    typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKW)(GUID FAR *, LPWSTR, LPWSTR, LPVOID);
-    extern HRESULT WINAPI DirectDrawEnumerateW( LPDDENUMCALLBACKW lpCallback, LPVOID lpContext );
-    extern HRESULT WINAPI DirectDrawEnumerateA( LPDDENUMCALLBACKA lpCallback, LPVOID lpContext );
-    /*
-     * Protect against old SDKs
-     */
-    #ifndef SM_CMONITORS
-        #define HMONITOR    HANDLE
-    #endif
-    typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKEXA)(GUID FAR *, LPSTR, LPSTR, LPVOID, HMONITOR);
-    typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKEXW)(GUID FAR *, LPWSTR, LPWSTR, LPVOID, HMONITOR);
-    extern HRESULT WINAPI DirectDrawEnumerateExW( LPDDENUMCALLBACKEXW lpCallback, LPVOID lpContext, DWORD dwFlags);
-    extern HRESULT WINAPI DirectDrawEnumerateExA( LPDDENUMCALLBACKEXA lpCallback, LPVOID lpContext, DWORD dwFlags);
-    typedef HRESULT (WINAPI * LPDIRECTDRAWENUMERATEEXA)( LPDDENUMCALLBACKEXA lpCallback, LPVOID lpContext, DWORD dwFlags);
-    typedef HRESULT (WINAPI * LPDIRECTDRAWENUMERATEEXW)( LPDDENUMCALLBACKEXW lpCallback, LPVOID lpContext, DWORD dwFlags);
-
-    #ifdef UNICODE
-       typedef LPDDENUMCALLBACKW           LPDDENUMCALLBACK;
-       #define DirectDrawEnumerate         DirectDrawEnumerateW
-       typedef LPDDENUMCALLBACKEXW         LPDDENUMCALLBACKEX;
-       typedef LPDIRECTDRAWENUMERATEEXW        LPDIRECTDRAWENUMERATEEX;
-       #define DirectDrawEnumerateEx       DirectDrawEnumerateExW
-    #else
-       typedef LPDDENUMCALLBACKA           LPDDENUMCALLBACK;
-       #define DirectDrawEnumerate         DirectDrawEnumerateA
-       typedef LPDDENUMCALLBACKEXA         LPDDENUMCALLBACKEX;
-       typedef LPDIRECTDRAWENUMERATEEXA        LPDIRECTDRAWENUMERATEEX;
-        #define DirectDrawEnumerateEx      DirectDrawEnumerateExA
-    #endif
-    extern HRESULT WINAPI DirectDrawCreate( GUID FAR *lpGUID, LPDIRECTDRAW FAR *lplpDD, IUnknown FAR *pUnkOuter );
-    extern HRESULT WINAPI DirectDrawCreateClipper( DWORD dwFlags, LPDIRECTDRAWCLIPPER FAR *lplpDDClipper, IUnknown FAR *pUnkOuter );
-#endif
-/*
- * Flags for DirectDrawEnumerateEx
- * DirectDrawEnumerateEx supercedes DirectDrawEnumerate. You must use GetProcAddress to
- * obtain a function pointer (of type LPDIRECTDRAWENUMERATEEX) to DirectDrawEnumerateEx.
- * By default, only the primary display device is enumerated.
- * DirectDrawEnumerate is equivalent to DirectDrawEnumerate(,,DDENUM_NONDISPLAYDEVICES)
- */
-
-/*
- * This flag causes enumeration of any GDI display devices which are part of
- * the Windows Desktop
- */
-#define DDENUM_ATTACHEDSECONDARYDEVICES     0x00000001L
-
-/*
- * This flag causes enumeration of any GDI display devices which are not
- * part of the Windows Desktop
- */
-#define DDENUM_DETACHEDSECONDARYDEVICES     0x00000002L
-
-/*
- * This flag causes enumeration of non-display devices
- */
-#define DDENUM_NONDISPLAYDEVICES            0x00000004L
-
-
-#define REGSTR_KEY_DDHW_DESCRIPTION    "Description"
-#define REGSTR_KEY_DDHW_DRIVERNAME     "DriverName"
-#define REGSTR_PATH_DDHW               "Hardware\\DirectDrawDrivers"
-
-#define DDCREATE_HARDWAREONLY          0x00000001l
-#define DDCREATE_EMULATIONONLY         0x00000002l
-
-#if defined(WINNT) || !defined(WIN32)
-typedef long HRESULT;
-#endif
-
-//#ifndef WINNT
-typedef HRESULT (FAR PASCAL * LPDDENUMMODESCALLBACK)(LPDDSURFACEDESC, LPVOID);
-typedef HRESULT (FAR PASCAL * LPDDENUMMODESCALLBACK2)(LPDDSURFACEDESC2, LPVOID);
-typedef HRESULT (FAR PASCAL * LPDDENUMSURFACESCALLBACK)(LPDIRECTDRAWSURFACE, LPDDSURFACEDESC, LPVOID);
-typedef HRESULT (FAR PASCAL * LPDDENUMSURFACESCALLBACK2)(LPDIRECTDRAWSURFACE4, LPDDSURFACEDESC2, LPVOID);
-//#endif
-
-/*
- * Generic pixel format with 8-bit RGB and alpha components
- */
-typedef struct _DDRGBA
-{
-    BYTE red;
-    BYTE green;
-    BYTE blue;
-    BYTE alpha;
-} DDRGBA;
-
-typedef DDRGBA FAR *LPDDRGBA;
-
-/*
- * DDCOLORKEY
- */
-typedef struct _DDCOLORKEY
-{
-    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
-} DDCOLORKEY;
-
-typedef DDCOLORKEY FAR* LPDDCOLORKEY;
-
-/*
- * DDBLTFX
- * Used to pass override information to the DIRECTDRAWSURFACE callback Blt.
- */
-typedef struct _DDBLTFX
-{
-    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
-       LPDIRECTDRAWSURFACE lpDDSZBufferDest;   // Surface to use as Z buffer for dest
-    } DUMMYUNIONNAMEN(1);
-    DWORD      dwZSrcConstBitDepth;            // Bit depth used to specify Z constant for source
-    union
-    {
-       DWORD   dwZSrcConst;                    // Constant to use as Z buffer for src
-       LPDIRECTDRAWSURFACE lpDDSZBufferSrc;    // Surface to use as Z buffer for src
-    } DUMMYUNIONNAMEN(2);
-    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
-       LPDIRECTDRAWSURFACE lpDDSAlphaDest;     // Surface to use as Alpha Channel
-    } DUMMYUNIONNAMEN(3);
-    DWORD      dwAlphaSrcConstBitDepth;        // Bit depth used to specify alpha constant for source
-    union
-    {
-       DWORD   dwAlphaSrcConst;                // Constant to use as Alpha Channel
-       LPDIRECTDRAWSURFACE lpDDSAlphaSrc;      // Surface to use as Alpha Channel
-    } DUMMYUNIONNAMEN(4);
-    union
-    {
-       DWORD   dwFillColor;                    // color in RGB or Palettized
-       DWORD   dwFillDepth;                    // depth value for z-buffer
-       DWORD   dwFillPixel;                    // pixel value for RGBA or RGBZ
-       LPDIRECTDRAWSURFACE lpDDSPattern;       // Surface to use as pattern
-    } DUMMYUNIONNAMEN(5);
-    DDCOLORKEY ddckDestColorkey;               // DestColorkey override
-    DDCOLORKEY ddckSrcColorkey;                // SrcColorkey override
-} DDBLTFX;
-
-typedef DDBLTFX FAR* LPDDBLTFX;
-
-
-/*
- * DDSCAPS
- */
-typedef struct _DDSCAPS
-{
-    DWORD      dwCaps;         // capabilities of surface wanted
-} DDSCAPS;
-
-typedef DDSCAPS FAR* LPDDSCAPS;
-
-
-/*
- * DDOSCAPS
- */
-typedef struct _DDOSCAPS
-{
-    DWORD      dwCaps;         // capabilities of surface wanted
-} DDOSCAPS;
-
-typedef DDOSCAPS FAR* LPDDOSCAPS;
-
-/*
- * This structure is used internally by DirectDraw.
- */
-typedef struct _DDSCAPSEX
-{
-    DWORD       dwCaps2;
-    DWORD       dwCaps3;
-    DWORD       dwCaps4;
-} DDSCAPSEX, FAR * LPDDSCAPSEX;
-
-/*
- * DDSCAPS2
- */
-typedef struct _DDSCAPS2
-{
-    DWORD      dwCaps;         // capabilities of surface wanted
-    DWORD       dwCaps2;
-    DWORD       dwCaps3;
-    DWORD       dwCaps4;
-} DDSCAPS2;
-
-typedef DDSCAPS2 FAR* LPDDSCAPS2;
-
-/*
- * DDCAPS
- */
-#define DD_ROP_SPACE           (256/32)        // space required to store ROP array
-
-/*
- * This structure is the DDCAPS structure as it was in version 2 and 3 of Direct X.
- * It is present for back compatability.
- */
-typedef struct _DDCAPS_DX3
-{
-    DWORD      dwSize;                 // size of the DDDRIVERCAPS structure
-    DWORD      dwCaps;                 // driver specific capabilities
-    DWORD      dwCaps2;                // more driver specific capabilites
-    DWORD      dwCKeyCaps;             // color key capabilities of the surface
-    DWORD      dwFXCaps;               // driver specific stretching and effects capabilites
-    DWORD      dwFXAlphaCaps;          // alpha driver specific capabilities
-    DWORD      dwPalCaps;              // palette capabilities
-    DWORD      dwSVCaps;               // stereo vision capabilities
-    DWORD      dwAlphaBltConstBitDepths;       // DDBD_2,4,8
-    DWORD      dwAlphaBltPixelBitDepths;       // DDBD_1,2,4,8
-    DWORD      dwAlphaBltSurfaceBitDepths;     // DDBD_1,2,4,8
-    DWORD      dwAlphaOverlayConstBitDepths;   // DDBD_2,4,8
-    DWORD      dwAlphaOverlayPixelBitDepths;   // DDBD_1,2,4,8
-    DWORD      dwAlphaOverlaySurfaceBitDepths; // DDBD_1,2,4,8
-    DWORD      dwZBufferBitDepths;             // DDBD_8,16,24,32
-    DWORD      dwVidMemTotal;          // total amount of video memory
-    DWORD      dwVidMemFree;           // amount of free video memory
-    DWORD      dwMaxVisibleOverlays;   // maximum number of visible overlays
-    DWORD      dwCurrVisibleOverlays;  // current number of visible overlays
-    DWORD      dwNumFourCCCodes;       // number of four cc codes
-    DWORD      dwAlignBoundarySrc;     // source rectangle alignment
-    DWORD      dwAlignSizeSrc;         // source rectangle byte size
-    DWORD      dwAlignBoundaryDest;    // dest rectangle alignment
-    DWORD      dwAlignSizeDest;        // dest rectangle byte size
-    DWORD      dwAlignStrideAlign;     // stride alignment
-    DWORD      dwRops[DD_ROP_SPACE];   // ROPS supported
-    DDSCAPS    ddsCaps;                // DDSCAPS structure has all the general capabilities
-    DWORD      dwMinOverlayStretch;    // minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-    DWORD      dwMaxOverlayStretch;    // maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-    DWORD      dwMinLiveVideoStretch;  // minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-    DWORD      dwMaxLiveVideoStretch;  // maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-    DWORD      dwMinHwCodecStretch;    // minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-    DWORD      dwMaxHwCodecStretch;    // maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-    DWORD      dwReserved1;            // reserved
-    DWORD      dwReserved2;            // reserved
-    DWORD      dwReserved3;            // reserved
-    DWORD      dwSVBCaps;              // driver specific capabilities for System->Vmem blts
-    DWORD      dwSVBCKeyCaps;          // driver color key capabilities for System->Vmem blts
-    DWORD      dwSVBFXCaps;            // driver FX capabilities for System->Vmem blts
-    DWORD      dwSVBRops[DD_ROP_SPACE];// ROPS supported for System->Vmem blts
-    DWORD      dwVSBCaps;              // driver specific capabilities for Vmem->System blts
-    DWORD      dwVSBCKeyCaps;          // driver color key capabilities for Vmem->System blts
-    DWORD      dwVSBFXCaps;            // driver FX capabilities for Vmem->System blts
-    DWORD      dwVSBRops[DD_ROP_SPACE];// ROPS supported for Vmem->System blts
-    DWORD      dwSSBCaps;              // driver specific capabilities for System->System blts
-    DWORD      dwSSBCKeyCaps;          // driver color key capabilities for System->System blts
-    DWORD      dwSSBFXCaps;            // driver FX capabilities for System->System blts
-    DWORD      dwSSBRops[DD_ROP_SPACE];// ROPS supported for System->System blts
-    DWORD      dwReserved4;            // reserved
-    DWORD      dwReserved5;            // reserved
-    DWORD      dwReserved6;            // reserved
-} DDCAPS_DX3;
-typedef DDCAPS_DX3 FAR* LPDDCAPS_DX3;
-
-/*
- * This structure is the DDCAPS structure as it was in version 5 of Direct X.
- * It is present for back compatability.
- */
-typedef struct _DDCAPS_DX5
-{
-/*  0*/ DWORD  dwSize;                 // size of the DDDRIVERCAPS structure
-/*  4*/ DWORD  dwCaps;                 // driver specific capabilities
-/*  8*/ DWORD  dwCaps2;                // more driver specific capabilites
-/*  c*/ DWORD  dwCKeyCaps;             // color key capabilities of the surface
-/* 10*/ DWORD  dwFXCaps;               // driver specific stretching and effects capabilites
-/* 14*/ DWORD  dwFXAlphaCaps;          // alpha driver specific capabilities
-/* 18*/ DWORD  dwPalCaps;              // palette capabilities
-/* 1c*/ DWORD  dwSVCaps;               // stereo vision capabilities
-/* 20*/ DWORD  dwAlphaBltConstBitDepths;       // DDBD_2,4,8
-/* 24*/ DWORD  dwAlphaBltPixelBitDepths;       // DDBD_1,2,4,8
-/* 28*/ DWORD  dwAlphaBltSurfaceBitDepths;     // DDBD_1,2,4,8
-/* 2c*/ DWORD  dwAlphaOverlayConstBitDepths;   // DDBD_2,4,8
-/* 30*/ DWORD  dwAlphaOverlayPixelBitDepths;   // DDBD_1,2,4,8
-/* 34*/ DWORD  dwAlphaOverlaySurfaceBitDepths; // DDBD_1,2,4,8
-/* 38*/ DWORD  dwZBufferBitDepths;             // DDBD_8,16,24,32
-/* 3c*/ DWORD  dwVidMemTotal;          // total amount of video memory
-/* 40*/ DWORD  dwVidMemFree;           // amount of free video memory
-/* 44*/ DWORD  dwMaxVisibleOverlays;   // maximum number of visible overlays
-/* 48*/ DWORD  dwCurrVisibleOverlays;  // current number of visible overlays
-/* 4c*/ DWORD  dwNumFourCCCodes;       // number of four cc codes
-/* 50*/ DWORD  dwAlignBoundarySrc;     // source rectangle alignment
-/* 54*/ DWORD  dwAlignSizeSrc;         // source rectangle byte size
-/* 58*/ DWORD  dwAlignBoundaryDest;    // dest rectangle alignment
-/* 5c*/ DWORD  dwAlignSizeDest;        // dest rectangle byte size
-/* 60*/ DWORD  dwAlignStrideAlign;     // stride alignment
-/* 64*/ DWORD  dwRops[DD_ROP_SPACE];   // ROPS supported
-/* 84*/ DDSCAPS        ddsCaps;                // DDSCAPS structure has all the general capabilities
-/* 88*/ DWORD  dwMinOverlayStretch;    // minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-/* 8c*/ DWORD  dwMaxOverlayStretch;    // maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-/* 90*/ DWORD  dwMinLiveVideoStretch;  // minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-/* 94*/ DWORD  dwMaxLiveVideoStretch;  // maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-/* 98*/ DWORD  dwMinHwCodecStretch;    // minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-/* 9c*/ DWORD  dwMaxHwCodecStretch;    // maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-/* a0*/ DWORD  dwReserved1;            // reserved
-/* a4*/ DWORD  dwReserved2;            // reserved
-/* a8*/ DWORD  dwReserved3;            // reserved
-/* ac*/ DWORD  dwSVBCaps;              // driver specific capabilities for System->Vmem blts
-/* b0*/ DWORD  dwSVBCKeyCaps;          // driver color key capabilities for System->Vmem blts
-/* b4*/ DWORD  dwSVBFXCaps;            // driver FX capabilities for System->Vmem blts
-/* b8*/ DWORD  dwSVBRops[DD_ROP_SPACE];// ROPS supported for System->Vmem blts
-/* d8*/ DWORD  dwVSBCaps;              // driver specific capabilities for Vmem->System blts
-/* dc*/ DWORD  dwVSBCKeyCaps;          // driver color key capabilities for Vmem->System blts
-/* e0*/ DWORD  dwVSBFXCaps;            // driver FX capabilities for Vmem->System blts
-/* e4*/ DWORD  dwVSBRops[DD_ROP_SPACE];// ROPS supported for Vmem->System blts
-/*104*/ DWORD  dwSSBCaps;              // driver specific capabilities for System->System blts
-/*108*/ DWORD  dwSSBCKeyCaps;          // driver color key capabilities for System->System blts
-/*10c*/ DWORD  dwSSBFXCaps;            // driver FX capabilities for System->System blts
-/*110*/ DWORD  dwSSBRops[DD_ROP_SPACE];// ROPS supported for System->System blts
-// Members added for DX5:
-/*130*/ DWORD  dwMaxVideoPorts;        // maximum number of usable video ports
-/*134*/ DWORD  dwCurrVideoPorts;       // current number of video ports used
-/*138*/ DWORD  dwSVBCaps2;             // more driver specific capabilities for System->Vmem blts
-/*13c*/ DWORD  dwNLVBCaps;               // driver specific capabilities for non-local->local vidmem blts
-/*140*/ DWORD  dwNLVBCaps2;              // more driver specific capabilities non-local->local vidmem blts
-/*144*/ DWORD  dwNLVBCKeyCaps;           // driver color key capabilities for non-local->local vidmem blts
-/*148*/ DWORD  dwNLVBFXCaps;             // driver FX capabilities for non-local->local blts
-/*14c*/ DWORD  dwNLVBRops[DD_ROP_SPACE]; // ROPS supported for non-local->local blts
-} DDCAPS_DX5;
-typedef DDCAPS_DX5 FAR* LPDDCAPS_DX5;
-
-typedef struct _DDCAPS_DX6
-{
-/*  0*/ DWORD  dwSize;                 // size of the DDDRIVERCAPS structure
-/*  4*/ DWORD  dwCaps;                 // driver specific capabilities
-/*  8*/ DWORD  dwCaps2;                // more driver specific capabilites
-/*  c*/ DWORD  dwCKeyCaps;             // color key capabilities of the surface
-/* 10*/ DWORD  dwFXCaps;               // driver specific stretching and effects capabilites
-/* 14*/ DWORD  dwFXAlphaCaps;          // alpha caps
-/* 18*/ DWORD  dwPalCaps;              // palette capabilities
-/* 1c*/ DWORD  dwSVCaps;               // stereo vision capabilities
-/* 20*/ DWORD  dwAlphaBltConstBitDepths;       // DDBD_2,4,8
-/* 24*/ DWORD  dwAlphaBltPixelBitDepths;       // DDBD_1,2,4,8
-/* 28*/ DWORD  dwAlphaBltSurfaceBitDepths;     // DDBD_1,2,4,8
-/* 2c*/ DWORD  dwAlphaOverlayConstBitDepths;   // DDBD_2,4,8
-/* 30*/ DWORD  dwAlphaOverlayPixelBitDepths;   // DDBD_1,2,4,8
-/* 34*/ DWORD  dwAlphaOverlaySurfaceBitDepths; // DDBD_1,2,4,8
-/* 38*/ DWORD  dwZBufferBitDepths;             // DDBD_8,16,24,32
-/* 3c*/ DWORD  dwVidMemTotal;          // total amount of video memory
-/* 40*/ DWORD  dwVidMemFree;           // amount of free video memory
-/* 44*/ DWORD  dwMaxVisibleOverlays;   // maximum number of visible overlays
-/* 48*/ DWORD  dwCurrVisibleOverlays;  // current number of visible overlays
-/* 4c*/ DWORD  dwNumFourCCCodes;       // number of four cc codes
-/* 50*/ DWORD  dwAlignBoundarySrc;     // source rectangle alignment
-/* 54*/ DWORD  dwAlignSizeSrc;         // source rectangle byte size
-/* 58*/ DWORD  dwAlignBoundaryDest;    // dest rectangle alignment
-/* 5c*/ DWORD  dwAlignSizeDest;        // dest rectangle byte size
-/* 60*/ DWORD  dwAlignStrideAlign;     // stride alignment
-/* 64*/ DWORD  dwRops[DD_ROP_SPACE];   // ROPS supported
-/* 84*/ DDSCAPS        ddsOldCaps;             // Was DDSCAPS  ddsCaps. ddsCaps is of type DDSCAPS2 for DX6
-/* 88*/ DWORD  dwMinOverlayStretch;    // minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-/* 8c*/ DWORD  dwMaxOverlayStretch;    // maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-/* 90*/ DWORD  dwMinLiveVideoStretch;  // minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-/* 94*/ DWORD  dwMaxLiveVideoStretch;  // maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-/* 98*/ DWORD  dwMinHwCodecStretch;    // minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-/* 9c*/ DWORD  dwMaxHwCodecStretch;    // maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-/* a0*/ DWORD  dwReserved1;            // reserved
-/* a4*/ DWORD  dwReserved2;            // reserved
-/* a8*/ DWORD  dwReserved3;            // reserved
-/* ac*/ DWORD  dwSVBCaps;              // driver specific capabilities for System->Vmem blts
-/* b0*/ DWORD  dwSVBCKeyCaps;          // driver color key capabilities for System->Vmem blts
-/* b4*/ DWORD  dwSVBFXCaps;            // driver FX capabilities for System->Vmem blts
-/* b8*/ DWORD  dwSVBRops[DD_ROP_SPACE];// ROPS supported for System->Vmem blts
-/* d8*/ DWORD  dwVSBCaps;              // driver specific capabilities for Vmem->System blts
-/* dc*/ DWORD  dwVSBCKeyCaps;          // driver color key capabilities for Vmem->System blts
-/* e0*/ DWORD  dwVSBFXCaps;            // driver FX capabilities for Vmem->System blts
-/* e4*/ DWORD  dwVSBRops[DD_ROP_SPACE];// ROPS supported for Vmem->System blts
-/*104*/ DWORD  dwSSBCaps;              // driver specific capabilities for System->System blts
-/*108*/ DWORD  dwSSBCKeyCaps;          // driver color key capabilities for System->System blts
-/*10c*/ DWORD  dwSSBFXCaps;            // driver FX capabilities for System->System blts
-/*110*/ DWORD  dwSSBRops[DD_ROP_SPACE];// ROPS supported for System->System blts
-/*130*/ DWORD  dwMaxVideoPorts;        // maximum number of usable video ports
-/*134*/ DWORD  dwCurrVideoPorts;       // current number of video ports used
-/*138*/ DWORD  dwSVBCaps2;             // more driver specific capabilities for System->Vmem blts
-/*13c*/ DWORD  dwNLVBCaps;               // driver specific capabilities for non-local->local vidmem blts
-/*140*/ DWORD  dwNLVBCaps2;              // more driver specific capabilities non-local->local vidmem blts
-/*144*/ DWORD  dwNLVBCKeyCaps;           // driver color key capabilities for non-local->local vidmem blts
-/*148*/ DWORD  dwNLVBFXCaps;             // driver FX capabilities for non-local->local blts
-/*14c*/ DWORD  dwNLVBRops[DD_ROP_SPACE]; // ROPS supported for non-local->local blts
-// Members added for DX6 release
-/*16c*/ DDSCAPS2 ddsCaps;               // Surface Caps
-} DDCAPS_DX6;
-typedef DDCAPS_DX6 FAR* LPDDCAPS_DX6;
-
-
-#if DIRECTDRAW_VERSION <= 0x300
-    typedef DDCAPS_DX3 DDCAPS;
-#elif DIRECTDRAW_VERSION <= 0x500
-    typedef DDCAPS_DX5 DDCAPS;
-#else
-    typedef DDCAPS_DX6 DDCAPS;
-#endif
-
-typedef DDCAPS FAR* LPDDCAPS;
-
-
-
-/*
- * DDPIXELFORMAT
- */
-typedef struct _DDPIXELFORMAT
-{
-    DWORD      dwSize;                 // size of structure
-    DWORD      dwFlags;                // pixel format flags
-    DWORD      dwFourCC;               // (FOURCC code)
-    union
-    {
-       DWORD   dwRGBBitCount;          // how many bits per pixel
-       DWORD   dwYUVBitCount;          // how many bits per pixel
-       DWORD   dwZBufferBitDepth;      // how many total bits/pixel in z buffer (including any stencil bits)
-       DWORD   dwAlphaBitDepth;        // how many bits for alpha channels
-       DWORD   dwLuminanceBitCount;    // how many bits per pixel
-        DWORD   dwBumpBitCount;         // how many bits per "buxel", total
-    } DUMMYUNIONNAMEN(1);
-    union
-    {
-       DWORD   dwRBitMask;             // mask for red bit
-       DWORD   dwYBitMask;             // mask for Y bits
-       DWORD   dwStencilBitDepth;      // how many stencil bits (note: dwZBufferBitDepth-dwStencilBitDepth is total Z-only bits)
-       DWORD   dwLuminanceBitMask;     // mask for luminance bits
-        DWORD   dwBumpDuBitMask;        // mask for bump map U delta bits
-    } DUMMYUNIONNAMEN(2);
-    union
-    {
-       DWORD   dwGBitMask;             // mask for green bits
-       DWORD   dwUBitMask;             // mask for U bits
-       DWORD   dwZBitMask;             // mask for Z bits
-        DWORD   dwBumpDvBitMask;        // mask for bump map V delta bits
-    } DUMMYUNIONNAMEN(3);
-    union
-    {
-       DWORD   dwBBitMask;             // mask for blue bits
-       DWORD   dwVBitMask;             // mask for V bits
-       DWORD   dwStencilBitMask;       // mask for stencil bits
-        DWORD   dwBumpLuminanceBitMask; // mask for luminance in bump map
-    } DUMMYUNIONNAMEN(4);
-    union
-    {
-       DWORD   dwRGBAlphaBitMask;      // mask for alpha channel
-       DWORD   dwYUVAlphaBitMask;      // mask for alpha channel
-        DWORD   dwLuminanceAlphaBitMask;// mask for alpha channel
-       DWORD   dwRGBZBitMask;          // mask for Z channel
-       DWORD   dwYUVZBitMask;          // mask for Z channel
-    } DUMMYUNIONNAMEN(5);
-} DDPIXELFORMAT;
-
-typedef DDPIXELFORMAT FAR* LPDDPIXELFORMAT;
-
-/*
- * DDOVERLAYFX
- */
-typedef struct _DDOVERLAYFX
-{
-    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
-       LPDIRECTDRAWSURFACE lpDDSAlphaDest;     // Surface to use as alpha channel for dest
-    } DUMMYUNIONNAMEN(1);
-    DWORD      dwAlphaSrcConstBitDepth;        // Bit depth used to specify alpha constant for source
-    union
-    {
-       DWORD   dwAlphaSrcConst;                // Constant to use as alpha channel for src
-       LPDIRECTDRAWSURFACE lpDDSAlphaSrc;      // Surface to use as alpha channel for src
-    } DUMMYUNIONNAMEN(2);
-    DDCOLORKEY dckDestColorkey;                // DestColorkey override
-    DDCOLORKEY dckSrcColorkey;                 // DestColorkey override
-    DWORD       dwDDFX;                         // Overlay FX
-    DWORD      dwFlags;                        // flags
-} DDOVERLAYFX;
-
-typedef DDOVERLAYFX FAR *LPDDOVERLAYFX;
-
-
-/*
- * DDBLTBATCH: BltBatch entry structure
- */
-typedef struct _DDBLTBATCH
-{
-    LPRECT             lprDest;
-    LPDIRECTDRAWSURFACE        lpDDSSrc;
-    LPRECT             lprSrc;
-    DWORD              dwFlags;
-    LPDDBLTFX          lpDDBltFx;
-} DDBLTBATCH;
-
-typedef DDBLTBATCH FAR * LPDDBLTBATCH;
-
-
-/*
- * DDGAMMARAMP
- */
-typedef struct _DDGAMMARAMP
-{
-    WORD                red[256];
-    WORD                green[256];
-    WORD                blue[256];
-} DDGAMMARAMP;
-typedef DDGAMMARAMP FAR * LPDDGAMMARAMP;
-
-/*
- *  This is the structure within which DirectDraw returns data about the current graphics driver and chipset
- */
-
-#define MAX_DDDEVICEID_STRING          512
-
-typedef struct tagDDDEVICEIDENTIFIER
-{
-    /*
-     * These elements are for presentation to the user only. They should not be used to identify particular
-     * drivers, since this is unreliable and many different strings may be associated with the same
-     * device, and the same driver from different vendors.
-     */
-    char    szDriver[MAX_DDDEVICEID_STRING];
-    char    szDescription[MAX_DDDEVICEID_STRING];
-
-    /*
-     * This element is the version of the DirectDraw/3D driver. It is legal to do <, > comparisons
-     * on the whole 64 bits. Caution should be exercised if you use this element to identify problematic
-     * drivers. It is recommended that guidDeviceIdentifier is used for this purpose.
-     *
-     * This version has the form:
-     *  wProduct = HIWORD(liDriverVersion.HighPart)
-     *  wVersion = LOWORD(liDriverVersion.HighPart)
-     *  wSubVersion = HIWORD(liDriverVersion.LowPart)
-     *  wBuild = LOWORD(liDriverVersion.LowPart)
-     */
-#ifdef _WIN32
-    LARGE_INTEGER liDriverVersion;      /* Defined for applications and other 32 bit components */
-#else
-    DWORD   dwDriverVersionLowPart;     /* Defined for 16 bit driver components */
-    DWORD   dwDriverVersionHighPart;
-#endif
-
-
-    /*
-     * These elements can be used to identify particular chipsets. Use with extreme caution. 
-     *   dwVendorId     Identifies the manufacturer. May be zero if unknown.
-     *   dwDeviceId     Identifies the type of chipset. May be zero if unknown.
-     *   dwSubSysId     Identifies the subsystem, typically this means the particular board. May be zero if unknown.
-     *   dwRevision     Identifies the revision level of the chipset. May be zero if unknown.
-     */
-    DWORD   dwVendorId;
-    DWORD   dwDeviceId;
-    DWORD   dwSubSysId;
-    DWORD   dwRevision;
-
-    /*
-     * This element can be used to check changes in driver/chipset. This GUID is a unique identifier for the
-     * driver/chipset pair. Use this element if you wish to track changes to the driver/chipset in order to
-     * reprofile the graphics subsystem.
-     * This element can also be used to identify particular problematic drivers.
-     */
-    GUID    guidDeviceIdentifier;
-} DDDEVICEIDENTIFIER, * LPDDDEVICEIDENTIFIER;
-
-/*
- * Flags for the IDirectDraw4::GetDeviceIdentifier method
- */
-
-/*
- * This flag causes GetDeviceIdentifier to return information about the host (typically 2D) adapter in a system equipped
- * with a stacked secondary 3D adapter. Such an adapter appears to the application as if it were part of the
- * host adapter, but is typically physcially located on a separate card. The stacked secondary's information is
- * returned when GetDeviceIdentifier's dwFlags field is zero, since this most accurately reflects the qualities
- * of the DirectDraw object involved.
- */
-#define DDGDI_GETHOSTIDENTIFIER         0x00000001L
-
-
-
-/*
- * callbacks
- */
-typedef DWORD  (FAR PASCAL *LPCLIPPERCALLBACK)(LPDIRECTDRAWCLIPPER lpDDClipper, HWND hWnd, DWORD code, LPVOID lpContext );
-#ifdef STREAMING
-typedef DWORD  (FAR PASCAL *LPSURFACESTREAMINGCALLBACK)(DWORD);
-#endif
-
-
-/*
- * INTERACES FOLLOW:
- *     IDirectDraw
- *     IDirectDrawClipper
- *     IDirectDrawPalette
- *     IDirectDrawSurface
- */
-
-/*
- * IDirectDraw
- */
-#if defined( _WIN32 ) && !defined( _NO_COM )
-#undef INTERFACE
-#define INTERFACE IDirectDraw
-DECLARE_INTERFACE_( IDirectDraw, IUnknown )
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    /*** IDirectDraw methods ***/
-    STDMETHOD(Compact)(THIS) PURE;
-    STDMETHOD(CreateClipper)(THIS_ DWORD, LPDIRECTDRAWCLIPPER FAR*, IUnknown FAR * ) PURE;
-    STDMETHOD(CreatePalette)(THIS_ DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE FAR*, IUnknown FAR * ) PURE;
-    STDMETHOD(CreateSurface)(THIS_  LPDDSURFACEDESC, LPDIRECTDRAWSURFACE FAR *, IUnknown FAR *) PURE;
-    STDMETHOD(DuplicateSurface)( THIS_ LPDIRECTDRAWSURFACE, LPDIRECTDRAWSURFACE FAR * ) PURE;
-    STDMETHOD(EnumDisplayModes)( THIS_ DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK ) PURE;
-    STDMETHOD(EnumSurfaces)(THIS_ DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK ) PURE;
-    STDMETHOD(FlipToGDISurface)(THIS) PURE;
-    STDMETHOD(GetCaps)( THIS_ LPDDCAPS, LPDDCAPS) PURE;
-    STDMETHOD(GetDisplayMode)( THIS_ LPDDSURFACEDESC) PURE;
-    STDMETHOD(GetFourCCCodes)(THIS_  LPDWORD, LPDWORD ) PURE;
-    STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE FAR *) PURE;
-    STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD) PURE;
-    STDMETHOD(GetScanLine)(THIS_ LPDWORD) PURE;
-    STDMETHOD(GetVerticalBlankStatus)(THIS_ LPBOOL ) PURE;
-    STDMETHOD(Initialize)(THIS_ GUID FAR *) PURE;
-    STDMETHOD(RestoreDisplayMode)(THIS) PURE;
-    STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD) PURE;
-    STDMETHOD(SetDisplayMode)(THIS_ DWORD, DWORD,DWORD) PURE;
-    STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD, HANDLE ) PURE;
-};
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectDraw_QueryInterface(p, a, b)         (p)->lpVtbl->QueryInterface(p, a, b)
-#define IDirectDraw_AddRef(p)                       (p)->lpVtbl->AddRef(p)
-#define IDirectDraw_Release(p)                      (p)->lpVtbl->Release(p)
-#define IDirectDraw_Compact(p)                      (p)->lpVtbl->Compact(p)
-#define IDirectDraw_CreateClipper(p, a, b, c)       (p)->lpVtbl->CreateClipper(p, a, b, c)
-#define IDirectDraw_CreatePalette(p, a, b, c, d)    (p)->lpVtbl->CreatePalette(p, a, b, c, d)
-#define IDirectDraw_CreateSurface(p, a, b, c)       (p)->lpVtbl->CreateSurface(p, a, b, c)
-#define IDirectDraw_DuplicateSurface(p, a, b)       (p)->lpVtbl->DuplicateSurface(p, a, b)
-#define IDirectDraw_EnumDisplayModes(p, a, b, c, d) (p)->lpVtbl->EnumDisplayModes(p, a, b, c, d)
-#define IDirectDraw_EnumSurfaces(p, a, b, c, d)     (p)->lpVtbl->EnumSurfaces(p, a, b, c, d)
-#define IDirectDraw_FlipToGDISurface(p)             (p)->lpVtbl->FlipToGDISurface(p)
-#define IDirectDraw_GetCaps(p, a, b)                (p)->lpVtbl->GetCaps(p, a, b)
-#define IDirectDraw_GetDisplayMode(p, a)            (p)->lpVtbl->GetDisplayMode(p, a)
-#define IDirectDraw_GetFourCCCodes(p, a, b)         (p)->lpVtbl->GetFourCCCodes(p, a, b)
-#define IDirectDraw_GetGDISurface(p, a)             (p)->lpVtbl->GetGDISurface(p, a)
-#define IDirectDraw_GetMonitorFrequency(p, a)       (p)->lpVtbl->GetMonitorFrequency(p, a)
-#define IDirectDraw_GetScanLine(p, a)               (p)->lpVtbl->GetScanLine(p, a)
-#define IDirectDraw_GetVerticalBlankStatus(p, a)    (p)->lpVtbl->GetVerticalBlankStatus(p, a)
-#define IDirectDraw_Initialize(p, a)                (p)->lpVtbl->Initialize(p, a)
-#define IDirectDraw_RestoreDisplayMode(p)           (p)->lpVtbl->RestoreDisplayMode(p)
-#define IDirectDraw_SetCooperativeLevel(p, a, b)    (p)->lpVtbl->SetCooperativeLevel(p, a, b)
-#define IDirectDraw_SetDisplayMode(p, a, b, c)      (p)->lpVtbl->SetDisplayMode(p, a, b, c)
-#define IDirectDraw_WaitForVerticalBlank(p, a, b)   (p)->lpVtbl->WaitForVerticalBlank(p, a, b)
-#else
-#define IDirectDraw_QueryInterface(p, a, b)         (p)->QueryInterface(a, b)
-#define IDirectDraw_AddRef(p)                       (p)->AddRef()
-#define IDirectDraw_Release(p)                      (p)->Release()
-#define IDirectDraw_Compact(p)                      (p)->Compact()
-#define IDirectDraw_CreateClipper(p, a, b, c)       (p)->CreateClipper(a, b, c)
-#define IDirectDraw_CreatePalette(p, a, b, c, d)    (p)->CreatePalette(a, b, c, d)
-#define IDirectDraw_CreateSurface(p, a, b, c)       (p)->CreateSurface(a, b, c)
-#define IDirectDraw_DuplicateSurface(p, a, b)       (p)->DuplicateSurface(a, b)
-#define IDirectDraw_EnumDisplayModes(p, a, b, c, d) (p)->EnumDisplayModes(a, b, c, d)
-#define IDirectDraw_EnumSurfaces(p, a, b, c, d)     (p)->EnumSurfaces(a, b, c, d)
-#define IDirectDraw_FlipToGDISurface(p)             (p)->FlipToGDISurface()
-#define IDirectDraw_GetCaps(p, a, b)                (p)->GetCaps(a, b)
-#define IDirectDraw_GetDisplayMode(p, a)            (p)->GetDisplayMode(a)
-#define IDirectDraw_GetFourCCCodes(p, a, b)         (p)->GetFourCCCodes(a, b)
-#define IDirectDraw_GetGDISurface(p, a)             (p)->GetGDISurface(a)
-#define IDirectDraw_GetMonitorFrequency(p, a)       (p)->GetMonitorFrequency(a)
-#define IDirectDraw_GetScanLine(p, a)               (p)->GetScanLine(a)
-#define IDirectDraw_GetVerticalBlankStatus(p, a)    (p)->GetVerticalBlankStatus(a)
-#define IDirectDraw_Initialize(p, a)                (p)->Initialize(a)
-#define IDirectDraw_RestoreDisplayMode(p)           (p)->RestoreDisplayMode()
-#define IDirectDraw_SetCooperativeLevel(p, a, b)    (p)->SetCooperativeLevel(a, b)
-#define IDirectDraw_SetDisplayMode(p, a, b, c)      (p)->SetDisplayMode(a, b, c)
-#define IDirectDraw_WaitForVerticalBlank(p, a, b)   (p)->WaitForVerticalBlank(a, b)
-#endif
-
-#endif
-
-#if defined( _WIN32 ) && !defined( _NO_COM )
-#undef INTERFACE
-#define INTERFACE IDirectDraw2
-DECLARE_INTERFACE_( IDirectDraw2, IUnknown )
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    /*** IDirectDraw methods ***/
-    STDMETHOD(Compact)(THIS) PURE;
-    STDMETHOD(CreateClipper)(THIS_ DWORD, LPDIRECTDRAWCLIPPER FAR*, IUnknown FAR * ) PURE;
-    STDMETHOD(CreatePalette)(THIS_ DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE FAR*, IUnknown FAR * ) PURE;
-    STDMETHOD(CreateSurface)(THIS_  LPDDSURFACEDESC, LPDIRECTDRAWSURFACE FAR *, IUnknown FAR *) PURE;
-    STDMETHOD(DuplicateSurface)( THIS_ LPDIRECTDRAWSURFACE, LPDIRECTDRAWSURFACE FAR * ) PURE;
-    STDMETHOD(EnumDisplayModes)( THIS_ DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK ) PURE;
-    STDMETHOD(EnumSurfaces)(THIS_ DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK ) PURE;
-    STDMETHOD(FlipToGDISurface)(THIS) PURE;
-    STDMETHOD(GetCaps)( THIS_ LPDDCAPS, LPDDCAPS) PURE;
-    STDMETHOD(GetDisplayMode)( THIS_ LPDDSURFACEDESC) PURE;
-    STDMETHOD(GetFourCCCodes)(THIS_  LPDWORD, LPDWORD ) PURE;
-    STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE FAR *) PURE;
-    STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD) PURE;
-    STDMETHOD(GetScanLine)(THIS_ LPDWORD) PURE;
-    STDMETHOD(GetVerticalBlankStatus)(THIS_ LPBOOL ) PURE;
-    STDMETHOD(Initialize)(THIS_ GUID FAR *) PURE;
-    STDMETHOD(RestoreDisplayMode)(THIS) PURE;
-    STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD) PURE;
-    STDMETHOD(SetDisplayMode)(THIS_ DWORD, DWORD,DWORD, DWORD, DWORD) PURE;
-    STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD, HANDLE ) PURE;
-    /*** Added in the v2 interface ***/
-    STDMETHOD(GetAvailableVidMem)(THIS_ LPDDSCAPS, LPDWORD, LPDWORD) PURE;
-};
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectDraw2_QueryInterface(p, a, b)         (p)->lpVtbl->QueryInterface(p, a, b)
-#define IDirectDraw2_AddRef(p)                       (p)->lpVtbl->AddRef(p)
-#define IDirectDraw2_Release(p)                      (p)->lpVtbl->Release(p)
-#define IDirectDraw2_Compact(p)                      (p)->lpVtbl->Compact(p)
-#define IDirectDraw2_CreateClipper(p, a, b, c)       (p)->lpVtbl->CreateClipper(p, a, b, c)
-#define IDirectDraw2_CreatePalette(p, a, b, c, d)    (p)->lpVtbl->CreatePalette(p, a, b, c, d)
-#define IDirectDraw2_CreateSurface(p, a, b, c)       (p)->lpVtbl->CreateSurface(p, a, b, c)
-#define IDirectDraw2_DuplicateSurface(p, a, b)       (p)->lpVtbl->DuplicateSurface(p, a, b)
-#define IDirectDraw2_EnumDisplayModes(p, a, b, c, d) (p)->lpVtbl->EnumDisplayModes(p, a, b, c, d)
-#define IDirectDraw2_EnumSurfaces(p, a, b, c, d)     (p)->lpVtbl->EnumSurfaces(p, a, b, c, d)
-#define IDirectDraw2_FlipToGDISurface(p)             (p)->lpVtbl->FlipToGDISurface(p)
-#define IDirectDraw2_GetCaps(p, a, b)                (p)->lpVtbl->GetCaps(p, a, b)
-#define IDirectDraw2_GetDisplayMode(p, a)            (p)->lpVtbl->GetDisplayMode(p, a)
-#define IDirectDraw2_GetFourCCCodes(p, a, b)         (p)->lpVtbl->GetFourCCCodes(p, a, b)
-#define IDirectDraw2_GetGDISurface(p, a)             (p)->lpVtbl->GetGDISurface(p, a)
-#define IDirectDraw2_GetMonitorFrequency(p, a)       (p)->lpVtbl->GetMonitorFrequency(p, a)
-#define IDirectDraw2_GetScanLine(p, a)               (p)->lpVtbl->GetScanLine(p, a)
-#define IDirectDraw2_GetVerticalBlankStatus(p, a)    (p)->lpVtbl->GetVerticalBlankStatus(p, a)
-#define IDirectDraw2_Initialize(p, a)                (p)->lpVtbl->Initialize(p, a)
-#define IDirectDraw2_RestoreDisplayMode(p)           (p)->lpVtbl->RestoreDisplayMode(p)
-#define IDirectDraw2_SetCooperativeLevel(p, a, b)    (p)->lpVtbl->SetCooperativeLevel(p, a, b)
-#define IDirectDraw2_SetDisplayMode(p, a, b, c, d, e) (p)->lpVtbl->SetDisplayMode(p, a, b, c, d, e)
-#define IDirectDraw2_WaitForVerticalBlank(p, a, b)   (p)->lpVtbl->WaitForVerticalBlank(p, a, b)
-#define IDirectDraw2_GetAvailableVidMem(p, a, b, c)  (p)->lpVtbl->GetAvailableVidMem(p, a, b, c)
-#else
-#define IDirectDraw2_QueryInterface(p, a, b)         (p)->QueryInterface(a, b)
-#define IDirectDraw2_AddRef(p)                       (p)->AddRef()
-#define IDirectDraw2_Release(p)                      (p)->Release()
-#define IDirectDraw2_Compact(p)                      (p)->Compact()
-#define IDirectDraw2_CreateClipper(p, a, b, c)       (p)->CreateClipper(a, b, c)
-#define IDirectDraw2_CreatePalette(p, a, b, c, d)    (p)->CreatePalette(a, b, c, d)
-#define IDirectDraw2_CreateSurface(p, a, b, c)       (p)->CreateSurface(a, b, c)
-#define IDirectDraw2_DuplicateSurface(p, a, b)       (p)->DuplicateSurface(a, b)
-#define IDirectDraw2_EnumDisplayModes(p, a, b, c, d) (p)->EnumDisplayModes(a, b, c, d)
-#define IDirectDraw2_EnumSurfaces(p, a, b, c, d)     (p)->EnumSurfaces(a, b, c, d)
-#define IDirectDraw2_FlipToGDISurface(p)             (p)->FlipToGDISurface()
-#define IDirectDraw2_GetCaps(p, a, b)                (p)->GetCaps(a, b)
-#define IDirectDraw2_GetDisplayMode(p, a)            (p)->GetDisplayMode(a)
-#define IDirectDraw2_GetFourCCCodes(p, a, b)         (p)->GetFourCCCodes(a, b)
-#define IDirectDraw2_GetGDISurface(p, a)             (p)->GetGDISurface(a)
-#define IDirectDraw2_GetMonitorFrequency(p, a)       (p)->GetMonitorFrequency(a)
-#define IDirectDraw2_GetScanLine(p, a)               (p)->GetScanLine(a)
-#define IDirectDraw2_GetVerticalBlankStatus(p, a)    (p)->GetVerticalBlankStatus(a)
-#define IDirectDraw2_Initialize(p, a)                (p)->Initialize(a)
-#define IDirectDraw2_RestoreDisplayMode(p)           (p)->RestoreDisplayMode()
-#define IDirectDraw2_SetCooperativeLevel(p, a, b)    (p)->SetCooperativeLevel(a, b)
-#define IDirectDraw2_SetDisplayMode(p, a, b, c, d, e) (p)->SetDisplayMode(a, b, c, d, e)
-#define IDirectDraw2_WaitForVerticalBlank(p, a, b)   (p)->WaitForVerticalBlank(a, b)
-#define IDirectDraw2_GetAvailableVidMem(p, a, b, c)  (p)->GetAvailableVidMem(a, b, c)
-#endif
-
-#endif
-
-#if defined( _WIN32 ) && !defined( _NO_COM )
-#undef INTERFACE
-#define INTERFACE IDirectDraw4
-DECLARE_INTERFACE_( IDirectDraw4, IUnknown )
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    /*** IDirectDraw methods ***/
-    STDMETHOD(Compact)(THIS) PURE;
-    STDMETHOD(CreateClipper)(THIS_ DWORD, LPDIRECTDRAWCLIPPER FAR*, IUnknown FAR * ) PURE;
-    STDMETHOD(CreatePalette)(THIS_ DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE FAR*, IUnknown FAR * ) PURE;
-    STDMETHOD(CreateSurface)(THIS_  LPDDSURFACEDESC2, LPDIRECTDRAWSURFACE4 FAR *, IUnknown FAR *) PURE;
-    STDMETHOD(DuplicateSurface)( THIS_ LPDIRECTDRAWSURFACE4, LPDIRECTDRAWSURFACE4 FAR * ) PURE;
-    STDMETHOD(EnumDisplayModes)( THIS_ DWORD, LPDDSURFACEDESC2, LPVOID, LPDDENUMMODESCALLBACK2 ) PURE;
-    STDMETHOD(EnumSurfaces)(THIS_ DWORD, LPDDSURFACEDESC2, LPVOID,LPDDENUMSURFACESCALLBACK2 ) PURE;
-    STDMETHOD(FlipToGDISurface)(THIS) PURE;
-    STDMETHOD(GetCaps)( THIS_ LPDDCAPS, LPDDCAPS) PURE;
-    STDMETHOD(GetDisplayMode)( THIS_ LPDDSURFACEDESC2) PURE;
-    STDMETHOD(GetFourCCCodes)(THIS_  LPDWORD, LPDWORD ) PURE;
-    STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE4 FAR *) PURE;
-    STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD) PURE;
-    STDMETHOD(GetScanLine)(THIS_ LPDWORD) PURE;
-    STDMETHOD(GetVerticalBlankStatus)(THIS_ LPBOOL ) PURE;
-    STDMETHOD(Initialize)(THIS_ GUID FAR *) PURE;
-    STDMETHOD(RestoreDisplayMode)(THIS) PURE;
-    STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD) PURE;
-    STDMETHOD(SetDisplayMode)(THIS_ DWORD, DWORD,DWORD, DWORD, DWORD) PURE;
-    STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD, HANDLE ) PURE;
-    /*** Added in the v2 interface ***/
-    STDMETHOD(GetAvailableVidMem)(THIS_ LPDDSCAPS2, LPDWORD, LPDWORD) PURE;
-    /*** Added in the V4 Interface ***/
-    STDMETHOD(GetSurfaceFromDC) (THIS_ HDC, LPDIRECTDRAWSURFACE4 *) PURE;
-    STDMETHOD(RestoreAllSurfaces)(THIS) PURE;
-    STDMETHOD(TestCooperativeLevel)(THIS) PURE;
-    STDMETHOD(GetDeviceIdentifier)(THIS_ LPDDDEVICEIDENTIFIER, DWORD ) PURE;
-};
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectDraw4_QueryInterface(p, a, b)         (p)->lpVtbl->QueryInterface(p, a, b)
-#define IDirectDraw4_AddRef(p)                       (p)->lpVtbl->AddRef(p)
-#define IDirectDraw4_Release(p)                      (p)->lpVtbl->Release(p)
-#define IDirectDraw4_Compact(p)                      (p)->lpVtbl->Compact(p)
-#define IDirectDraw4_CreateClipper(p, a, b, c)       (p)->lpVtbl->CreateClipper(p, a, b, c)
-#define IDirectDraw4_CreatePalette(p, a, b, c, d)    (p)->lpVtbl->CreatePalette(p, a, b, c, d)
-#define IDirectDraw4_CreateSurface(p, a, b, c)       (p)->lpVtbl->CreateSurface(p, a, b, c)
-#define IDirectDraw4_DuplicateSurface(p, a, b)       (p)->lpVtbl->DuplicateSurface(p, a, b)
-#define IDirectDraw4_EnumDisplayModes(p, a, b, c, d) (p)->lpVtbl->EnumDisplayModes(p, a, b, c, d)
-#define IDirectDraw4_EnumSurfaces(p, a, b, c, d)     (p)->lpVtbl->EnumSurfaces(p, a, b, c, d)
-#define IDirectDraw4_FlipToGDISurface(p)             (p)->lpVtbl->FlipToGDISurface(p)
-#define IDirectDraw4_GetCaps(p, a, b)                (p)->lpVtbl->GetCaps(p, a, b)
-#define IDirectDraw4_GetDisplayMode(p, a)            (p)->lpVtbl->GetDisplayMode(p, a)
-#define IDirectDraw4_GetFourCCCodes(p, a, b)         (p)->lpVtbl->GetFourCCCodes(p, a, b)
-#define IDirectDraw4_GetGDISurface(p, a)             (p)->lpVtbl->GetGDISurface(p, a)
-#define IDirectDraw4_GetMonitorFrequency(p, a)       (p)->lpVtbl->GetMonitorFrequency(p, a)
-#define IDirectDraw4_GetScanLine(p, a)               (p)->lpVtbl->GetScanLine(p, a)
-#define IDirectDraw4_GetVerticalBlankStatus(p, a)    (p)->lpVtbl->GetVerticalBlankStatus(p, a)
-#define IDirectDraw4_Initialize(p, a)                (p)->lpVtbl->Initialize(p, a)
-#define IDirectDraw4_RestoreDisplayMode(p)           (p)->lpVtbl->RestoreDisplayMode(p)
-#define IDirectDraw4_SetCooperativeLevel(p, a, b)    (p)->lpVtbl->SetCooperativeLevel(p, a, b)
-#define IDirectDraw4_SetDisplayMode(p, a, b, c, d, e) (p)->lpVtbl->SetDisplayMode(p, a, b, c, d, e)
-#define IDirectDraw4_WaitForVerticalBlank(p, a, b)   (p)->lpVtbl->WaitForVerticalBlank(p, a, b)
-#define IDirectDraw4_GetAvailableVidMem(p, a, b, c)  (p)->lpVtbl->GetAvailableVidMem(p, a, b, c)
-#define IDirectDraw4_GetSurfaceFromDC(p, a, b)       (p)->lpVtbl->GetSurfaceFromDC(p, a, b)
-#define IDirectDraw4_RestoreAllSurfaces(p)           (p)->lpVtbl->RestoreAllSurfaces(p)
-#define IDirectDraw4_TestCooperativeLevel(p)         (p)->lpVtbl->TestCooperativeLevel(p)
-#define IDirectDraw4_GetDeviceIdentifier(p,a,b)      (p)->lpVtbl->GetDeviceIdentifier(p,a,b)
-#else
-#define IDirectDraw4_QueryInterface(p, a, b)         (p)->QueryInterface(a, b)
-#define IDirectDraw4_AddRef(p)                       (p)->AddRef()
-#define IDirectDraw4_Release(p)                      (p)->Release()
-#define IDirectDraw4_Compact(p)                      (p)->Compact()
-#define IDirectDraw4_CreateClipper(p, a, b, c)       (p)->CreateClipper(a, b, c)
-#define IDirectDraw4_CreatePalette(p, a, b, c, d)    (p)->CreatePalette(a, b, c, d)
-#define IDirectDraw4_CreateSurface(p, a, b, c)       (p)->CreateSurface(a, b, c)
-#define IDirectDraw4_DuplicateSurface(p, a, b)       (p)->DuplicateSurface(a, b)
-#define IDirectDraw4_EnumDisplayModes(p, a, b, c, d) (p)->EnumDisplayModes(a, b, c, d)
-#define IDirectDraw4_EnumSurfaces(p, a, b, c, d)     (p)->EnumSurfaces(a, b, c, d)
-#define IDirectDraw4_FlipToGDISurface(p)             (p)->FlipToGDISurface()
-#define IDirectDraw4_GetCaps(p, a, b)                (p)->GetCaps(a, b)
-#define IDirectDraw4_GetDisplayMode(p, a)            (p)->GetDisplayMode(a)
-#define IDirectDraw4_GetFourCCCodes(p, a, b)         (p)->GetFourCCCodes(a, b)
-#define IDirectDraw4_GetGDISurface(p, a)             (p)->GetGDISurface(a)
-#define IDirectDraw4_GetMonitorFrequency(p, a)       (p)->GetMonitorFrequency(a)
-#define IDirectDraw4_GetScanLine(p, a)               (p)->GetScanLine(a)
-#define IDirectDraw4_GetVerticalBlankStatus(p, a)    (p)->GetVerticalBlankStatus(a)
-#define IDirectDraw4_Initialize(p, a)                (p)->Initialize(a)
-#define IDirectDraw4_RestoreDisplayMode(p)           (p)->RestoreDisplayMode()
-#define IDirectDraw4_SetCooperativeLevel(p, a, b)    (p)->SetCooperativeLevel(a, b)
-#define IDirectDraw4_SetDisplayMode(p, a, b, c, d, e) (p)->SetDisplayMode(a, b, c, d, e)
-#define IDirectDraw4_WaitForVerticalBlank(p, a, b)   (p)->WaitForVerticalBlank(a, b)
-#define IDirectDraw4_GetAvailableVidMem(p, a, b, c)  (p)->GetAvailableVidMem(a, b, c)
-#define IDirectDraw4_GetSurfaceFromDC(p, a, b)       (p)->GetSurfaceFromDC(a, b)
-#define IDirectDraw4_RestoreAllSurfaces(p)           (p)->RestoreAllSurfaces()
-#define IDirectDraw4_TestCooperativeLevel(p)         (p)->TestCooperativeLevel()
-#define IDirectDraw4_GetDeviceIdentifier(p,a,b)      (p)->GetDeviceIdentifier(a,b)
-#endif
-
-#endif
-
-
-/*
- * IDirectDrawPalette
- */
-#if defined( _WIN32 ) && !defined( _NO_COM )
-#undef INTERFACE
-#define INTERFACE IDirectDrawPalette
-DECLARE_INTERFACE_( IDirectDrawPalette, IUnknown )
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    /*** IDirectDrawPalette methods ***/
-    STDMETHOD(GetCaps)(THIS_ LPDWORD) PURE;
-    STDMETHOD(GetEntries)(THIS_ DWORD,DWORD,DWORD,LPPALETTEENTRY) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, DWORD, LPPALETTEENTRY) PURE;
-    STDMETHOD(SetEntries)(THIS_ DWORD,DWORD,DWORD,LPPALETTEENTRY) PURE;
-};
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectDrawPalette_QueryInterface(p, a, b)      (p)->lpVtbl->QueryInterface(p, a, b)
-#define IDirectDrawPalette_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirectDrawPalette_Release(p)                   (p)->lpVtbl->Release(p)
-#define IDirectDrawPalette_GetCaps(p, a)                (p)->lpVtbl->GetCaps(p, a)
-#define IDirectDrawPalette_GetEntries(p, a, b, c, d)    (p)->lpVtbl->GetEntries(p, a, b, c, d)
-#define IDirectDrawPalette_Initialize(p, a, b, c)       (p)->lpVtbl->Initialize(p, a, b, c)
-#define IDirectDrawPalette_SetEntries(p, a, b, c, d)    (p)->lpVtbl->SetEntries(p, a, b, c, d)
-#else
-#define IDirectDrawPalette_QueryInterface(p, a, b)      (p)->QueryInterface(a, b)
-#define IDirectDrawPalette_AddRef(p)                    (p)->AddRef()
-#define IDirectDrawPalette_Release(p)                   (p)->Release()
-#define IDirectDrawPalette_GetCaps(p, a)                (p)->GetCaps(a)
-#define IDirectDrawPalette_GetEntries(p, a, b, c, d)    (p)->GetEntries(a, b, c, d)
-#define IDirectDrawPalette_Initialize(p, a, b, c)       (p)->Initialize(a, b, c)
-#define IDirectDrawPalette_SetEntries(p, a, b, c, d)    (p)->SetEntries(a, b, c, d)
-#endif
-
-#endif
-
-
-
-/*
- * IDirectDrawClipper
- */
-#if defined( _WIN32 ) && !defined( _NO_COM )
-#undef INTERFACE
-#define INTERFACE IDirectDrawClipper
-DECLARE_INTERFACE_( IDirectDrawClipper, IUnknown )
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    /*** IDirectDrawClipper methods ***/
-    STDMETHOD(GetClipList)(THIS_ LPRECT, LPRGNDATA, LPDWORD) PURE;
-    STDMETHOD(GetHWnd)(THIS_ HWND FAR *) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, DWORD) PURE;
-    STDMETHOD(IsClipListChanged)(THIS_ BOOL FAR *) PURE;
-    STDMETHOD(SetClipList)(THIS_ LPRGNDATA,DWORD) PURE;
-    STDMETHOD(SetHWnd)(THIS_ DWORD, HWND ) PURE;
-};
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectDrawClipper_QueryInterface(p, a, b)  (p)->lpVtbl->QueryInterface(p, a, b)
-#define IDirectDrawClipper_AddRef(p)                (p)->lpVtbl->AddRef(p)
-#define IDirectDrawClipper_Release(p)               (p)->lpVtbl->Release(p)
-#define IDirectDrawClipper_GetClipList(p, a, b, c)  (p)->lpVtbl->GetClipList(p, a, b, c)
-#define IDirectDrawClipper_GetHWnd(p, a)            (p)->lpVtbl->GetHWnd(p, a)
-#define IDirectDrawClipper_Initialize(p, a, b)      (p)->lpVtbl->Initialize(p, a, b)
-#define IDirectDrawClipper_IsClipListChanged(p, a)  (p)->lpVtbl->IsClipListChanged(p, a)
-#define IDirectDrawClipper_SetClipList(p, a, b)     (p)->lpVtbl->SetClipList(p, a, b)
-#define IDirectDrawClipper_SetHWnd(p, a, b)         (p)->lpVtbl->SetHWnd(p, a, b)
-#else
-#define IDirectDrawClipper_QueryInterface(p, a, b)  (p)->QueryInterface(a, b)
-#define IDirectDrawClipper_AddRef(p)                (p)->AddRef()
-#define IDirectDrawClipper_Release(p)               (p)->Release()
-#define IDirectDrawClipper_GetClipList(p, a, b, c)  (p)->GetClipList(a, b, c)
-#define IDirectDrawClipper_GetHWnd(p, a)            (p)->GetHWnd(a)
-#define IDirectDrawClipper_Initialize(p, a, b)      (p)->Initialize(a, b)
-#define IDirectDrawClipper_IsClipListChanged(p, a)  (p)->IsClipListChanged(a)
-#define IDirectDrawClipper_SetClipList(p, a, b)     (p)->SetClipList(a, b)
-#define IDirectDrawClipper_SetHWnd(p, a, b)         (p)->SetHWnd(a, b)
-#endif
-
-#endif
-
-/*
- * IDirectDrawSurface and related interfaces
- */
-#if defined( _WIN32 ) && !defined( _NO_COM )
-#undef INTERFACE
-#define INTERFACE IDirectDrawSurface
-DECLARE_INTERFACE_( IDirectDrawSurface, IUnknown )
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    /*** IDirectDrawSurface methods ***/
-    STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE) PURE;
-    STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE;
-    STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE, LPRECT,DWORD, LPDDBLTFX) PURE;
-    STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE;
-    STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE, LPRECT,DWORD) PURE;
-    STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE) PURE;
-    STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK) PURE;
-    STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK) PURE;
-    STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE, DWORD) PURE;
-    STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS, LPDIRECTDRAWSURFACE FAR *) PURE;
-    STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE;
-    STDMETHOD(GetCaps)(THIS_ LPDDSCAPS) PURE;
-    STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER FAR*) PURE;
-    STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
-    STDMETHOD(GetDC)(THIS_ HDC FAR *) PURE;
-    STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE;
-    STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE;
-    STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE FAR*) PURE;
-    STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE;
-    STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC) PURE;
-    STDMETHOD(IsLost)(THIS) PURE;
-    STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC,DWORD,HANDLE) PURE;
-    STDMETHOD(ReleaseDC)(THIS_ HDC) PURE;
-    STDMETHOD(Restore)(THIS) PURE;
-    STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE;
-    STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
-    STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE;
-    STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE;
-    STDMETHOD(Unlock)(THIS_ LPVOID) PURE;
-    STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE,LPRECT,DWORD, LPDDOVERLAYFX) PURE;
-    STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE;
-    STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE) PURE;
-};
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectDrawSurface_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectDrawSurface_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirectDrawSurface_Release(p)                   (p)->lpVtbl->Release(p)
-#define IDirectDrawSurface_AddAttachedSurface(p,a)      (p)->lpVtbl->AddAttachedSurface(p,a)
-#define IDirectDrawSurface_AddOverlayDirtyRect(p,a)     (p)->lpVtbl->AddOverlayDirtyRect(p,a)
-#define IDirectDrawSurface_Blt(p,a,b,c,d,e)             (p)->lpVtbl->Blt(p,a,b,c,d,e)
-#define IDirectDrawSurface_BltBatch(p,a,b,c)            (p)->lpVtbl->BltBatch(p,a,b,c)
-#define IDirectDrawSurface_BltFast(p,a,b,c,d,e)         (p)->lpVtbl->BltFast(p,a,b,c,d,e)
-#define IDirectDrawSurface_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b)
-#define IDirectDrawSurface_EnumAttachedSurfaces(p,a,b)  (p)->lpVtbl->EnumAttachedSurfaces(p,a,b)
-#define IDirectDrawSurface_EnumOverlayZOrders(p,a,b,c)  (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c)
-#define IDirectDrawSurface_Flip(p,a,b)                  (p)->lpVtbl->Flip(p,a,b)
-#define IDirectDrawSurface_GetAttachedSurface(p,a,b)    (p)->lpVtbl->GetAttachedSurface(p,a,b)
-#define IDirectDrawSurface_GetBltStatus(p,a)            (p)->lpVtbl->GetBltStatus(p,a)
-#define IDirectDrawSurface_GetCaps(p,b)                 (p)->lpVtbl->GetCaps(p,b)
-#define IDirectDrawSurface_GetClipper(p,a)              (p)->lpVtbl->GetClipper(p,a)
-#define IDirectDrawSurface_GetColorKey(p,a,b)           (p)->lpVtbl->GetColorKey(p,a,b)
-#define IDirectDrawSurface_GetDC(p,a)                   (p)->lpVtbl->GetDC(p,a)
-#define IDirectDrawSurface_GetFlipStatus(p,a)           (p)->lpVtbl->GetFlipStatus(p,a)
-#define IDirectDrawSurface_GetOverlayPosition(p,a,b)    (p)->lpVtbl->GetOverlayPosition(p,a,b)
-#define IDirectDrawSurface_GetPalette(p,a)              (p)->lpVtbl->GetPalette(p,a)
-#define IDirectDrawSurface_GetPixelFormat(p,a)          (p)->lpVtbl->GetPixelFormat(p,a)
-#define IDirectDrawSurface_GetSurfaceDesc(p,a)          (p)->lpVtbl->GetSurfaceDesc(p,a)
-#define IDirectDrawSurface_Initialize(p,a,b)            (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectDrawSurface_IsLost(p)                    (p)->lpVtbl->IsLost(p)
-#define IDirectDrawSurface_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
-#define IDirectDrawSurface_ReleaseDC(p,a)               (p)->lpVtbl->ReleaseDC(p,a)
-#define IDirectDrawSurface_Restore(p)                   (p)->lpVtbl->Restore(p)
-#define IDirectDrawSurface_SetClipper(p,a)              (p)->lpVtbl->SetClipper(p,a)
-#define IDirectDrawSurface_SetColorKey(p,a,b)           (p)->lpVtbl->SetColorKey(p,a,b)
-#define IDirectDrawSurface_SetOverlayPosition(p,a,b)    (p)->lpVtbl->SetOverlayPosition(p,a,b)
-#define IDirectDrawSurface_SetPalette(p,a)              (p)->lpVtbl->SetPalette(p,a)
-#define IDirectDrawSurface_Unlock(p,b)                  (p)->lpVtbl->Unlock(p,b)
-#define IDirectDrawSurface_UpdateOverlay(p,a,b,c,d,e)   (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e)
-#define IDirectDrawSurface_UpdateOverlayDisplay(p,a)    (p)->lpVtbl->UpdateOverlayDisplay(p,a)
-#define IDirectDrawSurface_UpdateOverlayZOrder(p,a,b)   (p)->lpVtbl->UpdateOverlayZOrder(p,a,b)
-#else
-#define IDirectDrawSurface_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirectDrawSurface_AddRef(p)                    (p)->AddRef()
-#define IDirectDrawSurface_Release(p)                   (p)->Release()
-#define IDirectDrawSurface_AddAttachedSurface(p,a)      (p)->AddAttachedSurface(a)
-#define IDirectDrawSurface_AddOverlayDirtyRect(p,a)     (p)->AddOverlayDirtyRect(a)
-#define IDirectDrawSurface_Blt(p,a,b,c,d,e)             (p)->Blt(a,b,c,d,e)
-#define IDirectDrawSurface_BltBatch(p,a,b,c)            (p)->BltBatch(a,b,c)
-#define IDirectDrawSurface_BltFast(p,a,b,c,d,e)         (p)->BltFast(a,b,c,d,e)
-#define IDirectDrawSurface_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b)
-#define IDirectDrawSurface_EnumAttachedSurfaces(p,a,b)  (p)->EnumAttachedSurfaces(a,b)
-#define IDirectDrawSurface_EnumOverlayZOrders(p,a,b,c)  (p)->EnumOverlayZOrders(a,b,c)
-#define IDirectDrawSurface_Flip(p,a,b)                  (p)->Flip(a,b)
-#define IDirectDrawSurface_GetAttachedSurface(p,a,b)    (p)->GetAttachedSurface(a,b)
-#define IDirectDrawSurface_GetBltStatus(p,a)            (p)->GetBltStatus(a)
-#define IDirectDrawSurface_GetCaps(p,b)                 (p)->GetCaps(b)
-#define IDirectDrawSurface_GetClipper(p,a)              (p)->GetClipper(a)
-#define IDirectDrawSurface_GetColorKey(p,a,b)           (p)->GetColorKey(a,b)
-#define IDirectDrawSurface_GetDC(p,a)                   (p)->GetDC(a)
-#define IDirectDrawSurface_GetFlipStatus(p,a)           (p)->GetFlipStatus(a)
-#define IDirectDrawSurface_GetOverlayPosition(p,a,b)    (p)->GetOverlayPosition(a,b)
-#define IDirectDrawSurface_GetPalette(p,a)              (p)->GetPalette(a)
-#define IDirectDrawSurface_GetPixelFormat(p,a)          (p)->GetPixelFormat(a)
-#define IDirectDrawSurface_GetSurfaceDesc(p,a)          (p)->GetSurfaceDesc(a)
-#define IDirectDrawSurface_Initialize(p,a,b)            (p)->Initialize(a,b)
-#define IDirectDrawSurface_IsLost(p)                    (p)->IsLost()
-#define IDirectDrawSurface_Lock(p,a,b,c,d)              (p)->Lock(a,b,c,d)
-#define IDirectDrawSurface_ReleaseDC(p,a)               (p)->ReleaseDC(a)
-#define IDirectDrawSurface_Restore(p)                   (p)->Restore()
-#define IDirectDrawSurface_SetClipper(p,a)              (p)->SetClipper(a)
-#define IDirectDrawSurface_SetColorKey(p,a,b)           (p)->SetColorKey(a,b)
-#define IDirectDrawSurface_SetOverlayPosition(p,a,b)    (p)->SetOverlayPosition(a,b)
-#define IDirectDrawSurface_SetPalette(p,a)              (p)->SetPalette(a)
-#define IDirectDrawSurface_Unlock(p,b)                  (p)->Unlock(b)
-#define IDirectDrawSurface_UpdateOverlay(p,a,b,c,d,e)   (p)->UpdateOverlay(a,b,c,d,e)
-#define IDirectDrawSurface_UpdateOverlayDisplay(p,a)    (p)->UpdateOverlayDisplay(a)
-#define IDirectDrawSurface_UpdateOverlayZOrder(p,a,b)   (p)->UpdateOverlayZOrder(a,b)
-#endif
-
-/*
- * IDirectDrawSurface2 and related interfaces
- */
-#undef INTERFACE
-#define INTERFACE IDirectDrawSurface2
-DECLARE_INTERFACE_( IDirectDrawSurface2, IUnknown )
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    /*** IDirectDrawSurface methods ***/
-    STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE2) PURE;
-    STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE;
-    STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE2, LPRECT,DWORD, LPDDBLTFX) PURE;
-    STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE;
-    STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE2, LPRECT,DWORD) PURE;
-    STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE2) PURE;
-    STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK) PURE;
-    STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK) PURE;
-    STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE2, DWORD) PURE;
-    STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS, LPDIRECTDRAWSURFACE2 FAR *) PURE;
-    STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE;
-    STDMETHOD(GetCaps)(THIS_ LPDDSCAPS) PURE;
-    STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER FAR*) PURE;
-    STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
-    STDMETHOD(GetDC)(THIS_ HDC FAR *) PURE;
-    STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE;
-    STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE;
-    STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE FAR*) PURE;
-    STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE;
-    STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC) PURE;
-    STDMETHOD(IsLost)(THIS) PURE;
-    STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC,DWORD,HANDLE) PURE;
-    STDMETHOD(ReleaseDC)(THIS_ HDC) PURE;
-    STDMETHOD(Restore)(THIS) PURE;
-    STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE;
-    STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
-    STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE;
-    STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE;
-    STDMETHOD(Unlock)(THIS_ LPVOID) PURE;
-    STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE2,LPRECT,DWORD, LPDDOVERLAYFX) PURE;
-    STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE;
-    STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE2) PURE;
-    /*** Added in the v2 interface ***/
-    STDMETHOD(GetDDInterface)(THIS_ LPVOID FAR *) PURE;
-    STDMETHOD(PageLock)(THIS_ DWORD) PURE;
-    STDMETHOD(PageUnlock)(THIS_ DWORD) PURE;
-};
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectDrawSurface2_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectDrawSurface2_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirectDrawSurface2_Release(p)                   (p)->lpVtbl->Release(p)
-#define IDirectDrawSurface2_AddAttachedSurface(p,a)      (p)->lpVtbl->AddAttachedSurface(p,a)
-#define IDirectDrawSurface2_AddOverlayDirtyRect(p,a)     (p)->lpVtbl->AddOverlayDirtyRect(p,a)
-#define IDirectDrawSurface2_Blt(p,a,b,c,d,e)             (p)->lpVtbl->Blt(p,a,b,c,d,e)
-#define IDirectDrawSurface2_BltBatch(p,a,b,c)            (p)->lpVtbl->BltBatch(p,a,b,c)
-#define IDirectDrawSurface2_BltFast(p,a,b,c,d,e)         (p)->lpVtbl->BltFast(p,a,b,c,d,e)
-#define IDirectDrawSurface2_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b)
-#define IDirectDrawSurface2_EnumAttachedSurfaces(p,a,b)  (p)->lpVtbl->EnumAttachedSurfaces(p,a,b)
-#define IDirectDrawSurface2_EnumOverlayZOrders(p,a,b,c)  (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c)
-#define IDirectDrawSurface2_Flip(p,a,b)                  (p)->lpVtbl->Flip(p,a,b)
-#define IDirectDrawSurface2_GetAttachedSurface(p,a,b)    (p)->lpVtbl->GetAttachedSurface(p,a,b)
-#define IDirectDrawSurface2_GetBltStatus(p,a)            (p)->lpVtbl->GetBltStatus(p,a)
-#define IDirectDrawSurface2_GetCaps(p,b)                 (p)->lpVtbl->GetCaps(p,b)
-#define IDirectDrawSurface2_GetClipper(p,a)              (p)->lpVtbl->GetClipper(p,a)
-#define IDirectDrawSurface2_GetColorKey(p,a,b)           (p)->lpVtbl->GetColorKey(p,a,b)
-#define IDirectDrawSurface2_GetDC(p,a)                   (p)->lpVtbl->GetDC(p,a)
-#define IDirectDrawSurface2_GetFlipStatus(p,a)           (p)->lpVtbl->GetFlipStatus(p,a)
-#define IDirectDrawSurface2_GetOverlayPosition(p,a,b)    (p)->lpVtbl->GetOverlayPosition(p,a,b)
-#define IDirectDrawSurface2_GetPalette(p,a)              (p)->lpVtbl->GetPalette(p,a)
-#define IDirectDrawSurface2_GetPixelFormat(p,a)          (p)->lpVtbl->GetPixelFormat(p,a)
-#define IDirectDrawSurface2_GetSurfaceDesc(p,a)          (p)->lpVtbl->GetSurfaceDesc(p,a)
-#define IDirectDrawSurface2_Initialize(p,a,b)            (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectDrawSurface2_IsLost(p)                    (p)->lpVtbl->IsLost(p)
-#define IDirectDrawSurface2_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
-#define IDirectDrawSurface2_ReleaseDC(p,a)               (p)->lpVtbl->ReleaseDC(p,a)
-#define IDirectDrawSurface2_Restore(p)                   (p)->lpVtbl->Restore(p)
-#define IDirectDrawSurface2_SetClipper(p,a)              (p)->lpVtbl->SetClipper(p,a)
-#define IDirectDrawSurface2_SetColorKey(p,a,b)           (p)->lpVtbl->SetColorKey(p,a,b)
-#define IDirectDrawSurface2_SetOverlayPosition(p,a,b)    (p)->lpVtbl->SetOverlayPosition(p,a,b)
-#define IDirectDrawSurface2_SetPalette(p,a)              (p)->lpVtbl->SetPalette(p,a)
-#define IDirectDrawSurface2_Unlock(p,b)                  (p)->lpVtbl->Unlock(p,b)
-#define IDirectDrawSurface2_UpdateOverlay(p,a,b,c,d,e)   (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e)
-#define IDirectDrawSurface2_UpdateOverlayDisplay(p,a)    (p)->lpVtbl->UpdateOverlayDisplay(p,a)
-#define IDirectDrawSurface2_UpdateOverlayZOrder(p,a,b)   (p)->lpVtbl->UpdateOverlayZOrder(p,a,b)
-#define IDirectDrawSurface2_GetDDInterface(p,a)                 (p)->lpVtbl->GetDDInterface(p,a)
-#define IDirectDrawSurface2_PageLock(p,a)               (p)->lpVtbl->PageLock(p,a)
-#define IDirectDrawSurface2_PageUnlock(p,a)             (p)->lpVtbl->PageUnlock(p,a)
-#else
-#define IDirectDrawSurface2_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirectDrawSurface2_AddRef(p)                    (p)->AddRef()
-#define IDirectDrawSurface2_Release(p)                   (p)->Release()
-#define IDirectDrawSurface2_AddAttachedSurface(p,a)      (p)->AddAttachedSurface(a)
-#define IDirectDrawSurface2_AddOverlayDirtyRect(p,a)     (p)->AddOverlayDirtyRect(a)
-#define IDirectDrawSurface2_Blt(p,a,b,c,d,e)             (p)->Blt(a,b,c,d,e)
-#define IDirectDrawSurface2_BltBatch(p,a,b,c)            (p)->BltBatch(a,b,c)
-#define IDirectDrawSurface2_BltFast(p,a,b,c,d,e)         (p)->BltFast(a,b,c,d,e)
-#define IDirectDrawSurface2_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b)
-#define IDirectDrawSurface2_EnumAttachedSurfaces(p,a,b)  (p)->EnumAttachedSurfaces(a,b)
-#define IDirectDrawSurface2_EnumOverlayZOrders(p,a,b,c)  (p)->EnumOverlayZOrders(a,b,c)
-#define IDirectDrawSurface2_Flip(p,a,b)                  (p)->Flip(a,b)
-#define IDirectDrawSurface2_GetAttachedSurface(p,a,b)    (p)->GetAttachedSurface(a,b)
-#define IDirectDrawSurface2_GetBltStatus(p,a)            (p)->GetBltStatus(a)
-#define IDirectDrawSurface2_GetCaps(p,b)                 (p)->GetCaps(b)
-#define IDirectDrawSurface2_GetClipper(p,a)              (p)->GetClipper(a)
-#define IDirectDrawSurface2_GetColorKey(p,a,b)           (p)->GetColorKey(a,b)
-#define IDirectDrawSurface2_GetDC(p,a)                   (p)->GetDC(a)
-#define IDirectDrawSurface2_GetFlipStatus(p,a)           (p)->GetFlipStatus(a)
-#define IDirectDrawSurface2_GetOverlayPosition(p,a,b)    (p)->GetOverlayPosition(a,b)
-#define IDirectDrawSurface2_GetPalette(p,a)              (p)->GetPalette(a)
-#define IDirectDrawSurface2_GetPixelFormat(p,a)          (p)->GetPixelFormat(a)
-#define IDirectDrawSurface2_GetSurfaceDesc(p,a)          (p)->GetSurfaceDesc(a)
-#define IDirectDrawSurface2_Initialize(p,a,b)            (p)->Initialize(a,b)
-#define IDirectDrawSurface2_IsLost(p)                    (p)->IsLost()
-#define IDirectDrawSurface2_Lock(p,a,b,c,d)              (p)->Lock(a,b,c,d)
-#define IDirectDrawSurface2_ReleaseDC(p,a)               (p)->ReleaseDC(a)
-#define IDirectDrawSurface2_Restore(p)                   (p)->Restore()
-#define IDirectDrawSurface2_SetClipper(p,a)              (p)->SetClipper(a)
-#define IDirectDrawSurface2_SetColorKey(p,a,b)           (p)->SetColorKey(a,b)
-#define IDirectDrawSurface2_SetOverlayPosition(p,a,b)    (p)->SetOverlayPosition(a,b)
-#define IDirectDrawSurface2_SetPalette(p,a)              (p)->SetPalette(a)
-#define IDirectDrawSurface2_Unlock(p,b)                  (p)->Unlock(b)
-#define IDirectDrawSurface2_UpdateOverlay(p,a,b,c,d,e)   (p)->UpdateOverlay(a,b,c,d,e)
-#define IDirectDrawSurface2_UpdateOverlayDisplay(p,a)    (p)->UpdateOverlayDisplay(a)
-#define IDirectDrawSurface2_UpdateOverlayZOrder(p,a,b)   (p)->UpdateOverlayZOrder(a,b)
-#define IDirectDrawSurface2_GetDDInterface(p,a)                 (p)->GetDDInterface(a)
-#define IDirectDrawSurface2_PageLock(p,a)               (p)->PageLock(a)
-#define IDirectDrawSurface2_PageUnlock(p,a)             (p)->PageUnlock(a)
-#endif
-
-/*
- * IDirectDrawSurface3 and related interfaces
- */
-#undef INTERFACE
-#define INTERFACE IDirectDrawSurface3
-DECLARE_INTERFACE_( IDirectDrawSurface3, IUnknown )
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    /*** IDirectDrawSurface methods ***/
-    STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE3) PURE;
-    STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE;
-    STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE3, LPRECT,DWORD, LPDDBLTFX) PURE;
-    STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE;
-    STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE3, LPRECT,DWORD) PURE;
-    STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE3) PURE;
-    STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK) PURE;
-    STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK) PURE;
-    STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE3, DWORD) PURE;
-    STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS, LPDIRECTDRAWSURFACE3 FAR *) PURE;
-    STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE;
-    STDMETHOD(GetCaps)(THIS_ LPDDSCAPS) PURE;
-    STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER FAR*) PURE;
-    STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
-    STDMETHOD(GetDC)(THIS_ HDC FAR *) PURE;
-    STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE;
-    STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE;
-    STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE FAR*) PURE;
-    STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE;
-    STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC) PURE;
-    STDMETHOD(IsLost)(THIS) PURE;
-    STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC,DWORD,HANDLE) PURE;
-    STDMETHOD(ReleaseDC)(THIS_ HDC) PURE;
-    STDMETHOD(Restore)(THIS) PURE;
-    STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE;
-    STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
-    STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE;
-    STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE;
-    STDMETHOD(Unlock)(THIS_ LPVOID) PURE;
-    STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE3,LPRECT,DWORD, LPDDOVERLAYFX) PURE;
-    STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE;
-    STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE3) PURE;
-    /*** Added in the v2 interface ***/
-    STDMETHOD(GetDDInterface)(THIS_ LPVOID FAR *) PURE;
-    STDMETHOD(PageLock)(THIS_ DWORD) PURE;
-    STDMETHOD(PageUnlock)(THIS_ DWORD) PURE;
-    /*** Added in the V3 interface ***/
-    STDMETHOD(SetSurfaceDesc)(THIS_ LPDDSURFACEDESC, DWORD) PURE;
-};
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectDrawSurface3_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectDrawSurface3_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirectDrawSurface3_Release(p)                   (p)->lpVtbl->Release(p)
-#define IDirectDrawSurface3_AddAttachedSurface(p,a)      (p)->lpVtbl->AddAttachedSurface(p,a)
-#define IDirectDrawSurface3_AddOverlayDirtyRect(p,a)     (p)->lpVtbl->AddOverlayDirtyRect(p,a)
-#define IDirectDrawSurface3_Blt(p,a,b,c,d,e)             (p)->lpVtbl->Blt(p,a,b,c,d,e)
-#define IDirectDrawSurface3_BltBatch(p,a,b,c)            (p)->lpVtbl->BltBatch(p,a,b,c)
-#define IDirectDrawSurface3_BltFast(p,a,b,c,d,e)         (p)->lpVtbl->BltFast(p,a,b,c,d,e)
-#define IDirectDrawSurface3_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b)
-#define IDirectDrawSurface3_EnumAttachedSurfaces(p,a,b)  (p)->lpVtbl->EnumAttachedSurfaces(p,a,b)
-#define IDirectDrawSurface3_EnumOverlayZOrders(p,a,b,c)  (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c)
-#define IDirectDrawSurface3_Flip(p,a,b)                  (p)->lpVtbl->Flip(p,a,b)
-#define IDirectDrawSurface3_GetAttachedSurface(p,a,b)    (p)->lpVtbl->GetAttachedSurface(p,a,b)
-#define IDirectDrawSurface3_GetBltStatus(p,a)            (p)->lpVtbl->GetBltStatus(p,a)
-#define IDirectDrawSurface3_GetCaps(p,b)                 (p)->lpVtbl->GetCaps(p,b)
-#define IDirectDrawSurface3_GetClipper(p,a)              (p)->lpVtbl->GetClipper(p,a)
-#define IDirectDrawSurface3_GetColorKey(p,a,b)           (p)->lpVtbl->GetColorKey(p,a,b)
-#define IDirectDrawSurface3_GetDC(p,a)                   (p)->lpVtbl->GetDC(p,a)
-#define IDirectDrawSurface3_GetFlipStatus(p,a)           (p)->lpVtbl->GetFlipStatus(p,a)
-#define IDirectDrawSurface3_GetOverlayPosition(p,a,b)    (p)->lpVtbl->GetOverlayPosition(p,a,b)
-#define IDirectDrawSurface3_GetPalette(p,a)              (p)->lpVtbl->GetPalette(p,a)
-#define IDirectDrawSurface3_GetPixelFormat(p,a)          (p)->lpVtbl->GetPixelFormat(p,a)
-#define IDirectDrawSurface3_GetSurfaceDesc(p,a)          (p)->lpVtbl->GetSurfaceDesc(p,a)
-#define IDirectDrawSurface3_Initialize(p,a,b)            (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectDrawSurface3_IsLost(p)                    (p)->lpVtbl->IsLost(p)
-#define IDirectDrawSurface3_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
-#define IDirectDrawSurface3_ReleaseDC(p,a)               (p)->lpVtbl->ReleaseDC(p,a)
-#define IDirectDrawSurface3_Restore(p)                   (p)->lpVtbl->Restore(p)
-#define IDirectDrawSurface3_SetClipper(p,a)              (p)->lpVtbl->SetClipper(p,a)
-#define IDirectDrawSurface3_SetColorKey(p,a,b)           (p)->lpVtbl->SetColorKey(p,a,b)
-#define IDirectDrawSurface3_SetOverlayPosition(p,a,b)    (p)->lpVtbl->SetOverlayPosition(p,a,b)
-#define IDirectDrawSurface3_SetPalette(p,a)              (p)->lpVtbl->SetPalette(p,a)
-#define IDirectDrawSurface3_Unlock(p,b)                  (p)->lpVtbl->Unlock(p,b)
-#define IDirectDrawSurface3_UpdateOverlay(p,a,b,c,d,e)   (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e)
-#define IDirectDrawSurface3_UpdateOverlayDisplay(p,a)    (p)->lpVtbl->UpdateOverlayDisplay(p,a)
-#define IDirectDrawSurface3_UpdateOverlayZOrder(p,a,b)   (p)->lpVtbl->UpdateOverlayZOrder(p,a,b)
-#define IDirectDrawSurface3_GetDDInterface(p,a)                 (p)->lpVtbl->GetDDInterface(p,a)
-#define IDirectDrawSurface3_PageLock(p,a)               (p)->lpVtbl->PageLock(p,a)
-#define IDirectDrawSurface3_PageUnlock(p,a)             (p)->lpVtbl->PageUnlock(p,a)
-#define IDirectDrawSurface3_SetSurfaceDesc(p,a,b)       (p)->lpVtbl->SetSurfaceDesc(p,a,b)
-#else
-#define IDirectDrawSurface3_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirectDrawSurface3_AddRef(p)                    (p)->AddRef()
-#define IDirectDrawSurface3_Release(p)                   (p)->Release()
-#define IDirectDrawSurface3_AddAttachedSurface(p,a)      (p)->AddAttachedSurface(a)
-#define IDirectDrawSurface3_AddOverlayDirtyRect(p,a)     (p)->AddOverlayDirtyRect(a)
-#define IDirectDrawSurface3_Blt(p,a,b,c,d,e)             (p)->Blt(a,b,c,d,e)
-#define IDirectDrawSurface3_BltBatch(p,a,b,c)            (p)->BltBatch(a,b,c)
-#define IDirectDrawSurface3_BltFast(p,a,b,c,d,e)         (p)->BltFast(a,b,c,d,e)
-#define IDirectDrawSurface3_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b)
-#define IDirectDrawSurface3_EnumAttachedSurfaces(p,a,b)  (p)->EnumAttachedSurfaces(a,b)
-#define IDirectDrawSurface3_EnumOverlayZOrders(p,a,b,c)  (p)->EnumOverlayZOrders(a,b,c)
-#define IDirectDrawSurface3_Flip(p,a,b)                  (p)->Flip(a,b)
-#define IDirectDrawSurface3_GetAttachedSurface(p,a,b)    (p)->GetAttachedSurface(a,b)
-#define IDirectDrawSurface3_GetBltStatus(p,a)            (p)->GetBltStatus(a)
-#define IDirectDrawSurface3_GetCaps(p,b)                 (p)->GetCaps(b)
-#define IDirectDrawSurface3_GetClipper(p,a)              (p)->GetClipper(a)
-#define IDirectDrawSurface3_GetColorKey(p,a,b)           (p)->GetColorKey(a,b)
-#define IDirectDrawSurface3_GetDC(p,a)                   (p)->GetDC(a)
-#define IDirectDrawSurface3_GetFlipStatus(p,a)           (p)->GetFlipStatus(a)
-#define IDirectDrawSurface3_GetOverlayPosition(p,a,b)    (p)->GetOverlayPosition(a,b)
-#define IDirectDrawSurface3_GetPalette(p,a)              (p)->GetPalette(a)
-#define IDirectDrawSurface3_GetPixelFormat(p,a)          (p)->GetPixelFormat(a)
-#define IDirectDrawSurface3_GetSurfaceDesc(p,a)          (p)->GetSurfaceDesc(a)
-#define IDirectDrawSurface3_Initialize(p,a,b)            (p)->Initialize(a,b)
-#define IDirectDrawSurface3_IsLost(p)                    (p)->IsLost()
-#define IDirectDrawSurface3_Lock(p,a,b,c,d)              (p)->Lock(a,b,c,d)
-#define IDirectDrawSurface3_ReleaseDC(p,a)               (p)->ReleaseDC(a)
-#define IDirectDrawSurface3_Restore(p)                   (p)->Restore()
-#define IDirectDrawSurface3_SetClipper(p,a)              (p)->SetClipper(a)
-#define IDirectDrawSurface3_SetColorKey(p,a,b)           (p)->SetColorKey(a,b)
-#define IDirectDrawSurface3_SetOverlayPosition(p,a,b)    (p)->SetOverlayPosition(a,b)
-#define IDirectDrawSurface3_SetPalette(p,a)              (p)->SetPalette(a)
-#define IDirectDrawSurface3_Unlock(p,b)                  (p)->Unlock(b)
-#define IDirectDrawSurface3_UpdateOverlay(p,a,b,c,d,e)   (p)->UpdateOverlay(a,b,c,d,e)
-#define IDirectDrawSurface3_UpdateOverlayDisplay(p,a)    (p)->UpdateOverlayDisplay(a)
-#define IDirectDrawSurface3_UpdateOverlayZOrder(p,a,b)   (p)->UpdateOverlayZOrder(a,b)
-#define IDirectDrawSurface3_GetDDInterface(p,a)                 (p)->GetDDInterface(a)
-#define IDirectDrawSurface3_PageLock(p,a)               (p)->PageLock(a)
-#define IDirectDrawSurface3_PageUnlock(p,a)             (p)->PageUnlock(a)
-#define IDirectDrawSurface3_SetSurfaceDesc(p,a,b)       (p)->SetSurfaceDesc(a,b)
-#endif
-
-/*
- * IDirectDrawSurface4 and related interfaces
- */
-#undef INTERFACE
-#define INTERFACE IDirectDrawSurface4
-DECLARE_INTERFACE_( IDirectDrawSurface4, IUnknown )
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    /*** IDirectDrawSurface methods ***/
-    STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE4) PURE;
-    STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE;
-    STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE4, LPRECT,DWORD, LPDDBLTFX) PURE;
-    STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE;
-    STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE4, LPRECT,DWORD) PURE;
-    STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE4) PURE;
-    STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK2) PURE;
-    STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK2) PURE;
-    STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE4, DWORD) PURE;
-    STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS2, LPDIRECTDRAWSURFACE4 FAR *) PURE;
-    STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE;
-    STDMETHOD(GetCaps)(THIS_ LPDDSCAPS2) PURE;
-    STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER FAR*) PURE;
-    STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
-    STDMETHOD(GetDC)(THIS_ HDC FAR *) PURE;
-    STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE;
-    STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE;
-    STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE FAR*) PURE;
-    STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE;
-    STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC2) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC2) PURE;
-    STDMETHOD(IsLost)(THIS) PURE;
-    STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC2,DWORD,HANDLE) PURE;
-    STDMETHOD(ReleaseDC)(THIS_ HDC) PURE;
-    STDMETHOD(Restore)(THIS) PURE;
-    STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE;
-    STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
-    STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE;
-    STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE;
-    STDMETHOD(Unlock)(THIS_ LPRECT) PURE;
-    STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE4,LPRECT,DWORD, LPDDOVERLAYFX) PURE;
-    STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE;
-    STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE4) PURE;
-    /*** Added in the v2 interface ***/
-    STDMETHOD(GetDDInterface)(THIS_ LPVOID FAR *) PURE;
-    STDMETHOD(PageLock)(THIS_ DWORD) PURE;
-    STDMETHOD(PageUnlock)(THIS_ DWORD) PURE;
-    /*** Added in the v3 interface ***/
-    STDMETHOD(SetSurfaceDesc)(THIS_ LPDDSURFACEDESC2, DWORD) PURE;
-    /*** Added in the v4 interface ***/
-    STDMETHOD(SetPrivateData)(THIS_ REFGUID, LPVOID, DWORD, DWORD) PURE;
-    STDMETHOD(GetPrivateData)(THIS_ REFGUID, LPVOID, LPDWORD) PURE;
-    STDMETHOD(FreePrivateData)(THIS_ REFGUID) PURE;
-    STDMETHOD(GetUniquenessValue)(THIS_ LPDWORD) PURE;
-    STDMETHOD(ChangeUniquenessValue)(THIS) PURE;
-};
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectDrawSurface4_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectDrawSurface4_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirectDrawSurface4_Release(p)                   (p)->lpVtbl->Release(p)
-#define IDirectDrawSurface4_AddAttachedSurface(p,a)      (p)->lpVtbl->AddAttachedSurface(p,a)
-#define IDirectDrawSurface4_AddOverlayDirtyRect(p,a)     (p)->lpVtbl->AddOverlayDirtyRect(p,a)
-#define IDirectDrawSurface4_Blt(p,a,b,c,d,e)             (p)->lpVtbl->Blt(p,a,b,c,d,e)
-#define IDirectDrawSurface4_BltBatch(p,a,b,c)            (p)->lpVtbl->BltBatch(p,a,b,c)
-#define IDirectDrawSurface4_BltFast(p,a,b,c,d,e)         (p)->lpVtbl->BltFast(p,a,b,c,d,e)
-#define IDirectDrawSurface4_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b)
-#define IDirectDrawSurface4_EnumAttachedSurfaces(p,a,b)  (p)->lpVtbl->EnumAttachedSurfaces(p,a,b)
-#define IDirectDrawSurface4_EnumOverlayZOrders(p,a,b,c)  (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c)
-#define IDirectDrawSurface4_Flip(p,a,b)                  (p)->lpVtbl->Flip(p,a,b)
-#define IDirectDrawSurface4_GetAttachedSurface(p,a,b)    (p)->lpVtbl->GetAttachedSurface(p,a,b)
-#define IDirectDrawSurface4_GetBltStatus(p,a)            (p)->lpVtbl->GetBltStatus(p,a)
-#define IDirectDrawSurface4_GetCaps(p,b)                 (p)->lpVtbl->GetCaps(p,b)
-#define IDirectDrawSurface4_GetClipper(p,a)              (p)->lpVtbl->GetClipper(p,a)
-#define IDirectDrawSurface4_GetColorKey(p,a,b)           (p)->lpVtbl->GetColorKey(p,a,b)
-#define IDirectDrawSurface4_GetDC(p,a)                   (p)->lpVtbl->GetDC(p,a)
-#define IDirectDrawSurface4_GetFlipStatus(p,a)           (p)->lpVtbl->GetFlipStatus(p,a)
-#define IDirectDrawSurface4_GetOverlayPosition(p,a,b)    (p)->lpVtbl->GetOverlayPosition(p,a,b)
-#define IDirectDrawSurface4_GetPalette(p,a)              (p)->lpVtbl->GetPalette(p,a)
-#define IDirectDrawSurface4_GetPixelFormat(p,a)          (p)->lpVtbl->GetPixelFormat(p,a)
-#define IDirectDrawSurface4_GetSurfaceDesc(p,a)          (p)->lpVtbl->GetSurfaceDesc(p,a)
-#define IDirectDrawSurface4_Initialize(p,a,b)            (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectDrawSurface4_IsLost(p)                    (p)->lpVtbl->IsLost(p)
-#define IDirectDrawSurface4_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
-#define IDirectDrawSurface4_ReleaseDC(p,a)               (p)->lpVtbl->ReleaseDC(p,a)
-#define IDirectDrawSurface4_Restore(p)                   (p)->lpVtbl->Restore(p)
-#define IDirectDrawSurface4_SetClipper(p,a)              (p)->lpVtbl->SetClipper(p,a)
-#define IDirectDrawSurface4_SetColorKey(p,a,b)           (p)->lpVtbl->SetColorKey(p,a,b)
-#define IDirectDrawSurface4_SetOverlayPosition(p,a,b)    (p)->lpVtbl->SetOverlayPosition(p,a,b)
-#define IDirectDrawSurface4_SetPalette(p,a)              (p)->lpVtbl->SetPalette(p,a)
-#define IDirectDrawSurface4_Unlock(p,b)                  (p)->lpVtbl->Unlock(p,b)
-#define IDirectDrawSurface4_UpdateOverlay(p,a,b,c,d,e)   (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e)
-#define IDirectDrawSurface4_UpdateOverlayDisplay(p,a)    (p)->lpVtbl->UpdateOverlayDisplay(p,a)
-#define IDirectDrawSurface4_UpdateOverlayZOrder(p,a,b)   (p)->lpVtbl->UpdateOverlayZOrder(p,a,b)
-#define IDirectDrawSurface4_GetDDInterface(p,a)                 (p)->lpVtbl->GetDDInterface(p,a)
-#define IDirectDrawSurface4_PageLock(p,a)               (p)->lpVtbl->PageLock(p,a)
-#define IDirectDrawSurface4_PageUnlock(p,a)             (p)->lpVtbl->PageUnlock(p,a)
-#define IDirectDrawSurface4_SetSurfaceDesc(p,a,b)       (p)->lpVtbl->SetSurfaceDesc(p,a,b)
-#define IDirectDrawSurface4_SetPrivateData(p,a,b,c,d)   (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirectDrawSurface4_GetPrivateData(p,a,b,c)     (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirectDrawSurface4_FreePrivateData(p,a)        (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirectDrawSurface4_GetUniquenessValue(p, a)     (p)->lpVtbl->GetUniquenessValue(p, a)
-#define IDirectDrawSurface4_ChangeUniquenessValue(p)     (p)->lpVtbl->ChangeUniquenessValue(p)
-#else
-#define IDirectDrawSurface4_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirectDrawSurface4_AddRef(p)                    (p)->AddRef()
-#define IDirectDrawSurface4_Release(p)                   (p)->Release()
-#define IDirectDrawSurface4_AddAttachedSurface(p,a)      (p)->AddAttachedSurface(a)
-#define IDirectDrawSurface4_AddOverlayDirtyRect(p,a)     (p)->AddOverlayDirtyRect(a)
-#define IDirectDrawSurface4_Blt(p,a,b,c,d,e)             (p)->Blt(a,b,c,d,e)
-#define IDirectDrawSurface4_BltBatch(p,a,b,c)            (p)->BltBatch(a,b,c)
-#define IDirectDrawSurface4_BltFast(p,a,b,c,d,e)         (p)->BltFast(a,b,c,d,e)
-#define IDirectDrawSurface4_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b)
-#define IDirectDrawSurface4_EnumAttachedSurfaces(p,a,b)  (p)->EnumAttachedSurfaces(a,b)
-#define IDirectDrawSurface4_EnumOverlayZOrders(p,a,b,c)  (p)->EnumOverlayZOrders(a,b,c)
-#define IDirectDrawSurface4_Flip(p,a,b)                  (p)->Flip(a,b)
-#define IDirectDrawSurface4_GetAttachedSurface(p,a,b)    (p)->GetAttachedSurface(a,b)
-#define IDirectDrawSurface4_GetBltStatus(p,a)            (p)->GetBltStatus(a)
-#define IDirectDrawSurface4_GetCaps(p,b)                 (p)->GetCaps(b)
-#define IDirectDrawSurface4_GetClipper(p,a)              (p)->GetClipper(a)
-#define IDirectDrawSurface4_GetColorKey(p,a,b)           (p)->GetColorKey(a,b)
-#define IDirectDrawSurface4_GetDC(p,a)                   (p)->GetDC(a)
-#define IDirectDrawSurface4_GetFlipStatus(p,a)           (p)->GetFlipStatus(a)
-#define IDirectDrawSurface4_GetOverlayPosition(p,a,b)    (p)->GetOverlayPosition(a,b)
-#define IDirectDrawSurface4_GetPalette(p,a)              (p)->GetPalette(a)
-#define IDirectDrawSurface4_GetPixelFormat(p,a)          (p)->GetPixelFormat(a)
-#define IDirectDrawSurface4_GetSurfaceDesc(p,a)          (p)->GetSurfaceDesc(a)
-#define IDirectDrawSurface4_Initialize(p,a,b)            (p)->Initialize(a,b)
-#define IDirectDrawSurface4_IsLost(p)                    (p)->IsLost()
-#define IDirectDrawSurface4_Lock(p,a,b,c,d)              (p)->Lock(a,b,c,d)
-#define IDirectDrawSurface4_ReleaseDC(p,a)               (p)->ReleaseDC(a)
-#define IDirectDrawSurface4_Restore(p)                   (p)->Restore()
-#define IDirectDrawSurface4_SetClipper(p,a)              (p)->SetClipper(a)
-#define IDirectDrawSurface4_SetColorKey(p,a,b)           (p)->SetColorKey(a,b)
-#define IDirectDrawSurface4_SetOverlayPosition(p,a,b)    (p)->SetOverlayPosition(a,b)
-#define IDirectDrawSurface4_SetPalette(p,a)              (p)->SetPalette(a)
-#define IDirectDrawSurface4_Unlock(p,b)                  (p)->Unlock(b)
-#define IDirectDrawSurface4_UpdateOverlay(p,a,b,c,d,e)   (p)->UpdateOverlay(a,b,c,d,e)
-#define IDirectDrawSurface4_UpdateOverlayDisplay(p,a)    (p)->UpdateOverlayDisplay(a)
-#define IDirectDrawSurface4_UpdateOverlayZOrder(p,a,b)   (p)->UpdateOverlayZOrder(a,b)
-#define IDirectDrawSurface4_GetDDInterface(p,a)                 (p)->GetDDInterface(a)
-#define IDirectDrawSurface4_PageLock(p,a)               (p)->PageLock(a)
-#define IDirectDrawSurface4_PageUnlock(p,a)             (p)->PageUnlock(a)
-#define IDirectDrawSurface4_SetSurfaceDesc(p,a,b)       (p)->SetSurfaceDesc(a,b)
-#define IDirectDrawSurface4_SetPrivateData(p,a,b,c,d)   (p)->SetPrivateData(a,b,c,d)
-#define IDirectDrawSurface4_GetPrivateData(p,a,b,c)     (p)->GetPrivateData(a,b,c)
-#define IDirectDrawSurface4_FreePrivateData(p,a)        (p)->FreePrivateData(a)
-#define IDirectDrawSurface4_GetUniquenessValue(p, a)     (p)->GetUniquenessValue(a)
-#define IDirectDrawSurface4_ChangeUniquenessValue(p)     (p)->ChangeUniquenessValue()
-#endif
-
-
-
-/*
- * IDirectDrawColorControl
- */
-#if defined( _WIN32 ) && !defined( _NO_COM )
-#undef INTERFACE
-#define INTERFACE IDirectDrawColorControl
-DECLARE_INTERFACE_( IDirectDrawColorControl, IUnknown )
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    /*** IDirectDrawColorControl methods ***/
-    STDMETHOD(GetColorControls)(THIS_ LPDDCOLORCONTROL) PURE;
-    STDMETHOD(SetColorControls)(THIS_ LPDDCOLORCONTROL) PURE;
-};
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectDrawColorControl_QueryInterface(p, a, b)  (p)->lpVtbl->QueryInterface(p, a, b)
-#define IDirectDrawColorControl_AddRef(p)                (p)->lpVtbl->AddRef(p)
-#define IDirectDrawColorControl_Release(p)               (p)->lpVtbl->Release(p)
-#define IDirectDrawColorControl_GetColorControls(p, a)   (p)->lpVtbl->GetColorControls(p, a)
-#define IDirectDrawColorControl_SetColorControls(p, a)   (p)->lpVtbl->SetColorControls(p, a)
-#else
-#define IDirectDrawColorControl_QueryInterface(p, a, b)  (p)->QueryInterface(a, b)
-#define IDirectDrawColorControl_AddRef(p)                (p)->AddRef()
-#define IDirectDrawColorControl_Release(p)               (p)->Release()
-#define IDirectDrawColorControl_GetColorControls(p, a)   (p)->GetColorControls(a)
-#define IDirectDrawColorControl_SetColorControls(p, a)   (p)->SetColorControls(a)
-#endif
-
-#endif
-
-
-/*
- * IDirectDrawGammaControl
- */
-#if defined( _WIN32 ) && !defined( _NO_COM )
-#undef INTERFACE
-#define INTERFACE IDirectDrawGammaControl
-DECLARE_INTERFACE_( IDirectDrawGammaControl, IUnknown )
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    /*** IDirectDrawColorControl methods ***/
-    STDMETHOD(GetGammaRamp)(THIS_ DWORD, LPDDGAMMARAMP) PURE;
-    STDMETHOD(SetGammaRamp)(THIS_ DWORD, LPDDGAMMARAMP) PURE;
-};
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectDrawGammaControl_QueryInterface(p, a, b)  (p)->lpVtbl->QueryInterface(p, a, b)
-#define IDirectDrawGammaControl_AddRef(p)                (p)->lpVtbl->AddRef(p)
-#define IDirectDrawGammaControl_Release(p)               (p)->lpVtbl->Release(p)
-#define IDirectDrawGammaControl_GetGammaRamp(p, a, b)    (p)->lpVtbl->GetGammaRamp(p, a, b)
-#define IDirectDrawGammaControl_SetGammaRamp(p, a, b)    (p)->lpVtbl->SetGammaRamp(p, a, b)
-#else
-#define IDirectDrawGammaControl_QueryInterface(p, a, b)  (p)->QueryInterface(a, b)
-#define IDirectDrawGammaControl_AddRef(p)                (p)->AddRef()
-#define IDirectDrawGammaControl_Release(p)               (p)->Release()
-#define IDirectDrawGammaControl_GetGammaRamp(p, a, b)    (p)->GetGammaRamp(a, b)
-#define IDirectDrawGammaControl_SetGammaRamp(p, a, b)    (p)->SetGammaRamp(a, b)
-#endif
-
-#endif
-
-
-
-#endif
-
-
-/*
- * DDSURFACEDESC
- */
-typedef struct _DDSURFACEDESC
-{
-    DWORD              dwSize;                 // size of the DDSURFACEDESC structure
-    DWORD              dwFlags;                // determines what fields are valid
-    DWORD              dwHeight;               // height of surface to be created
-    DWORD              dwWidth;                // width of input surface
-    union
-    {
-        LONG           lPitch;                 // distance to start of next line (return value only)
-        DWORD           dwLinearSize;           // Formless late-allocated optimized surface size
-    } DUMMYUNIONNAMEN(1);
-    DWORD              dwBackBufferCount;      // number of back buffers requested
-    union
-    {
-        DWORD           dwMipMapCount;          // number of mip-map levels requested
-       DWORD           dwZBufferBitDepth;      // depth of Z buffer requested
-       DWORD           dwRefreshRate;          // refresh rate (used when display mode is described)
-    } DUMMYUNIONNAMEN(2);
-    DWORD              dwAlphaBitDepth;        // depth of alpha buffer requested
-    DWORD              dwReserved;             // reserved
-    LPVOID             lpSurface;              // pointer to the associated surface memory
-    DDCOLORKEY         ddckCKDestOverlay;      // color key for destination overlay use
-    DDCOLORKEY         ddckCKDestBlt;          // color key for destination blt use
-    DDCOLORKEY         ddckCKSrcOverlay;       // color key for source overlay use
-    DDCOLORKEY         ddckCKSrcBlt;           // color key for source blt use
-    DDPIXELFORMAT      ddpfPixelFormat;        // pixel format description of the surface
-    DDSCAPS            ddsCaps;                // direct draw surface capabilities
-} DDSURFACEDESC;
-
-/*
- * DDSURFACEDESC2
- */
-typedef struct _DDSURFACEDESC2
-{
-    DWORD              dwSize;                 // size of the DDSURFACEDESC structure
-    DWORD              dwFlags;                // determines what fields are valid
-    DWORD              dwHeight;               // height of surface to be created
-    DWORD              dwWidth;                // width of input surface
-    union
-    {
-        LONG           lPitch;                 // distance to start of next line (return value only)
-        DWORD           dwLinearSize;           // Formless late-allocated optimized surface size
-    } DUMMYUNIONNAMEN(1);
-    DWORD              dwBackBufferCount;      // number of back buffers requested
-    union
-    {
-        DWORD           dwMipMapCount;          // number of mip-map levels requestde
-                                                // dwZBufferBitDepth removed, use ddpfPixelFormat one instead
-       DWORD           dwRefreshRate;          // refresh rate (used when display mode is described)
-    } DUMMYUNIONNAMEN(2);
-    DWORD              dwAlphaBitDepth;        // depth of alpha buffer requested
-    DWORD              dwReserved;             // reserved
-    LPVOID             lpSurface;              // pointer to the associated surface memory
-    DDCOLORKEY         ddckCKDestOverlay;      // color key for destination overlay use
-    DDCOLORKEY         ddckCKDestBlt;          // color key for destination blt use
-    DDCOLORKEY         ddckCKSrcOverlay;       // color key for source overlay use
-    DDCOLORKEY         ddckCKSrcBlt;           // color key for source blt use
-    DDPIXELFORMAT      ddpfPixelFormat;        // pixel format description of the surface
-    DDSCAPS2           ddsCaps;                // direct draw surface capabilities
-    DWORD               dwTextureStage;         // stage in multitexture cascade
-} DDSURFACEDESC2;
-
-/*
- * ddsCaps field is valid.
- */
-#define DDSD_CAPS              0x00000001l     // default
-
-/*
- * dwHeight field is valid.
- */
-#define DDSD_HEIGHT            0x00000002l
-
-/*
- * dwWidth field is valid.
- */
-#define DDSD_WIDTH             0x00000004l
-
-/*
- * lPitch is valid.
- */
-#define DDSD_PITCH             0x00000008l
-
-/*
- * dwBackBufferCount is valid.
- */
-#define DDSD_BACKBUFFERCOUNT   0x00000020l
-
-/*
- * dwZBufferBitDepth is valid.  (shouldnt be used in DDSURFACEDESC2)
- */
-#define DDSD_ZBUFFERBITDEPTH   0x00000040l
-
-/*
- * dwAlphaBitDepth is valid.
- */
-#define DDSD_ALPHABITDEPTH     0x00000080l
-
-
-/*
- * lpSurface is valid.
- */
-#define DDSD_LPSURFACE         0x00000800l
-
-/*
- * ddpfPixelFormat is valid.
- */
-#define DDSD_PIXELFORMAT       0x00001000l
-
-/*
- * ddckCKDestOverlay is valid.
- */
-#define DDSD_CKDESTOVERLAY     0x00002000l
-
-/*
- * ddckCKDestBlt is valid.
- */
-#define DDSD_CKDESTBLT         0x00004000l
-
-/*
- * ddckCKSrcOverlay is valid.
- */
-#define DDSD_CKSRCOVERLAY      0x00008000l
-
-/*
- * ddckCKSrcBlt is valid.
- */
-#define DDSD_CKSRCBLT          0x00010000l
-
-/*
- * dwMipMapCount is valid.
- */
-#define DDSD_MIPMAPCOUNT        0x00020000l
-
- /*
-  * dwRefreshRate is valid
-  */
-#define DDSD_REFRESHRATE       0x00040000l
-
-/*
- * dwLinearSize is valid
- */
-#define DDSD_LINEARSIZE                0x00080000l
-
-/*
- * dwTextureStage is valid
- */
-#define DDSD_TEXTURESTAGE       0x00100000l
-/*
- * All input fields are valid.
- */
-#define DDSD_ALL               0x001ff9eel
-
-
-/*
- * DDOPTSURFACEDESC
- */
-typedef struct _DDOPTSURFACEDESC
-{
-    DWORD       dwSize;             // size of the DDOPTSURFACEDESC structure
-    DWORD       dwFlags;            // determines what fields are valid
-    DDSCAPS2    ddSCaps;            // Common caps like: Memory type
-    DDOSCAPS    ddOSCaps;           // Common caps like: Memory type
-    GUID        guid;               // Compression technique GUID
-    DWORD       dwCompressionRatio; // Compression ratio
-} DDOPTSURFACEDESC;
-
-/*
- * guid field is valid.
- */
-#define DDOSD_GUID                  0x00000001l
-
-/*
- * dwCompressionRatio field is valid.
- */
-#define DDOSD_COMPRESSION_RATIO     0x00000002l
-
-/*
- * ddSCaps field is valid.
- */
-#define DDOSD_SCAPS                 0x00000004l
-
-/*
- * ddOSCaps field is valid.
- */
-#define DDOSD_OSCAPS                0x00000008l
-
-/*
- * All input fields are valid.
- */
-#define DDOSD_ALL                   0x0000000fl
-
-/*
- * The surface's optimized pixelformat is compressed
- */
-#define DDOSDCAPS_OPTCOMPRESSED                        0x00000001l
-
-/*
- * The surface's optimized pixelformat is reordered
- */
-#define DDOSDCAPS_OPTREORDERED                 0x00000002l
-
-/*
- * The opt surface is a monolithic mipmap
- */
-#define DDOSDCAPS_MONOLITHICMIPMAP             0x00000004l
-
-/*
- * The valid Surf caps:
- * #define DDSCAPS_SYSTEMMEMORY                        0x00000800l
- * #define DDSCAPS_VIDEOMEMORY         0x00004000l
- * #define DDSCAPS_LOCALVIDMEM          0x10000000l
- * #define DDSCAPS_NONLOCALVIDMEM       0x20000000l
- */
-#define DDOSDCAPS_VALIDSCAPS           0x30004800l
-
-/*
- * The valid OptSurf caps
- */
-#define DDOSDCAPS_VALIDOSCAPS          0x00000007l
-
-
-/*
- * DDCOLORCONTROL
- */
-typedef struct _DDCOLORCONTROL
-{
-    DWORD              dwSize;
-    DWORD              dwFlags;
-    LONG               lBrightness;
-    LONG               lContrast;
-    LONG               lHue;
-    LONG               lSaturation;
-    LONG               lSharpness;
-    LONG               lGamma;
-    LONG               lColorEnable;
-    DWORD              dwReserved1;
-} DDCOLORCONTROL;
-
-
-/*
- * lBrightness field is valid.
- */
-#define DDCOLOR_BRIGHTNESS             0x00000001l
-
-/*
- * lContrast field is valid.
- */
-#define DDCOLOR_CONTRAST               0x00000002l
-
-/*
- * lHue field is valid.
- */
-#define DDCOLOR_HUE                    0x00000004l
-
-/*
- * lSaturation field is valid.
- */
-#define DDCOLOR_SATURATION             0x00000008l
-
-/*
- * lSharpness field is valid.
- */
-#define DDCOLOR_SHARPNESS              0x00000010l
-
-/*
- * lGamma field is valid.
- */
-#define DDCOLOR_GAMMA                  0x00000020l
-
-/*
- * lColorEnable field is valid.
- */
-#define DDCOLOR_COLORENABLE            0x00000040l
-
-
-
-/*============================================================================
- *
- * Direct Draw Capability Flags
- *
- * These flags are used to describe the capabilities of a given Surface.
- * All flags are bit flags.
- *
- *==========================================================================*/
-
-/****************************************************************************
- *
- * DIRECTDRAWSURFACE CAPABILITY FLAGS
- *
- ****************************************************************************/
-
-/*
- * This bit is reserved. It should not be specified.
- */
-#define DDSCAPS_RESERVED1                      0x00000001l
-
-/*
- * Indicates that this surface contains alpha-only information.
- * (To determine if a surface is RGBA/YUVA, the pixel format must be
- * interrogated.)
- */
-#define DDSCAPS_ALPHA                          0x00000002l
-
-/*
- * Indicates that this surface is a backbuffer.         It is generally
- * set by CreateSurface when the DDSCAPS_FLIP capability bit is set.
- * It indicates that this surface is THE back buffer of a surface
- * flipping structure. DirectDraw supports N surfaces in a
- * surface flipping structure. Only the surface that immediately
- * precedeces the DDSCAPS_FRONTBUFFER has this capability bit set.
- * The other surfaces are identified as back buffers by the presence
- * of the DDSCAPS_FLIP capability, their attachment order, and the
- * absence of the DDSCAPS_FRONTBUFFER and DDSCAPS_BACKBUFFER
- * capabilities.  The bit is sent to CreateSurface when a standalone
- * back buffer is being created.  This surface could be attached to
- * a front buffer and/or back buffers to form a flipping surface
- * structure after the CreateSurface call.  See AddAttachments for
- * a detailed description of the behaviors in this case.
- */
-#define DDSCAPS_BACKBUFFER                     0x00000004l
-
-/*
- * Indicates a complex surface structure is being described.  A
- * complex surface structure results in the creation of more than
- * one surface.         The additional surfaces are attached to the root
- * surface.  The complex structure can only be destroyed by
- * destroying the root.
- */
-#define DDSCAPS_COMPLEX                                0x00000008l
-
-/*
- * Indicates that this surface is a part of a surface flipping structure.
- * When it is passed to CreateSurface the DDSCAPS_FRONTBUFFER and
- * DDSCAP_BACKBUFFER bits are not set. They are set by CreateSurface
- * on the resulting creations. The dwBackBufferCount field in the
- * DDSURFACEDESC structure must be set to at least 1 in order for
- * the CreateSurface call to succeed.  The DDSCAPS_COMPLEX capability
- * must always be set with creating multiple surfaces through CreateSurface.
- */
-#define DDSCAPS_FLIP                           0x00000010l
-
-/*
- * Indicates that this surface is THE front buffer of a surface flipping
- * structure.  It is generally set by CreateSurface when the DDSCAPS_FLIP
- * capability bit is set.
- * If this capability is sent to CreateSurface then a standalonw front buffer
- * is created. This surface will not have the DDSCAPS_FLIP capability.
- * It can be attached to other back buffers to form a flipping structure.
- * See AddAttachments for a detailed description of the behaviors in this
- * case.
- */
-#define DDSCAPS_FRONTBUFFER                    0x00000020l
-
-/*
- * Indicates that this surface is any offscreen surface that is not an overlay,
- * texture, zbuffer, front buffer, back buffer, or alpha surface.  It is used
- * to identify plain vanilla surfaces.
- */
-#define DDSCAPS_OFFSCREENPLAIN                 0x00000040l
-
-/*
- * Indicates that this surface is an overlay.  It may or may not be directly visible
- * depending on whether or not it is currently being overlayed onto the primary
- * surface.  DDSCAPS_VISIBLE can be used to determine whether or not it is being
- * overlayed at the moment.
- */
-#define DDSCAPS_OVERLAY                                0x00000080l
-
-/*
- * Indicates that unique DirectDrawPalette objects can be created and
- * attached to this surface.
- */
-#define DDSCAPS_PALETTE                                0x00000100l
-
-/*
- * Indicates that this surface is the primary surface. The primary
- * surface represents what the user is seeing at the moment.
- */
-#define DDSCAPS_PRIMARYSURFACE                 0x00000200l
-
-/*
- * Indicates that this surface is the primary surface for the left eye.
- * The primary surface for the left eye represents what the user is seeing
- * at the moment with the users left eye.  When this surface is created the
- * DDSCAPS_PRIMARYSURFACE represents what the user is seeing with the users
- * right eye.
- */
-#define DDSCAPS_PRIMARYSURFACELEFT             0x00000400l
-
-/*
- * Indicates that this surface memory was allocated in system memory
- */
-#define DDSCAPS_SYSTEMMEMORY                   0x00000800l
-
-/*
- * Indicates that this surface can be used as a 3D texture.  It does not
- * indicate whether or not the surface is being used for that purpose.
- */
-#define DDSCAPS_TEXTURE                                0x00001000l
-
-/*
- * Indicates that a surface may be a destination for 3D rendering.  This
- * bit must be set in order to query for a Direct3D Device Interface
- * from this surface.
- */
-#define DDSCAPS_3DDEVICE                        0x00002000l
-
-/*
- * Indicates that this surface exists in video memory.
- */
-#define DDSCAPS_VIDEOMEMORY                    0x00004000l
-
-/*
- * Indicates that changes made to this surface are immediately visible.
- * It is always set for the primary surface and is set for overlays while
- * they are being overlayed and texture maps while they are being textured.
- */
-#define DDSCAPS_VISIBLE                                0x00008000l
-
-/*
- * Indicates that only writes are permitted to the surface.  Read accesses
- * from the surface may or may not generate a protection fault, but the
- * results of a read from this surface will not be meaningful. READ ONLY.
- */
-#define DDSCAPS_WRITEONLY                      0x00010000l
-
-/*
- * Indicates that this surface is a z buffer. A z buffer does not contain
- * displayable information.  Instead it contains bit depth information that is
- * used to determine which pixels are visible and which are obscured.
- */
-#define DDSCAPS_ZBUFFER                                0x00020000l
-
-/*
- * Indicates surface will have a DC associated long term
- */
-#define DDSCAPS_OWNDC                          0x00040000l
-
-/*
- * Indicates surface should be able to receive live video
- */
-#define DDSCAPS_LIVEVIDEO                      0x00080000l
-
-/*
- * Indicates surface should be able to have a stream decompressed
- * to it by the hardware.
- */
-#define DDSCAPS_HWCODEC                                0x00100000l
-
-/*
- * Surface is a ModeX surface.
- *
- */
-#define DDSCAPS_MODEX                          0x00200000l
-
-/*
- * Indicates surface is one level of a mip-map. This surface will
- * be attached to other DDSCAPS_MIPMAP surfaces to form the mip-map.
- * This can be done explicitly, by creating a number of surfaces and
- * attaching them with AddAttachedSurface or by implicitly by CreateSurface.
- * If this bit is set then DDSCAPS_TEXTURE must also be set.
- */
-#define DDSCAPS_MIPMAP                          0x00400000l
-
-/*
- * This bit is reserved. It should not be specified.
- */
-#define DDSCAPS_RESERVED2                       0x00800000l
-
-
-/*
- * Indicates that memory for the surface is not allocated until the surface
- * is loaded (via the Direct3D texture Load() function).
- */
-#define DDSCAPS_ALLOCONLOAD                     0x04000000l
-
-/*
- * Indicates that the surface will recieve data from a video port.
- */
-#define DDSCAPS_VIDEOPORT                      0x08000000l
-
-/*
- * Indicates that a video memory surface is resident in true, local video
- * memory rather than non-local video memory. If this flag is specified then
- * so must DDSCAPS_VIDEOMEMORY. This flag is mutually exclusive with
- * DDSCAPS_NONLOCALVIDMEM.
- */
-#define DDSCAPS_LOCALVIDMEM                     0x10000000l
-
-/*
- * Indicates that a video memory surface is resident in non-local video
- * memory rather than true, local video memory. If this flag is specified
- * then so must DDSCAPS_VIDEOMEMORY. This flag is mutually exclusive with
- * DDSCAPS_LOCALVIDMEM.
- */
-#define DDSCAPS_NONLOCALVIDMEM                  0x20000000l
-
-/*
- * Indicates that this surface is a standard VGA mode surface, and not a
- * ModeX surface. (This flag will never be set in combination with the
- * DDSCAPS_MODEX flag).
- */
-#define DDSCAPS_STANDARDVGAMODE                 0x40000000l
-
-/*
- * Indicates that this surface will be an optimized surface. This flag is
- * currently only valid in conjunction with the DDSCAPS_TEXTURE flag. The surface
- * will be created without any underlying video memory until loaded.
- */
-#define DDSCAPS_OPTIMIZED                       0x80000000l
-
-
-
-
-/*
- * Indicates that this surface will receive data from a video port using
- * the de-interlacing hardware.  This allows the driver to allocate memory
- * for any extra buffers that may be required.  The DDSCAPS_VIDEOPORT and
- * DDSCAPS_OVERLAY flags must also be set.
- */
-#define DDSCAPS2_HARDWAREDEINTERLACE            0x00000002L
-
-/*
- * Indicates to the driver that this surface will be locked very frequently
- * (for procedural textures, dynamic lightmaps, etc). Surfaces with this cap
- * set must also have DDSCAPS_TEXTURE. This cap cannot be used with
- * DDSCAPS2_HINTSTATIC and DDSCAPS2_OPAQUE.
- */
-#define DDSCAPS2_HINTDYNAMIC                   0x00000004L
-
-/*
- * Indicates to the driver that this surface can be re-ordered/retiled on
- * load. This operation will not change the size of the texture. It is
- * relatively fast and symmetrical, since the application may lock these
- * bits (although it will take a performance hit when doing so). Surfaces
- * with this cap set must also have DDSCAPS_TEXTURE. This cap cannot be
- * used with DDSCAPS2_HINTDYNAMIC and DDSCAPS2_OPAQUE.
- */
-#define DDSCAPS2_HINTSTATIC                    0x00000008L
-
-/*
- * Indicates that the client would like this texture surface to be managed by the
- * DirectDraw/Direct3D runtime. Surfaces with this cap set must also have
- * DDSCAPS_TEXTURE set.
- */
-#define DDSCAPS2_TEXTUREMANAGE                  0x00000010L
-
-/*
- * These bits are reserved for internal use */
-#define DDSCAPS2_RESERVED1                      0x00000020L
-#define DDSCAPS2_RESERVED2                      0x00000040L
-
-/*
- * Indicates to the driver that this surface will never be locked again.
- * The driver is free to optimize this surface via retiling and actual compression.
- * All calls to Lock() or Blts from this surface will fail. Surfaces with this
- * cap set must also have DDSCAPS_TEXTURE. This cap cannot be used with
- * DDSCAPS2_HINTDYNAMIC and DDSCAPS2_HINTSTATIC.
- */
-#define DDSCAPS2_OPAQUE                         0x00000080L
-
-/*
- * Applications should set this bit at CreateSurface time to indicate that they
- * intend to use antialiasing. Only valid if DDSCAPS_3DDEVICE is also set.
- */
-#define DDSCAPS2_HINTANTIALIASING               0x00000100L
-
-
-
-
- /****************************************************************************
- *
- * DIRECTDRAW DRIVER CAPABILITY FLAGS
- *
- ****************************************************************************/
-
-/*
- * Display hardware has 3D acceleration.
- */
-#define DDCAPS_3D                      0x00000001l
-
-/*
- * Indicates that DirectDraw will support only dest rectangles that are aligned
- * on DIRECTDRAWCAPS.dwAlignBoundaryDest boundaries of the surface, respectively.
- * READ ONLY.
- */
-#define DDCAPS_ALIGNBOUNDARYDEST       0x00000002l
-
-/*
- * Indicates that DirectDraw will support only source rectangles  whose sizes in
- * BYTEs are DIRECTDRAWCAPS.dwAlignSizeDest multiples, respectively.  READ ONLY.
- */
-#define DDCAPS_ALIGNSIZEDEST           0x00000004l
-/*
- * Indicates that DirectDraw will support only source rectangles that are aligned
- * on DIRECTDRAWCAPS.dwAlignBoundarySrc boundaries of the surface, respectively.
- * READ ONLY.
- */
-#define DDCAPS_ALIGNBOUNDARYSRC                0x00000008l
-
-/*
- * Indicates that DirectDraw will support only source rectangles  whose sizes in
- * BYTEs are DIRECTDRAWCAPS.dwAlignSizeSrc multiples, respectively.  READ ONLY.
- */
-#define DDCAPS_ALIGNSIZESRC            0x00000010l
-
-/*
- * Indicates that DirectDraw will create video memory surfaces that have a stride
- * alignment equal to DIRECTDRAWCAPS.dwAlignStride.  READ ONLY.
- */
-#define DDCAPS_ALIGNSTRIDE             0x00000020l
-
-/*
- * Display hardware is capable of blt operations.
- */
-#define DDCAPS_BLT                     0x00000040l
-
-/*
- * Display hardware is capable of asynchronous blt operations.
- */
-#define DDCAPS_BLTQUEUE                        0x00000080l
-
-/*
- * Display hardware is capable of color space conversions during the blt operation.
- */
-#define DDCAPS_BLTFOURCC               0x00000100l
-
-/*
- * Display hardware is capable of stretching during blt operations.
- */
-#define DDCAPS_BLTSTRETCH              0x00000200l
-
-/*
- * Display hardware is shared with GDI.
- */
-#define DDCAPS_GDI                     0x00000400l
-
-/*
- * Display hardware can overlay.
- */
-#define DDCAPS_OVERLAY                 0x00000800l
-
-/*
- * Set if display hardware supports overlays but can not clip them.
- */
-#define DDCAPS_OVERLAYCANTCLIP         0x00001000l
-
-/*
- * Indicates that overlay hardware is capable of color space conversions during
- * the overlay operation.
- */
-#define DDCAPS_OVERLAYFOURCC           0x00002000l
-
-/*
- * Indicates that stretching can be done by the overlay hardware.
- */
-#define DDCAPS_OVERLAYSTRETCH          0x00004000l
-
-/*
- * Indicates that unique DirectDrawPalettes can be created for DirectDrawSurfaces
- * other than the primary surface.
- */
-#define DDCAPS_PALETTE                 0x00008000l
-
-/*
- * Indicates that palette changes can be syncd with the veritcal refresh.
- */
-#define DDCAPS_PALETTEVSYNC            0x00010000l
-
-/*
- * Display hardware can return the current scan line.
- */
-#define DDCAPS_READSCANLINE            0x00020000l
-
-/*
- * Display hardware has stereo vision capabilities.  DDSCAPS_PRIMARYSURFACELEFT
- * can be created.
- */
-#define DDCAPS_STEREOVIEW              0x00040000l
-
-/*
- * Display hardware is capable of generating a vertical blank interrupt.
- */
-#define DDCAPS_VBI                     0x00080000l
-
-/*
- * Supports the use of z buffers with blt operations.
- */
-#define DDCAPS_ZBLTS                   0x00100000l
-
-/*
- * Supports Z Ordering of overlays.
- */
-#define DDCAPS_ZOVERLAYS               0x00200000l
-
-/*
- * Supports color key
- */
-#define DDCAPS_COLORKEY                        0x00400000l
-
-/*
- * Supports alpha surfaces
- */
-#define DDCAPS_ALPHA                   0x00800000l
-
-/*
- * colorkey is hardware assisted(DDCAPS_COLORKEY will also be set)
- */
-#define DDCAPS_COLORKEYHWASSIST                0x01000000l
-
-/*
- * no hardware support at all
- */
-#define DDCAPS_NOHARDWARE              0x02000000l
-
-/*
- * Display hardware is capable of color fill with bltter
- */
-#define DDCAPS_BLTCOLORFILL            0x04000000l
-
-/*
- * Display hardware is bank switched, and potentially very slow at
- * random access to VRAM.
- */
-#define DDCAPS_BANKSWITCHED            0x08000000l
-
-/*
- * Display hardware is capable of depth filling Z-buffers with bltter
- */
-#define DDCAPS_BLTDEPTHFILL            0x10000000l
-
-/*
- * Display hardware is capable of clipping while bltting.
- */
-#define DDCAPS_CANCLIP                 0x20000000l
-
-/*
- * Display hardware is capable of clipping while stretch bltting.
- */
-#define DDCAPS_CANCLIPSTRETCHED                0x40000000l
-
-/*
- * Display hardware is capable of bltting to or from system memory
- */
-#define DDCAPS_CANBLTSYSMEM            0x80000000l
-
-
- /****************************************************************************
- *
- * MORE DIRECTDRAW DRIVER CAPABILITY FLAGS (dwCaps2)
- *
- ****************************************************************************/
-
-/*
- * Display hardware is certified
- */
-#define DDCAPS2_CERTIFIED              0x00000001l
-
-/*
- * Driver cannot interleave 2D operations (lock and blt) to surfaces with
- * Direct3D rendering operations between calls to BeginScene() and EndScene()
- */
-#define DDCAPS2_NO2DDURING3DSCENE       0x00000002l
-
-/*
- * Display hardware contains a video port
- */
-#define DDCAPS2_VIDEOPORT               0x00000004l
-
-/*
- * The overlay can be automatically flipped according to the video port
- * VSYNCs, providing automatic doubled buffered display of video port
- * data using an overlay
- */
-#define DDCAPS2_AUTOFLIPOVERLAY         0x00000008l
-
-/*
- * Overlay can display each field of interlaced data individually while
- * it is interleaved in memory without causing jittery artifacts.
- */
-#define DDCAPS2_CANBOBINTERLEAVED       0x00000010l
-
-/*
- * Overlay can display each field of interlaced data individually while
- * it is not interleaved in memory without causing jittery artifacts.
- */
-#define DDCAPS2_CANBOBNONINTERLEAVED    0x00000020l
-
-/*
- * The overlay surface contains color controls (brightness, sharpness, etc.)
- */
-#define DDCAPS2_COLORCONTROLOVERLAY     0x00000040l
-
-/*
- * The primary surface contains color controls (gamma, etc.)
- */
-#define DDCAPS2_COLORCONTROLPRIMARY     0x00000080l
-
-/*
- * RGBZ -> RGB supported for 16:16 RGB:Z
- */
-#define DDCAPS2_CANDROPZ16BIT           0x00000100l
-
-/*
- * Driver supports non-local video memory.
- */
-#define DDCAPS2_NONLOCALVIDMEM          0x00000200l
-
-/*
- * Dirver supports non-local video memory but has different capabilities for
- * non-local video memory surfaces. If this bit is set then so must
- * DDCAPS2_NONLOCALVIDMEM.
- */
-#define DDCAPS2_NONLOCALVIDMEMCAPS      0x00000400l
-
-/*
- * Driver neither requires nor prefers surfaces to be pagelocked when performing
- * blts involving system memory surfaces
- */
-#define DDCAPS2_NOPAGELOCKREQUIRED      0x00000800l
-
-/*
- * Driver can create surfaces which are wider than the primary surface
- */
-#define DDCAPS2_WIDESURFACES            0x00001000l
-
-/*
- * Driver supports bob without using a video port by handling the
- * DDFLIP_ODD and DDFLIP_EVEN flags specified in Flip.
- */
-#define DDCAPS2_CANFLIPODDEVEN          0x00002000l
-
-/*
- * Driver supports bob using hardware
- */
-#define DDCAPS2_CANBOBHARDWARE          0x00004000l
-
-/*
- * Driver supports bltting any FOURCC surface to another surface of the same FOURCC
- */
-#define DDCAPS2_COPYFOURCC              0x00008000l
-
-
-/*
- * Driver supports loadable gamma ramps for the primary surface
- */
-#define DDCAPS2_PRIMARYGAMMA            0x00020000l
-
-/*
- * Driver can render in windowed mode.
- */
-#define DDCAPS2_CANRENDERWINDOWED       0x00080000l
-
-/*
- * A calibrator is available to adjust the gamma ramp according to the
- * physical display properties so that the result will be identical on
- * all calibrated systems.
- */
-#define DDCAPS2_CANCALIBRATEGAMMA       0x00100000l
-
-/*
- * Indicates that the driver will respond to DDFLIP_INTERVALn flags
- */
-#define DDCAPS2_FLIPINTERVAL            0x00200000l
-
-/*
- * Indicates that the driver will respond to DDFLIP_NOVSYNC
- */
-#define DDCAPS2_FLIPNOVSYNC             0x00400000l
-
-
-/****************************************************************************
- *
- * DIRECTDRAW FX ALPHA CAPABILITY FLAGS
- *
- ****************************************************************************/
-
-/*
- * Supports alpha blending around the edge of a source color keyed surface.
- * For Blt.
- */
-#define DDFXALPHACAPS_BLTALPHAEDGEBLEND                0x00000001l
-
-/*
- * Supports alpha information in the pixel format.  The bit depth of alpha
- * information in the pixel format can be 1,2,4, or 8. The alpha value becomes
- * more opaque as the alpha value increases.  (0 is transparent.)
- * For Blt.
- */
-#define DDFXALPHACAPS_BLTALPHAPIXELS           0x00000002l
-
-/*
- * Supports alpha information in the pixel format.  The bit depth of alpha
- * information in the pixel format can be 1,2,4, or 8. The alpha value
- * becomes more transparent as the alpha value increases.  (0 is opaque.)
- * This flag can only be set if DDCAPS_ALPHA is set.
- * For Blt.
- */
-#define DDFXALPHACAPS_BLTALPHAPIXELSNEG                0x00000004l
-
-/*
- * Supports alpha only surfaces.  The bit depth of an alpha only surface can be
- * 1,2,4, or 8.         The alpha value becomes more opaque as the alpha value increases.
- * (0 is transparent.)
- * For Blt.
- */
-#define DDFXALPHACAPS_BLTALPHASURFACES         0x00000008l
-
-/*
- * The depth of the alpha channel data can range can be 1,2,4, or 8.
- * The NEG suffix indicates that this alpha channel becomes more transparent
- * as the alpha value increases. (0 is opaque.)         This flag can only be set if
- * DDCAPS_ALPHA is set.
- * For Blt.
- */
-#define DDFXALPHACAPS_BLTALPHASURFACESNEG      0x00000010l
-
-/*
- * Supports alpha blending around the edge of a source color keyed surface.
- * For Overlays.
- */
-#define DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND    0x00000020l
-
-/*
- * Supports alpha information in the pixel format.  The bit depth of alpha
- * information in the pixel format can be 1,2,4, or 8. The alpha value becomes
- * more opaque as the alpha value increases.  (0 is transparent.)
- * For Overlays.
- */
-#define DDFXALPHACAPS_OVERLAYALPHAPIXELS       0x00000040l
-
-/*
- * Supports alpha information in the pixel format.  The bit depth of alpha
- * information in the pixel format can be 1,2,4, or 8. The alpha value
- * becomes more transparent as the alpha value increases.  (0 is opaque.)
- * This flag can only be set if DDCAPS_ALPHA is set.
- * For Overlays.
- */
-#define DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG    0x00000080l
-
-/*
- * Supports alpha only surfaces.  The bit depth of an alpha only surface can be
- * 1,2,4, or 8.         The alpha value becomes more opaque as the alpha value increases.
- * (0 is transparent.)
- * For Overlays.
- */
-#define DDFXALPHACAPS_OVERLAYALPHASURFACES     0x00000100l
-
-/*
- * The depth of the alpha channel data can range can be 1,2,4, or 8.
- * The NEG suffix indicates that this alpha channel becomes more transparent
- * as the alpha value increases. (0 is opaque.)         This flag can only be set if
- * DDCAPS_ALPHA is set.
- * For Overlays.
- */
-#define DDFXALPHACAPS_OVERLAYALPHASURFACESNEG  0x00000200l
-
-#if DIRECTDRAW_VERSION < 0x0600
-#endif  //DIRECTDRAW_VERSION
-
-
-
-
-/****************************************************************************
- *
- * DIRECTDRAW FX CAPABILITY FLAGS
- *
- ****************************************************************************/
-
-/*
- * Uses arithmetic operations to stretch and shrink surfaces during blt
- * rather than pixel doubling techniques.  Along the Y axis.
- */
-#define DDFXCAPS_BLTARITHSTRETCHY      0x00000020l
-
-/*
- * Uses arithmetic operations to stretch during blt
- * rather than pixel doubling techniques.  Along the Y axis. Only
- * works for x1, x2, etc.
- */
-#define DDFXCAPS_BLTARITHSTRETCHYN     0x00000010l
-
-/*
- * Supports mirroring left to right in blt.
- */
-#define DDFXCAPS_BLTMIRRORLEFTRIGHT    0x00000040l
-
-/*
- * Supports mirroring top to bottom in blt.
- */
-#define DDFXCAPS_BLTMIRRORUPDOWN       0x00000080l
-
-/*
- * Supports arbitrary rotation for blts.
- */
-#define DDFXCAPS_BLTROTATION           0x00000100l
-
-/*
- * Supports 90 degree rotations for blts.
- */
-#define DDFXCAPS_BLTROTATION90         0x00000200l
-
-/*
- * DirectDraw supports arbitrary shrinking of a surface along the
- * x axis (horizontal direction) for blts.
- */
-#define DDFXCAPS_BLTSHRINKX            0x00000400l
-
-/*
- * DirectDraw supports integer shrinking (1x,2x,) of a surface
- * along the x axis (horizontal direction) for blts.
- */
-#define DDFXCAPS_BLTSHRINKXN           0x00000800l
-
-/*
- * DirectDraw supports arbitrary shrinking of a surface along the
- * y axis (horizontal direction) for blts.
- */
-#define DDFXCAPS_BLTSHRINKY            0x00001000l
-
-/*
- * DirectDraw supports integer shrinking (1x,2x,) of a surface
- * along the y axis (vertical direction) for blts.
- */
-#define DDFXCAPS_BLTSHRINKYN           0x00002000l
-
-/*
- * DirectDraw supports arbitrary stretching of a surface along the
- * x axis (horizontal direction) for blts.
- */
-#define DDFXCAPS_BLTSTRETCHX           0x00004000l
-
-/*
- * DirectDraw supports integer stretching (1x,2x,) of a surface
- * along the x axis (horizontal direction) for blts.
- */
-#define DDFXCAPS_BLTSTRETCHXN          0x00008000l
-
-/*
- * DirectDraw supports arbitrary stretching of a surface along the
- * y axis (horizontal direction) for blts.
- */
-#define DDFXCAPS_BLTSTRETCHY           0x00010000l
-
-/*
- * DirectDraw supports integer stretching (1x,2x,) of a surface
- * along the y axis (vertical direction) for blts.
- */
-#define DDFXCAPS_BLTSTRETCHYN          0x00020000l
-
-/*
- * Uses arithmetic operations to stretch and shrink surfaces during
- * overlay rather than pixel doubling techniques.  Along the Y axis
- * for overlays.
- */
-#define DDFXCAPS_OVERLAYARITHSTRETCHY  0x00040000l
-
-/*
- * Uses arithmetic operations to stretch surfaces during
- * overlay rather than pixel doubling techniques.  Along the Y axis
- * for overlays. Only works for x1, x2, etc.
- */
-#define DDFXCAPS_OVERLAYARITHSTRETCHYN 0x00000008l
-
-/*
- * DirectDraw supports arbitrary shrinking of a surface along the
- * x axis (horizontal direction) for overlays.
- */
-#define DDFXCAPS_OVERLAYSHRINKX                0x00080000l
-
-/*
- * DirectDraw supports integer shrinking (1x,2x,) of a surface
- * along the x axis (horizontal direction) for overlays.
- */
-#define DDFXCAPS_OVERLAYSHRINKXN       0x00100000l
-
-/*
- * DirectDraw supports arbitrary shrinking of a surface along the
- * y axis (horizontal direction) for overlays.
- */
-#define DDFXCAPS_OVERLAYSHRINKY                0x00200000l
-
-/*
- * DirectDraw supports integer shrinking (1x,2x,) of a surface
- * along the y axis (vertical direction) for overlays.
- */
-#define DDFXCAPS_OVERLAYSHRINKYN       0x00400000l
-
-/*
- * DirectDraw supports arbitrary stretching of a surface along the
- * x axis (horizontal direction) for overlays.
- */
-#define DDFXCAPS_OVERLAYSTRETCHX       0x00800000l
-
-/*
- * DirectDraw supports integer stretching (1x,2x,) of a surface
- * along the x axis (horizontal direction) for overlays.
- */
-#define DDFXCAPS_OVERLAYSTRETCHXN      0x01000000l
-
-/*
- * DirectDraw supports arbitrary stretching of a surface along the
- * y axis (horizontal direction) for overlays.
- */
-#define DDFXCAPS_OVERLAYSTRETCHY       0x02000000l
-
-/*
- * DirectDraw supports integer stretching (1x,2x,) of a surface
- * along the y axis (vertical direction) for overlays.
- */
-#define DDFXCAPS_OVERLAYSTRETCHYN      0x04000000l
-
-/*
- * DirectDraw supports mirroring of overlays across the vertical axis
- */
-#define DDFXCAPS_OVERLAYMIRRORLEFTRIGHT        0x08000000l
-
-/*
- * DirectDraw supports mirroring of overlays across the horizontal axis
- */
-#define DDFXCAPS_OVERLAYMIRRORUPDOWN   0x10000000l
-
-/*
- * Driver can do alpha blending for blits.
- */
-#define DDFXCAPS_BLTALPHA              0x00000001l
-
-/*
- * Driver can do geometric transformations (or warps) for blits.
- */
-#define DDFXCAPS_BLTTRANSFORM          0x00000002l
-
-/*
- * Driver can do surface-reconstruction filtering for warped blits.
- */
-#define DDFXCAPS_BLTFILTER             DDFXCAPS_BLTARITHSTRETCHY
-
-/*
- * Driver can do alpha blending for overlays.
- */
-#define DDFXCAPS_OVERLAYALPHA          0x00000004l
-
-/*
- * Driver can do geometric transformations (or warps) for overlays.
- */
-#define DDFXCAPS_OVERLAYTRANSFORM      0x20000000l
-
-/*
- * Driver can do surface-reconstruction filtering for warped overlays.
- */
-#define DDFXCAPS_OVERLAYFILTER                 DDFXCAPS_OVERLAYARITHSTRETCHY
-
-
-/****************************************************************************
- *
- * DIRECTDRAW STEREO VIEW CAPABILITIES
- *
- ****************************************************************************/
-
-/*
- * The stereo view is accomplished via enigma encoding.
- */
-#define DDSVCAPS_ENIGMA                        0x00000001l
-
-/*
- * The stereo view is accomplished via high frequency flickering.
- */
-#define DDSVCAPS_FLICKER               0x00000002l
-
-/*
- * The stereo view is accomplished via red and blue filters applied
- * to the left and right eyes. All images must adapt their colorspaces
- * for this process.
- */
-#define DDSVCAPS_REDBLUE               0x00000004l
-
-/*
- * The stereo view is accomplished with split screen technology.
- */
-#define DDSVCAPS_SPLIT                 0x00000008l
-
-/****************************************************************************
- *
- * DIRECTDRAWPALETTE CAPABILITIES
- *
- ****************************************************************************/
-
-/*
- * Index is 4 bits.  There are sixteen color entries in the palette table.
- */
-#define DDPCAPS_4BIT                   0x00000001l
-
-/*
- * Index is onto a 8 bit color index.  This field is only valid with the
- * DDPCAPS_1BIT, DDPCAPS_2BIT or DDPCAPS_4BIT capability and the target
- * surface is in 8bpp. Each color entry is one byte long and is an index
- * into destination surface's 8bpp palette.
- */
-#define DDPCAPS_8BITENTRIES            0x00000002l
-
-/*
- * Index is 8 bits.  There are 256 color entries in the palette table.
- */
-#define DDPCAPS_8BIT                   0x00000004l
-
-/*
- * Indicates that this DIRECTDRAWPALETTE should use the palette color array
- * passed into the lpDDColorArray parameter to initialize the DIRECTDRAWPALETTE
- * object.
- */
-#define DDPCAPS_INITIALIZE             0x00000008l
-
-/*
- * This palette is the one attached to the primary surface.  Changing this
- * table has immediate effect on the display unless DDPSETPAL_VSYNC is specified
- * and supported.
- */
-#define DDPCAPS_PRIMARYSURFACE         0x00000010l
-
-/*
- * This palette is the one attached to the primary surface left.  Changing
- * this table has immediate effect on the display for the left eye unless
- * DDPSETPAL_VSYNC is specified and supported.
- */
-#define DDPCAPS_PRIMARYSURFACELEFT     0x00000020l
-
-/*
- * This palette can have all 256 entries defined
- */
-#define DDPCAPS_ALLOW256               0x00000040l
-
-/*
- * This palette can have modifications to it synced with the monitors
- * refresh rate.
- */
-#define DDPCAPS_VSYNC                  0x00000080l
-
-/*
- * Index is 1 bit.  There are two color entries in the palette table.
- */
-#define DDPCAPS_1BIT                   0x00000100l
-
-/*
- * Index is 2 bit.  There are four color entries in the palette table.
- */
-#define DDPCAPS_2BIT                   0x00000200l
-
-/*
- * The peFlags member of PALETTEENTRY denotes an 8 bit alpha value
- */
-#define DDPCAPS_ALPHA                  0x00000400l
-
-
-/****************************************************************************
- *
- * DIRECTDRAWPALETTE SETENTRY CONSTANTS
- *
- ****************************************************************************/
-
-
-/****************************************************************************
- *
- * DIRECTDRAWPALETTE GETENTRY CONSTANTS
- *
- ****************************************************************************/
-
-/* 0 is the only legal value */
-
-/****************************************************************************
- *
- * DIRECTDRAWSURFACE SETPRIVATEDATA CONSTANTS
- *
- ****************************************************************************/
-
-/*
- * The passed pointer is an IUnknown ptr. The cbData argument to SetPrivateData
- * must be set to sizeof(IUnknown*). DirectDraw will call AddRef through this
- * pointer and Release when the private data is destroyed. This includes when
- * the surface or palette is destroyed before such priovate data is destroyed.
- */
-#define DDSPD_IUNKNOWNPOINTER           0x00000001L
-
-/*
- * Private data is only valid for the current state of the object,
- * as determined by the uniqueness value.
- */
-#define DDSPD_VOLATILE                  0x00000002L
-
-
-/****************************************************************************
- *
- * DIRECTDRAWSURFACE SETPALETTE CONSTANTS
- *
- ****************************************************************************/
-
-
-/****************************************************************************
- *
- * DIRECTDRAW BITDEPTH CONSTANTS
- *
- * NOTE:  These are only used to indicate supported bit depths.   These
- * are flags only, they are not to be used as an actual bit depth.   The
- * absolute numbers 1, 2, 4, 8, 16, 24 and 32 are used to indicate actual
- * bit depths in a surface or for changing the display mode.
- *
- ****************************************************************************/
-
-/*
- * 1 bit per pixel.
- */
-#define DDBD_1                 0x00004000l
-
-/*
- * 2 bits per pixel.
- */
-#define DDBD_2                 0x00002000l
-
-/*
- * 4 bits per pixel.
- */
-#define DDBD_4                 0x00001000l
-
-/*
- * 8 bits per pixel.
- */
-#define DDBD_8                 0x00000800l
-
-/*
- * 16 bits per pixel.
- */
-#define DDBD_16                        0x00000400l
-
-/*
- * 24 bits per pixel.
- */
-#define DDBD_24                        0X00000200l
-
-/*
- * 32 bits per pixel.
- */
-#define DDBD_32                        0x00000100l
-
-/****************************************************************************
- *
- * DIRECTDRAWSURFACE SET/GET COLOR KEY FLAGS
- *
- ****************************************************************************/
-
-/*
- * Set if the structure contains a color space.         Not set if the structure
- * contains a single color key.
- */
-#define DDCKEY_COLORSPACE      0x00000001l
-
-/*
- * Set if the structure specifies a color key or color space which is to be
- * used as a destination color key for blt operations.
- */
-#define DDCKEY_DESTBLT         0x00000002l
-
-/*
- * Set if the structure specifies a color key or color space which is to be
- * used as a destination color key for overlay operations.
- */
-#define DDCKEY_DESTOVERLAY     0x00000004l
-
-/*
- * Set if the structure specifies a color key or color space which is to be
- * used as a source color key for blt operations.
- */
-#define DDCKEY_SRCBLT          0x00000008l
-
-/*
- * Set if the structure specifies a color key or color space which is to be
- * used as a source color key for overlay operations.
- */
-#define DDCKEY_SRCOVERLAY      0x00000010l
-
-
-/****************************************************************************
- *
- * DIRECTDRAW COLOR KEY CAPABILITY FLAGS
- *
- ****************************************************************************/
-
-/*
- * Supports transparent blting using a color key to identify the replaceable
- * bits of the destination surface for RGB colors.
- */
-#define DDCKEYCAPS_DESTBLT                     0x00000001l
-
-/*
- * Supports transparent blting using a color space to identify the replaceable
- * bits of the destination surface for RGB colors.
- */
-#define DDCKEYCAPS_DESTBLTCLRSPACE             0x00000002l
-
-/*
- * Supports transparent blting using a color space to identify the replaceable
- * bits of the destination surface for YUV colors.
- */
-#define DDCKEYCAPS_DESTBLTCLRSPACEYUV          0x00000004l
-
-/*
- * Supports transparent blting using a color key to identify the replaceable
- * bits of the destination surface for YUV colors.
- */
-#define DDCKEYCAPS_DESTBLTYUV                  0x00000008l
-
-/*
- * Supports overlaying using colorkeying of the replaceable bits of the surface
- * being overlayed for RGB colors.
- */
-#define DDCKEYCAPS_DESTOVERLAY                 0x00000010l
-
-/*
- * Supports a color space as the color key for the destination for RGB colors.
- */
-#define DDCKEYCAPS_DESTOVERLAYCLRSPACE         0x00000020l
-
-/*
- * Supports a color space as the color key for the destination for YUV colors.
- */
-#define DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV      0x00000040l
-
-/*
- * Supports only one active destination color key value for visible overlay
- * surfaces.
- */
-#define DDCKEYCAPS_DESTOVERLAYONEACTIVE                0x00000080l
-
-/*
- * Supports overlaying using colorkeying of the replaceable bits of the
- * surface being overlayed for YUV colors.
- */
-#define DDCKEYCAPS_DESTOVERLAYYUV              0x00000100l
-
-/*
- * Supports transparent blting using the color key for the source with
- * this surface for RGB colors.
- */
-#define DDCKEYCAPS_SRCBLT                      0x00000200l
-
-/*
- * Supports transparent blting using a color space for the source with
- * this surface for RGB colors.
- */
-#define DDCKEYCAPS_SRCBLTCLRSPACE              0x00000400l
-
-/*
- * Supports transparent blting using a color space for the source with
- * this surface for YUV colors.
- */
-#define DDCKEYCAPS_SRCBLTCLRSPACEYUV           0x00000800l
-
-/*
- * Supports transparent blting using the color key for the source with
- * this surface for YUV colors.
- */
-#define DDCKEYCAPS_SRCBLTYUV                   0x00001000l
-
-/*
- * Supports overlays using the color key for the source with this
- * overlay surface for RGB colors.
- */
-#define DDCKEYCAPS_SRCOVERLAY                  0x00002000l
-
-/*
- * Supports overlays using a color space as the source color key for
- * the overlay surface for RGB colors.
- */
-#define DDCKEYCAPS_SRCOVERLAYCLRSPACE          0x00004000l
-
-/*
- * Supports overlays using a color space as the source color key for
- * the overlay surface for YUV colors.
- */
-#define DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV       0x00008000l
-
-/*
- * Supports only one active source color key value for visible
- * overlay surfaces.
- */
-#define DDCKEYCAPS_SRCOVERLAYONEACTIVE         0x00010000l
-
-/*
- * Supports overlays using the color key for the source with this
- * overlay surface for YUV colors.
- */
-#define DDCKEYCAPS_SRCOVERLAYYUV               0x00020000l
-
-/*
- * there are no bandwidth trade-offs for using colorkey with an overlay
- */
-#define DDCKEYCAPS_NOCOSTOVERLAY               0x00040000l
-
-
-/****************************************************************************
- *
- * DIRECTDRAW PIXELFORMAT FLAGS
- *
- ****************************************************************************/
-
-/*
- * The surface has alpha channel information in the pixel format.
- */
-#define DDPF_ALPHAPIXELS                       0x00000001l
-
-/*
- * The pixel format contains alpha only information
- */
-#define DDPF_ALPHA                             0x00000002l
-
-/*
- * The FourCC code is valid.
- */
-#define DDPF_FOURCC                            0x00000004l
-
-/*
- * The surface is 4-bit color indexed.
- */
-#define DDPF_PALETTEINDEXED4                   0x00000008l
-
-/*
- * The surface is indexed into a palette which stores indices
- * into the destination surface's 8-bit palette.
- */
-#define DDPF_PALETTEINDEXEDTO8                 0x00000010l
-
-/*
- * The surface is 8-bit color indexed.
- */
-#define DDPF_PALETTEINDEXED8                   0x00000020l
-
-/*
- * The RGB data in the pixel format structure is valid.
- */
-#define DDPF_RGB                               0x00000040l
-
-/*
- * The surface will accept pixel data in the format specified
- * and compress it during the write.
- */
-#define DDPF_COMPRESSED                                0x00000080l
-
-/*
- * The surface will accept RGB data and translate it during
- * the write to YUV data.  The format of the data to be written
- * will be contained in the pixel format structure.  The DDPF_RGB
- * flag will be set.
- */
-#define DDPF_RGBTOYUV                          0x00000100l
-
-/*
- * pixel format is YUV - YUV data in pixel format struct is valid
- */
-#define DDPF_YUV                               0x00000200l
-
-/*
- * pixel format is a z buffer only surface
- */
-#define DDPF_ZBUFFER                           0x00000400l
-
-/*
- * The surface is 1-bit color indexed.
- */
-#define DDPF_PALETTEINDEXED1                   0x00000800l
-
-/*
- * The surface is 2-bit color indexed.
- */
-#define DDPF_PALETTEINDEXED2                   0x00001000l
-
-/*
- * The surface contains Z information in the pixels
- */
-#define DDPF_ZPIXELS                           0x00002000l
-
-/*
- * The surface contains stencil information along with Z
- */
-#define DDPF_STENCILBUFFER                     0x00004000l
-
-/*
- * Premultiplied alpha format -- the color components have been
- * premultiplied by the alpha component.
- */
-#define DDPF_ALPHAPREMULT                      0x00008000l
-
-
-/*
- * Luminance data in the pixel format is valid.
- * Use this flag for luminance-only or luminance+alpha surfaces,
- * the bit depth is then ddpf.dwLuminanceBitCount.
- */
-#define DDPF_LUMINANCE                          0x00020000l
-
-/*
- * Luminance data in the pixel format is valid.
- * Use this flag when hanging luminance off bumpmap surfaces,
- * the bit mask for the luminance portion of the pixel is then
- * ddpf.dwBumpLuminanceBitMask
- */
-#define DDPF_BUMPLUMINANCE                      0x00040000l
-
-/*
- * Bump map dUdV data in the pixel format is valid.
- */
-#define DDPF_BUMPDUDV                           0x00080000l
-
-/*===========================================================================
- *
- *
- * DIRECTDRAW CALLBACK FLAGS
- *
- *
- *==========================================================================*/
-
-/****************************************************************************
- *
- * DIRECTDRAW ENUMSURFACES FLAGS
- *
- ****************************************************************************/
-
-/*
- * Enumerate all of the surfaces that meet the search criterion.
- */
-#define DDENUMSURFACES_ALL                     0x00000001l
-
-/*
- * A search hit is a surface that matches the surface description.
- */
-#define DDENUMSURFACES_MATCH                   0x00000002l
-
-/*
- * A search hit is a surface that does not match the surface description.
- */
-#define DDENUMSURFACES_NOMATCH                 0x00000004l
-
-/*
- * Enumerate the first surface that can be created which meets the search criterion.
- */
-#define DDENUMSURFACES_CANBECREATED            0x00000008l
-
-/*
- * Enumerate the surfaces that already exist that meet the search criterion.
- */
-#define DDENUMSURFACES_DOESEXIST               0x00000010l
-
-
-/****************************************************************************
- *
- * DIRECTDRAW SETDISPLAYMODE FLAGS
- *
- ****************************************************************************/
-
-/*
- * The desired mode is a standard VGA mode
- */
-#define DDSDM_STANDARDVGAMODE                   0x00000001l
-
-
-
-/****************************************************************************
- *
- * DIRECTDRAW ENUMDISPLAYMODES FLAGS
- *
- ****************************************************************************/
-
-/*
- * Enumerate Modes with different refresh rates.  EnumDisplayModes guarantees
- * that a particular mode will be enumerated only once.  This flag specifies whether
- * the refresh rate is taken into account when determining if a mode is unique.
- */
-#define DDEDM_REFRESHRATES                     0x00000001l
-
-/*
- * Enumerate VGA modes. Specify this flag if you wish to enumerate supported VGA
- * modes such as mode 0x13 in addition to the usual ModeX modes (which are always
- * enumerated if the application has previously called SetCooperativeLevel with the
- * DDSCL_ALLOWMODEX flag set).
- */
-#define DDEDM_STANDARDVGAMODES                  0x00000002L
-
-
-/****************************************************************************
- *
- * DIRECTDRAW SETCOOPERATIVELEVEL FLAGS
- *
- ****************************************************************************/
-
-/*
- * Exclusive mode owner will be responsible for the entire primary surface.
- * GDI can be ignored. used with DD
- */
-#define DDSCL_FULLSCREEN                       0x00000001l
-
-/*
- * allow CTRL_ALT_DEL to work while in fullscreen exclusive mode
- */
-#define DDSCL_ALLOWREBOOT                      0x00000002l
-
-/*
- * prevents DDRAW from modifying the application window.
- * prevents DDRAW from minimize/restore the application window on activation.
- */
-#define DDSCL_NOWINDOWCHANGES                  0x00000004l
-
-/*
- * app wants to work as a regular Windows application
- */
-#define DDSCL_NORMAL                           0x00000008l
-
-/*
- * app wants exclusive access
- */
-#define DDSCL_EXCLUSIVE                         0x00000010l
-
-
-/*
- * app can deal with non-windows display modes
- */
-#define DDSCL_ALLOWMODEX                        0x00000040l
-
-/*
- * this window will receive the focus messages
- */
-#define DDSCL_SETFOCUSWINDOW                    0x00000080l
-
-/*
- * this window is associated with the DDRAW object and will
- * cover the screen in fullscreen mode
- */
-#define DDSCL_SETDEVICEWINDOW                   0x00000100l
-
-/*
- * app wants DDRAW to create a window to be associated with the
- * DDRAW object
- */
-#define DDSCL_CREATEDEVICEWINDOW                0x00000200l
-
-/*
- * App explicitly asks DDRAW/D3D to be multithread safe. This makes D3D
- * take the global crtisec more frequently.
- */
-#define DDSCL_MULTITHREADED                     0x00000400l
-
-/*
- * App hints that it would like to keep the FPU set up for optimal Direct3D
- * performance (single precision and exceptions disabled) so Direct3D
- * does not need to explicitly set the FPU each time
- */
-#define DDSCL_FPUSETUP                          0x00000800l
-
-
-/****************************************************************************
- *
- * DIRECTDRAW BLT FLAGS
- *
- ****************************************************************************/
-
-/*
- * Use the alpha information in the pixel format or the alpha channel surface
- * attached to the destination surface as the alpha channel for this blt.
- */
-#define DDBLT_ALPHADEST                                0x00000001l
-
-/*
- * Use the dwConstAlphaDest field in the DDBLTFX structure as the alpha channel
- * for the destination surface for this blt.
- */
-#define DDBLT_ALPHADESTCONSTOVERRIDE           0x00000002l
-
-/*
- * The NEG suffix indicates that the destination surface becomes more
- * transparent as the alpha value increases. (0 is opaque)
- */
-#define DDBLT_ALPHADESTNEG                     0x00000004l
-
-/*
- * Use the lpDDSAlphaDest field in the DDBLTFX structure as the alpha
- * channel for the destination for this blt.
- */
-#define DDBLT_ALPHADESTSURFACEOVERRIDE         0x00000008l
-
-/*
- * Use the dwAlphaEdgeBlend field in the DDBLTFX structure as the alpha channel
- * for the edges of the image that border the color key colors.
- */
-#define DDBLT_ALPHAEDGEBLEND                   0x00000010l
-
-/*
- * Use the alpha information in the pixel format or the alpha channel surface
- * attached to the source surface as the alpha channel for this blt.
- */
-#define DDBLT_ALPHASRC                         0x00000020l
-
-/*
- * Use the dwConstAlphaSrc field in the DDBLTFX structure as the alpha channel
- * for the source for this blt.
- */
-#define DDBLT_ALPHASRCCONSTOVERRIDE            0x00000040l
-
-/*
- * The NEG suffix indicates that the source surface becomes more transparent
- * as the alpha value increases. (0 is opaque)
- */
-#define DDBLT_ALPHASRCNEG                      0x00000080l
-
-/*
- * Use the lpDDSAlphaSrc field in the DDBLTFX structure as the alpha channel
- * for the source for this blt.
- */
-#define DDBLT_ALPHASRCSURFACEOVERRIDE          0x00000100l
-
-/*
- * Do this blt asynchronously through the FIFO in the order received.  If
- * there is no room in the hardware FIFO fail the call.
- */
-#define DDBLT_ASYNC                            0x00000200l
-
-/*
- * Uses the dwFillColor field in the DDBLTFX structure as the RGB color
- * to fill the destination rectangle on the destination surface with.
- */
-#define DDBLT_COLORFILL                                0x00000400l
-
-/*
- * Uses the dwDDFX field in the DDBLTFX structure to specify the effects
- * to use for the blt.
- */
-#define DDBLT_DDFX                             0x00000800l
-
-/*
- * Uses the dwDDROPS field in the DDBLTFX structure to specify the ROPS
- * that are not part of the Win32 API.
- */
-#define DDBLT_DDROPS                           0x00001000l
-
-/*
- * Use the color key associated with the destination surface.
- */
-#define DDBLT_KEYDEST                          0x00002000l
-
-/*
- * Use the dckDestColorkey field in the DDBLTFX structure as the color key
- * for the destination surface.
- */
-#define DDBLT_KEYDESTOVERRIDE                  0x00004000l
-
-/*
- * Use the color key associated with the source surface.
- */
-#define DDBLT_KEYSRC                           0x00008000l
-
-/*
- * Use the dckSrcColorkey field in the DDBLTFX structure as the color key
- * for the source surface.
- */
-#define DDBLT_KEYSRCOVERRIDE                   0x00010000l
-
-/*
- * Use the dwROP field in the DDBLTFX structure for the raster operation
- * for this blt.  These ROPs are the same as the ones defined in the Win32 API.
- */
-#define DDBLT_ROP                              0x00020000l
-
-/*
- * Use the dwRotationAngle field in the DDBLTFX structure as the angle
- * (specified in 1/100th of a degree) to rotate the surface.
- */
-#define DDBLT_ROTATIONANGLE                    0x00040000l
-
-/*
- * Z-buffered blt using the z-buffers attached to the source and destination
- * surfaces and the dwZBufferOpCode field in the DDBLTFX structure as the
- * z-buffer opcode.
- */
-#define DDBLT_ZBUFFER                          0x00080000l
-
-/*
- * Z-buffered blt using the dwConstDest Zfield and the dwZBufferOpCode field
- * in the DDBLTFX structure as the z-buffer and z-buffer opcode respectively
- * for the destination.
- */
-#define DDBLT_ZBUFFERDESTCONSTOVERRIDE         0x00100000l
-
-/*
- * Z-buffered blt using the lpDDSDestZBuffer field and the dwZBufferOpCode
- * field in the DDBLTFX structure as the z-buffer and z-buffer opcode
- * respectively for the destination.
- */
-#define DDBLT_ZBUFFERDESTOVERRIDE              0x00200000l
-
-/*
- * Z-buffered blt using the dwConstSrcZ field and the dwZBufferOpCode field
- * in the DDBLTFX structure as the z-buffer and z-buffer opcode respectively
- * for the source.
- */
-#define DDBLT_ZBUFFERSRCCONSTOVERRIDE          0x00400000l
-
-/*
- * Z-buffered blt using the lpDDSSrcZBuffer field and the dwZBufferOpCode
- * field in the DDBLTFX structure as the z-buffer and z-buffer opcode
- * respectively for the source.
- */
-#define DDBLT_ZBUFFERSRCOVERRIDE                0x00800000l
-
-/*
- * wait until the device is ready to handle the blt
- * this will cause blt to not return DDERR_WASSTILLDRAWING
- */
-#define DDBLT_WAIT                              0x01000000l
-
-/*
- * Uses the dwFillDepth field in the DDBLTFX structure as the depth value
- * to fill the destination rectangle on the destination Z-buffer surface
- * with.
- */
-#define DDBLT_DEPTHFILL                                0x02000000l
-
-
-/****************************************************************************
- *
- * BLTFAST FLAGS
- *
- ****************************************************************************/
-
-#define DDBLTFAST_NOCOLORKEY                    0x00000000
-#define DDBLTFAST_SRCCOLORKEY                   0x00000001
-#define DDBLTFAST_DESTCOLORKEY                  0x00000002
-#define DDBLTFAST_WAIT                          0x00000010
-
-
-
-
-/****************************************************************************
- *
- * FLIP FLAGS
- *
- ****************************************************************************/
-
-#define DDFLIP_WAIT                          0x00000001L
-
-/*
- * Indicates that the target surface contains the even field of video data.
- * This flag is only valid with an overlay surface.
- */
-#define DDFLIP_EVEN                          0x00000002L
-
-/*
- * Indicates that the target surface contains the odd field of video data.
- * This flag is only valid with an overlay surface.
- */
-#define DDFLIP_ODD                           0x00000004L
-
-/*
- * Causes DirectDraw to perform the physical flip immediately and return
- * to the application. Typically, what was the front buffer but is now the back
- * buffer will still be visible (depending on timing) until the next vertical 
- * retrace. Subsequent operations involving the two flipped surfaces will
- * not check to see if the physical flip has finished (i.e. will not return
- * DDERR_WASSTILLDRAWING for that reason (but may for other reasons)).
- * This allows an application to perform Flips at a higher frequency than the
- * monitor refresh rate, but may introduce visible artifacts.
- * Only effective if DDCAPS2_FLIPNOVSYNC is set. If that bit is not set, 
- * DDFLIP_NOVSYNC has no effect.
- */
-#define DDFLIP_NOVSYNC                       0x00000008L
-
-
-/*
- * Flip Interval Flags. These flags indicate how many vertical retraces to wait between
- * each flip. The default is one. DirectDraw will return DDERR_WASSTILLDRAWING for each
- * surface involved in the flip until the specified number of vertical retraces has
- * ocurred. Only effective if DDCAPS2_FLIPINTERVAL is set. If that bit is not set, 
- * DDFLIP_INTERVALn has no effect.
- */
-
-/*
- * DirectDraw will flip on every other vertical sync
- */
-#define DDFLIP_INTERVAL2                     0x02000000L
-
-
-/*
- * DirectDraw will flip on every third vertical sync
- */
-#define DDFLIP_INTERVAL3                     0x03000000L
-
-
-/*
- * DirectDraw will flip on every fourth vertical sync
- */
-#define DDFLIP_INTERVAL4                     0x04000000L
-
-
-
-/****************************************************************************
- *
- * DIRECTDRAW SURFACE OVERLAY FLAGS
- *
- ****************************************************************************/
-
-/*
- * Use the alpha information in the pixel format or the alpha channel surface
- * attached to the destination surface as the alpha channel for the
- * destination overlay.
- */
-#define DDOVER_ALPHADEST                       0x00000001l
-
-/*
- * Use the dwConstAlphaDest field in the DDOVERLAYFX structure as the
- * destination alpha channel for this overlay.
- */
-#define DDOVER_ALPHADESTCONSTOVERRIDE          0x00000002l
-
-/*
- * The NEG suffix indicates that the destination surface becomes more
- * transparent as the alpha value increases.
- */
-#define DDOVER_ALPHADESTNEG                    0x00000004l
-
-/*
- * Use the lpDDSAlphaDest field in the DDOVERLAYFX structure as the alpha
- * channel destination for this overlay.
- */
-#define DDOVER_ALPHADESTSURFACEOVERRIDE                0x00000008l
-
-/*
- * Use the dwAlphaEdgeBlend field in the DDOVERLAYFX structure as the alpha
- * channel for the edges of the image that border the color key colors.
- */
-#define DDOVER_ALPHAEDGEBLEND                  0x00000010l
-
-/*
- * Use the alpha information in the pixel format or the alpha channel surface
- * attached to the source surface as the source alpha channel for this overlay.
- */
-#define DDOVER_ALPHASRC                                0x00000020l
-
-/*
- * Use the dwConstAlphaSrc field in the DDOVERLAYFX structure as the source
- * alpha channel for this overlay.
- */
-#define DDOVER_ALPHASRCCONSTOVERRIDE           0x00000040l
-
-/*
- * The NEG suffix indicates that the source surface becomes more transparent
- * as the alpha value increases.
- */
-#define DDOVER_ALPHASRCNEG                     0x00000080l
-
-/*
- * Use the lpDDSAlphaSrc field in the DDOVERLAYFX structure as the alpha channel
- * source for this overlay.
- */
-#define DDOVER_ALPHASRCSURFACEOVERRIDE         0x00000100l
-
-/*
- * Turn this overlay off.
- */
-#define DDOVER_HIDE                            0x00000200l
-
-/*
- * Use the color key associated with the destination surface.
- */
-#define DDOVER_KEYDEST                         0x00000400l
-
-/*
- * Use the dckDestColorkey field in the DDOVERLAYFX structure as the color key
- * for the destination surface
- */
-#define DDOVER_KEYDESTOVERRIDE                 0x00000800l
-
-/*
- * Use the color key associated with the source surface.
- */
-#define DDOVER_KEYSRC                          0x00001000l
-
-/*
- * Use the dckSrcColorkey field in the DDOVERLAYFX structure as the color key
- * for the source surface.
- */
-#define DDOVER_KEYSRCOVERRIDE                  0x00002000l
-
-/*
- * Turn this overlay on.
- */
-#define DDOVER_SHOW                            0x00004000l
-
-/*
- * Add a dirty rect to an emulated overlayed surface.
- */
-#define DDOVER_ADDDIRTYRECT                     0x00008000l
-
-/*
- * Redraw all dirty rects on an emulated overlayed surface.
- */
-#define DDOVER_REFRESHDIRTYRECTS               0x00010000l
-
-/*
- * Redraw the entire surface on an emulated overlayed surface.
- */
-#define DDOVER_REFRESHALL                      0x00020000l
-
-
-/*
- * Use the overlay FX flags to define special overlay FX
- */
-#define DDOVER_DDFX                            0x00080000l
-
-/*
- * Autoflip the overlay when ever the video port autoflips
- */
-#define DDOVER_AUTOFLIP                        0x00100000l
-
-/*
- * Display each field of video port data individually without
- * causing any jittery artifacts
- */
-#define DDOVER_BOB                             0x00200000l
-
-/*
- * Indicates that bob/weave decisions should not be overridden by other
- * interfaces.
- */
-#define DDOVER_OVERRIDEBOBWEAVE                        0x00400000l
-
-/*
- * Indicates that the surface memory is composed of interleaved fields.
- */
-#define DDOVER_INTERLEAVED                     0x00800000l
-
-/*
- * Indicates that bob will be performed using hardware rather than
- * software or emulated.
- */
-#define DDOVER_BOBHARDWARE                     0x01000000l
-
-
-
-
-
-
-
-
-/****************************************************************************
- *
- * DIRECTDRAWSURFACE LOCK FLAGS
- *
- ****************************************************************************/
-
-/*
- * The default.         Set to indicate that Lock should return a valid memory pointer
- * to the top of the specified rectangle.  If no rectangle is specified then a
- * pointer to the top of the surface is returned.
- */
-#define DDLOCK_SURFACEMEMORYPTR                        0x00000000L     // default
-
-/*
- * Set to indicate that Lock should wait until it can obtain a valid memory
- * pointer before returning.  If this bit is set, Lock will never return
- * DDERR_WASSTILLDRAWING.
- */
-#define DDLOCK_WAIT                            0x00000001L
-
-/*
- * Set if an event handle is being passed to Lock.  Lock will trigger the event
- * when it can return the surface memory pointer requested.
- */
-#define DDLOCK_EVENT                           0x00000002L
-
-/*
- * Indicates that the surface being locked will only be read from.
- */
-#define DDLOCK_READONLY                                0x00000010L
-
-/*
- * Indicates that the surface being locked will only be written to
- */
-#define DDLOCK_WRITEONLY                       0x00000020L
-
-
-/*
- * Indicates that a system wide lock should not be taken when this surface
- * is locked. This has several advantages (cursor responsiveness, ability
- * to call more Windows functions, easier debugging) when locking video
- * memory surfaces. However, an application specifying this flag must
- * comply with a number of conditions documented in the help file.
- * Furthermore, this flag cannot be specified when locking the primary.
- */
-#define DDLOCK_NOSYSLOCK                        0x00000800L
-
-
-/****************************************************************************
- *
- * DIRECTDRAWSURFACE PAGELOCK FLAGS
- *
- ****************************************************************************/
-
-/*
- * No flags defined at present
- */
-
-
-/****************************************************************************
- *
- * DIRECTDRAWSURFACE PAGEUNLOCK FLAGS
- *
- ****************************************************************************/
-
-/*
- * No flags defined at present
- */
-
-
-/****************************************************************************
- *
- * DIRECTDRAWSURFACE BLT FX FLAGS
- *
- ****************************************************************************/
-
-/*
- * If stretching, use arithmetic stretching along the Y axis for this blt.
- */
-#define DDBLTFX_ARITHSTRETCHY                  0x00000001l
-
-/*
- * Do this blt mirroring the surface left to right.  Spin the
- * surface around its y-axis.
- */
-#define DDBLTFX_MIRRORLEFTRIGHT                        0x00000002l
-
-/*
- * Do this blt mirroring the surface up and down.  Spin the surface
- * around its x-axis.
- */
-#define DDBLTFX_MIRRORUPDOWN                   0x00000004l
-
-/*
- * Schedule this blt to avoid tearing.
- */
-#define DDBLTFX_NOTEARING                      0x00000008l
-
-/*
- * Do this blt rotating the surface one hundred and eighty degrees.
- */
-#define DDBLTFX_ROTATE180                      0x00000010l
-
-/*
- * Do this blt rotating the surface two hundred and seventy degrees.
- */
-#define DDBLTFX_ROTATE270                      0x00000020l
-
-/*
- * Do this blt rotating the surface ninety degrees.
- */
-#define DDBLTFX_ROTATE90                       0x00000040l
-
-/*
- * Do this z blt using dwZBufferLow and dwZBufferHigh as  range values
- * specified to limit the bits copied from the source surface.
- */
-#define DDBLTFX_ZBUFFERRANGE                   0x00000080l
-
-/*
- * Do this z blt adding the dwZBufferBaseDest to each of the sources z values
- * before comparing it with the desting z values.
- */
-#define DDBLTFX_ZBUFFERBASEDEST                        0x00000100l
-
-/****************************************************************************
- *
- * DIRECTDRAWSURFACE OVERLAY FX FLAGS
- *
- ****************************************************************************/
-
-/*
- * If stretching, use arithmetic stretching along the Y axis for this overlay.
- */
-#define DDOVERFX_ARITHSTRETCHY                 0x00000001l
-
-/*
- * Mirror the overlay across the vertical axis
- */
-#define DDOVERFX_MIRRORLEFTRIGHT               0x00000002l
-
-/*
- * Mirror the overlay across the horizontal axis
- */
-#define DDOVERFX_MIRRORUPDOWN                  0x00000004l
-
-/****************************************************************************
- *
- * Flags for dwDDFX member of DDSPRITEFX structure
- *
- ****************************************************************************/
-/*
- * Use affine transformation matrix in fTransform member.
- */
-#define DDSPRITEFX_AFFINETRANSFORM             0x00000001l
-
-/*
- * Use RGBA scaling factors in ddrgbaScaleFactors member.
- */
-#define DDSPRITEFX_RGBASCALING                 0x00000002l
-
-/*
- * Degrade RGBA scaling factors to accommodate driver's capabilities.
- */
-#define DDSPRITEFX_DEGRADERGBASCALING          0x00000004l
-
-/*
- * Do bilinear filtering of stretched or warped sprite.
- */
-#define DDSPRITEFX_BILINEARFILTER              0x00000008l
-
-/*
- * Do "blur" filtering of stretched or warped sprite.
- */
-#define DDSPRITEFX_BLURFILTER                  0x00000010l
-
-/*
- * Do "flat" filtering of stretched or warped sprite.
- */
-#define DDSPRITEFX_FLATFILTER                  0x00000020l
-
-/*
- * Degrade filtering operation to accommodate driver's capabilities.
- */
-#define DDSPRITEFX_DEGRADEFILTER               0x00000040l
-
-
-/****************************************************************************
- *
- * DIRECTDRAW WAITFORVERTICALBLANK FLAGS
- *
- ****************************************************************************/
-
-/*
- * return when the vertical blank interval begins
- */
-#define DDWAITVB_BLOCKBEGIN                    0x00000001l
-
-/*
- * set up an event to trigger when the vertical blank begins
- */
-#define DDWAITVB_BLOCKBEGINEVENT               0x00000002l
-
-/*
- * return when the vertical blank interval ends and display begins
- */
-#define DDWAITVB_BLOCKEND                      0x00000004l
-
-/****************************************************************************
- *
- * DIRECTDRAW GETFLIPSTATUS FLAGS
- *
- ****************************************************************************/
-
-/*
- * is it OK to flip now?
- */
-#define DDGFS_CANFLIP                  0x00000001l
-
-/*
- * is the last flip finished?
- */
-#define DDGFS_ISFLIPDONE               0x00000002l
-
-/****************************************************************************
- *
- * DIRECTDRAW GETBLTSTATUS FLAGS
- *
- ****************************************************************************/
-
-/*
- * is it OK to blt now?
- */
-#define DDGBS_CANBLT                   0x00000001l
-
-/*
- * is the blt to the surface finished?
- */
-#define DDGBS_ISBLTDONE                        0x00000002l
-
-
-/****************************************************************************
- *
- * DIRECTDRAW ENUMOVERLAYZORDER FLAGS
- *
- ****************************************************************************/
-
-/*
- * Enumerate overlays back to front.
- */
-#define DDENUMOVERLAYZ_BACKTOFRONT     0x00000000l
-
-/*
- * Enumerate overlays front to back
- */
-#define DDENUMOVERLAYZ_FRONTTOBACK     0x00000001l
-
-/****************************************************************************
- *
- * DIRECTDRAW UPDATEOVERLAYZORDER FLAGS
- *
- ****************************************************************************/
-
-/*
- * Send overlay to front
- */
-#define DDOVERZ_SENDTOFRONT            0x00000000l
-
-/*
- * Send overlay to back
- */
-#define DDOVERZ_SENDTOBACK             0x00000001l
-
-/*
- * Move Overlay forward
- */
-#define DDOVERZ_MOVEFORWARD            0x00000002l
-
-/*
- * Move Overlay backward
- */
-#define DDOVERZ_MOVEBACKWARD           0x00000003l
-
-/*
- * Move Overlay in front of relative surface
- */
-#define DDOVERZ_INSERTINFRONTOF                0x00000004l
-
-/*
- * Move Overlay in back of relative surface
- */
-#define DDOVERZ_INSERTINBACKOF         0x00000005l
-
-
-
-/****************************************************************************
- *
- * DIRECTDRAW SETGAMMARAMP FLAGS
- *
- ****************************************************************************/
-
-/*
- * Request calibrator to adjust the gamma ramp according to the physical
- * properties of the display so that the result should appear identical
- * on all systems.
- */
-#define DDSGR_CALIBRATE                        0x00000001L
-
-
-/*===========================================================================
- *
- *
- * DIRECTDRAW RETURN CODES
- *
- * The return values from DirectDraw Commands and Surface that return an HRESULT
- * are codes from DirectDraw concerning the results of the action
- * requested by DirectDraw.
- *
- *==========================================================================*/
-
-/*
- * Status is OK
- *
- * Issued by: DirectDraw Commands and all callbacks
- */
-#define DD_OK                                  0
-#define DD_FALSE                                S_FALSE
-
-/****************************************************************************
- *
- * DIRECTDRAW ENUMCALLBACK RETURN VALUES
- *
- * EnumCallback returns are used to control the flow of the DIRECTDRAW and
- * DIRECTDRAWSURFACE object enumerations.   They can only be returned by
- * enumeration callback routines.
- *
- ****************************************************************************/
-
-/*
- * stop the enumeration
- */
-#define DDENUMRET_CANCEL                       0
-
-/*
- * continue the enumeration
- */
-#define DDENUMRET_OK                           1
-
-/****************************************************************************
- *
- * DIRECTDRAW ERRORS
- *
- * Errors are represented by negative values and cannot be combined.
- *
- ****************************************************************************/
-
-/*
- * This object is already initialized
- */
-#define DDERR_ALREADYINITIALIZED               MAKE_DDHRESULT( 5 )
-
-/*
- * This surface can not be attached to the requested surface.
- */
-#define DDERR_CANNOTATTACHSURFACE              MAKE_DDHRESULT( 10 )
-
-/*
- * This surface can not be detached from the requested surface.
- */
-#define DDERR_CANNOTDETACHSURFACE              MAKE_DDHRESULT( 20 )
-
-/*
- * Support is currently not available.
- */
-#define DDERR_CURRENTLYNOTAVAIL                        MAKE_DDHRESULT( 40 )
-
-/*
- * An exception was encountered while performing the requested operation
- */
-#define DDERR_EXCEPTION                                MAKE_DDHRESULT( 55 )
-
-/*
- * Generic failure.
- */
-#define DDERR_GENERIC                          E_FAIL
-
-/*
- * Height of rectangle provided is not a multiple of reqd alignment
- */
-#define DDERR_HEIGHTALIGN                      MAKE_DDHRESULT( 90 )
-
-/*
- * Unable to match primary surface creation request with existing
- * primary surface.
- */
-#define DDERR_INCOMPATIBLEPRIMARY              MAKE_DDHRESULT( 95 )
-
-/*
- * One or more of the caps bits passed to the callback are incorrect.
- */
-#define DDERR_INVALIDCAPS                      MAKE_DDHRESULT( 100 )
-
-/*
- * DirectDraw does not support provided Cliplist.
- */
-#define DDERR_INVALIDCLIPLIST                  MAKE_DDHRESULT( 110 )
-
-/*
- * DirectDraw does not support the requested mode
- */
-#define DDERR_INVALIDMODE                      MAKE_DDHRESULT( 120 )
-
-/*
- * DirectDraw received a pointer that was an invalid DIRECTDRAW object.
- */
-#define DDERR_INVALIDOBJECT                    MAKE_DDHRESULT( 130 )
-
-/*
- * One or more of the parameters passed to the callback function are
- * incorrect.
- */
-#define DDERR_INVALIDPARAMS                    E_INVALIDARG
-
-/*
- * pixel format was invalid as specified
- */
-#define DDERR_INVALIDPIXELFORMAT               MAKE_DDHRESULT( 145 )
-
-/*
- * Rectangle provided was invalid.
- */
-#define DDERR_INVALIDRECT                      MAKE_DDHRESULT( 150 )
-
-/*
- * Operation could not be carried out because one or more surfaces are locked
- */
-#define DDERR_LOCKEDSURFACES                   MAKE_DDHRESULT( 160 )
-
-/*
- * There is no 3D present.
- */
-#define DDERR_NO3D                             MAKE_DDHRESULT( 170 )
-
-/*
- * Operation could not be carried out because there is no alpha accleration
- * hardware present or available.
- */
-#define DDERR_NOALPHAHW                                MAKE_DDHRESULT( 180 )
-
-
-/*
- * no clip list available
- */
-#define DDERR_NOCLIPLIST                       MAKE_DDHRESULT( 205 )
-
-/*
- * Operation could not be carried out because there is no color conversion
- * hardware present or available.
- */
-#define DDERR_NOCOLORCONVHW                    MAKE_DDHRESULT( 210 )
-
-/*
- * Create function called without DirectDraw object method SetCooperativeLevel
- * being called.
- */
-#define DDERR_NOCOOPERATIVELEVELSET            MAKE_DDHRESULT( 212 )
-
-/*
- * Surface doesn't currently have a color key
- */
-#define DDERR_NOCOLORKEY                       MAKE_DDHRESULT( 215 )
-
-/*
- * Operation could not be carried out because there is no hardware support
- * of the dest color key.
- */
-#define DDERR_NOCOLORKEYHW                     MAKE_DDHRESULT( 220 )
-
-/*
- * No DirectDraw support possible with current display driver
- */
-#define DDERR_NODIRECTDRAWSUPPORT              MAKE_DDHRESULT( 222 )
-
-/*
- * Operation requires the application to have exclusive mode but the
- * application does not have exclusive mode.
- */
-#define DDERR_NOEXCLUSIVEMODE                  MAKE_DDHRESULT( 225 )
-
-/*
- * Flipping visible surfaces is not supported.
- */
-#define DDERR_NOFLIPHW                         MAKE_DDHRESULT( 230 )
-
-/*
- * There is no GDI present.
- */
-#define DDERR_NOGDI                            MAKE_DDHRESULT( 240 )
-
-/*
- * Operation could not be carried out because there is no hardware present
- * or available.
- */
-#define DDERR_NOMIRRORHW                       MAKE_DDHRESULT( 250 )
-
-/*
- * Requested item was not found
- */
-#define DDERR_NOTFOUND                         MAKE_DDHRESULT( 255 )
-
-/*
- * Operation could not be carried out because there is no overlay hardware
- * present or available.
- */
-#define DDERR_NOOVERLAYHW                      MAKE_DDHRESULT( 260 )
-
-/*
- * Operation could not be carried out because the source and destination
- * rectangles are on the same surface and overlap each other.
- */
-#define DDERR_OVERLAPPINGRECTS                 MAKE_DDHRESULT( 270 )
-
-/*
- * Operation could not be carried out because there is no appropriate raster
- * op hardware present or available.
- */
-#define DDERR_NORASTEROPHW                     MAKE_DDHRESULT( 280 )
-
-/*
- * Operation could not be carried out because there is no rotation hardware
- * present or available.
- */
-#define DDERR_NOROTATIONHW                     MAKE_DDHRESULT( 290 )
-
-/*
- * Operation could not be carried out because there is no hardware support
- * for stretching
- */
-#define DDERR_NOSTRETCHHW                      MAKE_DDHRESULT( 310 )
-
-/*
- * DirectDrawSurface is not in 4 bit color palette and the requested operation
- * requires 4 bit color palette.
- */
-#define DDERR_NOT4BITCOLOR                     MAKE_DDHRESULT( 316 )
-
-/*
- * DirectDrawSurface is not in 4 bit color index palette and the requested
- * operation requires 4 bit color index palette.
- */
-#define DDERR_NOT4BITCOLORINDEX                        MAKE_DDHRESULT( 317 )
-
-/*
- * DirectDraw Surface is not in 8 bit color mode and the requested operation
- * requires 8 bit color.
- */
-#define DDERR_NOT8BITCOLOR                     MAKE_DDHRESULT( 320 )
-
-/*
- * Operation could not be carried out because there is no texture mapping
- * hardware present or available.
- */
-#define DDERR_NOTEXTUREHW                      MAKE_DDHRESULT( 330 )
-
-/*
- * Operation could not be carried out because there is no hardware support
- * for vertical blank synchronized operations.
- */
-#define DDERR_NOVSYNCHW                                MAKE_DDHRESULT( 335 )
-
-/*
- * Operation could not be carried out because there is no hardware support
- * for zbuffer blting.
- */
-#define DDERR_NOZBUFFERHW                      MAKE_DDHRESULT( 340 )
-
-/*
- * Overlay surfaces could not be z layered based on their BltOrder because
- * the hardware does not support z layering of overlays.
- */
-#define DDERR_NOZOVERLAYHW                     MAKE_DDHRESULT( 350 )
-
-/*
- * The hardware needed for the requested operation has already been
- * allocated.
- */
-#define DDERR_OUTOFCAPS                                MAKE_DDHRESULT( 360 )
-
-/*
- * DirectDraw does not have enough memory to perform the operation.
- */
-#define DDERR_OUTOFMEMORY                      E_OUTOFMEMORY
-
-/*
- * DirectDraw does not have enough memory to perform the operation.
- */
-#define DDERR_OUTOFVIDEOMEMORY                 MAKE_DDHRESULT( 380 )
-
-/*
- * hardware does not support clipped overlays
- */
-#define DDERR_OVERLAYCANTCLIP                  MAKE_DDHRESULT( 382 )
-
-/*
- * Can only have ony color key active at one time for overlays
- */
-#define DDERR_OVERLAYCOLORKEYONLYONEACTIVE     MAKE_DDHRESULT( 384 )
-
-/*
- * Access to this palette is being refused because the palette is already
- * locked by another thread.
- */
-#define DDERR_PALETTEBUSY                      MAKE_DDHRESULT( 387 )
-
-/*
- * No src color key specified for this operation.
- */
-#define DDERR_COLORKEYNOTSET                   MAKE_DDHRESULT( 400 )
-
-/*
- * This surface is already attached to the surface it is being attached to.
- */
-#define DDERR_SURFACEALREADYATTACHED           MAKE_DDHRESULT( 410 )
-
-/*
- * This surface is already a dependency of the surface it is being made a
- * dependency of.
- */
-#define DDERR_SURFACEALREADYDEPENDENT          MAKE_DDHRESULT( 420 )
-
-/*
- * Access to this surface is being refused because the surface is already
- * locked by another thread.
- */
-#define DDERR_SURFACEBUSY                      MAKE_DDHRESULT( 430 )
-
-/*
- * Access to this surface is being refused because no driver exists
- * which can supply a pointer to the surface.
- * This is most likely to happen when attempting to lock the primary
- * surface when no DCI provider is present.
- * Will also happen on attempts to lock an optimized surface.
- */
-#define DDERR_CANTLOCKSURFACE                   MAKE_DDHRESULT( 435 )
-
-/*
- * Access to Surface refused because Surface is obscured.
- */
-#define DDERR_SURFACEISOBSCURED                        MAKE_DDHRESULT( 440 )
-
-/*
- * Access to this surface is being refused because the surface is gone.
- * The DIRECTDRAWSURFACE object representing this surface should
- * have Restore called on it.
- */
-#define DDERR_SURFACELOST                      MAKE_DDHRESULT( 450 )
-
-/*
- * The requested surface is not attached.
- */
-#define DDERR_SURFACENOTATTACHED               MAKE_DDHRESULT( 460 )
-
-/*
- * Height requested by DirectDraw is too large.
- */
-#define DDERR_TOOBIGHEIGHT                     MAKE_DDHRESULT( 470 )
-
-/*
- * Size requested by DirectDraw is too large --         The individual height and
- * width are OK.
- */
-#define DDERR_TOOBIGSIZE                       MAKE_DDHRESULT( 480 )
-
-/*
- * Width requested by DirectDraw is too large.
- */
-#define DDERR_TOOBIGWIDTH                      MAKE_DDHRESULT( 490 )
-
-/*
- * Action not supported.
- */
-#define DDERR_UNSUPPORTED                      E_NOTIMPL
-
-/*
- * FOURCC format requested is unsupported by DirectDraw
- */
-#define DDERR_UNSUPPORTEDFORMAT                        MAKE_DDHRESULT( 510 )
-
-/*
- * Bitmask in the pixel format requested is unsupported by DirectDraw
- */
-#define DDERR_UNSUPPORTEDMASK                  MAKE_DDHRESULT( 520 )
-
-/*
- * The specified stream contains invalid data
- */
-#define DDERR_INVALIDSTREAM                     MAKE_DDHRESULT( 521 )
-
-/*
- * vertical blank is in progress
- */
-#define DDERR_VERTICALBLANKINPROGRESS          MAKE_DDHRESULT( 537 )
-
-/*
- * Informs DirectDraw that the previous Blt which is transfering information
- * to or from this Surface is incomplete.
- */
-#define DDERR_WASSTILLDRAWING                  MAKE_DDHRESULT( 540 )
-
-
-/*
- * Rectangle provided was not horizontally aligned on reqd. boundary
- */
-#define DDERR_XALIGN                           MAKE_DDHRESULT( 560 )
-
-/*
- * The GUID passed to DirectDrawCreate is not a valid DirectDraw driver
- * identifier.
- */
-#define DDERR_INVALIDDIRECTDRAWGUID            MAKE_DDHRESULT( 561 )
-
-/*
- * A DirectDraw object representing this driver has already been created
- * for this process.
- */
-#define DDERR_DIRECTDRAWALREADYCREATED         MAKE_DDHRESULT( 562 )
-
-/*
- * A hardware only DirectDraw object creation was attempted but the driver
- * did not support any hardware.
- */
-#define DDERR_NODIRECTDRAWHW                   MAKE_DDHRESULT( 563 )
-
-/*
- * this process already has created a primary surface
- */
-#define DDERR_PRIMARYSURFACEALREADYEXISTS      MAKE_DDHRESULT( 564 )
-
-/*
- * software emulation not available.
- */
-#define DDERR_NOEMULATION                      MAKE_DDHRESULT( 565 )
-
-/*
- * region passed to Clipper::GetClipList is too small.
- */
-#define DDERR_REGIONTOOSMALL                   MAKE_DDHRESULT( 566 )
-
-/*
- * an attempt was made to set a clip list for a clipper objec that
- * is already monitoring an hwnd.
- */
-#define DDERR_CLIPPERISUSINGHWND               MAKE_DDHRESULT( 567 )
-
-/*
- * No clipper object attached to surface object
- */
-#define DDERR_NOCLIPPERATTACHED                        MAKE_DDHRESULT( 568 )
-
-/*
- * Clipper notification requires an HWND or
- * no HWND has previously been set as the CooperativeLevel HWND.
- */
-#define DDERR_NOHWND                           MAKE_DDHRESULT( 569 )
-
-/*
- * HWND used by DirectDraw CooperativeLevel has been subclassed,
- * this prevents DirectDraw from restoring state.
- */
-#define DDERR_HWNDSUBCLASSED                   MAKE_DDHRESULT( 570 )
-
-/*
- * The CooperativeLevel HWND has already been set.
- * It can not be reset while the process has surfaces or palettes created.
- */
-#define DDERR_HWNDALREADYSET                   MAKE_DDHRESULT( 571 )
-
-/*
- * No palette object attached to this surface.
- */
-#define DDERR_NOPALETTEATTACHED                        MAKE_DDHRESULT( 572 )
-
-/*
- * No hardware support for 16 or 256 color palettes.
- */
-#define DDERR_NOPALETTEHW                      MAKE_DDHRESULT( 573 )
-
-/*
- * If a clipper object is attached to the source surface passed into a
- * BltFast call.
- */
-#define DDERR_BLTFASTCANTCLIP                  MAKE_DDHRESULT( 574 )
-
-/*
- * No blter.
- */
-#define DDERR_NOBLTHW                          MAKE_DDHRESULT( 575 )
-
-/*
- * No DirectDraw ROP hardware.
- */
-#define DDERR_NODDROPSHW                       MAKE_DDHRESULT( 576 )
-
-/*
- * returned when GetOverlayPosition is called on a hidden overlay
- */
-#define DDERR_OVERLAYNOTVISIBLE                        MAKE_DDHRESULT( 577 )
-
-/*
- * returned when GetOverlayPosition is called on a overlay that UpdateOverlay
- * has never been called on to establish a destionation.
- */
-#define DDERR_NOOVERLAYDEST                    MAKE_DDHRESULT( 578 )
-
-/*
- * returned when the position of the overlay on the destionation is no longer
- * legal for that destionation.
- */
-#define DDERR_INVALIDPOSITION                  MAKE_DDHRESULT( 579 )
-
-/*
- * returned when an overlay member is called for a non-overlay surface
- */
-#define DDERR_NOTAOVERLAYSURFACE               MAKE_DDHRESULT( 580 )
-
-/*
- * An attempt was made to set the cooperative level when it was already
- * set to exclusive.
- */
-#define DDERR_EXCLUSIVEMODEALREADYSET          MAKE_DDHRESULT( 581 )
-
-/*
- * An attempt has been made to flip a surface that is not flippable.
- */
-#define DDERR_NOTFLIPPABLE                     MAKE_DDHRESULT( 582 )
-
-/*
- * Can't duplicate primary & 3D surfaces, or surfaces that are implicitly
- * created.
- */
-#define DDERR_CANTDUPLICATE                    MAKE_DDHRESULT( 583 )
-
-/*
- * Surface was not locked.  An attempt to unlock a surface that was not
- * locked at all, or by this process, has been attempted.
- */
-#define DDERR_NOTLOCKED                                MAKE_DDHRESULT( 584 )
-
-/*
- * Windows can not create any more DCs, or a DC was requested for a paltte-indexed
- * surface when the surface had no palette AND the display mode was not palette-indexed
- * (in this case DirectDraw cannot select a proper palette into the DC)
- */
-#define DDERR_CANTCREATEDC                     MAKE_DDHRESULT( 585 )
-
-/*
- * No DC was ever created for this surface.
- */
-#define DDERR_NODC                             MAKE_DDHRESULT( 586 )
-
-/*
- * This surface can not be restored because it was created in a different
- * mode.
- */
-#define DDERR_WRONGMODE                                MAKE_DDHRESULT( 587 )
-
-/*
- * This surface can not be restored because it is an implicitly created
- * surface.
- */
-#define DDERR_IMPLICITLYCREATED                        MAKE_DDHRESULT( 588 )
-
-/*
- * The surface being used is not a palette-based surface
- */
-#define DDERR_NOTPALETTIZED                    MAKE_DDHRESULT( 589 )
-
-
-/*
- * The display is currently in an unsupported mode
- */
-#define DDERR_UNSUPPORTEDMODE                  MAKE_DDHRESULT( 590 )
-
-/*
- * Operation could not be carried out because there is no mip-map
- * texture mapping hardware present or available.
- */
-#define DDERR_NOMIPMAPHW                       MAKE_DDHRESULT( 591 )
-
-/*
- * The requested action could not be performed because the surface was of
- * the wrong type.
- */
-#define DDERR_INVALIDSURFACETYPE                MAKE_DDHRESULT( 592 )
-
-
-
-/*
- * Device does not support optimized surfaces, therefore no video memory optimized surfaces
- */
-#define DDERR_NOOPTIMIZEHW                      MAKE_DDHRESULT( 600 )
-
-/*
- * Surface is an optimized surface, but has not yet been allocated any memory
- */
-#define DDERR_NOTLOADED                         MAKE_DDHRESULT( 601 )
-
-/*
- * Attempt was made to create or set a device window without first setting
- * the focus window
- */
-#define DDERR_NOFOCUSWINDOW                     MAKE_DDHRESULT( 602 )
-
-/*
- * A DC has already been returned for this surface. Only one DC can be
- * retrieved per surface.
- */
-#define DDERR_DCALREADYCREATED                 MAKE_DDHRESULT( 620 )
-
-/*
- * An attempt was made to allocate non-local video memory from a device
- * that does not support non-local video memory.
- */
-#define DDERR_NONONLOCALVIDMEM                  MAKE_DDHRESULT( 630 )
-
-/*
- * The attempt to page lock a surface failed.
- */
-#define DDERR_CANTPAGELOCK                     MAKE_DDHRESULT( 640 )
-
-
-/*
- * The attempt to page unlock a surface failed.
- */
-#define DDERR_CANTPAGEUNLOCK                   MAKE_DDHRESULT( 660 )
-
-/*
- * An attempt was made to page unlock a surface with no outstanding page locks.
- */
-#define DDERR_NOTPAGELOCKED                    MAKE_DDHRESULT( 680 )
-
-/*
- * There is more data available than the specified buffer size could hold
- */
-#define DDERR_MOREDATA                                 MAKE_DDHRESULT( 690 )
-
-/*
- * The data has expired and is therefore no longer valid.
- */
-#define DDERR_EXPIRED                           MAKE_DDHRESULT( 691 )
-
-/*
- * The video port is not active
- */
-#define DDERR_VIDEONOTACTIVE                           MAKE_DDHRESULT( 695 )
-
-/*
- * Surfaces created by one direct draw device cannot be used directly by
- * another direct draw device.
- */
-#define DDERR_DEVICEDOESNTOWNSURFACE                   MAKE_DDHRESULT( 699 )
-
-
-/*
- * An attempt was made to invoke an interface member of a DirectDraw object
- * created by CoCreateInstance() before it was initialized.
- */
-#define DDERR_NOTINITIALIZED                    CO_E_NOTINITIALIZED
-
-
-/* Alpha bit depth constants */
-
-
-#ifdef __cplusplus
-};
-#endif
-
-#endif
-
diff --git a/misc/builddeps/win32/dx/include/dinput.h b/misc/builddeps/win32/dx/include/dinput.h
deleted file mode 100644 (file)
index 5bf9f5a..0000000
+++ /dev/null
@@ -1,1849 +0,0 @@
-/****************************************************************************
- *
- *  Copyright (C) 1996-1997 Microsoft Corporation.  All Rights Reserved.
- *
- *  File:       dinput.h
- *  Content:    DirectInput include file
- *
- ****************************************************************************/
-
-#ifndef __DINPUT_INCLUDED__
-#define __DINPUT_INCLUDED__
-
-#ifndef DIJ_RINGZERO
-
-#ifdef _WIN32
-#define COM_NO_WINDOWS_H
-#include <objbase.h>
-#endif
-
-#endif /* DIJ_RINGZERO */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef DIRECTINPUT_VERSION
-#define DIRECTINPUT_VERSION         0x0500
-#endif
-
-#ifndef DIJ_RINGZERO
-/****************************************************************************
- *
- *      Class IDs
- *
- ****************************************************************************/
-
-DEFINE_GUID(CLSID_DirectInput,      0x25E609E0,0xB259,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(CLSID_DirectInputDevice,0x25E609E1,0xB259,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-
-/****************************************************************************
- *
- *      Interfaces
- *
- ****************************************************************************/
-
-DEFINE_GUID(IID_IDirectInputA,     0x89521360,0xAA8A,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(IID_IDirectInputW,     0x89521361,0xAA8A,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(IID_IDirectInput2A,    0x5944E662,0xAA8A,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(IID_IDirectInput2W,    0x5944E663,0xAA8A,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-
-DEFINE_GUID(IID_IDirectInputDeviceA, 0x5944E680,0xC92E,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(IID_IDirectInputDeviceW, 0x5944E681,0xC92E,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(IID_IDirectInputDevice2A,0x5944E682,0xC92E,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(IID_IDirectInputDevice2W,0x5944E683,0xC92E,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-
-DEFINE_GUID(IID_IDirectInputEffect,  0xE7E1F7C0,0x88D2,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
-
-/****************************************************************************
- *
- *      Predefined object types
- *
- ****************************************************************************/
-
-DEFINE_GUID(GUID_XAxis,   0xA36D02E0,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(GUID_YAxis,   0xA36D02E1,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(GUID_ZAxis,   0xA36D02E2,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(GUID_RxAxis,  0xA36D02F4,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(GUID_RyAxis,  0xA36D02F5,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(GUID_RzAxis,  0xA36D02E3,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(GUID_Slider,  0xA36D02E4,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-
-DEFINE_GUID(GUID_Button,  0xA36D02F0,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(GUID_Key,     0x55728220,0xD33C,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-
-DEFINE_GUID(GUID_POV,     0xA36D02F2,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-
-DEFINE_GUID(GUID_Unknown, 0xA36D02F3,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-
-/****************************************************************************
- *
- *      Predefined product GUIDs
- *
- ****************************************************************************/
-
-DEFINE_GUID(GUID_SysMouse,   0x6F1D2B60,0xD5A0,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(GUID_SysKeyboard,0x6F1D2B61,0xD5A0,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(GUID_Joystick   ,0x6F1D2B70,0xD5A0,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-
-/****************************************************************************
- *
- *      Predefined force feedback effects
- *
- ****************************************************************************/
-
-DEFINE_GUID(GUID_ConstantForce,0x13541C20,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
-DEFINE_GUID(GUID_RampForce,    0x13541C21,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
-DEFINE_GUID(GUID_Square,       0x13541C22,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
-DEFINE_GUID(GUID_Sine,         0x13541C23,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
-DEFINE_GUID(GUID_Triangle,     0x13541C24,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
-DEFINE_GUID(GUID_SawtoothUp,   0x13541C25,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
-DEFINE_GUID(GUID_SawtoothDown, 0x13541C26,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
-DEFINE_GUID(GUID_Spring,       0x13541C27,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
-DEFINE_GUID(GUID_Damper,       0x13541C28,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
-DEFINE_GUID(GUID_Inertia,      0x13541C29,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
-DEFINE_GUID(GUID_Friction,     0x13541C2A,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
-DEFINE_GUID(GUID_CustomForce,  0x13541C2B,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
-
-
-#endif /* DIJ_RINGZERO */
-
-/****************************************************************************
- *
- *      Interfaces and Structures...
- *
- ****************************************************************************/
-
-#if(DIRECTINPUT_VERSION >= 0x0500)
-
-/****************************************************************************
- *
- *      IDirectInputEffect
- *
- ****************************************************************************/
-
-#define DIEFT_ALL                   0x00000000
-
-#define DIEFT_CONSTANTFORCE         0x00000001
-#define DIEFT_RAMPFORCE             0x00000002
-#define DIEFT_PERIODIC              0x00000003
-#define DIEFT_CONDITION             0x00000004
-#define DIEFT_CUSTOMFORCE           0x00000005
-#define DIEFT_HARDWARE              0x000000FF
-
-#define DIEFT_FFATTACK              0x00000200
-#define DIEFT_FFFADE                0x00000400
-#define DIEFT_SATURATION            0x00000800
-#define DIEFT_POSNEGCOEFFICIENTS    0x00001000
-#define DIEFT_POSNEGSATURATION      0x00002000
-#define DIEFT_DEADBAND              0x00004000
-
-#define DIEFT_GETTYPE(n)            LOBYTE(n)
-
-#define DI_DEGREES                  100
-#define DI_FFNOMINALMAX             10000
-#define DI_SECONDS                  1000000
-
-typedef struct DICONSTANTFORCE {
-    LONG  lMagnitude;
-} DICONSTANTFORCE, *LPDICONSTANTFORCE;
-typedef const DICONSTANTFORCE *LPCDICONSTANTFORCE;
-
-typedef struct DIRAMPFORCE {
-    LONG  lStart;
-    LONG  lEnd;
-} DIRAMPFORCE, *LPDIRAMPFORCE;
-typedef const DIRAMPFORCE *LPCDIRAMPFORCE;
-
-typedef struct DIPERIODIC {
-    DWORD dwMagnitude;
-    LONG  lOffset;
-    DWORD dwPhase;
-    DWORD dwPeriod;
-} DIPERIODIC, *LPDIPERIODIC;
-typedef const DIPERIODIC *LPCDIPERIODIC;
-
-typedef struct DICONDITION {
-    LONG  lOffset;
-    LONG  lPositiveCoefficient;
-    LONG  lNegativeCoefficient;
-    DWORD dwPositiveSaturation;
-    DWORD dwNegativeSaturation;
-    LONG  lDeadBand;
-} DICONDITION, *LPDICONDITION;
-typedef const DICONDITION *LPCDICONDITION;
-
-typedef struct DICUSTOMFORCE {
-    DWORD cChannels;
-    DWORD dwSamplePeriod;
-    DWORD cSamples;
-    LPLONG rglForceData;
-} DICUSTOMFORCE, *LPDICUSTOMFORCE;
-typedef const DICUSTOMFORCE *LPCDICUSTOMFORCE;
-
-typedef struct DIENVELOPE {
-    DWORD dwSize;                   /* sizeof(DIENVELOPE)   */
-    DWORD dwAttackLevel;
-    DWORD dwAttackTime;             /* Microseconds         */
-    DWORD dwFadeLevel;
-    DWORD dwFadeTime;               /* Microseconds         */
-} DIENVELOPE, *LPDIENVELOPE;
-typedef const DIENVELOPE *LPCDIENVELOPE;
-
-typedef struct DIEFFECT {
-    DWORD dwSize;                   /* sizeof(DIEFFECT)     */
-    DWORD dwFlags;                  /* DIEFF_*              */
-    DWORD dwDuration;               /* Microseconds         */
-    DWORD dwSamplePeriod;           /* Microseconds         */
-    DWORD dwGain;
-    DWORD dwTriggerButton;          /* or DIEB_NOTRIGGER    */
-    DWORD dwTriggerRepeatInterval;  /* Microseconds         */
-    DWORD cAxes;                    /* Number of axes       */
-    LPDWORD rgdwAxes;               /* Array of axes        */
-    LPLONG rglDirection;            /* Array of directions  */
-    LPDIENVELOPE lpEnvelope;        /* Optional             */
-    DWORD cbTypeSpecificParams;     /* Size of params       */
-    LPVOID lpvTypeSpecificParams;   /* Pointer to params    */
-} DIEFFECT, *LPDIEFFECT;
-typedef const DIEFFECT *LPCDIEFFECT;
-
-#define DIEFF_OBJECTIDS             0x00000001
-#define DIEFF_OBJECTOFFSETS         0x00000002
-#define DIEFF_CARTESIAN             0x00000010
-#define DIEFF_POLAR                 0x00000020
-#define DIEFF_SPHERICAL             0x00000040
-
-#define DIEP_DURATION               0x00000001
-#define DIEP_SAMPLEPERIOD           0x00000002
-#define DIEP_GAIN                   0x00000004
-#define DIEP_TRIGGERBUTTON          0x00000008
-#define DIEP_TRIGGERREPEATINTERVAL  0x00000010
-#define DIEP_AXES                   0x00000020
-#define DIEP_DIRECTION              0x00000040
-#define DIEP_ENVELOPE               0x00000080
-#define DIEP_TYPESPECIFICPARAMS     0x00000100
-#define DIEP_ALLPARAMS              0x000001FF
-#define DIEP_START                  0x20000000
-#define DIEP_NORESTART              0x40000000
-#define DIEP_NODOWNLOAD             0x80000000
-#define DIEB_NOTRIGGER              0xFFFFFFFF
-
-#define DIES_SOLO                   0x00000001
-#define DIES_NODOWNLOAD             0x80000000
-
-#define DIEGES_PLAYING              0x00000001
-#define DIEGES_EMULATED             0x00000002
-
-typedef struct DIEFFESCAPE {
-    DWORD   dwSize;
-    DWORD   dwCommand;
-    LPVOID  lpvInBuffer;
-    DWORD   cbInBuffer;
-    LPVOID  lpvOutBuffer;
-    DWORD   cbOutBuffer;
-} DIEFFESCAPE, *LPDIEFFESCAPE;
-
-#ifndef DIJ_RINGZERO
-
-#undef INTERFACE
-#define INTERFACE IDirectInputEffect
-
-DECLARE_INTERFACE_(IDirectInputEffect, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-
-    /*** IDirectInputEffect methods ***/
-    STDMETHOD(Initialize)(THIS_ HINSTANCE,DWORD,REFGUID) PURE;
-    STDMETHOD(GetEffectGuid)(THIS_ LPGUID) PURE;
-    STDMETHOD(GetParameters)(THIS_ LPDIEFFECT,DWORD) PURE;
-    STDMETHOD(SetParameters)(THIS_ LPCDIEFFECT,DWORD) PURE;
-    STDMETHOD(Start)(THIS_ DWORD,DWORD) PURE;
-    STDMETHOD(Stop)(THIS) PURE;
-    STDMETHOD(GetEffectStatus)(THIS_ LPDWORD) PURE;
-    STDMETHOD(Download)(THIS) PURE;
-    STDMETHOD(Unload)(THIS) PURE;
-    STDMETHOD(Escape)(THIS_ LPDIEFFESCAPE) PURE;
-};
-
-typedef struct IDirectInputEffect *LPDIRECTINPUTEFFECT;
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectInputEffect_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectInputEffect_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IDirectInputEffect_Release(p) (p)->lpVtbl->Release(p)
-#define IDirectInputEffect_Initialize(p,a,b,c) (p)->lpVtbl->Initialize(p,a,b,c)
-#define IDirectInputEffect_GetEffectGuid(p,a) (p)->lpVtbl->GetEffectGuid(p,a)
-#define IDirectInputEffect_GetParameters(p,a,b) (p)->lpVtbl->GetParameters(p,a,b)
-#define IDirectInputEffect_SetParameters(p,a,b) (p)->lpVtbl->SetParameters(p,a,b)
-#define IDirectInputEffect_Start(p,a,b) (p)->lpVtbl->Start(p,a,b)
-#define IDirectInputEffect_Stop(p) (p)->lpVtbl->Stop(p)
-#define IDirectInputEffect_GetEffectStatus(p,a) (p)->lpVtbl->GetEffectStatus(p,a)
-#define IDirectInputEffect_Download(p) (p)->lpVtbl->Download(p)
-#define IDirectInputEffect_Unload(p) (p)->lpVtbl->Unload(p)
-#define IDirectInputEffect_Escape(p,a) (p)->lpVtbl->Escape(p,a)
-#else
-#define IDirectInputEffect_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectInputEffect_AddRef(p) (p)->AddRef()
-#define IDirectInputEffect_Release(p) (p)->Release()
-#define IDirectInputEffect_Initialize(p,a,b,c) (p)->Initialize(a,b,c)
-#define IDirectInputEffect_GetEffectGuid(p,a) (p)->GetEffectGuid(a)
-#define IDirectInputEffect_GetParameters(p,a,b) (p)->GetParameters(a,b)
-#define IDirectInputEffect_SetParameters(p,a,b) (p)->SetParameters(a,b)
-#define IDirectInputEffect_Start(p,a,b) (p)->Start(a,b)
-#define IDirectInputEffect_Stop(p) (p)->Stop()
-#define IDirectInputEffect_GetEffectStatus(p,a) (p)->GetEffectStatus(a)
-#define IDirectInputEffect_Download(p) (p)->Download()
-#define IDirectInputEffect_Unload(p) (p)->Unload()
-#define IDirectInputEffect_Escape(p,a) (p)->Escape(a)
-#endif
-
-#endif /* DIJ_RINGZERO */
-
-#endif /* DIRECTINPUT_VERSION >= 0x0500 */
-
-/****************************************************************************
- *
- *      IDirectInputDevice
- *
- ****************************************************************************/
-
-#define DIDEVTYPE_DEVICE    1
-#define DIDEVTYPE_MOUSE     2
-#define DIDEVTYPE_KEYBOARD  3
-#define DIDEVTYPE_JOYSTICK  4
-#define DIDEVTYPE_HID       0x00010000
-
-#define DIDEVTYPEMOUSE_UNKNOWN          1
-#define DIDEVTYPEMOUSE_TRADITIONAL      2
-#define DIDEVTYPEMOUSE_FINGERSTICK      3
-#define DIDEVTYPEMOUSE_TOUCHPAD         4
-#define DIDEVTYPEMOUSE_TRACKBALL        5
-
-#define DIDEVTYPEKEYBOARD_UNKNOWN       0
-#define DIDEVTYPEKEYBOARD_PCXT          1
-#define DIDEVTYPEKEYBOARD_OLIVETTI      2
-#define DIDEVTYPEKEYBOARD_PCAT          3
-#define DIDEVTYPEKEYBOARD_PCENH         4
-#define DIDEVTYPEKEYBOARD_NOKIA1050     5
-#define DIDEVTYPEKEYBOARD_NOKIA9140     6
-#define DIDEVTYPEKEYBOARD_NEC98         7
-#define DIDEVTYPEKEYBOARD_NEC98LAPTOP   8
-#define DIDEVTYPEKEYBOARD_NEC98106      9
-#define DIDEVTYPEKEYBOARD_JAPAN106     10
-#define DIDEVTYPEKEYBOARD_JAPANAX      11
-#define DIDEVTYPEKEYBOARD_J3100        12
-
-#define DIDEVTYPEJOYSTICK_UNKNOWN       1
-#define DIDEVTYPEJOYSTICK_TRADITIONAL   2
-#define DIDEVTYPEJOYSTICK_FLIGHTSTICK   3
-#define DIDEVTYPEJOYSTICK_GAMEPAD       4
-#define DIDEVTYPEJOYSTICK_RUDDER        5
-#define DIDEVTYPEJOYSTICK_WHEEL         6
-#define DIDEVTYPEJOYSTICK_HEADTRACKER   7
-
-#define GET_DIDEVICE_TYPE(dwDevType)    LOBYTE(dwDevType)
-#define GET_DIDEVICE_SUBTYPE(dwDevType) HIBYTE(dwDevType)
-
-#if(DIRECTINPUT_VERSION >= 0x0500)
-/* This structure is defined for DirectX 3.0 compatibility */
-
-typedef struct DIDEVCAPS_DX3 {
-    DWORD   dwSize;
-    DWORD   dwFlags;
-    DWORD   dwDevType;
-    DWORD   dwAxes;
-    DWORD   dwButtons;
-    DWORD   dwPOVs;
-} DIDEVCAPS_DX3, *LPDIDEVCAPS_DX3;
-#endif /* DIRECTINPUT_VERSION >= 0x0500 */
-
-typedef struct DIDEVCAPS {
-    DWORD   dwSize;
-    DWORD   dwFlags;
-    DWORD   dwDevType;
-    DWORD   dwAxes;
-    DWORD   dwButtons;
-    DWORD   dwPOVs;
-#if(DIRECTINPUT_VERSION >= 0x0500)
-    DWORD   dwFFSamplePeriod;
-    DWORD   dwFFMinTimeResolution;
-    DWORD   dwFirmwareRevision;
-    DWORD   dwHardwareRevision;
-    DWORD   dwFFDriverVersion;
-#endif /* DIRECTINPUT_VERSION >= 0x0500 */
-} DIDEVCAPS, *LPDIDEVCAPS;
-
-#define DIDC_ATTACHED           0x00000001
-#define DIDC_POLLEDDEVICE       0x00000002
-#define DIDC_EMULATED           0x00000004
-#define DIDC_POLLEDDATAFORMAT   0x00000008
-#if(DIRECTINPUT_VERSION >= 0x0500)
-#define DIDC_FORCEFEEDBACK      0x00000100
-#define DIDC_FFATTACK           0x00000200
-#define DIDC_FFFADE             0x00000400
-#define DIDC_SATURATION         0x00000800
-#define DIDC_POSNEGCOEFFICIENTS 0x00001000
-#define DIDC_POSNEGSATURATION   0x00002000
-#define DIDC_DEADBAND           0x00004000
-#endif /* DIRECTINPUT_VERSION >= 0x0500 */
-
-#define DIDFT_ALL           0x00000000
-
-#define DIDFT_RELAXIS       0x00000001
-#define DIDFT_ABSAXIS       0x00000002
-#define DIDFT_AXIS          0x00000003
-
-#define DIDFT_PSHBUTTON     0x00000004
-#define DIDFT_TGLBUTTON     0x00000008
-#define DIDFT_BUTTON        0x0000000C
-
-#define DIDFT_POV           0x00000010
-
-#define DIDFT_COLLECTION    0x00000040
-#define DIDFT_NODATA        0x00000080
-
-#define DIDFT_ANYINSTANCE   0x00FFFF00
-#define DIDFT_INSTANCEMASK  DIDFT_ANYINSTANCE
-#define DIDFT_MAKEINSTANCE(n) ((WORD)(n) << 8)
-#define DIDFT_GETTYPE(n)     LOBYTE(n)
-#define DIDFT_GETINSTANCE(n) LOWORD((n) >> 8)
-#define DIDFT_FFACTUATOR        0x01000000
-#define DIDFT_FFEFFECTTRIGGER   0x02000000
-
-#define DIDFT_ENUMCOLLECTION(n) ((WORD)(n) << 8)
-#define DIDFT_NOCOLLECTION      0x00FFFF00
-
-
-#ifndef DIJ_RINGZERO
-
-typedef struct _DIOBJECTDATAFORMAT {
-    const GUID *pguid;
-    DWORD   dwOfs;
-    DWORD   dwType;
-    DWORD   dwFlags;
-} DIOBJECTDATAFORMAT, *LPDIOBJECTDATAFORMAT;
-typedef const DIOBJECTDATAFORMAT *LPCDIOBJECTDATAFORMAT;
-
-typedef struct _DIDATAFORMAT {
-    DWORD   dwSize;
-    DWORD   dwObjSize;
-    DWORD   dwFlags;
-    DWORD   dwDataSize;
-    DWORD   dwNumObjs;
-    LPDIOBJECTDATAFORMAT rgodf;
-} DIDATAFORMAT, *LPDIDATAFORMAT;
-typedef const DIDATAFORMAT *LPCDIDATAFORMAT;
-
-#define DIDF_ABSAXIS            0x00000001
-#define DIDF_RELAXIS            0x00000002
-
-extern const DIDATAFORMAT c_dfDIMouse;
-extern const DIDATAFORMAT c_dfDIKeyboard;
-extern const DIDATAFORMAT c_dfDIJoystick;
-extern const DIDATAFORMAT c_dfDIJoystick2;
-
-#if(DIRECTINPUT_VERSION >= 0x0500)
-/* These structures are defined for DirectX 3.0 compatibility */
-
-typedef struct DIDEVICEOBJECTINSTANCE_DX3A {
-    DWORD   dwSize;
-    GUID    guidType;
-    DWORD   dwOfs;
-    DWORD   dwType;
-    DWORD   dwFlags;
-    CHAR    tszName[MAX_PATH];
-} DIDEVICEOBJECTINSTANCE_DX3A, *LPDIDEVICEOBJECTINSTANCE_DX3A;
-typedef struct DIDEVICEOBJECTINSTANCE_DX3W {
-    DWORD   dwSize;
-    GUID    guidType;
-    DWORD   dwOfs;
-    DWORD   dwType;
-    DWORD   dwFlags;
-    WCHAR   tszName[MAX_PATH];
-} DIDEVICEOBJECTINSTANCE_DX3W, *LPDIDEVICEOBJECTINSTANCE_DX3W;
-#ifdef UNICODE
-typedef DIDEVICEOBJECTINSTANCE_DX3W DIDEVICEOBJECTINSTANCE_DX3;
-typedef LPDIDEVICEOBJECTINSTANCE_DX3W LPDIDEVICEOBJECTINSTANCE_DX3;
-#else
-typedef DIDEVICEOBJECTINSTANCE_DX3A DIDEVICEOBJECTINSTANCE_DX3;
-typedef LPDIDEVICEOBJECTINSTANCE_DX3A LPDIDEVICEOBJECTINSTANCE_DX3;
-#endif // UNICODE
-typedef const DIDEVICEOBJECTINSTANCE_DX3A *LPCDIDEVICEOBJECTINSTANCE_DX3A;
-typedef const DIDEVICEOBJECTINSTANCE_DX3W *LPCDIDEVICEOBJECTINSTANCE_DX3W;
-typedef const DIDEVICEOBJECTINSTANCE_DX3  *LPCDIDEVICEOBJECTINSTANCE_DX3;
-#endif /* DIRECTINPUT_VERSION >= 0x0500 */
-
-typedef struct DIDEVICEOBJECTINSTANCEA {
-    DWORD   dwSize;
-    GUID    guidType;
-    DWORD   dwOfs;
-    DWORD   dwType;
-    DWORD   dwFlags;
-    CHAR    tszName[MAX_PATH];
-#if(DIRECTINPUT_VERSION >= 0x0500)
-    DWORD   dwFFMaxForce;
-    DWORD   dwFFForceResolution;
-    WORD    wCollectionNumber;
-    WORD    wDesignatorIndex;
-    WORD    wUsagePage;
-    WORD    wUsage;
-    DWORD   dwDimension;
-    WORD    wExponent;
-    WORD    wReserved;
-#endif /* DIRECTINPUT_VERSION >= 0x0500 */
-} DIDEVICEOBJECTINSTANCEA, *LPDIDEVICEOBJECTINSTANCEA;
-typedef struct DIDEVICEOBJECTINSTANCEW {
-    DWORD   dwSize;
-    GUID    guidType;
-    DWORD   dwOfs;
-    DWORD   dwType;
-    DWORD   dwFlags;
-    WCHAR   tszName[MAX_PATH];
-#if(DIRECTINPUT_VERSION >= 0x0500)
-    DWORD   dwFFMaxForce;
-    DWORD   dwFFForceResolution;
-    WORD    wCollectionNumber;
-    WORD    wDesignatorIndex;
-    WORD    wUsagePage;
-    WORD    wUsage;
-    DWORD   dwDimension;
-    WORD    wExponent;
-    WORD    wReserved;
-#endif /* DIRECTINPUT_VERSION >= 0x0500 */
-} DIDEVICEOBJECTINSTANCEW, *LPDIDEVICEOBJECTINSTANCEW;
-#ifdef UNICODE
-typedef DIDEVICEOBJECTINSTANCEW DIDEVICEOBJECTINSTANCE;
-typedef LPDIDEVICEOBJECTINSTANCEW LPDIDEVICEOBJECTINSTANCE;
-#else
-typedef DIDEVICEOBJECTINSTANCEA DIDEVICEOBJECTINSTANCE;
-typedef LPDIDEVICEOBJECTINSTANCEA LPDIDEVICEOBJECTINSTANCE;
-#endif // UNICODE
-typedef const DIDEVICEOBJECTINSTANCEA *LPCDIDEVICEOBJECTINSTANCEA;
-typedef const DIDEVICEOBJECTINSTANCEW *LPCDIDEVICEOBJECTINSTANCEW;
-typedef const DIDEVICEOBJECTINSTANCE  *LPCDIDEVICEOBJECTINSTANCE;
-
-typedef BOOL (FAR PASCAL * LPDIENUMDEVICEOBJECTSCALLBACKA)(LPCDIDEVICEOBJECTINSTANCEA, LPVOID);
-typedef BOOL (FAR PASCAL * LPDIENUMDEVICEOBJECTSCALLBACKW)(LPCDIDEVICEOBJECTINSTANCEW, LPVOID);
-#ifdef UNICODE
-#define LPDIENUMDEVICEOBJECTSCALLBACK  LPDIENUMDEVICEOBJECTSCALLBACKW
-#else
-#define LPDIENUMDEVICEOBJECTSCALLBACK  LPDIENUMDEVICEOBJECTSCALLBACKA
-#endif // !UNICODE
-
-#if(DIRECTINPUT_VERSION >= 0x0500)
-#define DIDOI_FFACTUATOR        0x00000001
-#define DIDOI_FFEFFECTTRIGGER   0x00000002
-#define DIDOI_POLLED            0x00008000
-#define DIDOI_ASPECTPOSITION    0x00000100
-#define DIDOI_ASPECTVELOCITY    0x00000200
-#define DIDOI_ASPECTACCEL       0x00000300
-#define DIDOI_ASPECTFORCE       0x00000400
-#define DIDOI_ASPECTMASK        0x00000F00
-#endif /* DIRECTINPUT_VERSION >= 0x0500 */
-
-typedef struct DIPROPHEADER {
-    DWORD   dwSize;
-    DWORD   dwHeaderSize;
-    DWORD   dwObj;
-    DWORD   dwHow;
-} DIPROPHEADER, *LPDIPROPHEADER;
-typedef const DIPROPHEADER *LPCDIPROPHEADER;
-
-#define DIPH_DEVICE             0
-#define DIPH_BYOFFSET           1
-#define DIPH_BYID               2
-
-typedef struct DIPROPDWORD {
-    DIPROPHEADER diph;
-    DWORD   dwData;
-} DIPROPDWORD, *LPDIPROPDWORD;
-typedef const DIPROPDWORD *LPCDIPROPDWORD;
-
-typedef struct DIPROPRANGE {
-    DIPROPHEADER diph;
-    LONG    lMin;
-    LONG    lMax;
-} DIPROPRANGE, *LPDIPROPRANGE;
-typedef const DIPROPRANGE *LPCDIPROPRANGE;
-
-#define DIPROPRANGE_NOMIN       ((LONG)0x80000000)
-#define DIPROPRANGE_NOMAX       ((LONG)0x7FFFFFFF)
-
-#ifdef __cplusplus
-#define MAKEDIPROP(prop)    (*(const GUID *)(prop))
-#else
-#define MAKEDIPROP(prop)    ((REFGUID)(prop))
-#endif
-
-#define DIPROP_BUFFERSIZE       MAKEDIPROP(1)
-
-#define DIPROP_AXISMODE         MAKEDIPROP(2)
-
-#define DIPROPAXISMODE_ABS      0
-#define DIPROPAXISMODE_REL      1
-
-#define DIPROP_GRANULARITY      MAKEDIPROP(3)
-
-#define DIPROP_RANGE            MAKEDIPROP(4)
-
-#define DIPROP_DEADZONE         MAKEDIPROP(5)
-
-#define DIPROP_SATURATION       MAKEDIPROP(6)
-
-#define DIPROP_FFGAIN           MAKEDIPROP(7)
-
-#define DIPROP_FFLOAD           MAKEDIPROP(8)
-
-#define DIPROP_AUTOCENTER       MAKEDIPROP(9)
-
-#define DIPROPAUTOCENTER_OFF    0
-#define DIPROPAUTOCENTER_ON     1
-
-#define DIPROP_CALIBRATIONMODE  MAKEDIPROP(10)
-
-#define DIPROPCALIBRATIONMODE_COOKED    0
-#define DIPROPCALIBRATIONMODE_RAW       1
-
-typedef struct DIDEVICEOBJECTDATA {
-    DWORD   dwOfs;
-    DWORD   dwData;
-    DWORD   dwTimeStamp;
-    DWORD   dwSequence;
-} DIDEVICEOBJECTDATA, *LPDIDEVICEOBJECTDATA;
-typedef const DIDEVICEOBJECTDATA *LPCDIDEVICEOBJECTDATA;
-
-#define DIGDD_PEEK          0x00000001
-
-#define DISEQUENCE_COMPARE(dwSequence1, cmp, dwSequence2) \
-                        ((int)((dwSequence1) - (dwSequence2)) cmp 0)
-#define DISCL_EXCLUSIVE     0x00000001
-#define DISCL_NONEXCLUSIVE  0x00000002
-#define DISCL_FOREGROUND    0x00000004
-#define DISCL_BACKGROUND    0x00000008
-
-#if(DIRECTINPUT_VERSION >= 0x0500)
-/* These structures are defined for DirectX 3.0 compatibility */
-
-typedef struct DIDEVICEINSTANCE_DX3A {
-    DWORD   dwSize;
-    GUID    guidInstance;
-    GUID    guidProduct;
-    DWORD   dwDevType;
-    CHAR    tszInstanceName[MAX_PATH];
-    CHAR    tszProductName[MAX_PATH];
-} DIDEVICEINSTANCE_DX3A, *LPDIDEVICEINSTANCE_DX3A;
-typedef struct DIDEVICEINSTANCE_DX3W {
-    DWORD   dwSize;
-    GUID    guidInstance;
-    GUID    guidProduct;
-    DWORD   dwDevType;
-    WCHAR   tszInstanceName[MAX_PATH];
-    WCHAR   tszProductName[MAX_PATH];
-} DIDEVICEINSTANCE_DX3W, *LPDIDEVICEINSTANCE_DX3W;
-#ifdef UNICODE
-typedef DIDEVICEINSTANCE_DX3W DIDEVICEINSTANCE_DX3;
-typedef LPDIDEVICEINSTANCE_DX3W LPDIDEVICEINSTANCE_DX3;
-#else
-typedef DIDEVICEINSTANCE_DX3A DIDEVICEINSTANCE_DX3;
-typedef LPDIDEVICEINSTANCE_DX3A LPDIDEVICEINSTANCE_DX3;
-#endif // UNICODE
-typedef const DIDEVICEINSTANCE_DX3A *LPCDIDEVICEINSTANCE_DX3A;
-typedef const DIDEVICEINSTANCE_DX3W *LPCDIDEVICEINSTANCE_DX3W;
-typedef const DIDEVICEINSTANCE_DX3  *LPCDIDEVICEINSTANCE_DX3;
-#endif /* DIRECTINPUT_VERSION >= 0x0500 */
-
-typedef struct DIDEVICEINSTANCEA {
-    DWORD   dwSize;
-    GUID    guidInstance;
-    GUID    guidProduct;
-    DWORD   dwDevType;
-    CHAR    tszInstanceName[MAX_PATH];
-    CHAR    tszProductName[MAX_PATH];
-#if(DIRECTINPUT_VERSION >= 0x0500)
-    GUID    guidFFDriver;
-    WORD    wUsagePage;
-    WORD    wUsage;
-#endif /* DIRECTINPUT_VERSION >= 0x0500 */
-} DIDEVICEINSTANCEA, *LPDIDEVICEINSTANCEA;
-typedef struct DIDEVICEINSTANCEW {
-    DWORD   dwSize;
-    GUID    guidInstance;
-    GUID    guidProduct;
-    DWORD   dwDevType;
-    WCHAR   tszInstanceName[MAX_PATH];
-    WCHAR   tszProductName[MAX_PATH];
-#if(DIRECTINPUT_VERSION >= 0x0500)
-    GUID    guidFFDriver;
-    WORD    wUsagePage;
-    WORD    wUsage;
-#endif /* DIRECTINPUT_VERSION >= 0x0500 */
-} DIDEVICEINSTANCEW, *LPDIDEVICEINSTANCEW;
-#ifdef UNICODE
-typedef DIDEVICEINSTANCEW DIDEVICEINSTANCE;
-typedef LPDIDEVICEINSTANCEW LPDIDEVICEINSTANCE;
-#else
-typedef DIDEVICEINSTANCEA DIDEVICEINSTANCE;
-typedef LPDIDEVICEINSTANCEA LPDIDEVICEINSTANCE;
-#endif // UNICODE
-typedef const DIDEVICEINSTANCEA *LPCDIDEVICEINSTANCEA;
-typedef const DIDEVICEINSTANCEW *LPCDIDEVICEINSTANCEW;
-typedef const DIDEVICEINSTANCE  *LPCDIDEVICEINSTANCE;
-
-#undef INTERFACE
-#define INTERFACE IDirectInputDeviceW
-
-DECLARE_INTERFACE_(IDirectInputDeviceW, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-
-    /*** IDirectInputDeviceW methods ***/
-    STDMETHOD(GetCapabilities)(THIS_ LPDIDEVCAPS) PURE;
-    STDMETHOD(EnumObjects)(THIS_ LPDIENUMDEVICEOBJECTSCALLBACKW,LPVOID,DWORD) PURE;
-    STDMETHOD(GetProperty)(THIS_ REFGUID,LPDIPROPHEADER) PURE;
-    STDMETHOD(SetProperty)(THIS_ REFGUID,LPCDIPROPHEADER) PURE;
-    STDMETHOD(Acquire)(THIS) PURE;
-    STDMETHOD(Unacquire)(THIS) PURE;
-    STDMETHOD(GetDeviceState)(THIS_ DWORD,LPVOID) PURE;
-    STDMETHOD(GetDeviceData)(THIS_ DWORD,LPDIDEVICEOBJECTDATA,LPDWORD,DWORD) PURE;
-    STDMETHOD(SetDataFormat)(THIS_ LPCDIDATAFORMAT) PURE;
-    STDMETHOD(SetEventNotification)(THIS_ HANDLE) PURE;
-    STDMETHOD(SetCooperativeLevel)(THIS_ HWND,DWORD) PURE;
-    STDMETHOD(GetObjectInfo)(THIS_ LPDIDEVICEOBJECTINSTANCEW,DWORD,DWORD) PURE;
-    STDMETHOD(GetDeviceInfo)(THIS_ LPDIDEVICEINSTANCEW) PURE;
-    STDMETHOD(RunControlPanel)(THIS_ HWND,DWORD) PURE;
-    STDMETHOD(Initialize)(THIS_ HINSTANCE,DWORD,REFGUID) PURE;
-};
-
-typedef struct IDirectInputDeviceW *LPDIRECTINPUTDEVICEW;
-
-#undef INTERFACE
-#define INTERFACE IDirectInputDeviceA
-
-DECLARE_INTERFACE_(IDirectInputDeviceA, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-
-    /*** IDirectInputDeviceA methods ***/
-    STDMETHOD(GetCapabilities)(THIS_ LPDIDEVCAPS) PURE;
-    STDMETHOD(EnumObjects)(THIS_ LPDIENUMDEVICEOBJECTSCALLBACKA,LPVOID,DWORD) PURE;
-    STDMETHOD(GetProperty)(THIS_ REFGUID,LPDIPROPHEADER) PURE;
-    STDMETHOD(SetProperty)(THIS_ REFGUID,LPCDIPROPHEADER) PURE;
-    STDMETHOD(Acquire)(THIS) PURE;
-    STDMETHOD(Unacquire)(THIS) PURE;
-    STDMETHOD(GetDeviceState)(THIS_ DWORD,LPVOID) PURE;
-    STDMETHOD(GetDeviceData)(THIS_ DWORD,LPDIDEVICEOBJECTDATA,LPDWORD,DWORD) PURE;
-    STDMETHOD(SetDataFormat)(THIS_ LPCDIDATAFORMAT) PURE;
-    STDMETHOD(SetEventNotification)(THIS_ HANDLE) PURE;
-    STDMETHOD(SetCooperativeLevel)(THIS_ HWND,DWORD) PURE;
-    STDMETHOD(GetObjectInfo)(THIS_ LPDIDEVICEOBJECTINSTANCEA,DWORD,DWORD) PURE;
-    STDMETHOD(GetDeviceInfo)(THIS_ LPDIDEVICEINSTANCEA) PURE;
-    STDMETHOD(RunControlPanel)(THIS_ HWND,DWORD) PURE;
-    STDMETHOD(Initialize)(THIS_ HINSTANCE,DWORD,REFGUID) PURE;
-};
-
-typedef struct IDirectInputDeviceA *LPDIRECTINPUTDEVICEA;
-
-#ifdef UNICODE
-#define IID_IDirectInputDevice IID_IDirectInputDeviceW
-#define IDirectInputDevice IDirectInputDeviceW
-#define IDirectInputDeviceVtbl IDirectInputDeviceWVtbl
-#else
-#define IID_IDirectInputDevice IID_IDirectInputDeviceA
-#define IDirectInputDevice IDirectInputDeviceA
-#define IDirectInputDeviceVtbl IDirectInputDeviceAVtbl
-#endif
-typedef struct IDirectInputDevice *LPDIRECTINPUTDEVICE;
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectInputDevice_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectInputDevice_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IDirectInputDevice_Release(p) (p)->lpVtbl->Release(p)
-#define IDirectInputDevice_GetCapabilities(p,a) (p)->lpVtbl->GetCapabilities(p,a)
-#define IDirectInputDevice_EnumObjects(p,a,b,c) (p)->lpVtbl->EnumObjects(p,a,b,c)
-#define IDirectInputDevice_GetProperty(p,a,b) (p)->lpVtbl->GetProperty(p,a,b)
-#define IDirectInputDevice_SetProperty(p,a,b) (p)->lpVtbl->SetProperty(p,a,b)
-#define IDirectInputDevice_Acquire(p) (p)->lpVtbl->Acquire(p)
-#define IDirectInputDevice_Unacquire(p) (p)->lpVtbl->Unacquire(p)
-#define IDirectInputDevice_GetDeviceState(p,a,b) (p)->lpVtbl->GetDeviceState(p,a,b)
-#define IDirectInputDevice_GetDeviceData(p,a,b,c,d) (p)->lpVtbl->GetDeviceData(p,a,b,c,d)
-#define IDirectInputDevice_SetDataFormat(p,a) (p)->lpVtbl->SetDataFormat(p,a)
-#define IDirectInputDevice_SetEventNotification(p,a) (p)->lpVtbl->SetEventNotification(p,a)
-#define IDirectInputDevice_SetCooperativeLevel(p,a,b) (p)->lpVtbl->SetCooperativeLevel(p,a,b)
-#define IDirectInputDevice_GetObjectInfo(p,a,b,c) (p)->lpVtbl->GetObjectInfo(p,a,b,c)
-#define IDirectInputDevice_GetDeviceInfo(p,a) (p)->lpVtbl->GetDeviceInfo(p,a)
-#define IDirectInputDevice_RunControlPanel(p,a,b) (p)->lpVtbl->RunControlPanel(p,a,b)
-#define IDirectInputDevice_Initialize(p,a,b,c) (p)->lpVtbl->Initialize(p,a,b,c)
-#else
-#define IDirectInputDevice_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectInputDevice_AddRef(p) (p)->AddRef()
-#define IDirectInputDevice_Release(p) (p)->Release()
-#define IDirectInputDevice_GetCapabilities(p,a) (p)->GetCapabilities(a)
-#define IDirectInputDevice_EnumObjects(p,a,b,c) (p)->EnumObjects(a,b,c)
-#define IDirectInputDevice_GetProperty(p,a,b) (p)->GetProperty(a,b)
-#define IDirectInputDevice_SetProperty(p,a,b) (p)->SetProperty(a,b)
-#define IDirectInputDevice_Acquire(p) (p)->Acquire()
-#define IDirectInputDevice_Unacquire(p) (p)->Unacquire()
-#define IDirectInputDevice_GetDeviceState(p,a,b) (p)->GetDeviceState(a,b)
-#define IDirectInputDevice_GetDeviceData(p,a,b,c,d) (p)->GetDeviceData(a,b,c,d)
-#define IDirectInputDevice_SetDataFormat(p,a) (p)->SetDataFormat(a)
-#define IDirectInputDevice_SetEventNotification(p,a) (p)->SetEventNotification(a)
-#define IDirectInputDevice_SetCooperativeLevel(p,a,b) (p)->SetCooperativeLevel(a,b)
-#define IDirectInputDevice_GetObjectInfo(p,a,b,c) (p)->GetObjectInfo(a,b,c)
-#define IDirectInputDevice_GetDeviceInfo(p,a) (p)->GetDeviceInfo(a)
-#define IDirectInputDevice_RunControlPanel(p,a,b) (p)->RunControlPanel(a,b)
-#define IDirectInputDevice_Initialize(p,a,b,c) (p)->Initialize(a,b,c)
-#endif
-
-#endif /* DIJ_RINGZERO */
-
-
-#if(DIRECTINPUT_VERSION >= 0x0500)
-
-#define DISFFC_RESET            0x00000001
-#define DISFFC_STOPALL          0x00000002
-#define DISFFC_PAUSE            0x00000004
-#define DISFFC_CONTINUE         0x00000008
-#define DISFFC_SETACTUATORSON   0x00000010
-#define DISFFC_SETACTUATORSOFF  0x00000020
-
-#define DIGFFS_EMPTY            0x00000001
-#define DIGFFS_STOPPED          0x00000002
-#define DIGFFS_PAUSED           0x00000004
-#define DIGFFS_ACTUATORSON      0x00000010
-#define DIGFFS_ACTUATORSOFF     0x00000020
-#define DIGFFS_POWERON          0x00000040
-#define DIGFFS_POWEROFF         0x00000080
-#define DIGFFS_SAFETYSWITCHON   0x00000100
-#define DIGFFS_SAFETYSWITCHOFF  0x00000200
-#define DIGFFS_USERFFSWITCHON   0x00000400
-#define DIGFFS_USERFFSWITCHOFF  0x00000800
-#define DIGFFS_DEVICELOST       0x80000000
-
-#ifndef DIJ_RINGZERO
-
-typedef struct DIEFFECTINFOA {
-    DWORD   dwSize;
-    GUID    guid;
-    DWORD   dwEffType;
-    DWORD   dwStaticParams;
-    DWORD   dwDynamicParams;
-    CHAR    tszName[MAX_PATH];
-} DIEFFECTINFOA, *LPDIEFFECTINFOA;
-typedef struct DIEFFECTINFOW {
-    DWORD   dwSize;
-    GUID    guid;
-    DWORD   dwEffType;
-    DWORD   dwStaticParams;
-    DWORD   dwDynamicParams;
-    WCHAR   tszName[MAX_PATH];
-} DIEFFECTINFOW, *LPDIEFFECTINFOW;
-#ifdef UNICODE
-typedef DIEFFECTINFOW DIEFFECTINFO;
-typedef LPDIEFFECTINFOW LPDIEFFECTINFO;
-#else
-typedef DIEFFECTINFOA DIEFFECTINFO;
-typedef LPDIEFFECTINFOA LPDIEFFECTINFO;
-#endif // UNICODE
-typedef const DIEFFECTINFOA *LPCDIEFFECTINFOA;
-typedef const DIEFFECTINFOW *LPCDIEFFECTINFOW;
-typedef const DIEFFECTINFO  *LPCDIEFFECTINFO;
-
-typedef BOOL (FAR PASCAL * LPDIENUMEFFECTSCALLBACKA)(LPCDIEFFECTINFOA, LPVOID);
-typedef BOOL (FAR PASCAL * LPDIENUMEFFECTSCALLBACKW)(LPCDIEFFECTINFOW, LPVOID);
-#ifdef UNICODE
-#define LPDIENUMEFFECTSCALLBACK  LPDIENUMEFFECTSCALLBACKW
-#else
-#define LPDIENUMEFFECTSCALLBACK  LPDIENUMEFFECTSCALLBACKA
-#endif // !UNICODE
-typedef BOOL (FAR PASCAL * LPDIENUMCREATEDEFFECTOBJECTSCALLBACK)(LPDIRECTINPUTEFFECT, LPVOID);
-
-#undef INTERFACE
-#define INTERFACE IDirectInputDevice2W
-
-DECLARE_INTERFACE_(IDirectInputDevice2W, IDirectInputDeviceW)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-
-    /*** IDirectInputDeviceW methods ***/
-    STDMETHOD(GetCapabilities)(THIS_ LPDIDEVCAPS) PURE;
-    STDMETHOD(EnumObjects)(THIS_ LPDIENUMDEVICEOBJECTSCALLBACKW,LPVOID,DWORD) PURE;
-    STDMETHOD(GetProperty)(THIS_ REFGUID,LPDIPROPHEADER) PURE;
-    STDMETHOD(SetProperty)(THIS_ REFGUID,LPCDIPROPHEADER) PURE;
-    STDMETHOD(Acquire)(THIS) PURE;
-    STDMETHOD(Unacquire)(THIS) PURE;
-    STDMETHOD(GetDeviceState)(THIS_ DWORD,LPVOID) PURE;
-    STDMETHOD(GetDeviceData)(THIS_ DWORD,LPDIDEVICEOBJECTDATA,LPDWORD,DWORD) PURE;
-    STDMETHOD(SetDataFormat)(THIS_ LPCDIDATAFORMAT) PURE;
-    STDMETHOD(SetEventNotification)(THIS_ HANDLE) PURE;
-    STDMETHOD(SetCooperativeLevel)(THIS_ HWND,DWORD) PURE;
-    STDMETHOD(GetObjectInfo)(THIS_ LPDIDEVICEOBJECTINSTANCEW,DWORD,DWORD) PURE;
-    STDMETHOD(GetDeviceInfo)(THIS_ LPDIDEVICEINSTANCEW) PURE;
-    STDMETHOD(RunControlPanel)(THIS_ HWND,DWORD) PURE;
-    STDMETHOD(Initialize)(THIS_ HINSTANCE,DWORD,REFGUID) PURE;
-
-    /*** IDirectInputDevice2W methods ***/
-    STDMETHOD(CreateEffect)(THIS_ REFGUID,LPCDIEFFECT,LPDIRECTINPUTEFFECT *,LPUNKNOWN) PURE;
-    STDMETHOD(EnumEffects)(THIS_ LPDIENUMEFFECTSCALLBACKW,LPVOID,DWORD) PURE;
-    STDMETHOD(GetEffectInfo)(THIS_ LPDIEFFECTINFOW,REFGUID) PURE;
-    STDMETHOD(GetForceFeedbackState)(THIS_ LPDWORD) PURE;
-    STDMETHOD(SendForceFeedbackCommand)(THIS_ DWORD) PURE;
-    STDMETHOD(EnumCreatedEffectObjects)(THIS_ LPDIENUMCREATEDEFFECTOBJECTSCALLBACK,LPVOID,DWORD) PURE;
-    STDMETHOD(Escape)(THIS_ LPDIEFFESCAPE) PURE;
-    STDMETHOD(Poll)(THIS) PURE;
-    STDMETHOD(SendDeviceData)(THIS_ DWORD,LPDIDEVICEOBJECTDATA,LPDWORD,DWORD) PURE;
-};
-
-typedef struct IDirectInputDevice2W *LPDIRECTINPUTDEVICE2W;
-
-#undef INTERFACE
-#define INTERFACE IDirectInputDevice2A
-
-DECLARE_INTERFACE_(IDirectInputDevice2A, IDirectInputDeviceA)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-
-    /*** IDirectInputDeviceA methods ***/
-    STDMETHOD(GetCapabilities)(THIS_ LPDIDEVCAPS) PURE;
-    STDMETHOD(EnumObjects)(THIS_ LPDIENUMDEVICEOBJECTSCALLBACKA,LPVOID,DWORD) PURE;
-    STDMETHOD(GetProperty)(THIS_ REFGUID,LPDIPROPHEADER) PURE;
-    STDMETHOD(SetProperty)(THIS_ REFGUID,LPCDIPROPHEADER) PURE;
-    STDMETHOD(Acquire)(THIS) PURE;
-    STDMETHOD(Unacquire)(THIS) PURE;
-    STDMETHOD(GetDeviceState)(THIS_ DWORD,LPVOID) PURE;
-    STDMETHOD(GetDeviceData)(THIS_ DWORD,LPDIDEVICEOBJECTDATA,LPDWORD,DWORD) PURE;
-    STDMETHOD(SetDataFormat)(THIS_ LPCDIDATAFORMAT) PURE;
-    STDMETHOD(SetEventNotification)(THIS_ HANDLE) PURE;
-    STDMETHOD(SetCooperativeLevel)(THIS_ HWND,DWORD) PURE;
-    STDMETHOD(GetObjectInfo)(THIS_ LPDIDEVICEOBJECTINSTANCEA,DWORD,DWORD) PURE;
-    STDMETHOD(GetDeviceInfo)(THIS_ LPDIDEVICEINSTANCEA) PURE;
-    STDMETHOD(RunControlPanel)(THIS_ HWND,DWORD) PURE;
-    STDMETHOD(Initialize)(THIS_ HINSTANCE,DWORD,REFGUID) PURE;
-
-    /*** IDirectInputDevice2A methods ***/
-    STDMETHOD(CreateEffect)(THIS_ REFGUID,LPCDIEFFECT,LPDIRECTINPUTEFFECT *,LPUNKNOWN) PURE;
-    STDMETHOD(EnumEffects)(THIS_ LPDIENUMEFFECTSCALLBACKA,LPVOID,DWORD) PURE;
-    STDMETHOD(GetEffectInfo)(THIS_ LPDIEFFECTINFOA,REFGUID) PURE;
-    STDMETHOD(GetForceFeedbackState)(THIS_ LPDWORD) PURE;
-    STDMETHOD(SendForceFeedbackCommand)(THIS_ DWORD) PURE;
-    STDMETHOD(EnumCreatedEffectObjects)(THIS_ LPDIENUMCREATEDEFFECTOBJECTSCALLBACK,LPVOID,DWORD) PURE;
-    STDMETHOD(Escape)(THIS_ LPDIEFFESCAPE) PURE;
-    STDMETHOD(Poll)(THIS) PURE;
-    STDMETHOD(SendDeviceData)(THIS_ DWORD,LPDIDEVICEOBJECTDATA,LPDWORD,DWORD) PURE;
-};
-
-typedef struct IDirectInputDevice2A *LPDIRECTINPUTDEVICE2A;
-
-#ifdef UNICODE
-#define IID_IDirectInputDevice2 IID_IDirectInputDevice2W
-#define IDirectInputDevice2 IDirectInputDevice2W
-#define IDirectInputDevice2Vtbl IDirectInputDevice2WVtbl
-#else
-#define IID_IDirectInputDevice2 IID_IDirectInputDevice2A
-#define IDirectInputDevice2 IDirectInputDevice2A
-#define IDirectInputDevice2Vtbl IDirectInputDevice2AVtbl
-#endif
-typedef struct IDirectInputDevice2 *LPDIRECTINPUTDEVICE2;
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectInputDevice2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectInputDevice2_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IDirectInputDevice2_Release(p) (p)->lpVtbl->Release(p)
-#define IDirectInputDevice2_GetCapabilities(p,a) (p)->lpVtbl->GetCapabilities(p,a)
-#define IDirectInputDevice2_EnumObjects(p,a,b,c) (p)->lpVtbl->EnumObjects(p,a,b,c)
-#define IDirectInputDevice2_GetProperty(p,a,b) (p)->lpVtbl->GetProperty(p,a,b)
-#define IDirectInputDevice2_SetProperty(p,a,b) (p)->lpVtbl->SetProperty(p,a,b)
-#define IDirectInputDevice2_Acquire(p) (p)->lpVtbl->Acquire(p)
-#define IDirectInputDevice2_Unacquire(p) (p)->lpVtbl->Unacquire(p)
-#define IDirectInputDevice2_GetDeviceState(p,a,b) (p)->lpVtbl->GetDeviceState(p,a,b)
-#define IDirectInputDevice2_GetDeviceData(p,a,b,c,d) (p)->lpVtbl->GetDeviceData(p,a,b,c,d)
-#define IDirectInputDevice2_SetDataFormat(p,a) (p)->lpVtbl->SetDataFormat(p,a)
-#define IDirectInputDevice2_SetEventNotification(p,a) (p)->lpVtbl->SetEventNotification(p,a)
-#define IDirectInputDevice2_SetCooperativeLevel(p,a,b) (p)->lpVtbl->SetCooperativeLevel(p,a,b)
-#define IDirectInputDevice2_GetObjectInfo(p,a,b,c) (p)->lpVtbl->GetObjectInfo(p,a,b,c)
-#define IDirectInputDevice2_GetDeviceInfo(p,a) (p)->lpVtbl->GetDeviceInfo(p,a)
-#define IDirectInputDevice2_RunControlPanel(p,a,b) (p)->lpVtbl->RunControlPanel(p,a,b)
-#define IDirectInputDevice2_Initialize(p,a,b,c) (p)->lpVtbl->Initialize(p,a,b,c)
-#define IDirectInputDevice2_CreateEffect(p,a,b,c,d) (p)->lpVtbl->CreateEffect(p,a,b,c,d)
-#define IDirectInputDevice2_EnumEffects(p,a,b,c) (p)->lpVtbl->EnumEffects(p,a,b,c)
-#define IDirectInputDevice2_GetEffectInfo(p,a,b) (p)->lpVtbl->GetEffectInfo(p,a,b)
-#define IDirectInputDevice2_GetForceFeedbackState(p,a) (p)->lpVtbl->GetForceFeedbackState(p,a)
-#define IDirectInputDevice2_SendForceFeedbackCommand(p,a) (p)->lpVtbl->SendForceFeedbackCommand(p,a)
-#define IDirectInputDevice2_EnumCreatedEffectObjects(p,a,b,c) (p)->lpVtbl->EnumCreatedEffectObjects(p,a,b,c)
-#define IDirectInputDevice2_Escape(p,a) (p)->lpVtbl->Escape(p,a)
-#define IDirectInputDevice2_Poll(p) (p)->lpVtbl->Poll(p)
-#define IDirectInputDevice2_SendDeviceData(p,a,b,c,d) (p)->lpVtbl->SendDeviceData(p,a,b,c,d)
-#else
-#define IDirectInputDevice2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectInputDevice2_AddRef(p) (p)->AddRef()
-#define IDirectInputDevice2_Release(p) (p)->Release()
-#define IDirectInputDevice2_GetCapabilities(p,a) (p)->GetCapabilities(a)
-#define IDirectInputDevice2_EnumObjects(p,a,b,c) (p)->EnumObjects(a,b,c)
-#define IDirectInputDevice2_GetProperty(p,a,b) (p)->GetProperty(a,b)
-#define IDirectInputDevice2_SetProperty(p,a,b) (p)->SetProperty(a,b)
-#define IDirectInputDevice2_Acquire(p) (p)->Acquire()
-#define IDirectInputDevice2_Unacquire(p) (p)->Unacquire()
-#define IDirectInputDevice2_GetDeviceState(p,a,b) (p)->GetDeviceState(a,b)
-#define IDirectInputDevice2_GetDeviceData(p,a,b,c,d) (p)->GetDeviceData(a,b,c,d)
-#define IDirectInputDevice2_SetDataFormat(p,a) (p)->SetDataFormat(a)
-#define IDirectInputDevice2_SetEventNotification(p,a) (p)->SetEventNotification(a)
-#define IDirectInputDevice2_SetCooperativeLevel(p,a,b) (p)->SetCooperativeLevel(a,b)
-#define IDirectInputDevice2_GetObjectInfo(p,a,b,c) (p)->GetObjectInfo(a,b,c)
-#define IDirectInputDevice2_GetDeviceInfo(p,a) (p)->GetDeviceInfo(a)
-#define IDirectInputDevice2_RunControlPanel(p,a,b) (p)->RunControlPanel(a,b)
-#define IDirectInputDevice2_Initialize(p,a,b,c) (p)->Initialize(a,b,c)
-#define IDirectInputDevice2_CreateEffect(p,a,b,c,d) (p)->CreateEffect(a,b,c,d)
-#define IDirectInputDevice2_EnumEffects(p,a,b,c) (p)->EnumEffects(a,b,c)
-#define IDirectInputDevice2_GetEffectInfo(p,a,b) (p)->GetEffectInfo(a,b)
-#define IDirectInputDevice2_GetForceFeedbackState(p,a) (p)->GetForceFeedbackState(a)
-#define IDirectInputDevice2_SendForceFeedbackCommand(p,a) (p)->SendForceFeedbackCommand(a)
-#define IDirectInputDevice2_EnumCreatedEffectObjects(p,a,b,c) (p)->EnumCreatedEffectObjects(a,b,c)
-#define IDirectInputDevice2_Escape(p,a) (p)->Escape(a)
-#define IDirectInputDevice2_Poll(p) (p)->Poll()
-#define IDirectInputDevice2_SendDeviceData(p,a,b,c,d) (p)->SendDeviceData(a,b,c,d)
-#endif
-
-#endif /* DIJ_RINGZERO */
-
-#endif /* DIRECTINPUT_VERSION >= 0x0500 */
-
-/****************************************************************************
- *
- *      Mouse
- *
- ****************************************************************************/
-
-#ifndef DIJ_RINGZERO
-
-typedef struct _DIMOUSESTATE {
-    LONG    lX;
-    LONG    lY;
-    LONG    lZ;
-    BYTE    rgbButtons[4];
-} DIMOUSESTATE, *LPDIMOUSESTATE;
-
-#define DIMOFS_X        FIELD_OFFSET(DIMOUSESTATE, lX)
-#define DIMOFS_Y        FIELD_OFFSET(DIMOUSESTATE, lY)
-#define DIMOFS_Z        FIELD_OFFSET(DIMOUSESTATE, lZ)
-#define DIMOFS_BUTTON0 (FIELD_OFFSET(DIMOUSESTATE, rgbButtons) + 0)
-#define DIMOFS_BUTTON1 (FIELD_OFFSET(DIMOUSESTATE, rgbButtons) + 1)
-#define DIMOFS_BUTTON2 (FIELD_OFFSET(DIMOUSESTATE, rgbButtons) + 2)
-#define DIMOFS_BUTTON3 (FIELD_OFFSET(DIMOUSESTATE, rgbButtons) + 3)
-
-#endif /* DIJ_RINGZERO */
-
-/****************************************************************************
- *
- *      Keyboard
- *
- ****************************************************************************/
-
-#ifndef DIJ_RINGZERO
-
-/****************************************************************************
- *
- *      DirectInput keyboard scan codes
- *
- ****************************************************************************/
-
-#define DIK_ESCAPE          0x01
-#define DIK_1               0x02
-#define DIK_2               0x03
-#define DIK_3               0x04
-#define DIK_4               0x05
-#define DIK_5               0x06
-#define DIK_6               0x07
-#define DIK_7               0x08
-#define DIK_8               0x09
-#define DIK_9               0x0A
-#define DIK_0               0x0B
-#define DIK_MINUS           0x0C    /* - on main keyboard */
-#define DIK_EQUALS          0x0D
-#define DIK_BACK            0x0E    /* backspace */
-#define DIK_TAB             0x0F
-#define DIK_Q               0x10
-#define DIK_W               0x11
-#define DIK_E               0x12
-#define DIK_R               0x13
-#define DIK_T               0x14
-#define DIK_Y               0x15
-#define DIK_U               0x16
-#define DIK_I               0x17
-#define DIK_O               0x18
-#define DIK_P               0x19
-#define DIK_LBRACKET        0x1A
-#define DIK_RBRACKET        0x1B
-#define DIK_RETURN          0x1C    /* Enter on main keyboard */
-#define DIK_LCONTROL        0x1D
-#define DIK_A               0x1E
-#define DIK_S               0x1F
-#define DIK_D               0x20
-#define DIK_F               0x21
-#define DIK_G               0x22
-#define DIK_H               0x23
-#define DIK_J               0x24
-#define DIK_K               0x25
-#define DIK_L               0x26
-#define DIK_SEMICOLON       0x27
-#define DIK_APOSTROPHE      0x28
-#define DIK_GRAVE           0x29    /* accent grave */
-#define DIK_LSHIFT          0x2A
-#define DIK_BACKSLASH       0x2B
-#define DIK_Z               0x2C
-#define DIK_X               0x2D
-#define DIK_C               0x2E
-#define DIK_V               0x2F
-#define DIK_B               0x30
-#define DIK_N               0x31
-#define DIK_M               0x32
-#define DIK_COMMA           0x33
-#define DIK_PERIOD          0x34    /* . on main keyboard */
-#define DIK_SLASH           0x35    /* / on main keyboard */
-#define DIK_RSHIFT          0x36
-#define DIK_MULTIPLY        0x37    /* * on numeric keypad */
-#define DIK_LMENU           0x38    /* left Alt */
-#define DIK_SPACE           0x39
-#define DIK_CAPITAL         0x3A
-#define DIK_F1              0x3B
-#define DIK_F2              0x3C
-#define DIK_F3              0x3D
-#define DIK_F4              0x3E
-#define DIK_F5              0x3F
-#define DIK_F6              0x40
-#define DIK_F7              0x41
-#define DIK_F8              0x42
-#define DIK_F9              0x43
-#define DIK_F10             0x44
-#define DIK_NUMLOCK         0x45
-#define DIK_SCROLL          0x46    /* Scroll Lock */
-#define DIK_NUMPAD7         0x47
-#define DIK_NUMPAD8         0x48
-#define DIK_NUMPAD9         0x49
-#define DIK_SUBTRACT        0x4A    /* - on numeric keypad */
-#define DIK_NUMPAD4         0x4B
-#define DIK_NUMPAD5         0x4C
-#define DIK_NUMPAD6         0x4D
-#define DIK_ADD             0x4E    /* + on numeric keypad */
-#define DIK_NUMPAD1         0x4F
-#define DIK_NUMPAD2         0x50
-#define DIK_NUMPAD3         0x51
-#define DIK_NUMPAD0         0x52
-#define DIK_DECIMAL         0x53    /* . on numeric keypad */
-#define DIK_F11             0x57
-#define DIK_F12             0x58
-
-#define DIK_F13             0x64    /*                     (NEC PC98) */
-#define DIK_F14             0x65    /*                     (NEC PC98) */
-#define DIK_F15             0x66    /*                     (NEC PC98) */
-
-#define DIK_KANA            0x70    /* (Japanese keyboard)            */
-#define DIK_CONVERT         0x79    /* (Japanese keyboard)            */
-#define DIK_NOCONVERT       0x7B    /* (Japanese keyboard)            */
-#define DIK_YEN             0x7D    /* (Japanese keyboard)            */
-#define DIK_NUMPADEQUALS    0x8D    /* = on numeric keypad (NEC PC98) */
-#define DIK_CIRCUMFLEX      0x90    /* (Japanese keyboard)            */
-#define DIK_AT              0x91    /*                     (NEC PC98) */
-#define DIK_COLON           0x92    /*                     (NEC PC98) */
-#define DIK_UNDERLINE       0x93    /*                     (NEC PC98) */
-#define DIK_KANJI           0x94    /* (Japanese keyboard)            */
-#define DIK_STOP            0x95    /*                     (NEC PC98) */
-#define DIK_AX              0x96    /*                     (Japan AX) */
-#define DIK_UNLABELED       0x97    /*                        (J3100) */
-#define DIK_NUMPADENTER     0x9C    /* Enter on numeric keypad */
-#define DIK_RCONTROL        0x9D
-#define DIK_NUMPADCOMMA     0xB3    /* , on numeric keypad (NEC PC98) */
-#define DIK_DIVIDE          0xB5    /* / on numeric keypad */
-#define DIK_SYSRQ           0xB7
-#define DIK_RMENU           0xB8    /* right Alt */
-#define DIK_HOME            0xC7    /* Home on arrow keypad */
-#define DIK_UP              0xC8    /* UpArrow on arrow keypad */
-#define DIK_PRIOR           0xC9    /* PgUp on arrow keypad */
-#define DIK_LEFT            0xCB    /* LeftArrow on arrow keypad */
-#define DIK_RIGHT           0xCD    /* RightArrow on arrow keypad */
-#define DIK_END             0xCF    /* End on arrow keypad */
-#define DIK_DOWN            0xD0    /* DownArrow on arrow keypad */
-#define DIK_NEXT            0xD1    /* PgDn on arrow keypad */
-#define DIK_INSERT          0xD2    /* Insert on arrow keypad */
-#define DIK_DELETE          0xD3    /* Delete on arrow keypad */
-#define DIK_LWIN            0xDB    /* Left Windows key */
-#define DIK_RWIN            0xDC    /* Right Windows key */
-#define DIK_APPS            0xDD    /* AppMenu key */
-
-/*
- *  Alternate names for keys, to facilitate transition from DOS.
- */
-#define DIK_BACKSPACE       DIK_BACK            /* backspace */
-#define DIK_NUMPADSTAR      DIK_MULTIPLY        /* * on numeric keypad */
-#define DIK_LALT            DIK_LMENU           /* left Alt */
-#define DIK_CAPSLOCK        DIK_CAPITAL         /* CapsLock */
-#define DIK_NUMPADMINUS     DIK_SUBTRACT        /* - on numeric keypad */
-#define DIK_NUMPADPLUS      DIK_ADD             /* + on numeric keypad */
-#define DIK_NUMPADPERIOD    DIK_DECIMAL         /* . on numeric keypad */
-#define DIK_NUMPADSLASH     DIK_DIVIDE          /* / on numeric keypad */
-#define DIK_RALT            DIK_RMENU           /* right Alt */
-#define DIK_UPARROW         DIK_UP              /* UpArrow on arrow keypad */
-#define DIK_PGUP            DIK_PRIOR           /* PgUp on arrow keypad */
-#define DIK_LEFTARROW       DIK_LEFT            /* LeftArrow on arrow keypad */
-#define DIK_RIGHTARROW      DIK_RIGHT           /* RightArrow on arrow keypad */
-#define DIK_DOWNARROW       DIK_DOWN            /* DownArrow on arrow keypad */
-#define DIK_PGDN            DIK_NEXT            /* PgDn on arrow keypad */
-
-#endif /* DIJ_RINGZERO */
-
-/****************************************************************************
- *
- *      Joystick
- *
- ****************************************************************************/
-
-#ifndef DIJ_RINGZERO
-
-typedef struct DIJOYSTATE {
-    LONG    lX;                     /* x-axis position              */
-    LONG    lY;                     /* y-axis position              */
-    LONG    lZ;                     /* z-axis position              */
-    LONG    lRx;                    /* x-axis rotation              */
-    LONG    lRy;                    /* y-axis rotation              */
-    LONG    lRz;                    /* z-axis rotation              */
-    LONG    rglSlider[2];           /* extra axes positions         */
-    DWORD   rgdwPOV[4];             /* POV directions               */
-    BYTE    rgbButtons[32];         /* 32 buttons                   */
-} DIJOYSTATE, *LPDIJOYSTATE;
-
-typedef struct DIJOYSTATE2 {
-    LONG    lX;                     /* x-axis position              */
-    LONG    lY;                     /* y-axis position              */
-    LONG    lZ;                     /* z-axis position              */
-    LONG    lRx;                    /* x-axis rotation              */
-    LONG    lRy;                    /* y-axis rotation              */
-    LONG    lRz;                    /* z-axis rotation              */
-    LONG    rglSlider[2];           /* extra axes positions         */
-    DWORD   rgdwPOV[4];             /* POV directions               */
-    BYTE    rgbButtons[128];        /* 128 buttons                  */
-    LONG    lVX;                    /* x-axis velocity              */
-    LONG    lVY;                    /* y-axis velocity              */
-    LONG    lVZ;                    /* z-axis velocity              */
-    LONG    lVRx;                   /* x-axis angular velocity      */
-    LONG    lVRy;                   /* y-axis angular velocity      */
-    LONG    lVRz;                   /* z-axis angular velocity      */
-    LONG    rglVSlider[2];          /* extra axes velocities        */
-    LONG    lAX;                    /* x-axis acceleration          */
-    LONG    lAY;                    /* y-axis acceleration          */
-    LONG    lAZ;                    /* z-axis acceleration          */
-    LONG    lARx;                   /* x-axis angular acceleration  */
-    LONG    lARy;                   /* y-axis angular acceleration  */
-    LONG    lARz;                   /* z-axis angular acceleration  */
-    LONG    rglASlider[2];          /* extra axes accelerations     */
-    LONG    lFX;                    /* x-axis force                 */
-    LONG    lFY;                    /* y-axis force                 */
-    LONG    lFZ;                    /* z-axis force                 */
-    LONG    lFRx;                   /* x-axis torque                */
-    LONG    lFRy;                   /* y-axis torque                */
-    LONG    lFRz;                   /* z-axis torque                */
-    LONG    rglFSlider[2];          /* extra axes forces            */
-} DIJOYSTATE2, *LPDIJOYSTATE2;
-
-#define DIJOFS_X            FIELD_OFFSET(DIJOYSTATE, lX)
-#define DIJOFS_Y            FIELD_OFFSET(DIJOYSTATE, lY)
-#define DIJOFS_Z            FIELD_OFFSET(DIJOYSTATE, lZ)
-#define DIJOFS_RX           FIELD_OFFSET(DIJOYSTATE, lRx)
-#define DIJOFS_RY           FIELD_OFFSET(DIJOYSTATE, lRy)
-#define DIJOFS_RZ           FIELD_OFFSET(DIJOYSTATE, lRz)
-#define DIJOFS_SLIDER(n)   (FIELD_OFFSET(DIJOYSTATE, rglSlider) + \
-                                                        (n) * sizeof(LONG))
-#define DIJOFS_POV(n)      (FIELD_OFFSET(DIJOYSTATE, rgdwPOV) + \
-                                                        (n) * sizeof(DWORD))
-#define DIJOFS_BUTTON(n)   (FIELD_OFFSET(DIJOYSTATE, rgbButtons) + (n))
-#define DIJOFS_BUTTON0      DIJOFS_BUTTON(0)
-#define DIJOFS_BUTTON1      DIJOFS_BUTTON(1)
-#define DIJOFS_BUTTON2      DIJOFS_BUTTON(2)
-#define DIJOFS_BUTTON3      DIJOFS_BUTTON(3)
-#define DIJOFS_BUTTON4      DIJOFS_BUTTON(4)
-#define DIJOFS_BUTTON5      DIJOFS_BUTTON(5)
-#define DIJOFS_BUTTON6      DIJOFS_BUTTON(6)
-#define DIJOFS_BUTTON7      DIJOFS_BUTTON(7)
-#define DIJOFS_BUTTON8      DIJOFS_BUTTON(8)
-#define DIJOFS_BUTTON9      DIJOFS_BUTTON(9)
-#define DIJOFS_BUTTON10     DIJOFS_BUTTON(10)
-#define DIJOFS_BUTTON11     DIJOFS_BUTTON(11)
-#define DIJOFS_BUTTON12     DIJOFS_BUTTON(12)
-#define DIJOFS_BUTTON13     DIJOFS_BUTTON(13)
-#define DIJOFS_BUTTON14     DIJOFS_BUTTON(14)
-#define DIJOFS_BUTTON15     DIJOFS_BUTTON(15)
-#define DIJOFS_BUTTON16     DIJOFS_BUTTON(16)
-#define DIJOFS_BUTTON17     DIJOFS_BUTTON(17)
-#define DIJOFS_BUTTON18     DIJOFS_BUTTON(18)
-#define DIJOFS_BUTTON19     DIJOFS_BUTTON(19)
-#define DIJOFS_BUTTON20     DIJOFS_BUTTON(20)
-#define DIJOFS_BUTTON21     DIJOFS_BUTTON(21)
-#define DIJOFS_BUTTON22     DIJOFS_BUTTON(22)
-#define DIJOFS_BUTTON23     DIJOFS_BUTTON(23)
-#define DIJOFS_BUTTON24     DIJOFS_BUTTON(24)
-#define DIJOFS_BUTTON25     DIJOFS_BUTTON(25)
-#define DIJOFS_BUTTON26     DIJOFS_BUTTON(26)
-#define DIJOFS_BUTTON27     DIJOFS_BUTTON(27)
-#define DIJOFS_BUTTON28     DIJOFS_BUTTON(28)
-#define DIJOFS_BUTTON29     DIJOFS_BUTTON(29)
-#define DIJOFS_BUTTON30     DIJOFS_BUTTON(30)
-#define DIJOFS_BUTTON31     DIJOFS_BUTTON(31)
-
-
-#endif /* DIJ_RINGZERO */
-
-/****************************************************************************
- *
- *  IDirectInput
- *
- ****************************************************************************/
-
-#ifndef DIJ_RINGZERO
-
-#define DIENUM_STOP             0
-#define DIENUM_CONTINUE         1
-
-typedef BOOL (FAR PASCAL * LPDIENUMDEVICESCALLBACKA)(LPCDIDEVICEINSTANCEA, LPVOID);
-typedef BOOL (FAR PASCAL * LPDIENUMDEVICESCALLBACKW)(LPCDIDEVICEINSTANCEW, LPVOID);
-#ifdef UNICODE
-#define LPDIENUMDEVICESCALLBACK  LPDIENUMDEVICESCALLBACKW
-#else
-#define LPDIENUMDEVICESCALLBACK  LPDIENUMDEVICESCALLBACKA
-#endif // !UNICODE
-
-#define DIEDFL_ALLDEVICES       0x00000000
-#define DIEDFL_ATTACHEDONLY     0x00000001
-#if(DIRECTINPUT_VERSION >= 0x0500)
-#define DIEDFL_FORCEFEEDBACK    0x00000100
-#endif /* DIRECTINPUT_VERSION >= 0x0500 */
-
-#undef INTERFACE
-#define INTERFACE IDirectInputW
-
-DECLARE_INTERFACE_(IDirectInputW, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-
-    /*** IDirectInputW methods ***/
-    STDMETHOD(CreateDevice)(THIS_ REFGUID,LPDIRECTINPUTDEVICEW *,LPUNKNOWN) PURE;
-    STDMETHOD(EnumDevices)(THIS_ DWORD,LPDIENUMDEVICESCALLBACKW,LPVOID,DWORD) PURE;
-    STDMETHOD(GetDeviceStatus)(THIS_ REFGUID) PURE;
-    STDMETHOD(RunControlPanel)(THIS_ HWND,DWORD) PURE;
-    STDMETHOD(Initialize)(THIS_ HINSTANCE,DWORD) PURE;
-};
-
-typedef struct IDirectInputW *LPDIRECTINPUTW;
-
-#undef INTERFACE
-#define INTERFACE IDirectInputA
-
-DECLARE_INTERFACE_(IDirectInputA, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-
-    /*** IDirectInputA methods ***/
-    STDMETHOD(CreateDevice)(THIS_ REFGUID,LPDIRECTINPUTDEVICEA *,LPUNKNOWN) PURE;
-    STDMETHOD(EnumDevices)(THIS_ DWORD,LPDIENUMDEVICESCALLBACKA,LPVOID,DWORD) PURE;
-    STDMETHOD(GetDeviceStatus)(THIS_ REFGUID) PURE;
-    STDMETHOD(RunControlPanel)(THIS_ HWND,DWORD) PURE;
-    STDMETHOD(Initialize)(THIS_ HINSTANCE,DWORD) PURE;
-};
-
-typedef struct IDirectInputA *LPDIRECTINPUTA;
-
-#ifdef UNICODE
-#define IID_IDirectInput IID_IDirectInputW
-#define IDirectInput IDirectInputW
-#define IDirectInputVtbl IDirectInputWVtbl
-#else
-#define IID_IDirectInput IID_IDirectInputA
-#define IDirectInput IDirectInputA
-#define IDirectInputVtbl IDirectInputAVtbl
-#endif
-typedef struct IDirectInput *LPDIRECTINPUT;
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectInput_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectInput_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IDirectInput_Release(p) (p)->lpVtbl->Release(p)
-#define IDirectInput_CreateDevice(p,a,b,c) (p)->lpVtbl->CreateDevice(p,a,b,c)
-#define IDirectInput_EnumDevices(p,a,b,c,d) (p)->lpVtbl->EnumDevices(p,a,b,c,d)
-#define IDirectInput_GetDeviceStatus(p,a) (p)->lpVtbl->GetDeviceStatus(p,a)
-#define IDirectInput_RunControlPanel(p,a,b) (p)->lpVtbl->RunControlPanel(p,a,b)
-#define IDirectInput_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
-#else
-#define IDirectInput_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectInput_AddRef(p) (p)->AddRef()
-#define IDirectInput_Release(p) (p)->Release()
-#define IDirectInput_CreateDevice(p,a,b,c) (p)->CreateDevice(a,b,c)
-#define IDirectInput_EnumDevices(p,a,b,c,d) (p)->EnumDevices(a,b,c,d)
-#define IDirectInput_GetDeviceStatus(p,a) (p)->GetDeviceStatus(a)
-#define IDirectInput_RunControlPanel(p,a,b) (p)->RunControlPanel(a,b)
-#define IDirectInput_Initialize(p,a,b) (p)->Initialize(a,b)
-#endif
-
-#undef INTERFACE
-#define INTERFACE IDirectInput2W
-
-DECLARE_INTERFACE_(IDirectInput2W, IDirectInputW)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-
-    /*** IDirectInputW methods ***/
-    STDMETHOD(CreateDevice)(THIS_ REFGUID,LPDIRECTINPUTDEVICEW *,LPUNKNOWN) PURE;
-    STDMETHOD(EnumDevices)(THIS_ DWORD,LPDIENUMDEVICESCALLBACKW,LPVOID,DWORD) PURE;
-    STDMETHOD(GetDeviceStatus)(THIS_ REFGUID) PURE;
-    STDMETHOD(RunControlPanel)(THIS_ HWND,DWORD) PURE;
-    STDMETHOD(Initialize)(THIS_ HINSTANCE,DWORD) PURE;
-
-    /*** IDirectInput2W methods ***/
-    STDMETHOD(FindDevice)(THIS_ REFGUID,LPCWSTR,LPGUID) PURE;
-};
-
-typedef struct IDirectInput2W *LPDIRECTINPUT2W;
-
-#undef INTERFACE
-#define INTERFACE IDirectInput2A
-
-DECLARE_INTERFACE_(IDirectInput2A, IDirectInputA)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-
-    /*** IDirectInputA methods ***/
-    STDMETHOD(CreateDevice)(THIS_ REFGUID,LPDIRECTINPUTDEVICEA *,LPUNKNOWN) PURE;
-    STDMETHOD(EnumDevices)(THIS_ DWORD,LPDIENUMDEVICESCALLBACKA,LPVOID,DWORD) PURE;
-    STDMETHOD(GetDeviceStatus)(THIS_ REFGUID) PURE;
-    STDMETHOD(RunControlPanel)(THIS_ HWND,DWORD) PURE;
-    STDMETHOD(Initialize)(THIS_ HINSTANCE,DWORD) PURE;
-
-    /*** IDirectInput2A methods ***/
-    STDMETHOD(FindDevice)(THIS_ REFGUID,LPCSTR,LPGUID) PURE;
-};
-
-typedef struct IDirectInput2A *LPDIRECTINPUT2A;
-
-#ifdef UNICODE
-#define IID_IDirectInput2 IID_IDirectInput2W
-#define IDirectInput2 IDirectInput2W
-#define IDirectInput2Vtbl IDirectInput2WVtbl
-#else
-#define IID_IDirectInput2 IID_IDirectInput2A
-#define IDirectInput2 IDirectInput2A
-#define IDirectInput2Vtbl IDirectInput2AVtbl
-#endif
-typedef struct IDirectInput2 *LPDIRECTINPUT2;
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectInput2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectInput2_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IDirectInput2_Release(p) (p)->lpVtbl->Release(p)
-#define IDirectInput2_CreateDevice(p,a,b,c) (p)->lpVtbl->CreateDevice(p,a,b,c)
-#define IDirectInput2_EnumDevices(p,a,b,c,d) (p)->lpVtbl->EnumDevices(p,a,b,c,d)
-#define IDirectInput2_GetDeviceStatus(p,a) (p)->lpVtbl->GetDeviceStatus(p,a)
-#define IDirectInput2_RunControlPanel(p,a,b) (p)->lpVtbl->RunControlPanel(p,a,b)
-#define IDirectInput2_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectInput2_FindDevice(p,a,b,c) (p)->lpVtbl->FindDevice(p,a,b,c)
-#else
-#define IDirectInput2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectInput2_AddRef(p) (p)->AddRef()
-#define IDirectInput2_Release(p) (p)->Release()
-#define IDirectInput2_CreateDevice(p,a,b,c) (p)->CreateDevice(a,b,c)
-#define IDirectInput2_EnumDevices(p,a,b,c,d) (p)->EnumDevices(a,b,c,d)
-#define IDirectInput2_GetDeviceStatus(p,a) (p)->GetDeviceStatus(a)
-#define IDirectInput2_RunControlPanel(p,a,b) (p)->RunControlPanel(a,b)
-#define IDirectInput2_Initialize(p,a,b) (p)->Initialize(a,b)
-#define IDirectInput2_FindDevice(p,a,b,c) (p)->FindDevice(a,b,c)
-#endif
-
-extern HRESULT WINAPI DirectInputCreateA(HINSTANCE hinst, DWORD dwVersion, LPDIRECTINPUTA *ppDI, LPUNKNOWN punkOuter);
-extern HRESULT WINAPI DirectInputCreateW(HINSTANCE hinst, DWORD dwVersion, LPDIRECTINPUTW *ppDI, LPUNKNOWN punkOuter);
-#ifdef UNICODE
-#define DirectInputCreate  DirectInputCreateW
-#else
-#define DirectInputCreate  DirectInputCreateA
-#endif // !UNICODE
-
-#endif /* DIJ_RINGZERO */
-
-
-/****************************************************************************
- *
- *  Return Codes
- *
- ****************************************************************************/
-
-/*
- *  The operation completed successfully.
- */
-#define DI_OK                           S_OK
-
-/*
- *  The device exists but is not currently attached.
- */
-#define DI_NOTATTACHED                  S_FALSE
-
-/*
- *  The device buffer overflowed.  Some input was lost.
- */
-#define DI_BUFFEROVERFLOW               S_FALSE
-
-/*
- *  The change in device properties had no effect.
- */
-#define DI_PROPNOEFFECT                 S_FALSE
-
-/*
- *  The operation had no effect.
- */
-#define DI_NOEFFECT                     S_FALSE
-
-/*
- *  The device is a polled device.  As a result, device buffering
- *  will not collect any data and event notifications will not be
- *  signalled until GetDeviceState is called.
- */
-#define DI_POLLEDDEVICE                 ((HRESULT)0x00000002L)
-
-/*
- *  The parameters of the effect were successfully updated by
- *  IDirectInputEffect::SetParameters, but the effect was not
- *  downloaded because the device is not exclusively acquired
- *  or because the DIEP_NODOWNLOAD flag was passed.
- */
-#define DI_DOWNLOADSKIPPED              ((HRESULT)0x00000003L)
-
-/*
- *  The parameters of the effect were successfully updated by
- *  IDirectInputEffect::SetParameters, but in order to change
- *  the parameters, the effect needed to be restarted.
- */
-#define DI_EFFECTRESTARTED              ((HRESULT)0x00000004L)
-
-/*
- *  The parameters of the effect were successfully updated by
- *  IDirectInputEffect::SetParameters, but some of them were
- *  beyond the capabilities of the device and were truncated.
- */
-#define DI_TRUNCATED                    ((HRESULT)0x00000008L)
-
-/*
- *  Equal to DI_EFFECTRESTARTED | DI_TRUNCATED.
- */
-#define DI_TRUNCATEDANDRESTARTED        ((HRESULT)0x0000000CL)
-
-/*
- *  The application requires a newer version of DirectInput.
- */
-#define DIERR_OLDDIRECTINPUTVERSION     \
-    MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_OLD_WIN_VERSION)
-
-/*
- *  The application was written for an unsupported prerelease version
- *  of DirectInput.
- */
-#define DIERR_BETADIRECTINPUTVERSION    \
-    MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_RMODE_APP)
-
-/*
- *  The object could not be created due to an incompatible driver version
- *  or mismatched or incomplete driver components.
- */
-#define DIERR_BADDRIVERVER              \
-    MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_BAD_DRIVER_LEVEL)
-
-/*
- * The device or device instance or effect is not registered with DirectInput.
- */
-#define DIERR_DEVICENOTREG              REGDB_E_CLASSNOTREG
-
-/*
- * The requested object does not exist.
- */
-#define DIERR_NOTFOUND                  \
-    MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_FILE_NOT_FOUND)
-
-/*
- * The requested object does not exist.
- */
-#define DIERR_OBJECTNOTFOUND            \
-    MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_FILE_NOT_FOUND)
-
-/*
- * An invalid parameter was passed to the returning function,
- * or the object was not in a state that admitted the function
- * to be called.
- */
-#define DIERR_INVALIDPARAM              E_INVALIDARG
-
-/*
- * The specified interface is not supported by the object
- */
-#define DIERR_NOINTERFACE               E_NOINTERFACE
-
-/*
- * An undetermined error occured inside the DInput subsystem
- */
-#define DIERR_GENERIC                   E_FAIL
-
-/*
- * The DInput subsystem couldn't allocate sufficient memory to complete the
- * caller's request.
- */
-#define DIERR_OUTOFMEMORY               E_OUTOFMEMORY
-
-/*
- * The function called is not supported at this time
- */
-#define DIERR_UNSUPPORTED               E_NOTIMPL
-
-/*
- * This object has not been initialized
- */
-#define DIERR_NOTINITIALIZED            \
-    MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_NOT_READY)
-
-/*
- * This object is already initialized
- */
-#define DIERR_ALREADYINITIALIZED        \
-    MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_ALREADY_INITIALIZED)
-
-/*
- * This object does not support aggregation
- */
-#define DIERR_NOAGGREGATION             CLASS_E_NOAGGREGATION
-
-/*
- * Another app has a higher priority level, preventing this call from
- * succeeding.
- */
-#define DIERR_OTHERAPPHASPRIO           E_ACCESSDENIED
-
-/*
- * Access to the device has been lost.  It must be re-acquired.
- */
-#define DIERR_INPUTLOST                 \
-    MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_READ_FAULT)
-
-/*
- * The operation cannot be performed while the device is acquired.
- */
-#define DIERR_ACQUIRED                  \
-    MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_BUSY)
-
-/*
- * The operation cannot be performed unless the device is acquired.
- */
-#define DIERR_NOTACQUIRED               \
-    MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_INVALID_ACCESS)
-
-/*
- * The specified property cannot be changed.
- */
-#define DIERR_READONLY                  E_ACCESSDENIED
-
-/*
- * The device already has an event notification associated with it.
- */
-#define DIERR_HANDLEEXISTS              E_ACCESSDENIED
-
-/*
- * Data is not yet available.
- */
-#ifndef E_PENDING
-#define E_PENDING                       0x80070007L
-#endif
-
-/*
- * Unable to IDirectInputJoyConfig_Acquire because the user
- * does not have sufficient privileges to change the joystick
- * configuration.
- */
-#define DIERR_INSUFFICIENTPRIVS         0x80040200L
-
-/*
- * The device is full.
- */
-#define DIERR_DEVICEFULL                0x80040201L
-
-/*
- * Not all the requested information fit into the buffer.
- */
-#define DIERR_MOREDATA                  0x80040202L
-
-/*
- * The effect is not downloaded.
- */
-#define DIERR_NOTDOWNLOADED             0x80040203L
-
-/*
- *  The device cannot be reinitialized because there are still effects
- *  attached to it.
- */
-#define DIERR_HASEFFECTS                0x80040204L
-
-/*
- *  The operation cannot be performed unless the device is acquired
- *  in DISCL_EXCLUSIVE mode.
- */
-#define DIERR_NOTEXCLUSIVEACQUIRED      0x80040205L
-
-/*
- *  The effect could not be downloaded because essential information
- *  is missing.  For example, no axes have been associated with the
- *  effect, or no type-specific information has been created.
- */
-#define DIERR_INCOMPLETEEFFECT          0x80040206L
-
-/*
- *  Attempted to read buffered device data from a device that is
- *  not buffered.
- */
-#define DIERR_NOTBUFFERED               0x80040207L
-
-/*
- *  An attempt was made to modify parameters of an effect while it is
- *  playing.  Not all hardware devices support altering the parameters
- *  of an effect while it is playing.
- */
-#define DIERR_EFFECTPLAYING             0x80040208L
-
-#ifdef __cplusplus
-};
-#endif
-
-#endif  /* __DINPUT_INCLUDED__ */
-
-/****************************************************************************
- *
- *  Definitions for non-IDirectInput (VJoyD) features defined more recently
- *  than the current sdk files
- *
- ****************************************************************************/
-
-#ifdef _INC_MMSYSTEM
-#ifndef MMNOJOY
-
-#ifndef __VJOYDX_INCLUDED__
-#define __VJOYDX_INCLUDED__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Flag to indicate that the dwReserved2 field of the JOYINFOEX structure
- * contains mini-driver specific data to be passed by VJoyD to the mini-
- * driver instead of doing a poll.
- */
-#define JOY_PASSDRIVERDATA          0x10000000l
-
-/*
- * Informs the joystick driver that the configuration has been changed
- * and should be reloaded from the registery.
- * dwFlags is reserved and should be set to zero
- */
-WINMMAPI MMRESULT WINAPI joyConfigChanged( DWORD dwFlags );
-
-/*
- * Hardware Setting indicating that the device is a headtracker
- */
-#define JOY_HWS_ISHEADTRACKER       0x02000000l
-
-/*
- * Hardware Setting indicating that the VxD is used to replace
- * the standard analog polling
- */
-#define JOY_HWS_ISGAMEPORTDRIVER    0x04000000l
-
-/*
- * Hardware Setting indicating that the driver needs a standard
- * gameport in order to communicate with the device.
- */
-#define JOY_HWS_ISANALOGPORTDRIVER  0x08000000l 
-
-/*
- * Hardware Setting indicating that VJoyD should not load this 
- * driver, it will be loaded externally and will register with
- * VJoyD of it's own accord.
- */
-#define JOY_HWS_AUTOLOAD            0x10000000l
-
-/*
- * Hardware Setting indicating that the driver acquires any 
- * resources needed without needing a devnode through VJoyD.
- */
-#define JOY_HWS_NODEVNODE           0x20000000l
-
-/*
- * Hardware Setting indicating that the VxD can be used as
- * a port 201h emulator.
- */
-#define JOY_HWS_ISGAMEPORTEMULATOR  0x40000000l
-
-
-/*
- * Usage Setting indicating that the settings are volatile and
- * should be removed if still present on a reboot.
- */
-#define JOY_US_VOLATILE             0x00000008L
-
-#ifdef __cplusplus
-};
-#endif
-
-#endif  /* __VJOYDX_INCLUDED__ */
-
-#endif  /* not MMNOJOY */
-#endif  /* _INC_MMSYSTEM */
-
-/****************************************************************************
- *
- *  Definitions for non-IDirectInput (VJoyD) features defined more recently
- *  than the current ddk files
- *
- ****************************************************************************/
-
-#ifndef DIJ_RINGZERO
-
-#ifdef _INC_MMDDK
-#ifndef MMNOJOYDEV
-
-#ifndef __VJOYDXD_INCLUDED__
-#define __VJOYDXD_INCLUDED__
-/*
- * Poll type in which the do_other field of the JOYOEMPOLLDATA
- * structure contains mini-driver specific data passed from an app.
- */
-#define JOY_OEMPOLL_PASSDRIVERDATA  7
-
-#endif  /* __VJOYDXD_INCLUDED__ */
-
-#endif  /* not MMNOJOYDEV */
-#endif  /* _INC_MMDDK */
-
-#endif /* DIJ_RINGZERO */
diff --git a/misc/builddeps/win32/dx/include/dsound.h b/misc/builddeps/win32/dx/include/dsound.h
deleted file mode 100644 (file)
index 599b80a..0000000
+++ /dev/null
@@ -1,1200 +0,0 @@
-/*
- * Copyright (C) the Wine project
- *
- * 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_DSOUND_H
-#define __WINE_DSOUND_H
-#define __DSOUND_INCLUDED__
-
-#include <_mingw_dxhelper.h>
-#ifndef DIRECTSOUND_VERSION
-#define DIRECTSOUND_VERSION 0x0900
-#endif
-
-#define COM_NO_WINDOWS_H
-#include <objbase.h>
-#include <float.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* defined(__cplusplus) */
-
-#ifndef DX_SHARED_DEFINES
-
-typedef float D3DVALUE, *LPD3DVALUE;
-
-#ifndef D3DCOLOR_DEFINED
-typedef DWORD D3DCOLOR, *LPD3DCOLOR;
-#define D3DCOLOR_DEFINED
-#endif
-
-#ifndef D3DVECTOR_DEFINED
-typedef struct _D3DVECTOR {
-    float x;
-    float y;
-    float z;
-} D3DVECTOR;
-#define D3DVECTOR_DEFINED
-#endif
-
-#ifndef LPD3DVECTOR_DEFINED
-typedef D3DVECTOR *LPD3DVECTOR;
-#define LPD3DVECTOR_DEFINED
-#endif
-
-#define DX_SHARED_DEFINES
-#endif /* DX_SHARED_DEFINES */
-
-/*****************************************************************************
- * Predeclare the interfaces
- */
-DEFINE_GUID(CLSID_DirectSound,         0x47d4d946, 0x62e8, 0x11cf, 0x93, 0xbc, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00);
-DEFINE_GUID(CLSID_DirectSound8,                0x3901cc3f, 0x84b5, 0x4fa4, 0xba, 0x35, 0xaa, 0x81, 0x72, 0xb8, 0xa0, 0x9b);
-DEFINE_GUID(CLSID_DirectSoundCapture,  0xb0210780, 0x89cd, 0x11d0, 0xaf, 0x08, 0x00, 0xa0, 0xc9, 0x25, 0xcd, 0x16);
-DEFINE_GUID(CLSID_DirectSoundCapture8, 0xe4bcac13, 0x7f99, 0x4908, 0x9a, 0x8e, 0x74, 0xe3, 0xbf, 0x24, 0xb6, 0xe1);
-DEFINE_GUID(CLSID_DirectSoundFullDuplex,0xfea4300c, 0x7959, 0x4147, 0xb2, 0x6a, 0x23, 0x77, 0xb9, 0xe7, 0xa9, 0x1d);
-
-DEFINE_GUID(IID_IDirectSound,          0x279AFA83,0x4981,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60);
-typedef struct IDirectSound *LPDIRECTSOUND,**LPLPDIRECTSOUND;
-
-DEFINE_GUID(IID_IDirectSound8,         0xC50A7E93,0xF395,0x4834,0x9E,0xF6,0x7F,0xA9,0x9D,0xE5,0x09,0x66);
-typedef struct IDirectSound8 *LPDIRECTSOUND8,**LPLPDIRECTSOUND8;
-
-DEFINE_GUID(IID_IDirectSoundBuffer,    0x279AFA85,0x4981,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60);
-typedef struct IDirectSoundBuffer *LPDIRECTSOUNDBUFFER,**LPLPDIRECTSOUNDBUFFER;
-
-DEFINE_GUID(IID_IDirectSoundBuffer8,   0x6825A449,0x7524,0x4D82,0x92,0x0F,0x50,0xE3,0x6A,0xB3,0xAB,0x1E);
-typedef struct IDirectSoundBuffer8 *LPDIRECTSOUNDBUFFER8,**LPLPDIRECTSOUNDBUFFER8;
-
-DEFINE_GUID(IID_IDirectSoundNotify,    0xB0210783,0x89cd,0x11d0,0xAF,0x08,0x00,0xA0,0xC9,0x25,0xCD,0x16);
-typedef struct IDirectSoundNotify *LPDIRECTSOUNDNOTIFY,**LPLPDIRECTSOUNDNOTIFY;
-#define        IID_IDirectSoundNotify8         IID_IDirectSoundNotify
-
-DEFINE_GUID(IID_IDirectSound3DListener,        0x279AFA84,0x4981,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60);
-typedef struct IDirectSound3DListener *LPDIRECTSOUND3DLISTENER,**LPLPDIRECTSOUND3DLISTENER;
-
-DEFINE_GUID(IID_IDirectSound3DBuffer,  0x279AFA86,0x4981,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60);
-typedef struct IDirectSound3DBuffer *LPDIRECTSOUND3DBUFFER,**LPLPDIRECTSOUND3DBUFFER;
-
-DEFINE_GUID(IID_IDirectSoundCapture,   0xB0210781,0x89CD,0x11D0,0xAF,0x08,0x00,0xA0,0xC9,0x25,0xCD,0x16);
-typedef struct IDirectSoundCapture *LPDIRECTSOUNDCAPTURE,**LPLPDIRECTSOUNDCAPTURE;
-#define        IID_IDirectSoundCapture8        IID_IDirectSoundCapture
-typedef struct IDirectSoundCapture IDirectSoundCapture8,*LPDIRECTSOUNDCAPTURE8,**LPLPDIRECTSOUNDCAPTURE8;
-
-DEFINE_GUID(IID_IDirectSoundCaptureBuffer,0xB0210782,0x89CD,0x11D0,0xAF,0x08,0x00,0xA0,0xC9,0x25,0xCD,0x16);
-typedef struct IDirectSoundCaptureBuffer *LPDIRECTSOUNDCAPTUREBUFFER,**LPLPDIRECTSOUNDCAPTUREBUFFER;
-
-DEFINE_GUID(IID_IDirectSoundCaptureBuffer8,0x00990DF4,0x0DBB,0x4872,0x83,0x3E,0x6D,0x30,0x3E,0x80,0xAE,0xB6);
-typedef struct IDirectSoundCaptureBuffer8 *LPDIRECTSOUNDCAPTUREBUFFER8,**LPLPDIRECTSOUNDCAPTUREBUFFER8;
-
-DEFINE_GUID(IID_IDirectSoundFullDuplex,        0xEDCB4C7A,0xDAAB,0x4216,0xA4,0x2E,0x6C,0x50,0x59,0x6D,0xDC,0x1D);
-typedef struct IDirectSoundFullDuplex *LPDIRECTSOUNDFULLDUPLEX,**LPLPDIRECTSOUNDFULLDUPLEX;
-#define        IID_IDirectSoundFullDuplex8     IID_IDirectSoundFullDuplex
-
-DEFINE_GUID(DSDEVID_DefaultPlayback,     0xDEF00000,0x9C6D,0x47Ed,0xAA,0xF1,0x4D,0xDA,0x8F,0x2B,0x5C,0x03);
-DEFINE_GUID(DSDEVID_DefaultCapture,      0xDEF00001,0x9C6D,0x47Ed,0xAA,0xF1,0x4D,0xDA,0x8F,0x2B,0x5C,0x03);
-DEFINE_GUID(DSDEVID_DefaultVoicePlayback,0xDEF00002,0x9C6D,0x47Ed,0xAA,0xF1,0x4D,0xDA,0x8F,0x2B,0x5C,0x03);
-DEFINE_GUID(DSDEVID_DefaultVoiceCapture, 0xDEF00003,0x9C6D,0x47ED,0xAA,0xF1,0x4D,0xDA,0x8F,0x2B,0x5C,0x03);
-
-DEFINE_GUID(DSDEVID_WinePlayback,        0x40316A1D,0x605B,0xD611,0x87,0xC6,0x00,0x80,0xAD,0x00,0x02,0xFE);
-
-#define        _FACDS          0x878
-#define        MAKE_DSHRESULT(code)            MAKE_HRESULT(1,_FACDS,code)
-
-#define DS_OK                          0
-#define DS_NO_VIRTUALIZATION            MAKE_HRESULT(0, _FACDS, 10)
-#define DS_INCOMPLETE                   MAKE_HRESULT(0, _FACDS, 20)
-#define DSERR_ALLOCATED                        MAKE_DSHRESULT(10)
-#define DSERR_CONTROLUNAVAIL           MAKE_DSHRESULT(30)
-#define DSERR_INVALIDPARAM             E_INVALIDARG
-#define DSERR_INVALIDCALL              MAKE_DSHRESULT(50)
-#define DSERR_GENERIC                  E_FAIL
-#define DSERR_PRIOLEVELNEEDED          MAKE_DSHRESULT(70)
-#define DSERR_OUTOFMEMORY              E_OUTOFMEMORY
-#define DSERR_BADFORMAT                        MAKE_DSHRESULT(100)
-#define DSERR_UNSUPPORTED              E_NOTIMPL
-#define DSERR_NODRIVER                 MAKE_DSHRESULT(120)
-#define DSERR_ALREADYINITIALIZED       MAKE_DSHRESULT(130)
-#define DSERR_NOAGGREGATION            CLASS_E_NOAGGREGATION
-#define DSERR_BUFFERLOST               MAKE_DSHRESULT(150)
-#define DSERR_OTHERAPPHASPRIO          MAKE_DSHRESULT(160)
-#define DSERR_UNINITIALIZED            MAKE_DSHRESULT(170)
-#define DSERR_NOINTERFACE               E_NOINTERFACE
-#define DSERR_ACCESSDENIED              E_ACCESSDENIED
-#define DSERR_BUFFERTOOSMALL            MAKE_DSHRESULT(180)
-#define DSERR_DS8_REQUIRED              MAKE_DSHRESULT(190)
-#define DSERR_SENDLOOP                  MAKE_DSHRESULT(200)
-#define DSERR_BADSENDBUFFERGUID         MAKE_DSHRESULT(210)
-#define DSERR_FXUNAVAILABLE             MAKE_DSHRESULT(220)
-#define DSERR_OBJECTNOTFOUND            MAKE_DSHRESULT(4449)
-
-#define DSCAPS_PRIMARYMONO          0x00000001
-#define DSCAPS_PRIMARYSTEREO        0x00000002
-#define DSCAPS_PRIMARY8BIT          0x00000004
-#define DSCAPS_PRIMARY16BIT         0x00000008
-#define DSCAPS_CONTINUOUSRATE       0x00000010
-#define DSCAPS_EMULDRIVER           0x00000020
-#define DSCAPS_CERTIFIED            0x00000040
-#define DSCAPS_SECONDARYMONO        0x00000100
-#define DSCAPS_SECONDARYSTEREO      0x00000200
-#define DSCAPS_SECONDARY8BIT        0x00000400
-#define DSCAPS_SECONDARY16BIT       0x00000800
-
-#define        DSSCL_NORMAL            1
-#define        DSSCL_PRIORITY          2
-#define        DSSCL_EXCLUSIVE         3
-#define        DSSCL_WRITEPRIMARY      4
-
-typedef struct _DSCAPS
-{
-    DWORD      dwSize;
-    DWORD      dwFlags;
-    DWORD      dwMinSecondarySampleRate;
-    DWORD      dwMaxSecondarySampleRate;
-    DWORD      dwPrimaryBuffers;
-    DWORD      dwMaxHwMixingAllBuffers;
-    DWORD      dwMaxHwMixingStaticBuffers;
-    DWORD      dwMaxHwMixingStreamingBuffers;
-    DWORD      dwFreeHwMixingAllBuffers;
-    DWORD      dwFreeHwMixingStaticBuffers;
-    DWORD      dwFreeHwMixingStreamingBuffers;
-    DWORD      dwMaxHw3DAllBuffers;
-    DWORD      dwMaxHw3DStaticBuffers;
-    DWORD      dwMaxHw3DStreamingBuffers;
-    DWORD      dwFreeHw3DAllBuffers;
-    DWORD      dwFreeHw3DStaticBuffers;
-    DWORD      dwFreeHw3DStreamingBuffers;
-    DWORD      dwTotalHwMemBytes;
-    DWORD      dwFreeHwMemBytes;
-    DWORD      dwMaxContigFreeHwMemBytes;
-    DWORD      dwUnlockTransferRateHwBuffers;
-    DWORD      dwPlayCpuOverheadSwBuffers;
-    DWORD      dwReserved1;
-    DWORD      dwReserved2;
-} DSCAPS,*LPDSCAPS;
-typedef const DSCAPS *LPCDSCAPS;
-
-#define DSBPLAY_LOOPING             0x00000001
-#define DSBPLAY_LOCHARDWARE         0x00000002
-#define DSBPLAY_LOCSOFTWARE         0x00000004
-#define DSBPLAY_TERMINATEBY_TIME    0x00000008
-#define DSBPLAY_TERMINATEBY_DISTANCE    0x000000010
-#define DSBPLAY_TERMINATEBY_PRIORITY    0x000000020
-
-#define DSBSTATUS_PLAYING           0x00000001
-#define DSBSTATUS_BUFFERLOST        0x00000002
-#define DSBSTATUS_LOOPING           0x00000004
-#define DSBSTATUS_LOCHARDWARE       0x00000008
-#define DSBSTATUS_LOCSOFTWARE       0x00000010
-#define DSBSTATUS_TERMINATED        0x00000020
-
-#define DSBLOCK_FROMWRITECURSOR     0x00000001
-#define DSBLOCK_ENTIREBUFFER        0x00000002
-
-#define DSBCAPS_PRIMARYBUFFER       0x00000001
-#define DSBCAPS_STATIC              0x00000002
-#define DSBCAPS_LOCHARDWARE         0x00000004
-#define DSBCAPS_LOCSOFTWARE         0x00000008
-#define DSBCAPS_CTRL3D              0x00000010
-#define DSBCAPS_CTRLFREQUENCY       0x00000020
-#define DSBCAPS_CTRLPAN             0x00000040
-#define DSBCAPS_CTRLVOLUME          0x00000080
-#define DSBCAPS_CTRLDEFAULT         0x000000E0  /* Pan + volume + frequency. */
-#define DSBCAPS_CTRLPOSITIONNOTIFY  0x00000100
-#define DSBCAPS_CTRLFX              0x00000200
-#define DSBCAPS_CTRLALL             0x000001F0  /* All control capabilities */
-#define DSBCAPS_STICKYFOCUS         0x00004000
-#define DSBCAPS_GLOBALFOCUS         0x00008000
-#define DSBCAPS_GETCURRENTPOSITION2 0x00010000  /* More accurate play cursor under emulation*/
-#define DSBCAPS_MUTE3DATMAXDISTANCE 0x00020000
-#define DSBCAPS_LOCDEFER            0x00040000
-
-#define DSBSIZE_MIN                 4
-#define DSBSIZE_MAX                 0xFFFFFFF
-#define DSBPAN_LEFT                 -10000
-#define DSBPAN_CENTER               0
-#define DSBPAN_RIGHT                 10000
-#define DSBVOLUME_MAX                    0
-#define DSBVOLUME_MIN               -10000
-#define DSBFREQUENCY_MIN            100
-#define DSBFREQUENCY_MAX            200000
-#define DSBFREQUENCY_ORIGINAL       0
-
-typedef struct _DSBCAPS
-{
-    DWORD      dwSize;
-    DWORD      dwFlags;
-    DWORD      dwBufferBytes;
-    DWORD      dwUnlockTransferRate;
-    DWORD      dwPlayCpuOverhead;
-} DSBCAPS,*LPDSBCAPS;
-typedef const DSBCAPS *LPCDSBCAPS;
-
-#define DSSCL_NORMAL                1
-#define DSSCL_PRIORITY              2
-#define DSSCL_EXCLUSIVE             3
-#define DSSCL_WRITEPRIMARY          4
-
-typedef struct _DSEFFECTDESC
-{
-    DWORD      dwSize;
-    DWORD      dwFlags;
-    GUID       guidDSFXClass;
-    DWORD_PTR  dwReserved1;
-    DWORD_PTR  dwReserved2;
-} DSEFFECTDESC,*LPDSEFFECTDESC;
-typedef const DSEFFECTDESC *LPCDSEFFECTDESC;
-
-#define DSFX_LOCHARDWARE    0x00000001
-#define DSFX_LOCSOFTWARE    0x00000002
-
-enum
-{
-    DSFXR_PRESENT,
-    DSFXR_LOCHARDWARE,
-    DSFXR_LOCSOFTWARE,
-    DSFXR_UNALLOCATED,
-    DSFXR_FAILED,
-    DSFXR_UNKNOWN,
-    DSFXR_SENDLOOP
-};
-
-typedef struct _DSBUFFERDESC1
-{
-    DWORD              dwSize;
-    DWORD              dwFlags;
-    DWORD              dwBufferBytes;
-    DWORD              dwReserved;
-    LPWAVEFORMATEX     lpwfxFormat;
-} DSBUFFERDESC1,*LPDSBUFFERDESC1;
-typedef const DSBUFFERDESC1 *LPCDSBUFFERDESC1;
-
-typedef struct _DSBUFFERDESC
-{
-    DWORD              dwSize;
-    DWORD              dwFlags;
-    DWORD              dwBufferBytes;
-    DWORD              dwReserved;
-    LPWAVEFORMATEX     lpwfxFormat;
-    GUID               guid3DAlgorithm;
-} DSBUFFERDESC,*LPDSBUFFERDESC;
-typedef const DSBUFFERDESC *LPCDSBUFFERDESC;
-
-typedef struct _DSBPOSITIONNOTIFY
-{
-    DWORD      dwOffset;
-    HANDLE     hEventNotify;
-} DSBPOSITIONNOTIFY,*LPDSBPOSITIONNOTIFY;
-typedef const DSBPOSITIONNOTIFY *LPCDSBPOSITIONNOTIFY;
-
-#define DSSPEAKER_HEADPHONE     1
-#define DSSPEAKER_MONO          2
-#define DSSPEAKER_QUAD          3
-#define DSSPEAKER_STEREO        4
-#define DSSPEAKER_SURROUND      5
-#define DSSPEAKER_5POINT1       6
-#define DSSPEAKER_7POINT1       7
-
-#define DSSPEAKER_GEOMETRY_MIN      0x00000005  /* 5 degrees */
-#define DSSPEAKER_GEOMETRY_NARROW   0x0000000A  /* 10 degrees */
-#define DSSPEAKER_GEOMETRY_WIDE     0x00000014  /* 20 degrees */
-#define DSSPEAKER_GEOMETRY_MAX      0x000000B4  /* 180 degrees */
-
-#define DSSPEAKER_COMBINED(c, g)    ((DWORD)(((BYTE)(c)) | ((DWORD)((BYTE)(g))) << 16))
-#define DSSPEAKER_CONFIG(a)         ((BYTE)(a))
-#define DSSPEAKER_GEOMETRY(a)       ((BYTE)(((DWORD)(a) >> 16) & 0x00FF))
-
-#define DS_CERTIFIED                0x00000000
-#define DS_UNCERTIFIED              0x00000001
-
-typedef struct _DSCEFFECTDESC
-{
-    DWORD       dwSize;
-    DWORD       dwFlags;
-    GUID        guidDSCFXClass;
-    GUID        guidDSCFXInstance;
-    DWORD       dwReserved1;
-    DWORD       dwReserved2;
-} DSCEFFECTDESC, *LPDSCEFFECTDESC;
-typedef const DSCEFFECTDESC *LPCDSCEFFECTDESC;
-
-#define DSCFX_LOCHARDWARE   0x00000001
-#define DSCFX_LOCSOFTWARE   0x00000002
-
-#define DSCFXR_LOCHARDWARE  0x00000010
-#define DSCFXR_LOCSOFTWARE  0x00000020
-
-typedef struct _DSCBUFFERDESC1
-{
-  DWORD           dwSize;
-  DWORD           dwFlags;
-  DWORD           dwBufferBytes;
-  DWORD           dwReserved;
-  LPWAVEFORMATEX  lpwfxFormat;
-} DSCBUFFERDESC1, *LPDSCBUFFERDESC1;
-
-typedef struct _DSCBUFFERDESC
-{
-  DWORD           dwSize;
-  DWORD           dwFlags;
-  DWORD           dwBufferBytes;
-  DWORD           dwReserved;
-  LPWAVEFORMATEX  lpwfxFormat;
-  DWORD           dwFXCount;
-  LPDSCEFFECTDESC lpDSCFXDesc;
-} DSCBUFFERDESC, *LPDSCBUFFERDESC;
-typedef const DSCBUFFERDESC *LPCDSCBUFFERDESC;
-
-typedef struct _DSCCAPS
-{
-  DWORD dwSize;
-  DWORD dwFlags;
-  DWORD dwFormats;
-  DWORD dwChannels;
-} DSCCAPS, *LPDSCCAPS;
-typedef const DSCCAPS *LPCDSCCAPS;
-
-typedef struct _DSCBCAPS
-{
-  DWORD dwSize;
-  DWORD dwFlags;
-  DWORD dwBufferBytes;
-  DWORD dwReserved;
-} DSCBCAPS, *LPDSCBCAPS;
-typedef const DSCBCAPS *LPCDSCBCAPS;
-
-#define DSCCAPS_EMULDRIVER          DSCAPS_EMULDRIVER
-#define DSCCAPS_CERTIFIED           DSCAPS_CERTIFIED
-#define DSCCAPS_MULTIPLECAPTURE     0x00000001
-
-#define DSCBCAPS_WAVEMAPPED         0x80000000
-#define DSCBCAPS_CTRLFX             0x00000200
-
-#define DSCBLOCK_ENTIREBUFFER       0x00000001
-#define DSCBSTART_LOOPING           0x00000001
-#define DSCBPN_OFFSET_STOP          0xffffffff
-
-#define DSCBSTATUS_CAPTURING        0x00000001
-#define DSCBSTATUS_LOOPING          0x00000002
-
-#ifndef __LPCGUID_DEFINED__
-#define __LPCGUID_DEFINED__
-typedef const GUID *LPCGUID;
-#endif
-
-typedef BOOL (CALLBACK *LPDSENUMCALLBACKW)(LPGUID,LPCWSTR,LPCWSTR,LPVOID);
-typedef BOOL (CALLBACK *LPDSENUMCALLBACKA)(LPGUID,LPCSTR,LPCSTR,LPVOID);
-DECL_WINELIB_TYPE_AW(LPDSENUMCALLBACK)
-
-extern HRESULT WINAPI DirectSoundCreate(LPCGUID lpGUID,LPDIRECTSOUND *ppDS,LPUNKNOWN pUnkOuter);
-extern HRESULT WINAPI DirectSoundEnumerateA(LPDSENUMCALLBACKA, LPVOID);
-extern HRESULT WINAPI DirectSoundEnumerateW(LPDSENUMCALLBACKW, LPVOID);
-#define DirectSoundEnumerate WINELIB_NAME_AW(DirectSoundEnumerate)
-extern HRESULT WINAPI DirectSoundCaptureCreate(LPCGUID lpGUID, LPDIRECTSOUNDCAPTURE *ppDSC, LPUNKNOWN pUnkOuter);
-extern HRESULT WINAPI DirectSoundCaptureEnumerateA(LPDSENUMCALLBACKA, LPVOID);
-extern HRESULT WINAPI DirectSoundCaptureEnumerateW(LPDSENUMCALLBACKW, LPVOID);
-#define DirectSoundCaptureEnumerate WINELIB_NAME_AW(DirectSoundCaptureEnumerate)
-
-extern HRESULT WINAPI DirectSoundCreate8(LPCGUID lpGUID,LPDIRECTSOUND8 *ppDS8,LPUNKNOWN pUnkOuter);
-extern HRESULT WINAPI DirectSoundCaptureCreate8(LPCGUID lpGUID, LPDIRECTSOUNDCAPTURE8 *ppDSC8, LPUNKNOWN pUnkOuter);
-extern HRESULT WINAPI DirectSoundFullDuplexCreate(LPCGUID pcGuidCaptureDevice, LPCGUID pcGuidRenderDevice,
-    LPCDSCBUFFERDESC pcDSCBufferDesc, LPCDSBUFFERDESC pcDSBufferDesc, HWND hWnd, DWORD dwLevel,
-    LPDIRECTSOUNDFULLDUPLEX *ppDSFD, LPDIRECTSOUNDCAPTUREBUFFER8 *ppDSCBuffer8, LPDIRECTSOUNDBUFFER8 *ppDSBuffer8, LPUNKNOWN pUnkOuter);
-#define DirectSoundFullDuplexCreate8 DirectSoundFullDuplexCreate
-extern HRESULT WINAPI GetDeviceID(LPCGUID lpGuidSrc, LPGUID lpGuidDest);
-
-
-/*****************************************************************************
- * IDirectSound interface
- */
-#undef INTERFACE
-#define INTERFACE IDirectSound
-DECLARE_INTERFACE_(IDirectSound,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSound methods ***/
-    STDMETHOD(CreateSoundBuffer)(THIS_ LPCDSBUFFERDESC lpcDSBufferDesc, LPLPDIRECTSOUNDBUFFER lplpDirectSoundBuffer, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(GetCaps)(THIS_ LPDSCAPS lpDSCaps) PURE;
-    STDMETHOD(DuplicateSoundBuffer)(THIS_ LPDIRECTSOUNDBUFFER lpDsbOriginal, LPLPDIRECTSOUNDBUFFER lplpDsbDuplicate) PURE;
-    STDMETHOD(SetCooperativeLevel)(THIS_ HWND hwnd, DWORD dwLevel) PURE;
-    STDMETHOD(Compact)(THIS) PURE;
-    STDMETHOD(GetSpeakerConfig)(THIS_ LPDWORD lpdwSpeakerConfig) PURE;
-    STDMETHOD(SetSpeakerConfig)(THIS_ DWORD dwSpeakerConfig) PURE;
-    STDMETHOD(Initialize)(THIS_ LPCGUID lpcGuid) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSound_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSound_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectSound_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectSound methods ***/
-#define IDirectSound_CreateSoundBuffer(p,a,b,c)  (p)->lpVtbl->CreateSoundBuffer(p,a,b,c)
-#define IDirectSound_GetCaps(p,a)                (p)->lpVtbl->GetCaps(p,a)
-#define IDirectSound_DuplicateSoundBuffer(p,a,b) (p)->lpVtbl->DuplicateSoundBuffer(p,a,b)
-#define IDirectSound_SetCooperativeLevel(p,a,b)  (p)->lpVtbl->SetCooperativeLevel(p,a,b)
-#define IDirectSound_Compact(p)                  (p)->lpVtbl->Compact(p)
-#define IDirectSound_GetSpeakerConfig(p,a)       (p)->lpVtbl->GetSpeakerConfig(p,a)
-#define IDirectSound_SetSpeakerConfig(p,a)       (p)->lpVtbl->SetSpeakerConfig(p,a)
-#define IDirectSound_Initialize(p,a)             (p)->lpVtbl->Initialize(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirectSound_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectSound_AddRef(p)             (p)->AddRef()
-#define IDirectSound_Release(p)            (p)->Release()
-/*** IDirectSound methods ***/
-#define IDirectSound_CreateSoundBuffer(p,a,b,c)  (p)->CreateSoundBuffer(a,b,c)
-#define IDirectSound_GetCaps(p,a)                (p)->GetCaps(a)
-#define IDirectSound_DuplicateSoundBuffer(p,a,b) (p)->DuplicateSoundBuffer(a,b)
-#define IDirectSound_SetCooperativeLevel(p,a,b)  (p)->SetCooperativeLevel(a,b)
-#define IDirectSound_Compact(p)                  (p)->Compact()
-#define IDirectSound_GetSpeakerConfig(p,a)       (p)->GetSpeakerConfig(a)
-#define IDirectSound_SetSpeakerConfig(p,a)       (p)->SetSpeakerConfig(a)
-#define IDirectSound_Initialize(p,a)             (p)->Initialize(a)
-#endif
-
-
-/*****************************************************************************
- * IDirectSound8 interface
- */
-#define INTERFACE IDirectSound8
-DECLARE_INTERFACE_(IDirectSound8,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSound8 methods ***/
-    STDMETHOD(CreateSoundBuffer)(THIS_ LPCDSBUFFERDESC lpcDSBufferDesc, LPLPDIRECTSOUNDBUFFER lplpDirectSoundBuffer, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(GetCaps)(THIS_ LPDSCAPS lpDSCaps) PURE;
-    STDMETHOD(DuplicateSoundBuffer)(THIS_ LPDIRECTSOUNDBUFFER lpDsbOriginal, LPLPDIRECTSOUNDBUFFER lplpDsbDuplicate) PURE;
-    STDMETHOD(SetCooperativeLevel)(THIS_ HWND hwnd, DWORD dwLevel) PURE;
-    STDMETHOD(Compact)(THIS) PURE;
-    STDMETHOD(GetSpeakerConfig)(THIS_ LPDWORD lpdwSpeakerConfig) PURE;
-    STDMETHOD(SetSpeakerConfig)(THIS_ DWORD dwSpeakerConfig) PURE;
-    STDMETHOD(Initialize)(THIS_ LPCGUID lpcGuid) PURE;
-    STDMETHOD(VerifyCertification)(THIS_ LPDWORD pdwCertified) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSound8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSound8_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectSound8_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectSound methods ***/
-#define IDirectSound8_CreateSoundBuffer(p,a,b,c)  (p)->lpVtbl->CreateSoundBuffer(p,a,b,c)
-#define IDirectSound8_GetCaps(p,a)                (p)->lpVtbl->GetCaps(p,a)
-#define IDirectSound8_DuplicateSoundBuffer(p,a,b) (p)->lpVtbl->DuplicateSoundBuffer(p,a,b)
-#define IDirectSound8_SetCooperativeLevel(p,a,b)  (p)->lpVtbl->SetCooperativeLevel(p,a,b)
-#define IDirectSound8_Compact(p)                  (p)->lpVtbl->Compact(p)
-#define IDirectSound8_GetSpeakerConfig(p,a)       (p)->lpVtbl->GetSpeakerConfig(p,a)
-#define IDirectSound8_SetSpeakerConfig(p,a)       (p)->lpVtbl->SetSpeakerConfig(p,a)
-#define IDirectSound8_Initialize(p,a)             (p)->lpVtbl->Initialize(p,a)
-/*** IDirectSound8 methods ***/
-#define IDirectSound8_VerifyCertification(p,a)    (p)->lpVtbl->VerifyCertification(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirectSound8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectSound8_AddRef(p)             (p)->AddRef()
-#define IDirectSound8_Release(p)            (p)->Release()
-/*** IDirectSound methods ***/
-#define IDirectSound8_CreateSoundBuffer(p,a,b,c)  (p)->CreateSoundBuffer(a,b,c)
-#define IDirectSound8_GetCaps(p,a)                (p)->GetCaps(a)
-#define IDirectSound8_DuplicateSoundBuffer(p,a,b) (p)->DuplicateSoundBuffer(a,b)
-#define IDirectSound8_SetCooperativeLevel(p,a,b)  (p)->SetCooperativeLevel(a,b)
-#define IDirectSound8_Compact(p)                  (p)->Compact()
-#define IDirectSound8_GetSpeakerConfig(p,a)       (p)->GetSpeakerConfig(a)
-#define IDirectSound8_SetSpeakerConfig(p,a)       (p)->SetSpeakerConfig(a)
-#define IDirectSound8_Initialize(p,a)             (p)->Initialize(a)
-/*** IDirectSound8 methods ***/
-#define IDirectSound8_VerifyCertification(p,a)    (p)->VerifyCertification(a)
-#endif
-
-
-/*****************************************************************************
- * IDirectSoundBuffer interface
- */
-#define INTERFACE IDirectSoundBuffer
-DECLARE_INTERFACE_(IDirectSoundBuffer,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSoundBuffer methods ***/
-    STDMETHOD(GetCaps)(THIS_ LPDSBCAPS lpDSBufferCaps) PURE;
-    STDMETHOD(GetCurrentPosition)(THIS_ LPDWORD lpdwCurrentPlayCursor, LPDWORD lpdwCurrentWriteCursor) PURE;
-    STDMETHOD(GetFormat)(THIS_ LPWAVEFORMATEX lpwfxFormat, DWORD dwSizeAllocated, LPDWORD lpdwSizeWritten) PURE;
-    STDMETHOD(GetVolume)(THIS_ LPLONG lplVolume) PURE;
-    STDMETHOD(GetPan)(THIS_ LPLONG lplpan) PURE;
-    STDMETHOD(GetFrequency)(THIS_ LPDWORD lpdwFrequency) PURE;
-    STDMETHOD(GetStatus)(THIS_ LPDWORD lpdwStatus) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTSOUND lpDirectSound, LPCDSBUFFERDESC lpcDSBufferDesc) PURE;
-    STDMETHOD(Lock)(THIS_ DWORD dwOffset, DWORD dwBytes, LPVOID *ppvAudioPtr1, LPDWORD pdwAudioBytes1, LPVOID *ppvAudioPtr2, LPDWORD pdwAudioBytes2, DWORD dwFlags) PURE;
-    STDMETHOD(Play)(THIS_ DWORD dwReserved1, DWORD dwReserved2, DWORD dwFlags) PURE;
-    STDMETHOD(SetCurrentPosition)(THIS_ DWORD dwNewPosition) PURE;
-    STDMETHOD(SetFormat)(THIS_ LPCWAVEFORMATEX lpcfxFormat) PURE;
-    STDMETHOD(SetVolume)(THIS_ LONG lVolume) PURE;
-    STDMETHOD(SetPan)(THIS_ LONG lPan) PURE;
-    STDMETHOD(SetFrequency)(THIS_ DWORD dwFrequency) PURE;
-    STDMETHOD(Stop)(THIS) PURE;
-    STDMETHOD(Unlock)(THIS_ LPVOID pvAudioPtr1, DWORD dwAudioBytes1, LPVOID pvAudioPtr2, DWORD dwAudioPtr2) PURE;
-    STDMETHOD(Restore)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSoundBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSoundBuffer_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectSoundBuffer_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectSoundBuffer methods ***/
-#define IDirectSoundBuffer_GetCaps(p,a)                (p)->lpVtbl->GetCaps(p,a)
-#define IDirectSoundBuffer_GetCurrentPosition(p,a,b)   (p)->lpVtbl->GetCurrentPosition(p,a,b)
-#define IDirectSoundBuffer_GetFormat(p,a,b,c)          (p)->lpVtbl->GetFormat(p,a,b,c)
-#define IDirectSoundBuffer_GetVolume(p,a)              (p)->lpVtbl->GetVolume(p,a)
-#define IDirectSoundBuffer_GetPan(p,a)                 (p)->lpVtbl->GetPan(p,a)
-#define IDirectSoundBuffer_GetFrequency(p,a)           (p)->lpVtbl->GetFrequency(p,a)
-#define IDirectSoundBuffer_GetStatus(p,a)              (p)->lpVtbl->GetStatus(p,a)
-#define IDirectSoundBuffer_Initialize(p,a,b)           (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectSoundBuffer_Lock(p,a,b,c,d,e,f,g)       (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
-#define IDirectSoundBuffer_Play(p,a,b,c)               (p)->lpVtbl->Play(p,a,b,c)
-#define IDirectSoundBuffer_SetCurrentPosition(p,a)     (p)->lpVtbl->SetCurrentPosition(p,a)
-#define IDirectSoundBuffer_SetFormat(p,a)              (p)->lpVtbl->SetFormat(p,a)
-#define IDirectSoundBuffer_SetVolume(p,a)              (p)->lpVtbl->SetVolume(p,a)
-#define IDirectSoundBuffer_SetPan(p,a)                 (p)->lpVtbl->SetPan(p,a)
-#define IDirectSoundBuffer_SetFrequency(p,a)           (p)->lpVtbl->SetFrequency(p,a)
-#define IDirectSoundBuffer_Stop(p)                     (p)->lpVtbl->Stop(p)
-#define IDirectSoundBuffer_Unlock(p,a,b,c,d)           (p)->lpVtbl->Unlock(p,a,b,c,d)
-#define IDirectSoundBuffer_Restore(p)                  (p)->lpVtbl->Restore(p)
-#else
-/*** IUnknown methods ***/
-#define IDirectSoundBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectSoundBuffer_AddRef(p)             (p)->AddRef()
-#define IDirectSoundBuffer_Release(p)            (p)->Release()
-/*** IDirectSoundBuffer methods ***/
-#define IDirectSoundBuffer_GetCaps(p,a)                (p)->GetCaps(a)
-#define IDirectSoundBuffer_GetCurrentPosition(p,a,b)   (p)->GetCurrentPosition(a,b)
-#define IDirectSoundBuffer_GetFormat(p,a,b,c)          (p)->GetFormat(a,b,c)
-#define IDirectSoundBuffer_GetVolume(p,a)              (p)->GetVolume(a)
-#define IDirectSoundBuffer_GetPan(p,a)                 (p)->GetPan(a)
-#define IDirectSoundBuffer_GetFrequency(p,a)           (p)->GetFrequency(a)
-#define IDirectSoundBuffer_GetStatus(p,a)              (p)->GetStatus(a)
-#define IDirectSoundBuffer_Initialize(p,a,b)           (p)->Initialize(a,b)
-#define IDirectSoundBuffer_Lock(p,a,b,c,d,e,f,g)       (p)->Lock(a,b,c,d,e,f,g)
-#define IDirectSoundBuffer_Play(p,a,b,c)               (p)->Play(a,b,c)
-#define IDirectSoundBuffer_SetCurrentPosition(p,a)     (p)->SetCurrentPosition(a)
-#define IDirectSoundBuffer_SetFormat(p,a)              (p)->SetFormat(a)
-#define IDirectSoundBuffer_SetVolume(p,a)              (p)->SetVolume(a)
-#define IDirectSoundBuffer_SetPan(p,a)                 (p)->SetPan(a)
-#define IDirectSoundBuffer_SetFrequency(p,a)           (p)->SetFrequency(a)
-#define IDirectSoundBuffer_Stop(p)                     (p)->Stop()
-#define IDirectSoundBuffer_Unlock(p,a,b,c,d)           (p)->Unlock(a,b,c,d)
-#define IDirectSoundBuffer_Restore(p)                  (p)->Restore()
-#endif
-
-
-/*****************************************************************************
- * IDirectSoundBuffer8 interface
- */
-#define INTERFACE IDirectSoundBuffer8
-DECLARE_INTERFACE_(IDirectSoundBuffer8,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSoundBuffer8 methods ***/
-    STDMETHOD(GetCaps)(THIS_ LPDSBCAPS lpDSBufferCaps) PURE;
-    STDMETHOD(GetCurrentPosition)(THIS_ LPDWORD lpdwCurrentPlayCursor, LPDWORD lpdwCurrentWriteCursor) PURE;
-    STDMETHOD(GetFormat)(THIS_ LPWAVEFORMATEX lpwfxFormat, DWORD dwSizeAllocated, LPDWORD lpdwSizeWritten) PURE;
-    STDMETHOD(GetVolume)(THIS_ LPLONG lplVolume) PURE;
-    STDMETHOD(GetPan)(THIS_ LPLONG lplpan) PURE;
-    STDMETHOD(GetFrequency)(THIS_ LPDWORD lpdwFrequency) PURE;
-    STDMETHOD(GetStatus)(THIS_ LPDWORD lpdwStatus) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTSOUND lpDirectSound, LPCDSBUFFERDESC lpcDSBufferDesc) PURE;
-    STDMETHOD(Lock)(THIS_ DWORD dwOffset, DWORD dwBytes, LPVOID *ppvAudioPtr1, LPDWORD pdwAudioBytes1, LPVOID *ppvAudioPtr2, LPDWORD pdwAudioBytes2, DWORD dwFlags) PURE;
-    STDMETHOD(Play)(THIS_ DWORD dwReserved1, DWORD dwReserved2, DWORD dwFlags) PURE;
-    STDMETHOD(SetCurrentPosition)(THIS_ DWORD dwNewPosition) PURE;
-    STDMETHOD(SetFormat)(THIS_ LPCWAVEFORMATEX lpcfxFormat) PURE;
-    STDMETHOD(SetVolume)(THIS_ LONG lVolume) PURE;
-    STDMETHOD(SetPan)(THIS_ LONG lPan) PURE;
-    STDMETHOD(SetFrequency)(THIS_ DWORD dwFrequency) PURE;
-    STDMETHOD(Stop)(THIS) PURE;
-    STDMETHOD(Unlock)(THIS_ LPVOID pvAudioPtr1, DWORD dwAudioBytes1, LPVOID pvAudioPtr2, DWORD dwAudioPtr2) PURE;
-    STDMETHOD(Restore)(THIS) PURE;
-    STDMETHOD(SetFX)(THIS_ DWORD dwEffectsCount, LPDSEFFECTDESC pDSFXDesc, LPDWORD pdwResultCodes) PURE;
-    STDMETHOD(AcquireResources)(THIS_ DWORD dwFlags, DWORD dwEffectsCount, LPDWORD pdwResultCodes) PURE;
-    STDMETHOD(GetObjectInPath)(THIS_ REFGUID rguidObject, DWORD dwIndex, REFGUID rguidInterface, LPVOID *ppObject) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSoundBuffer8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSoundBuffer8_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectSoundBuffer8_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectSoundBuffer methods ***/
-#define IDirectSoundBuffer8_GetCaps(p,a)                (p)->lpVtbl->GetCaps(p,a)
-#define IDirectSoundBuffer8_GetCurrentPosition(p,a,b)   (p)->lpVtbl->GetCurrentPosition(p,a,b)
-#define IDirectSoundBuffer8_GetFormat(p,a,b,c)          (p)->lpVtbl->GetFormat(p,a,b,c)
-#define IDirectSoundBuffer8_GetVolume(p,a)              (p)->lpVtbl->GetVolume(p,a)
-#define IDirectSoundBuffer8_GetPan(p,a)                 (p)->lpVtbl->GetPan(p,a)
-#define IDirectSoundBuffer8_GetFrequency(p,a)           (p)->lpVtbl->GetFrequency(p,a)
-#define IDirectSoundBuffer8_GetStatus(p,a)              (p)->lpVtbl->GetStatus(p,a)
-#define IDirectSoundBuffer8_Initialize(p,a,b)           (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectSoundBuffer8_Lock(p,a,b,c,d,e,f,g)       (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
-#define IDirectSoundBuffer8_Play(p,a,b,c)               (p)->lpVtbl->Play(p,a,b,c)
-#define IDirectSoundBuffer8_SetCurrentPosition(p,a)     (p)->lpVtbl->SetCurrentPosition(p,a)
-#define IDirectSoundBuffer8_SetFormat(p,a)              (p)->lpVtbl->SetFormat(p,a)
-#define IDirectSoundBuffer8_SetVolume(p,a)              (p)->lpVtbl->SetVolume(p,a)
-#define IDirectSoundBuffer8_SetPan(p,a)                 (p)->lpVtbl->SetPan(p,a)
-#define IDirectSoundBuffer8_SetFrequency(p,a)           (p)->lpVtbl->SetFrequency(p,a)
-#define IDirectSoundBuffer8_Stop(p)                     (p)->lpVtbl->Stop(p)
-#define IDirectSoundBuffer8_Unlock(p,a,b,c,d)           (p)->lpVtbl->Unlock(p,a,b,c,d)
-#define IDirectSoundBuffer8_Restore(p)                  (p)->lpVtbl->Restore(p)
-/*** IDirectSoundBuffer8 methods ***/
-#define IDirectSoundBuffer8_SetFX(p,a,b,c)              (p)->lpVtbl->SetFX(p,a,b,c)
-#define IDirectSoundBuffer8_AcquireResources(p,a,b,c)   (p)->lpVtbl->AcquireResources(p,a,b,c)
-#define IDirectSoundBuffer8_GetObjectInPath(p,a,b,c,d)  (p)->lpVtbl->GetObjectInPath(p,a,b,c,d)
-#else
-/*** IUnknown methods ***/
-#define IDirectSoundBuffer8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectSoundBuffer8_AddRef(p)             (p)->AddRef()
-#define IDirectSoundBuffer8_Release(p)            (p)->Release()
-/*** IDirectSoundBuffer methods ***/
-#define IDirectSoundBuffer8_GetCaps(p,a)                (p)->GetCaps(a)
-#define IDirectSoundBuffer8_GetCurrentPosition(p,a,b)   (p)->GetCurrentPosition(a,b)
-#define IDirectSoundBuffer8_GetFormat(p,a,b,c)          (p)->GetFormat(a,b,c)
-#define IDirectSoundBuffer8_GetVolume(p,a)              (p)->GetVolume(a)
-#define IDirectSoundBuffer8_GetPan(p,a)                 (p)->GetPan(a)
-#define IDirectSoundBuffer8_GetFrequency(p,a)           (p)->GetFrequency(a)
-#define IDirectSoundBuffer8_GetStatus(p,a)              (p)->GetStatus(a)
-#define IDirectSoundBuffer8_Initialize(p,a,b)           (p)->Initialize(a,b)
-#define IDirectSoundBuffer8_Lock(p,a,b,c,d,e,f,g)       (p)->Lock(a,b,c,d,e,f,g)
-#define IDirectSoundBuffer8_Play(p,a,b,c)               (p)->Play(a,b,c)
-#define IDirectSoundBuffer8_SetCurrentPosition(p,a)     (p)->SetCurrentPosition(a)
-#define IDirectSoundBuffer8_SetFormat(p,a)              (p)->SetFormat(a)
-#define IDirectSoundBuffer8_SetVolume(p,a)              (p)->SetVolume(a)
-#define IDirectSoundBuffer8_SetPan(p,a)                 (p)->SetPan(a)
-#define IDirectSoundBuffer8_SetFrequency(p,a)           (p)->SetFrequency(a)
-#define IDirectSoundBuffer8_Stop(p)                     (p)->Stop()
-#define IDirectSoundBuffer8_Unlock(p,a,b,c,d)           (p)->Unlock(a,b,c,d)
-#define IDirectSoundBuffer8_Restore(p)                  (p)->Restore()
-/*** IDirectSoundBuffer8 methods ***/
-#define IDirectSoundBuffer8_SetFX(p,a,b,c)              (p)->SetFX(a,b,c)
-#define IDirectSoundBuffer8_AcquireResources(p,a,b,c)   (p)->AcquireResources(a,b,c)
-#define IDirectSoundBuffer8_GetObjectInPath(p,a,b,c,d)  (p)->GetObjectInPath(a,b,c,d)
-#endif
-
-
-/*****************************************************************************
- * IDirectSoundCapture interface
- */
-#define INTERFACE IDirectSoundCapture
-DECLARE_INTERFACE_(IDirectSoundCapture,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSoundCapture methods ***/
-    STDMETHOD(CreateCaptureBuffer)(THIS_ LPCDSCBUFFERDESC lpcDSCBufferDesc,LPDIRECTSOUNDCAPTUREBUFFER *lplpDSCaptureBuffer, LPUNKNOWN pUnk) PURE;
-    STDMETHOD(GetCaps)(THIS_ LPDSCCAPS lpDSCCaps) PURE;
-    STDMETHOD(Initialize)(THIS_ LPCGUID lpcGUID) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSoundCapture_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSoundCapture_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirectSoundCapture_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirectSoundCapture methods ***/
-#define IDirectSoundCapture_CreateCaptureBuffer(p,a,b,c) (p)->lpVtbl->CreateCaptureBuffer(p,a,b,c)
-#define IDirectSoundCapture_GetCaps(p,a)                 (p)->lpVtbl->GetCaps(p,a)
-#define IDirectSoundCapture_Initialize(p,a)              (p)->lpVtbl->Initialize(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirectSoundCapture_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirectSoundCapture_AddRef(p)                    (p)->AddRef()
-#define IDirectSoundCapture_Release(p)                   (p)->Release()
-/*** IDirectSoundCapture methods ***/
-#define IDirectSoundCapture_CreateCaptureBuffer(p,a,b,c) (p)->CreateCaptureBuffer(a,b,c)
-#define IDirectSoundCapture_GetCaps(p,a)                 (p)->GetCaps(a)
-#define IDirectSoundCapture_Initialize(p,a)              (p)->Initialize(a)
-#endif
-
-/*****************************************************************************
- * IDirectSoundCaptureBuffer interface
- */
-#define INTERFACE IDirectSoundCaptureBuffer
-DECLARE_INTERFACE_(IDirectSoundCaptureBuffer,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSoundCaptureBuffer methods ***/
-    STDMETHOD(GetCaps)(THIS_ LPDSCBCAPS lpDSCBCaps) PURE;
-    STDMETHOD(GetCurrentPosition)(THIS_ LPDWORD lpdwCapturePosition,LPDWORD lpdwReadPosition) PURE;
-    STDMETHOD(GetFormat)(THIS_ LPWAVEFORMATEX lpwfxFormat, DWORD dwSizeAllocated, LPDWORD lpdwSizeWritten) PURE;
-    STDMETHOD(GetStatus)(THIS_ LPDWORD lpdwStatus) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTSOUNDCAPTURE lpDSC, LPCDSCBUFFERDESC lpcDSCBDesc) PURE;
-    STDMETHOD(Lock)(THIS_ DWORD dwReadCusor, DWORD dwReadBytes, LPVOID *lplpvAudioPtr1, LPDWORD lpdwAudioBytes1, LPVOID *lplpvAudioPtr2, LPDWORD lpdwAudioBytes2, DWORD dwFlags) PURE;
-    STDMETHOD(Start)(THIS_ DWORD dwFlags) PURE;
-    STDMETHOD(Stop)(THIS) PURE;
-    STDMETHOD(Unlock)(THIS_ LPVOID lpvAudioPtr1, DWORD dwAudioBytes1, LPVOID lpvAudioPtr2, DWORD dwAudioBytes2) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSoundCaptureBuffer_QueryInterface(p,a,b)     (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSoundCaptureBuffer_AddRef(p)                 (p)->lpVtbl->AddRef(p)
-#define IDirectSoundCaptureBuffer_Release(p)                (p)->lpVtbl->Release(p)
-/*** IDirectSoundCaptureBuffer methods ***/
-#define IDirectSoundCaptureBuffer_GetCaps(p,a)              (p)->lpVtbl->GetCaps(p,a)
-#define IDirectSoundCaptureBuffer_GetCurrentPosition(p,a,b) (p)->lpVtbl->GetCurrentPosition(p,a,b)
-#define IDirectSoundCaptureBuffer_GetFormat(p,a,b,c)        (p)->lpVtbl->GetFormat(p,a,b,c)
-#define IDirectSoundCaptureBuffer_GetStatus(p,a)            (p)->lpVtbl->GetStatus(p,a)
-#define IDirectSoundCaptureBuffer_Initialize(p,a,b)         (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectSoundCaptureBuffer_Lock(p,a,b,c,d,e,f,g)     (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
-#define IDirectSoundCaptureBuffer_Start(p,a)                (p)->lpVtbl->Start(p,a)
-#define IDirectSoundCaptureBuffer_Stop(p)                   (p)->lpVtbl->Stop(p)
-#define IDirectSoundCaptureBuffer_Unlock(p,a,b,c,d)         (p)->lpVtbl->Unlock(p,a,b,c,d)
-#else
-/*** IUnknown methods ***/
-#define IDirectSoundCaptureBuffer_QueryInterface(p,a,b)     (p)->QueryInterface(a,b)
-#define IDirectSoundCaptureBuffer_AddRef(p)                 (p)->AddRef()
-#define IDirectSoundCaptureBuffer_Release(p)                (p)->Release()
-/*** IDirectSoundCaptureBuffer methods ***/
-#define IDirectSoundCaptureBuffer_GetCaps(p,a)              (p)->GetCaps(a)
-#define IDirectSoundCaptureBuffer_GetCurrentPosition(p,a,b) (p)->GetCurrentPosition(a,b)
-#define IDirectSoundCaptureBuffer_GetFormat(p,a,b,c)        (p)->GetFormat(a,b,c)
-#define IDirectSoundCaptureBuffer_GetStatus(p,a)            (p)->GetStatus(a)
-#define IDirectSoundCaptureBuffer_Initialize(p,a,b)         (p)->Initialize(a,b)
-#define IDirectSoundCaptureBuffer_Lock(p,a,b,c,d,e,f,g)     (p)->Lock(a,b,c,d,e,f,g)
-#define IDirectSoundCaptureBuffer_Start(p,a)                (p)->Start(a)
-#define IDirectSoundCaptureBuffer_Stop(p)                   (p)->Stop()
-#define IDirectSoundCaptureBuffer_Unlock(p,a,b,c,d)         (p)->Unlock(a,b,c,d)
-#endif
-
-/*****************************************************************************
- * IDirectSoundCaptureBuffer8 interface
- */
-#define INTERFACE IDirectSoundCaptureBuffer8
-DECLARE_INTERFACE_(IDirectSoundCaptureBuffer8,IDirectSoundCaptureBuffer)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSoundCaptureBuffer methods ***/
-    STDMETHOD(GetCaps)(THIS_ LPDSCBCAPS lpDSCBCaps) PURE;
-    STDMETHOD(GetCurrentPosition)(THIS_ LPDWORD lpdwCapturePosition,LPDWORD lpdwReadPosition) PURE;
-    STDMETHOD(GetFormat)(THIS_ LPWAVEFORMATEX lpwfxFormat, DWORD dwSizeAllocated, LPDWORD lpdwSizeWritten) PURE;
-    STDMETHOD(GetStatus)(THIS_ LPDWORD lpdwStatus) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTSOUNDCAPTURE lpDSC, LPCDSCBUFFERDESC lpcDSCBDesc) PURE;
-    STDMETHOD(Lock)(THIS_ DWORD dwReadCusor, DWORD dwReadBytes, LPVOID *lplpvAudioPtr1, LPDWORD lpdwAudioBytes1, LPVOID *lplpvAudioPtr2, LPDWORD lpdwAudioBytes2, DWORD dwFlags) PURE;
-    STDMETHOD(Start)(THIS_ DWORD dwFlags) PURE;
-    STDMETHOD(Stop)(THIS) PURE;
-    STDMETHOD(Unlock)(THIS_ LPVOID lpvAudioPtr1, DWORD dwAudioBytes1, LPVOID lpvAudioPtr2, DWORD dwAudioBytes2) PURE;
-    /*** IDirectSoundCaptureBuffer8 methods ***/
-    STDMETHOD(GetObjectInPath)(THIS_ REFGUID rguidObject, DWORD dwIndex, REFGUID rguidInterface, LPVOID *ppObject) PURE;
-    STDMETHOD(GetFXStatus)(THIS_ DWORD dwFXCount, LPDWORD pdwFXStatus) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSoundCaptureBuffer8_QueryInterface(p,a,b)      (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSoundCaptureBuffer8_AddRef(p)                  (p)->lpVtbl->AddRef(p)
-#define IDirectSoundCaptureBuffer8_Release(p)                 (p)->lpVtbl->Release(p)
-/*** IDirectSoundCaptureBuffer methods ***/
-#define IDirectSoundCaptureBuffer8_GetCaps(p,a)               (p)->lpVtbl->GetCaps(p,a)
-#define IDirectSoundCaptureBuffer8_GetCurrentPosition(p,a,b)  (p)->lpVtbl->GetCurrentPosition(p,a,b)
-#define IDirectSoundCaptureBuffer8_GetFormat(p,a,b,c)         (p)->lpVtbl->GetFormat(p,a,b,c)
-#define IDirectSoundCaptureBuffer8_GetStatus(p,a)             (p)->lpVtbl->GetStatus(p,a)
-#define IDirectSoundCaptureBuffer8_Initialize(p,a,b)          (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectSoundCaptureBuffer8_Lock(p,a,b,c,d,e,f,g)      (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
-#define IDirectSoundCaptureBuffer8_Start(p,a)                 (p)->lpVtbl->Start(p,a)
-#define IDirectSoundCaptureBuffer8_Stop(p)                    (p)->lpVtbl->Stop(p)
-#define IDirectSoundCaptureBuffer8_Unlock(p,a,b,c,d)          (p)->lpVtbl->Unlock(p,a,b,c,d)
-/*** IDirectSoundCaptureBuffer8 methods ***/
-#define IDirectSoundCaptureBuffer8_GetObjectInPath(p,a,b,c,d) (p)->lpVtbl->GetObjectInPath(p,a,b,c,d)
-#define IDirectSoundCaptureBuffer8_GetFXStatus(p,a,b)         (p)->lpVtbl->GetFXStatus(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirectSoundCaptureBuffer8_QueryInterface(p,a,b)      (p)->QueryInterface(a,b)
-#define IDirectSoundCaptureBuffer8_AddRef(p)                  (p)->AddRef()
-#define IDirectSoundCaptureBuffer8_Release(p)                 (p)->Release()
-/*** IDirectSoundCaptureBuffer methods ***/
-#define IDirectSoundCaptureBuffer8_GetCaps(p,a)               (p)->GetCaps(a)
-#define IDirectSoundCaptureBuffer8_GetCurrentPosition(p,a,b)  (p)->GetCurrentPosition(a,b)
-#define IDirectSoundCaptureBuffer8_GetFormat(p,a,b,c)         (p)->GetFormat(a,b,c)
-#define IDirectSoundCaptureBuffer8_GetStatus(p,a)             (p)->GetStatus(a)
-#define IDirectSoundCaptureBuffer8_Initialize(p,a,b)          (p)->Initialize(a,b)
-#define IDirectSoundCaptureBuffer8_Lock(p,a,b,c,d,e,f,g)      (p)->Lock(a,b,c,d,e,f,g)
-#define IDirectSoundCaptureBuffer8_Start(p,a)                 (p)->Start(a)
-#define IDirectSoundCaptureBuffer8_Stop(p)                    (p)->Stop()
-#define IDirectSoundCaptureBuffer8_Unlock(p,a,b,c,d)          (p)->Unlock(a,b,c,d)
-/*** IDirectSoundCaptureBuffer8 methods ***/
-#define IDirectSoundCaptureBuffer8_GetObjectInPath(p,a,b,c,d) (p)->GetObjectInPath(a,b,c,d)
-#define IDirectSoundCaptureBuffer8_GetFXStatus(p,a,b)         (p)->GetFXStatus(a,b)
-#endif
-
-/*****************************************************************************
- * IDirectSoundNotify interface
- */
-#define WINE_NOBUFFER                   0x80000000
-
-#define DSBPN_OFFSETSTOP               -1
-
-#define DSBNOTIFICATIONS_MAX           100000UL
-
-#define INTERFACE IDirectSoundNotify
-DECLARE_INTERFACE_(IDirectSoundNotify,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSoundNotify methods ***/
-    STDMETHOD(SetNotificationPositions)(THIS_ DWORD cPositionNotifies, LPCDSBPOSITIONNOTIFY lpcPositionNotifies) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSoundNotify_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSoundNotify_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectSoundNotify_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectSoundNotify methods ***/
-#define IDirectSoundNotify_SetNotificationPositions(p,a,b) (p)->lpVtbl->SetNotificationPositions(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirectSoundNotify_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectSoundNotify_AddRef(p)             (p)->AddRef()
-#define IDirectSoundNotify_Release(p)            (p)->Release()
-/*** IDirectSoundNotify methods ***/
-#define IDirectSoundNotify_SetNotificationPositions(p,a,b) (p)->SetNotificationPositions(a,b)
-#endif
-
-
-/*****************************************************************************
- * IDirectSound3DListener interface
- */
-#define DS3DMODE_NORMAL             0x00000000
-#define DS3DMODE_HEADRELATIVE       0x00000001
-#define DS3DMODE_DISABLE            0x00000002
-
-#define DS3D_IMMEDIATE              0x00000000
-#define DS3D_DEFERRED               0x00000001
-
-#define DS3D_MINDISTANCEFACTOR      FLT_MIN
-#define DS3D_MAXDISTANCEFACTOR      FLT_MAX
-#define DS3D_DEFAULTDISTANCEFACTOR  1.0f
-
-#define DS3D_MINROLLOFFFACTOR       0.0f
-#define DS3D_MAXROLLOFFFACTOR       10.0f
-#define DS3D_DEFAULTROLLOFFFACTOR   1.0f
-
-#define DS3D_MINDOPPLERFACTOR       0.0f
-#define DS3D_MAXDOPPLERFACTOR       10.0f
-#define DS3D_DEFAULTDOPPLERFACTOR   1.0f
-
-#define DS3D_DEFAULTMINDISTANCE     1.0f
-#define DS3D_DEFAULTMAXDISTANCE     1000000000.0f
-
-#define DS3D_MINCONEANGLE           0
-#define DS3D_MAXCONEANGLE           360
-#define DS3D_DEFAULTCONEANGLE       360
-
-#define DS3D_DEFAULTCONEOUTSIDEVOLUME   DSBVOLUME_MAX
-
-typedef struct _DS3DLISTENER {
-       DWORD                           dwSize;
-       D3DVECTOR                       vPosition;
-       D3DVECTOR                       vVelocity;
-       D3DVECTOR                       vOrientFront;
-       D3DVECTOR                       vOrientTop;
-       D3DVALUE                        flDistanceFactor;
-       D3DVALUE                        flRolloffFactor;
-       D3DVALUE                        flDopplerFactor;
-} DS3DLISTENER, *LPDS3DLISTENER;
-
-typedef const DS3DLISTENER *LPCDS3DLISTENER;
-
-#define INTERFACE IDirectSound3DListener
-DECLARE_INTERFACE_(IDirectSound3DListener,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSound3DListener methods ***/
-    STDMETHOD(GetAllParameters)(THIS_ LPDS3DLISTENER lpListener) PURE;
-    STDMETHOD(GetDistanceFactor)(THIS_ LPD3DVALUE lpflDistanceFactor) PURE;
-    STDMETHOD(GetDopplerFactor)(THIS_ LPD3DVALUE lpflDopplerFactor) PURE;
-    STDMETHOD(GetOrientation)(THIS_ LPD3DVECTOR lpvOrientFront, LPD3DVECTOR lpvOrientTop) PURE;
-    STDMETHOD(GetPosition)(THIS_ LPD3DVECTOR lpvPosition) PURE;
-    STDMETHOD(GetRolloffFactor)(THIS_ LPD3DVALUE lpflRolloffFactor) PURE;
-    STDMETHOD(GetVelocity)(THIS_ LPD3DVECTOR lpvVelocity) PURE;
-    STDMETHOD(SetAllParameters)(THIS_ LPCDS3DLISTENER lpcListener, DWORD dwApply) PURE;
-    STDMETHOD(SetDistanceFactor)(THIS_ D3DVALUE flDistanceFactor, DWORD dwApply) PURE;
-    STDMETHOD(SetDopplerFactor)(THIS_ D3DVALUE flDopplerFactor, DWORD dwApply) PURE;
-    STDMETHOD(SetOrientation)(THIS_ D3DVALUE xFront, D3DVALUE yFront, D3DVALUE zFront, D3DVALUE xTop, D3DVALUE yTop, D3DVALUE zTop, DWORD dwApply) PURE;
-    STDMETHOD(SetPosition)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE;
-    STDMETHOD(SetRolloffFactor)(THIS_ D3DVALUE flRolloffFactor, DWORD dwApply) PURE;
-    STDMETHOD(SetVelocity)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE;
-    STDMETHOD(CommitDeferredSettings)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSound3DListener_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSound3DListener_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectSound3DListener_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectSound3DListener methods ***/
-#define IDirectSound3DListener_GetAllParameters(p,a)           (p)->lpVtbl->GetAllParameters(p,a)
-#define IDirectSound3DListener_GetDistanceFactor(p,a)          (p)->lpVtbl->GetDistanceFactor(p,a)
-#define IDirectSound3DListener_GetDopplerFactor(p,a)           (p)->lpVtbl->GetDopplerFactor(p,a)
-#define IDirectSound3DListener_GetOrientation(p,a,b)           (p)->lpVtbl->GetOrientation(p,a,b)
-#define IDirectSound3DListener_GetPosition(p,a)                (p)->lpVtbl->GetPosition(p,a)
-#define IDirectSound3DListener_GetRolloffFactor(p,a)           (p)->lpVtbl->GetRolloffFactor(p,a)
-#define IDirectSound3DListener_GetVelocity(p,a)                (p)->lpVtbl->GetVelocity(p,a)
-#define IDirectSound3DListener_SetAllParameters(p,a,b)         (p)->lpVtbl->SetAllParameters(p,a,b)
-#define IDirectSound3DListener_SetDistanceFactor(p,a,b)        (p)->lpVtbl->SetDistanceFactor(p,a,b)
-#define IDirectSound3DListener_SetDopplerFactor(p,a,b)         (p)->lpVtbl->SetDopplerFactor(p,a,b)
-#define IDirectSound3DListener_SetOrientation(p,a,b,c,d,e,f,g) (p)->lpVtbl->SetOrientation(p,a,b,c,d,e,f,g)
-#define IDirectSound3DListener_SetPosition(p,a,b,c,d)          (p)->lpVtbl->SetPosition(p,a,b,c,d)
-#define IDirectSound3DListener_SetRolloffFactor(p,a,b)         (p)->lpVtbl->SetRolloffFactor(p,a,b)
-#define IDirectSound3DListener_SetVelocity(p,a,b,c,d)          (p)->lpVtbl->SetVelocity(p,a,b,c,d)
-#define IDirectSound3DListener_CommitDeferredSettings(p)       (p)->lpVtbl->CommitDeferredSettings(p)
-#else
-/*** IUnknown methods ***/
-#define IDirectSound3DListener_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectSound3DListener_AddRef(p)             (p)->AddRef()
-#define IDirectSound3DListener_Release(p)            (p)->Release()
-/*** IDirectSound3DListener methods ***/
-#define IDirectSound3DListener_GetAllParameters(p,a)           (p)->GetAllParameters(a)
-#define IDirectSound3DListener_GetDistanceFactor(p,a)          (p)->GetDistanceFactor(a)
-#define IDirectSound3DListener_GetDopplerFactor(p,a)           (p)->GetDopplerFactor(a)
-#define IDirectSound3DListener_GetOrientation(p,a,b)           (p)->GetOrientation(a,b)
-#define IDirectSound3DListener_GetPosition(p,a)                (p)->GetPosition(a)
-#define IDirectSound3DListener_GetRolloffFactor(p,a)           (p)->GetRolloffFactor(a)
-#define IDirectSound3DListener_GetVelocity(p,a)                (p)->GetVelocity(a)
-#define IDirectSound3DListener_SetAllParameters(p,a,b)         (p)->SetAllParameters(a,b)
-#define IDirectSound3DListener_SetDistanceFactor(p,a,b)        (p)->SetDistanceFactor(a,b)
-#define IDirectSound3DListener_SetDopplerFactor(p,a,b)         (p)->SetDopplerFactor(a,b)
-#define IDirectSound3DListener_SetOrientation(p,a,b,c,d,e,f,g) (p)->SetOrientation(a,b,c,d,e,f,g)
-#define IDirectSound3DListener_SetPosition(p,a,b,c,d)          (p)->SetPosition(a,b,c,d)
-#define IDirectSound3DListener_SetRolloffFactor(p,a,b)         (p)->SetRolloffFactor(a,b)
-#define IDirectSound3DListener_SetVelocity(p,a,b,c,d)          (p)->SetVelocity(a,b,c,d)
-#define IDirectSound3DListener_CommitDeferredSettings(p)       (p)->CommitDeferredSettings()
-#endif
-
-
-/*****************************************************************************
- * IDirectSound3DBuffer interface
- */
-typedef struct  _DS3DBUFFER {
-       DWORD                           dwSize;
-       D3DVECTOR                       vPosition;
-       D3DVECTOR                       vVelocity;
-       DWORD                           dwInsideConeAngle;
-       DWORD                           dwOutsideConeAngle;
-       D3DVECTOR                       vConeOrientation;
-       LONG                            lConeOutsideVolume;
-       D3DVALUE                        flMinDistance;
-       D3DVALUE                        flMaxDistance;
-       DWORD                           dwMode;
-} DS3DBUFFER, *LPDS3DBUFFER;
-
-typedef const DS3DBUFFER *LPCDS3DBUFFER;
-
-#define INTERFACE IDirectSound3DBuffer
-DECLARE_INTERFACE_(IDirectSound3DBuffer,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSound3DBuffer methods ***/
-    STDMETHOD(GetAllParameters)(THIS_ LPDS3DBUFFER lpDs3dBuffer) PURE;
-    STDMETHOD(GetConeAngles)(THIS_ LPDWORD lpdwInsideConeAngle, LPDWORD lpdwOutsideConeAngle) PURE;
-    STDMETHOD(GetConeOrientation)(THIS_ LPD3DVECTOR lpvOrientation) PURE;
-    STDMETHOD(GetConeOutsideVolume)(THIS_ LPLONG lplConeOutsideVolume) PURE;
-    STDMETHOD(GetMaxDistance)(THIS_ LPD3DVALUE lpflMaxDistance) PURE;
-    STDMETHOD(GetMinDistance)(THIS_ LPD3DVALUE lpflMinDistance) PURE;
-    STDMETHOD(GetMode)(THIS_ LPDWORD lpwdMode) PURE;
-    STDMETHOD(GetPosition)(THIS_ LPD3DVECTOR lpvPosition) PURE;
-    STDMETHOD(GetVelocity)(THIS_ LPD3DVECTOR lpvVelocity) PURE;
-    STDMETHOD(SetAllParameters)(THIS_ LPCDS3DBUFFER lpcDs3dBuffer, DWORD dwApply) PURE;
-    STDMETHOD(SetConeAngles)(THIS_ DWORD dwInsideConeAngle, DWORD dwOutsideConeAngle, DWORD dwApply) PURE;
-    STDMETHOD(SetConeOrientation)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE;
-    STDMETHOD(SetConeOutsideVolume)(THIS_ LONG lConeOutsideVolume, DWORD dwApply) PURE;
-    STDMETHOD(SetMaxDistance)(THIS_ D3DVALUE flMaxDistance, DWORD dwApply) PURE;
-    STDMETHOD(SetMinDistance)(THIS_ D3DVALUE flMinDistance, DWORD dwApply) PURE;
-    STDMETHOD(SetMode)(THIS_ DWORD dwMode, DWORD dwApply) PURE;
-    STDMETHOD(SetPosition)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE;
-    STDMETHOD(SetVelocity)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSound3DBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSound3DBuffer_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectSound3DBuffer_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectSound3DBuffer methods ***/
-#define IDirectSound3DBuffer_GetAllParameters(p,a)         (p)->lpVtbl->GetAllParameters(p,a)
-#define IDirectSound3DBuffer_GetConeAngles(p,a,b)          (p)->lpVtbl->GetConeAngles(p,a,b)
-#define IDirectSound3DBuffer_GetConeOrientation(p,a)       (p)->lpVtbl->GetConeOrientation(p,a)
-#define IDirectSound3DBuffer_GetConeOutsideVolume(p,a)     (p)->lpVtbl->GetConeOutsideVolume(p,a)
-#define IDirectSound3DBuffer_GetMaxDistance(p,a)           (p)->lpVtbl->GetMaxDistance(p,a)
-#define IDirectSound3DBuffer_GetMinDistance(p,a)           (p)->lpVtbl->GetMinDistance(p,a)
-#define IDirectSound3DBuffer_GetMode(p,a)                  (p)->lpVtbl->GetMode(p,a)
-#define IDirectSound3DBuffer_GetPosition(p,a)              (p)->lpVtbl->GetPosition(p,a)
-#define IDirectSound3DBuffer_GetVelocity(p,a)              (p)->lpVtbl->GetVelocity(p,a)
-#define IDirectSound3DBuffer_SetAllParameters(p,a,b)       (p)->lpVtbl->SetAllParameters(p,a,b)
-#define IDirectSound3DBuffer_SetConeAngles(p,a,b,c)        (p)->lpVtbl->SetConeAngles(p,a,b,c)
-#define IDirectSound3DBuffer_SetConeOrientation(p,a,b,c,d) (p)->lpVtbl->SetConeOrientation(p,a,b,c,d)
-#define IDirectSound3DBuffer_SetConeOutsideVolume(p,a,b)   (p)->lpVtbl->SetConeOutsideVolume(p,a,b)
-#define IDirectSound3DBuffer_SetMaxDistance(p,a,b)         (p)->lpVtbl->SetMaxDistance(p,a,b)
-#define IDirectSound3DBuffer_SetMinDistance(p,a,b)         (p)->lpVtbl->SetMinDistance(p,a,b)
-#define IDirectSound3DBuffer_SetMode(p,a,b)                (p)->lpVtbl->SetMode(p,a,b)
-#define IDirectSound3DBuffer_SetPosition(p,a,b,c,d)        (p)->lpVtbl->SetPosition(p,a,b,c,d)
-#define IDirectSound3DBuffer_SetVelocity(p,a,b,c,d)        (p)->lpVtbl->SetVelocity(p,a,b,c,d)
-#else
-/*** IUnknown methods ***/
-#define IDirectSound3DBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectSound3DBuffer_AddRef(p)             (p)->AddRef()
-#define IDirectSound3DBuffer_Release(p)            (p)->Release()
-/*** IDirectSound3DBuffer methods ***/
-#define IDirectSound3DBuffer_GetAllParameters(p,a)         (p)->GetAllParameters(a)
-#define IDirectSound3DBuffer_GetConeAngles(p,a,b)          (p)->GetConeAngles(a,b)
-#define IDirectSound3DBuffer_GetConeOrientation(p,a)       (p)->GetConeOrientation(a)
-#define IDirectSound3DBuffer_GetConeOutsideVolume(p,a)     (p)->GetConeOutsideVolume(a)
-#define IDirectSound3DBuffer_GetMaxDistance(p,a)           (p)->GetMaxDistance(a)
-#define IDirectSound3DBuffer_GetMinDistance(p,a)           (p)->GetMinDistance(a)
-#define IDirectSound3DBuffer_GetMode(p,a)                  (p)->GetMode(a)
-#define IDirectSound3DBuffer_GetPosition(p,a)              (p)->GetPosition(a)
-#define IDirectSound3DBuffer_GetVelocity(p,a)              (p)->GetVelocity(a)
-#define IDirectSound3DBuffer_SetAllParameters(p,a,b)       (p)->SetAllParameters(a,b)
-#define IDirectSound3DBuffer_SetConeAngles(p,a,b,c)        (p)->SetConeAngles(a,b,c)
-#define IDirectSound3DBuffer_SetConeOrientation(p,a,b,c,d) (p)->SetConeOrientation(a,b,c,d)
-#define IDirectSound3DBuffer_SetConeOutsideVolume(p,a,b)   (p)->SetConeOutsideVolume(a,b)
-#define IDirectSound3DBuffer_SetMaxDistance(p,a,b)         (p)->SetMaxDistance(a,b)
-#define IDirectSound3DBuffer_SetMinDistance(p,a,b)         (p)->SetMinDistance(a,b)
-#define IDirectSound3DBuffer_SetMode(p,a,b)                (p)->SetMode(a,b)
-#define IDirectSound3DBuffer_SetPosition(p,a,b,c,d)        (p)->SetPosition(a,b,c,d)
-#define IDirectSound3DBuffer_SetVelocity(p,a,b,c,d)        (p)->SetVelocity(a,b,c,d)
-#endif
-
-/*****************************************************************************
- * IKsPropertySet interface
- */
-#ifndef _IKsPropertySet_
-#define _IKsPropertySet_
-
-typedef struct IKsPropertySet *LPKSPROPERTYSET;
-
-DEFINE_GUID(IID_IKsPropertySet,0x31EFAC30,0x515C,0x11D0,0xA9,0xAA,0x00,0xAA,0x00,0x61,0xBE,0x93);
-
-#define KSPROPERTY_SUPPORT_GET 1
-#define KSPROPERTY_SUPPORT_SET 2
-
-#define INTERFACE IKsPropertySet
-DECLARE_INTERFACE_(IKsPropertySet,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IKsPropertySet methods ***/
-    STDMETHOD(Get)(THIS_ REFGUID rgid,ULONG x1,LPVOID p1,ULONG x2,LPVOID p2,ULONG x3,ULONG *px4) PURE;
-    STDMETHOD(Set)(THIS_ REFGUID rgid,ULONG x1,LPVOID p1,ULONG x2,LPVOID p2,ULONG x3) PURE;
-    STDMETHOD(QuerySupport)(THIS_ REFGUID rgid,ULONG x1,ULONG *px2) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IKsPropertySet_QueryInterface(p,a,b)    (p)->lpVtbl->QueryInterface(p,a,b)
-#define IKsPropertySet_AddRef(p)                (p)->lpVtbl->AddRef(p)
-#define IKsPropertySet_Release(p)               (p)->lpVtbl->Release(p)
-/*** IKsPropertySet methods ***/
-#define IKsPropertySet_Get(p,a,b,c,d,e,f,g)     (p)->lpVtbl->Get(p,a,b,c,d,e,f,g)
-#define IKsPropertySet_Set(p,a,b,c,d,e,f)       (p)->lpVtbl->Set(p,a,b,c,d,e,f)
-#define IKsPropertySet_QuerySupport(p,a,b,c)    (p)->lpVtbl->QuerySupport(p,a,b,c)
-#else
-/*** IUnknown methods ***/
-#define IKsPropertySet_QueryInterface(p,a,b)    (p)->QueryInterface(a,b)
-#define IKsPropertySet_AddRef(p)                (p)->AddRef()
-#define IKsPropertySet_Release(p)               (p)->Release()
-/*** IKsPropertySet methods ***/
-#define IKsPropertySet_Get(p,a,b,c,d,e,f,g)     (p)->Get(a,b,c,d,e,f,g)
-#define IKsPropertySet_Set(p,a,b,c,d,e,f)       (p)->Set(a,b,c,d,e,f)
-#define IKsPropertySet_QuerySupport(p,a,b,c)    (p)->QuerySupport(a,b,c)
-#endif
-
-#endif /* _IKsPropertySet_ */
-
-/*****************************************************************************
- * IDirectSoundFullDuplex interface
- */
-#define INTERFACE IDirectSoundFullDuplex
-DECLARE_INTERFACE_(IDirectSoundFullDuplex,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSoundFullDuplex methods ***/
-    STDMETHOD(Initialize)(THIS_ LPCGUID pCaptureGuid,LPCGUID pRendererGuid,LPCDSCBUFFERDESC lpDscBufferDesc,LPCDSBUFFERDESC lpDsBufferDesc,HWND hWnd,DWORD dwLevel,LPLPDIRECTSOUNDCAPTUREBUFFER8 lplpDirectSoundCaptureBuffer8,LPLPDIRECTSOUNDBUFFER8 lplpDirectSoundBuffer8) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSoundFullDuplex_QueryInterface(p,a,b)    (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSoundFullDuplex_AddRef(p)                (p)->lpVtbl->AddRef(p)
-#define IDirectSoundFullDuplex_Release(p)               (p)->lpVtbl->Release(p)
-/*** IDirectSoundFullDuplex methods ***/
-#define IDirectSoundFullDuplex_Initialize(p,a,b,c,d,e,f,g,h)    (p)->lpVtbl->Initialize(p,a,b,c,d,e,f,g,h)
-#else
-/*** IUnknown methods ***/
-#define IDirectSoundFullDuplex_QueryInterface(p,a,b)    (p)->QueryInterface(a,b)
-#define IDirectSoundFullDuplex_AddRef(p)                (p)->AddRef()
-#define IDirectSoundFullDuplex_Release(p)               (p)->Release()
-/*** IDirectSoundFullDuplex methods ***/
-#define IDirectSoundFullDuplex_Initialize(p,a,b,c,d,e,f,g,h)    (p)->Initialize(a,b,c,d,e,f,g,h)
-#endif
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif /* defined(__cplusplus) */
-
-#endif /* __WINE_DSOUND_H */
diff --git a/misc/builddeps/win32/dx/include/wspiapi.h b/misc/builddeps/win32/dx/include/wspiapi.h
deleted file mode 100644 (file)
index a14be51..0000000
+++ /dev/null
@@ -1,1061 +0,0 @@
-/*++
-
-Copyright (c) Microsoft Corporation. All rights reserved.
-
-Module Name:
-    wspiapi.h
-
-Abstract:
-    The file contains protocol independent API functions.
-
-Revision History:
-    Wed Jul 12 10:50:31 2000, Created
-
---*/
-
-#ifndef _WSPIAPI_H_
-#define _WSPIAPI_H_
-
-#pragma once
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-
-#include <stdio.h>              // sprintf()
-#include <stdlib.h>             // calloc(), strtoul()
-#include <malloc.h>             // calloc()
-#include <string.h>             // strlen(), strcmp(), strstr()
-
-#if defined(__GOT_SECURE_LIB__) && __GOT_SECURE_LIB__ >= 200402L
-
-#define _WSPIAPI_STRCPY_S strcpy_s
-#define _WSPIAPI_STRCAT_S strcat_s
-#define _WSPIAPI_STRNCPY_S strncpy_s
-#define _WSPIAPI_SPRINTF_S_1 sprintf_s
-
-#else
-
-#define _WSPIAPI_STRCPY_S(_Dst, _Size, _Src) strcpy((_Dst), (_Src))
-#define _WSPIAPI_STRCAT_S(_Dst, _Size, _Src) strcat((_Dst), (_Src))
-#define _WSPIAPI_STRNCPY_S(_Dst, _Size, _Src, _Count) strncpy((_Dst), (_Src), (_Count)); (_Dst)[(_Size) - 1] = 0
-#define _WSPIAPI_SPRINTF_S_1(_Dst, _Size, _Format, _Arg1) sprintf((_Dst), (_Format), (_Arg1))
-
-#endif // defined(__GOT_SECURE_LIB__) && __GOT_SECURE_LIB__ >= 200402L
-
-#if !defined(_WSPIAPI_COUNTOF)
-#if !defined(__cplusplus)
-#define _WSPIAPI_COUNTOF(_Array) (sizeof(_Array) / sizeof(_Array[0]))
-#else
-template <typename __CountofType, size_t _N>
-char (&__wspiapi_countof_helper(__CountofType (&_Array)[_N]))[_N];
-#define _WSPIAPI_COUNTOF(_Array) sizeof(__wspiapi_countof_helper(_Array))
-#endif
-#endif
-
-#define WspiapiMalloc(tSize)    calloc(1, (tSize))
-#define WspiapiFree(p)          free(p)
-#define WspiapiSwap(a, b, c)    { (c) = (a); (a) = (b); (b) = (c); }
-#define getaddrinfo             WspiapiGetAddrInfo
-#define getnameinfo             WspiapiGetNameInfo
-#define freeaddrinfo            WspiapiFreeAddrInfo
-
-//
-// These function pointers are also within the #if (NTDDI_VERSION >= WIN2K)
-// because they are used by the other functions defined in this file available
-// only on win2k and above.
-//
-typedef int (WINAPI *WSPIAPI_PGETADDRINFO) (
-    IN  const char                      *nodename,
-    IN  const char                      *servname,
-    IN  const struct addrinfo           *hints,
-    OUT struct addrinfo                 **res);
-
-typedef int (WINAPI *WSPIAPI_PGETNAMEINFO) (
-    IN  const struct sockaddr           *sa,
-    IN  socklen_t                       salen,
-    OUT char                            *host,
-    IN  size_t                          hostlen,
-    OUT char                            *serv,
-    IN  size_t                          servlen,
-    IN  int                             flags);
-
-typedef void (WINAPI *WSPIAPI_PFREEADDRINFO) (
-    IN  struct addrinfo                 *ai);
-
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-    
-////////////////////////////////////////////////////////////
-// v4 only versions of getaddrinfo and friends.
-// NOTE: gai_strerror is inlined in ws2tcpip.h
-////////////////////////////////////////////////////////////
-
-__inline    
-char *
-WINAPI
-WspiapiStrdup (
-        IN  const char *                    pszString)
-/*++
-
-Routine Description
-    allocates enough storage via calloc() for a copy of the string,
-    copies the string into the new memory, and returns a pointer to it.
-
-Arguments
-    pszString       string to copy into new memory
-
-Return Value
-    a pointer to the newly allocated storage with the string in it.
-    NULL if enough memory could not be allocated, or string was NULL.
-
---*/    
-{
-    char    *pszMemory;
-    size_t  cchMemory;
-
-    if (!pszString)
-        return(NULL);
-
-    cchMemory = strlen(pszString) + 1;
-    pszMemory = (char *) WspiapiMalloc(cchMemory);
-    if (!pszMemory)
-        return(NULL);
-
-    _WSPIAPI_STRCPY_S(pszMemory, cchMemory, pszString);
-    return pszMemory;
-}
-
-    
-    
-__inline
-BOOL
-WINAPI
-WspiapiParseV4Address (
-    IN  const char *                    pszAddress,
-    OUT PDWORD                          pdwAddress)
-/*++
-
-Routine Description
-    get the IPv4 address (in network byte order) from its string
-    representation.  the syntax should be a.b.c.d.
-    
-Arguments
-    pszArgument         string representation of the IPv4 address
-    ptAddress           pointer to the resulting IPv4 address
-
-Return Value
-    Returns FALSE if there is an error, TRUE for success.
-    
---*/
-{
-    DWORD       dwAddress   = 0;
-    const char  *pcNext     = NULL;
-    int         iCount      = 0;
-
-    // ensure there are 3 '.' (periods)
-    for (pcNext = pszAddress; *pcNext != '\0'; pcNext++)
-        if (*pcNext == '.')
-            iCount++;
-    if (iCount != 3)
-        return FALSE;
-
-    // return an error if dwAddress is INADDR_NONE (255.255.255.255)
-    // since this is never a valid argument to getaddrinfo.
-    dwAddress = inet_addr(pszAddress);
-    if (dwAddress == INADDR_NONE)
-        return FALSE;
-
-    *pdwAddress = dwAddress;
-    return TRUE;
-}
-
-
-
-__inline
-struct addrinfo *
-WINAPI
-WspiapiNewAddrInfo (
-    IN  int                             iSocketType,
-    IN  int                             iProtocol,
-    IN  WORD                            wPort,
-    IN  DWORD                           dwAddress)
-/*++
-
-Routine Description
-    allocate an addrinfo structure and populate fields.
-    IPv4 specific internal function, not exported.
-    
-Arguments
-    iSocketType         SOCK_*.  can be wildcarded (zero).
-    iProtocol           IPPROTO_*.  can be wildcarded (zero).
-    wPort               port number of service (in network order).
-    dwAddress           IPv4 address (in network order).
-    
-Return Value
-    returns an addrinfo struct, or NULL if out of memory.
-
---*/    
-{
-    struct addrinfo     *ptNew;
-    struct sockaddr_in  *ptAddress;
-
-    // allocate a new addrinfo structure.
-    ptNew       =
-        (struct addrinfo *) WspiapiMalloc(sizeof(struct addrinfo));
-    if (!ptNew)
-        return NULL;
-
-    ptAddress   =
-        (struct sockaddr_in *) WspiapiMalloc(sizeof(struct sockaddr_in));
-    if (!ptAddress)
-    {
-        WspiapiFree(ptNew);
-        return NULL;
-    }
-    ptAddress->sin_family       = AF_INET;
-    ptAddress->sin_port         = wPort;
-    ptAddress->sin_addr.s_addr  = dwAddress;
-    
-    // fill in the fields...
-    ptNew->ai_family            = PF_INET;
-    ptNew->ai_socktype          = iSocketType;
-    ptNew->ai_protocol          = iProtocol;
-    ptNew->ai_addrlen           = sizeof(struct sockaddr_in);
-    ptNew->ai_addr              = (struct sockaddr *) ptAddress;
-
-    return ptNew;
-}
-
-
-
-__inline
-int
-WINAPI
-WspiapiQueryDNS(
-    IN  const char                      *pszNodeName,
-    IN  int                             iSocketType,
-    IN  int                             iProtocol,  
-    IN  WORD                            wPort,      
-    OUT char                            pszAlias[NI_MAXHOST],
-    OUT struct addrinfo                 **pptResult)
-/*++
-
-Routine Description
-    helper routine for WspiapiLookupNode.
-    performs name resolution by querying the DNS for A records.
-    *pptResult would need to be freed if an error is returned.
-    
-Arguments
-    pszNodeName         name of node to resolve.
-    iSocketType         SOCK_*.  can be wildcarded (zero).
-    iProtocol           IPPROTO_*.  can be wildcarded (zero).
-    wPort               port number of service (in network order).
-    pszAlias            where to return the alias.  must be of size NI_MAXHOST.
-    pptResult           where to return the result.
-    
-Return Value
-    Returns 0 on success, an EAI_* style error value otherwise.
-
---*/    
-{
-    struct addrinfo **pptNext   = pptResult;
-    struct hostent  *ptHost     = NULL;
-    char            **ppAddresses;
-
-    *pptNext    = NULL;
-    pszAlias[0] = '\0';
-
-    ptHost = gethostbyname(pszNodeName);
-    if (ptHost)
-    {
-        if ((ptHost->h_addrtype == AF_INET)     &&
-            (ptHost->h_length   == sizeof(struct in_addr)))
-        {
-            for (ppAddresses    = ptHost->h_addr_list;
-                 *ppAddresses   != NULL;
-                 ppAddresses++)
-            {
-                // create an addrinfo structure...
-                *pptNext = WspiapiNewAddrInfo(
-                    iSocketType,
-                    iProtocol,
-                    wPort,
-                    ((struct in_addr *) *ppAddresses)->s_addr);
-                if (!*pptNext)
-                    return EAI_MEMORY;
-
-                pptNext = &((*pptNext)->ai_next);
-            }
-        }
-
-        // pick up the canonical name.
-        _WSPIAPI_STRNCPY_S(pszAlias, NI_MAXHOST, ptHost->h_name, NI_MAXHOST - 1);
-        
-        return 0;
-    }
-    
-    switch (WSAGetLastError())
-    {
-        case WSAHOST_NOT_FOUND: return EAI_NONAME;
-        case WSATRY_AGAIN:      return EAI_AGAIN;
-        case WSANO_RECOVERY:    return EAI_FAIL;
-        case WSANO_DATA:        return EAI_NODATA;
-        default:                return EAI_NONAME;
-    }
-}
-
-
-
-__inline
-int
-WINAPI
-WspiapiLookupNode(
-    IN  const char                      *pszNodeName,
-    IN  int                             iSocketType,
-    IN  int                             iProtocol,  
-    IN  WORD                            wPort,      
-    IN  BOOL                            bAI_CANONNAME,
-    OUT struct addrinfo                 **pptResult)
-/*++
-
-Routine Description
-    resolve a nodename and return a list of addrinfo structures.
-    IPv4 specific internal function, not exported.
-    *pptResult would need to be freed if an error is returned.
-    
-    NOTE: if bAI_CANONNAME is true, the canonical name should be
-          returned in the first addrinfo structure.
-    
-Arguments
-    pszNodeName         name of node to resolve.
-    iSocketType         SOCK_*.  can be wildcarded (zero).
-    iProtocol           IPPROTO_*.  can be wildcarded (zero).
-    wPort               port number of service (in network order).
-    bAI_CANONNAME       whether the AI_CANONNAME flag is set.
-    pptResult           where to return result.
-    
-Return Value
-    Returns 0 on success, an EAI_* style error value otherwise.
-
---*/
-{
-    int     iError              = 0;
-    int     iAliasCount         = 0;
-
-    char    szFQDN1[NI_MAXHOST] = "";
-    char    szFQDN2[NI_MAXHOST] = "";
-    char    *pszName            = szFQDN1;
-    char    *pszAlias           = szFQDN2;
-    char    *pszScratch         = NULL;
-    _WSPIAPI_STRNCPY_S(pszName, NI_MAXHOST, pszNodeName, NI_MAXHOST - 1);
-    
-    for (;;)
-    {
-        iError = WspiapiQueryDNS(pszNodeName,
-                                 iSocketType,
-                                 iProtocol,
-                                 wPort,
-                                 pszAlias,
-                                 pptResult);
-        if (iError)
-            break;
-
-        // if we found addresses, then we are done.
-        if (*pptResult)
-            break;
-
-        // stop infinite loops due to DNS misconfiguration.  there appears
-        // to be no particular recommended limit in RFCs 1034 and 1035.
-        if ((!strlen(pszAlias))             ||
-            (!strcmp(pszName, pszAlias))    ||
-            (++iAliasCount == 16))
-        {
-            iError = EAI_FAIL;
-            break;
-        }
-
-        // there was a new CNAME, look again.
-        WspiapiSwap(pszName, pszAlias, pszScratch);
-    }
-
-    if (!iError && bAI_CANONNAME)
-    {
-        (*pptResult)->ai_canonname = WspiapiStrdup(pszAlias);
-        if (!(*pptResult)->ai_canonname)
-            iError = EAI_MEMORY;
-    }
-
-    return iError;
-}
-
-
-
-__inline
-int
-WINAPI
-WspiapiClone (
-    IN  WORD                            wPort,      
-    IN  struct addrinfo                 *ptResult)
-/*++
-
-Routine Description
-    clone every addrinfo structure in ptResult for the UDP service.
-    ptResult would need to be freed if an error is returned.
-    
-Arguments
-    wPort               port number of UDP service.
-    ptResult            list of addrinfo structures, each
-                        of whose node needs to be cloned.
-
-Return Value
-    Returns 0 on success, an EAI_MEMORY on allocation failure.
-
---*/
-{
-    struct addrinfo *ptNext = NULL;
-    struct addrinfo *ptNew  = NULL;
-
-    for (ptNext = ptResult; ptNext != NULL; )
-    {
-        // create an addrinfo structure...
-        ptNew = WspiapiNewAddrInfo(
-            SOCK_DGRAM,
-            ptNext->ai_protocol,
-            wPort,
-            ((struct sockaddr_in *) ptNext->ai_addr)->sin_addr.s_addr);
-        if (!ptNew)
-            break;
-
-        // link the cloned addrinfo
-        ptNew->ai_next  = ptNext->ai_next;
-        ptNext->ai_next = ptNew;
-        ptNext          = ptNew->ai_next;
-    }
-
-    if (ptNext != NULL)
-        return EAI_MEMORY;
-    
-    return 0;
-}
-
-
-
-__inline
-void
-WINAPI
-WspiapiLegacyFreeAddrInfo (
-    IN  struct addrinfo                 *ptHead)
-/*++
-
-Routine Description
-    Free an addrinfo structure (or chain of structures).
-    As specified in RFC 2553, Section 6.4.
-    
-Arguments
-    ptHead              structure (chain) to free
-    
---*/    
-{
-    struct addrinfo *ptNext;    // next strcture to free
-
-    for (ptNext = ptHead; ptNext != NULL; ptNext = ptHead)
-    {
-        if (ptNext->ai_canonname)
-            WspiapiFree(ptNext->ai_canonname);
-        
-        if (ptNext->ai_addr)
-            WspiapiFree(ptNext->ai_addr);
-
-        ptHead = ptNext->ai_next;
-        WspiapiFree(ptNext);
-    }
-}
-
-
-
-__inline
-int
-WINAPI
-WspiapiLegacyGetAddrInfo(
-    IN const char                       *pszNodeName,
-    IN const char                       *pszServiceName,
-    IN const struct addrinfo            *ptHints,
-    OUT struct addrinfo                 **pptResult)
-/*++
-
-Routine Description
-    Protocol-independent name-to-address translation.
-    As specified in RFC 2553, Section 6.4.
-    This is the hacked version that only supports IPv4.
-    
-Arguments
-    pszNodeName         node name to lookup.
-    pszServiceName      service name to lookup.
-    ptHints             hints about how to process request.
-    pptResult           where to return result.
-    
-Return Value
-    returns zero if successful, an EAI_* error code if not.
-
---*/    
-{
-    int                 iError      = 0;
-    int                 iFlags      = 0;
-    int                 iFamily     = PF_UNSPEC;
-    int                 iSocketType = 0;
-    int                 iProtocol   = 0;
-    WORD                wPort       = 0;
-    DWORD               dwAddress   = 0;
-
-    struct servent      *ptService  = NULL;
-    char                *pc         = NULL;
-    BOOL                bClone      = FALSE;
-    WORD                wTcpPort    = 0;
-    WORD                wUdpPort    = 0;
-    
-    
-    // initialize pptResult with default return value.
-    *pptResult  = NULL;
-
-
-    ////////////////////////////////////////
-    // validate arguments...
-    //
-    
-    // both the node name and the service name can't be NULL.
-    if ((!pszNodeName) && (!pszServiceName))
-        return EAI_NONAME;
-
-    // validate hints.
-    if (ptHints)
-    {
-        // all members other than ai_flags, ai_family, ai_socktype
-        // and ai_protocol must be zero or a null pointer.
-        if ((ptHints->ai_addrlen    != 0)       ||
-            (ptHints->ai_canonname  != NULL)    ||
-            (ptHints->ai_addr       != NULL)    ||
-            (ptHints->ai_next       != NULL))
-        {
-            return EAI_FAIL;
-        }
-        
-        // the spec has the "bad flags" error code, so presumably we
-        // should check something here.  insisting that there aren't
-        // any unspecified flags set would break forward compatibility,
-        // however.  so we just check for non-sensical combinations.
-        //
-        // we cannot come up with a canonical name given a null node name.
-        iFlags      = ptHints->ai_flags;
-        if ((iFlags & AI_CANONNAME) && !pszNodeName)
-            return EAI_BADFLAGS;
-
-        // we only support a limited number of protocol families.
-        iFamily     = ptHints->ai_family;
-        if ((iFamily != PF_UNSPEC) && (iFamily != PF_INET))
-            return EAI_FAMILY;
-
-        // we only support only these socket types.
-        iSocketType = ptHints->ai_socktype;
-        if ((iSocketType != 0)                  &&
-            (iSocketType != SOCK_STREAM)        &&
-            (iSocketType != SOCK_DGRAM)         &&
-            (iSocketType != SOCK_RAW))
-            return EAI_SOCKTYPE;
-
-        // REVIEW: What if ai_socktype and ai_protocol are at odds?
-        iProtocol   = ptHints->ai_protocol;
-    }
-
-
-    ////////////////////////////////////////
-    // do service lookup...
-
-    if (pszServiceName)
-    {
-        wPort = (WORD) strtoul(pszServiceName, &pc, 10);
-        if (*pc == '\0')        // numeric port string
-        {
-            wPort = wTcpPort = wUdpPort = htons(wPort);
-            if (iSocketType == 0)
-            {
-                bClone      = TRUE;
-                iSocketType = SOCK_STREAM;
-            }
-        }
-        else                    // non numeric port string
-        {
-            if ((iSocketType == 0) || (iSocketType == SOCK_DGRAM))
-            {
-                ptService = getservbyname(pszServiceName, "udp");
-                if (ptService)
-                    wPort = wUdpPort = ptService->s_port;
-            }
-
-            if ((iSocketType == 0) || (iSocketType == SOCK_STREAM))
-            {
-                ptService = getservbyname(pszServiceName, "tcp");
-                if (ptService)
-                    wPort = wTcpPort = ptService->s_port;
-            }
-            
-            // assumes 0 is an invalid service port...
-            if (wPort == 0)     // no service exists
-                return (iSocketType ? EAI_SERVICE : EAI_NONAME);
-
-            if (iSocketType == 0)
-            {
-                // if both tcp and udp, process tcp now & clone udp later.
-                iSocketType = (wTcpPort) ? SOCK_STREAM : SOCK_DGRAM;
-                bClone      = (wTcpPort && wUdpPort); 
-            }
-        }
-    }
-    
-
-
-    ////////////////////////////////////////
-    // do node name lookup...
-
-    // if we weren't given a node name,
-    // return the wildcard or loopback address (depending on AI_PASSIVE).
-    //
-    // if we have a numeric host address string,
-    // return the binary address.
-    //
-    if ((!pszNodeName) || (WspiapiParseV4Address(pszNodeName, &dwAddress)))
-    {
-        if (!pszNodeName)
-        {
-            dwAddress = htonl((iFlags & AI_PASSIVE)
-                              ? INADDR_ANY
-                              : INADDR_LOOPBACK);
-        }
-        
-        // create an addrinfo structure...
-        *pptResult =
-            WspiapiNewAddrInfo(iSocketType, iProtocol, wPort, dwAddress);
-        if (!(*pptResult))
-            iError = EAI_MEMORY;
-        
-        if (!iError && pszNodeName)
-        {
-            // implementation specific behavior: set AI_NUMERICHOST
-            // to indicate that we got a numeric host address string.
-            (*pptResult)->ai_flags |= AI_NUMERICHOST;
-            
-            // return the numeric address string as the canonical name
-            if (iFlags & AI_CANONNAME)
-            {
-                (*pptResult)->ai_canonname =
-                    WspiapiStrdup(inet_ntoa(*((struct in_addr *) &dwAddress)));
-                if (!(*pptResult)->ai_canonname)        
-                    iError = EAI_MEMORY;
-            }
-        }
-    }
-
-
-    // if we do not have a numeric host address string and
-    // AI_NUMERICHOST flag is set, return an error!
-    else if (iFlags & AI_NUMERICHOST)
-    {
-        iError = EAI_NONAME;
-    }
-    
-
-    // since we have a non-numeric node name,
-    // we have to do a regular node name lookup.
-    else
-    {
-        iError = WspiapiLookupNode(pszNodeName,
-                                   iSocketType,
-                                   iProtocol,
-                                   wPort,
-                                   (iFlags & AI_CANONNAME),
-                                   pptResult);
-    }
-
-    if (!iError && bClone)
-    {
-        iError = WspiapiClone(wUdpPort, *pptResult);
-    }
-
-    if (iError)
-    {
-        WspiapiLegacyFreeAddrInfo(*pptResult);
-        *pptResult  = NULL;        
-    }
-
-    return (iError);
-}
-
-
-
-__inline
-int
-WINAPI
-WspiapiLegacyGetNameInfo(
-    IN  const struct sockaddr           *ptSocketAddress,
-    IN  socklen_t                       tSocketLength,
-    OUT char                            *pszNodeName,
-    IN  size_t                          tNodeLength,
-    OUT char                            *pszServiceName,
-    IN  size_t                          tServiceLength,
-    IN  int                             iFlags)
-/*++
-
-Routine Description
-    protocol-independent address-to-name translation.
-    as specified in RFC 2553, Section 6.5.
-    this is the hacked version that only supports IPv4.
-    
-Arguments
-    ptSocketAddress     socket address to translate.
-    tSocketLength       length of above socket address.
-    pszNodeName         where to return the node name.
-    tNodeLength         size of above buffer.
-    pszServiceName      where to return the service name.
-    tServiceLength      size of above buffer.
-    iFlags              flags of type NI_*.
-    
-Return Value
-    returns zero if successful, an EAI_* error code if not.
-
---*/    
-{
-    struct servent  *ptService;
-    WORD            wPort;    
-    char            szBuffer[]  = "65535";
-    char            *pszService = szBuffer;
-
-    struct hostent  *ptHost;
-    struct in_addr  tAddress;
-    char            *pszNode    = NULL;
-    char            *pc         = NULL;
-    
-
-    // sanity check ptSocketAddress and tSocketLength.
-    if ((!ptSocketAddress) || (tSocketLength < sizeof(struct sockaddr)))
-        return EAI_FAIL;
-    
-    if (ptSocketAddress->sa_family != AF_INET)
-        return EAI_FAMILY;
-
-    if (tSocketLength < sizeof(struct sockaddr_in))
-        return EAI_FAIL;
-    
-    if (!(pszNodeName && tNodeLength) &&
-        !(pszServiceName && tServiceLength))
-    {
-        return EAI_NONAME;    
-    }
-
-    // the draft has the "bad flags" error code, so presumably we
-    // should check something here.  insisting that there aren't
-    // any unspecified flags set would break forward compatibility,
-    // however.  so we just check for non-sensical combinations.
-    if ((iFlags & NI_NUMERICHOST) && (iFlags & NI_NAMEREQD))
-    {                                                                       
-        return EAI_BADFLAGS;
-    }
-        
-    // translate the port to a service name (if requested).
-    if (pszServiceName && tServiceLength)
-    {
-        wPort = ((struct sockaddr_in *) ptSocketAddress)->sin_port;
-        
-        if (iFlags & NI_NUMERICSERV)
-        {
-            // return numeric form of the address.
-            _WSPIAPI_SPRINTF_S_1(szBuffer, _WSPIAPI_COUNTOF(szBuffer), "%u", ntohs(wPort));
-        }
-        else
-        {
-            // return service name corresponding to port.
-            ptService = getservbyport(wPort,
-                                      (iFlags & NI_DGRAM) ? "udp" : NULL);
-            if (ptService && ptService->s_name)
-            {
-                // lookup successful.
-                pszService = ptService->s_name;
-            }
-            else
-            {
-                // DRAFT: return numeric form of the port!
-                _WSPIAPI_SPRINTF_S_1(szBuffer, _WSPIAPI_COUNTOF(szBuffer), "%u", ntohs(wPort));
-            }
-        }
-        
-        
-        if (tServiceLength > strlen(pszService))
-            _WSPIAPI_STRCPY_S(pszServiceName, tServiceLength, pszService);
-        else
-            return EAI_FAIL;
-    }
-
-    
-    // translate the address to a node name (if requested).
-    if (pszNodeName && tNodeLength)
-    {    
-        // this is the IPv4-only version, so we have an IPv4 address.
-        tAddress = ((struct sockaddr_in *) ptSocketAddress)->sin_addr;
-
-        if (iFlags & NI_NUMERICHOST)
-        {
-            // return numeric form of the address.
-            pszNode  = inet_ntoa(tAddress);
-        }
-        else
-        {
-            // return node name corresponding to address.
-            ptHost = gethostbyaddr((char *) &tAddress,
-                                   sizeof(struct in_addr),
-                                   AF_INET);
-            if (ptHost && ptHost->h_name)
-            {
-                // DNS lookup successful.
-                // stop copying at a "." if NI_NOFQDN is specified.
-                pszNode = ptHost->h_name;
-                if ((iFlags & NI_NOFQDN) &&
-                    ((pc = strchr(pszNode, '.')) != NULL))
-                    *pc = '\0';
-            }
-            else
-            {
-                // DNS lookup failed.  return numeric form of the address.
-                if (iFlags & NI_NAMEREQD)
-                {
-                    switch (WSAGetLastError())
-                    {
-                        case WSAHOST_NOT_FOUND: return EAI_NONAME;
-                        case WSATRY_AGAIN:      return EAI_AGAIN;
-                        case WSANO_RECOVERY:    return EAI_FAIL;
-                        default:                return EAI_NONAME;
-                    }
-                }
-                else
-                    pszNode  = inet_ntoa(tAddress);
-            }
-        }
-
-        if (tNodeLength > strlen(pszNode))
-            _WSPIAPI_STRCPY_S(pszNodeName, tNodeLength, pszNode);
-        else
-            return EAI_FAIL;
-    }
-
-    return 0;
-}
-
-
-
-typedef struct 
-{
-    char const          *pszName;
-    FARPROC             pfAddress;
-} WSPIAPI_FUNCTION;
-
-#define WSPIAPI_FUNCTION_ARRAY                                  \
-{                                                               \
-    "getaddrinfo",      (FARPROC) WspiapiLegacyGetAddrInfo,     \
-    "getnameinfo",      (FARPROC) WspiapiLegacyGetNameInfo,     \
-    "freeaddrinfo",     (FARPROC) WspiapiLegacyFreeAddrInfo,    \
-}
-
-
-
-__inline
-FARPROC
-WINAPI
-WspiapiLoad(
-    IN  WORD                            wFunction)
-/*++
-
-Routine Description
-    try to locate the address family independent name resolution routines
-    (i.e. getaddrinfo, getnameinfo, freeaddrinfo, gai_strerror).
-    
-Locks
-    this function call is not synchronized.  hence the library containing
-    the routines might be loaded multiple times.  another option is to
-    synchronize through a spin lock using a static local variable and the
-    InterlockedExchange operation.  
-
-    
-Arguments
-    wFunction           ordinal # of the function to get the pointer to
-                        0   getaddrinfo
-                        1   getnameinfo
-                        2   freeaddrinfo
-    
-Return Value
-    address of the library/legacy routine
-
---*/
-{
-    HMODULE                 hLibrary        = NULL;
-
-    // these static variables store state across calls, across threads.
-    static BOOL             bInitialized    = FALSE;
-    static WSPIAPI_FUNCTION rgtGlobal[]     = WSPIAPI_FUNCTION_ARRAY;
-    static const int        iNumGlobal      = (sizeof(rgtGlobal) /
-                                               sizeof(WSPIAPI_FUNCTION));
-    
-    // we overwrite rgtGlobal only if all routines exist in library.
-    WSPIAPI_FUNCTION        rgtLocal[]      = WSPIAPI_FUNCTION_ARRAY;
-    FARPROC                 fScratch        = NULL;
-    int                     i               = 0;
-    
-    
-    if (bInitialized)           // WspiapiLoad has already been called once
-        return (rgtGlobal[wFunction].pfAddress);
-
-    for (;;)                    // breakout loop
-    {
-        CHAR SystemDir[MAX_PATH + 1];
-        CHAR Path[MAX_PATH + 8];
-
-        if (GetSystemDirectoryA(SystemDir, MAX_PATH) == 0) 
-        {
-            break;
-        }
-
-        // in Whistler and beyond...
-        // the routines are present in the WinSock 2 library (ws2_32.dll).
-        // printf("Looking in ws2_32 for getaddrinfo...\n");
-        _WSPIAPI_STRCPY_S(Path, _WSPIAPI_COUNTOF(Path), SystemDir);
-        _WSPIAPI_STRCAT_S(Path, _WSPIAPI_COUNTOF(Path), "\\ws2_32");
-        hLibrary = LoadLibraryA(Path);
-        if (hLibrary != NULL)
-        {
-            fScratch = GetProcAddress(hLibrary, "getaddrinfo");
-            if (fScratch == NULL)
-            {
-                FreeLibrary(hLibrary);
-                hLibrary = NULL;
-            }
-        }
-        if (hLibrary != NULL)
-            break;
-        
-
-        // in the IPv6 Technology Preview...        
-        // the routines are present in the IPv6 WinSock library (wship6.dll).
-        // printf("Looking in wship6 for getaddrinfo...\n");
-        _WSPIAPI_STRCPY_S(Path, _WSPIAPI_COUNTOF(Path), SystemDir);
-        _WSPIAPI_STRCAT_S(Path, _WSPIAPI_COUNTOF(Path), "\\wship6");
-        hLibrary = LoadLibraryA(Path);
-        if (hLibrary != NULL)
-        {
-            fScratch = GetProcAddress(hLibrary, "getaddrinfo");
-            if (fScratch == NULL)
-            {
-                FreeLibrary(hLibrary);
-                hLibrary = NULL;
-            }
-        }
-
-        break;
-    }
-
-
-    if (hLibrary != NULL)
-    {
-        // use routines from this library...
-        // since getaddrinfo is here, we expect all routines to be here,
-        // but will fall back to IPv4-only if any of them is missing.
-        for (i = 0; i < iNumGlobal; i++)
-        {
-            rgtLocal[i].pfAddress
-                = GetProcAddress(hLibrary, rgtLocal[i].pszName);
-            if (rgtLocal[i].pfAddress == NULL)
-            {
-                FreeLibrary(hLibrary);
-                hLibrary = NULL;
-                break;
-            }
-        }
-
-        if (hLibrary != NULL)
-        {
-            // printf("found!\n");
-            for (i = 0; i < iNumGlobal; i++)
-                rgtGlobal[i].pfAddress = rgtLocal[i].pfAddress;
-        }
-    }
-    
-    bInitialized = TRUE;
-    return (rgtGlobal[wFunction].pfAddress);
-}
-
-
-
-__inline
-int
-WINAPI
-WspiapiGetAddrInfo(
-    IN const char                       *nodename,
-    IN const char                       *servname,
-    IN const struct addrinfo            *hints,
-    OUT struct addrinfo                 **res)
-{
-    int                             iError;
-    static WSPIAPI_PGETADDRINFO     pfGetAddrInfo   = NULL;
-    
-    if (!pfGetAddrInfo)
-        pfGetAddrInfo   = (WSPIAPI_PGETADDRINFO) WspiapiLoad(0);
-
-    iError = (*pfGetAddrInfo)(nodename, servname, hints, res);
-    WSASetLastError(iError);
-    return iError;
-}
-
-
-
-__inline
-int
-WINAPI
-WspiapiGetNameInfo (
-    IN  const struct sockaddr           *sa,
-    IN  socklen_t                       salen,
-    OUT char                            *host,
-    IN  size_t                          hostlen,
-    OUT char                            *serv,
-    IN  size_t                          servlen,
-    IN  int                             flags)
-{
-    int                             iError;
-    static WSPIAPI_PGETNAMEINFO     pfGetNameInfo   = NULL;
-    
-    if (!pfGetNameInfo)
-        pfGetNameInfo   = (WSPIAPI_PGETNAMEINFO) WspiapiLoad(1);
-
-    iError = (*pfGetNameInfo)(sa, salen, host, hostlen, serv, servlen, flags);
-    WSASetLastError(iError);
-    return iError;
-}
-
-
-
-__inline
-void
-WINAPI
-WspiapiFreeAddrInfo (
-    IN  struct addrinfo                 *ai)
-{
-    static WSPIAPI_PFREEADDRINFO    pfFreeAddrInfo   = NULL;
-
-    if (!pfFreeAddrInfo)
-        pfFreeAddrInfo  = (WSPIAPI_PFREEADDRINFO) WspiapiLoad(2);
-    (*pfFreeAddrInfo)(ai);
-}
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif // if (NTDDI_VERSION >= WIN2K)
-#endif // _WSPIAPI_H_
-
diff --git a/misc/builddeps/win32/dx/include/zconf.h b/misc/builddeps/win32/dx/include/zconf.h
deleted file mode 100644 (file)
index 51c80ac..0000000
+++ /dev/null
@@ -1,466 +0,0 @@
-/* zconf.h -- configuration of the zlib compression library
- * Copyright (C) 1995-2011 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id$ */
-
-#ifndef ZCONF_H
-#define ZCONF_H
-
-/*
- * If you *really* need a unique prefix for all types and library functions,
- * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
- * Even better than compiling with -DZ_PREFIX would be to use configure to set
- * this permanently in zconf.h using "./configure --zprefix".
- */
-#ifdef Z_PREFIX     /* may be set to #if 1 by ./configure */
-#  define Z_PREFIX_SET
-
-/* all linked symbols */
-#  define _dist_code            z__dist_code
-#  define _length_code          z__length_code
-#  define _tr_align             z__tr_align
-#  define _tr_flush_block       z__tr_flush_block
-#  define _tr_init              z__tr_init
-#  define _tr_stored_block      z__tr_stored_block
-#  define _tr_tally             z__tr_tally
-#  define adler32               z_adler32
-#  define adler32_combine       z_adler32_combine
-#  define adler32_combine64     z_adler32_combine64
-#  ifndef Z_SOLO
-#    define compress              z_compress
-#    define compress2             z_compress2
-#    define compressBound         z_compressBound
-#  endif
-#  define crc32                 z_crc32
-#  define crc32_combine         z_crc32_combine
-#  define crc32_combine64       z_crc32_combine64
-#  define deflate               z_deflate
-#  define deflateBound          z_deflateBound
-#  define deflateCopy           z_deflateCopy
-#  define deflateEnd            z_deflateEnd
-#  define deflateInit2_         z_deflateInit2_
-#  define deflateInit_          z_deflateInit_
-#  define deflateParams         z_deflateParams
-#  define deflatePending        z_deflatePending
-#  define deflatePrime          z_deflatePrime
-#  define deflateReset          z_deflateReset
-#  define deflateResetKeep      z_deflateResetKeep
-#  define deflateSetDictionary  z_deflateSetDictionary
-#  define deflateSetHeader      z_deflateSetHeader
-#  define deflateTune           z_deflateTune
-#  define deflate_copyright     z_deflate_copyright
-#  define get_crc_table         z_get_crc_table
-#  ifndef Z_SOLO
-#    define gz_error              z_gz_error
-#    define gz_intmax             z_gz_intmax
-#    define gz_strwinerror        z_gz_strwinerror
-#    define gzbuffer              z_gzbuffer
-#    define gzclearerr            z_gzclearerr
-#    define gzclose               z_gzclose
-#    define gzclose_r             z_gzclose_r
-#    define gzclose_w             z_gzclose_w
-#    define gzdirect              z_gzdirect
-#    define gzdopen               z_gzdopen
-#    define gzeof                 z_gzeof
-#    define gzerror               z_gzerror
-#    define gzflags               z_gzflags
-#    define gzflush               z_gzflush
-#    define gzgetc                z_gzgetc
-#    define gzgetc_               z_gzgetc_
-#    define gzgets                z_gzgets
-#    define gzoffset              z_gzoffset
-#    define gzoffset64            z_gzoffset64
-#    define gzopen                z_gzopen
-#    define gzopen64              z_gzopen64
-#    define gzprintf              z_gzprintf
-#    define gzputc                z_gzputc
-#    define gzputs                z_gzputs
-#    define gzread                z_gzread
-#    define gzrewind              z_gzrewind
-#    define gzseek                z_gzseek
-#    define gzseek64              z_gzseek64
-#    define gzsetparams           z_gzsetparams
-#    define gztell                z_gztell
-#    define gztell64              z_gztell64
-#    define gzungetc              z_gzungetc
-#    define gzwrite               z_gzwrite
-#  endif
-#  define inflate               z_inflate
-#  define inflateBack           z_inflateBack
-#  define inflateBackEnd        z_inflateBackEnd
-#  define inflateBackInit_      z_inflateBackInit_
-#  define inflateCopy           z_inflateCopy
-#  define inflateEnd            z_inflateEnd
-#  define inflateGetHeader      z_inflateGetHeader
-#  define inflateInit2_         z_inflateInit2_
-#  define inflateInit_          z_inflateInit_
-#  define inflateMark           z_inflateMark
-#  define inflatePrime          z_inflatePrime
-#  define inflateReset          z_inflateReset
-#  define inflateReset2         z_inflateReset2
-#  define inflateSetDictionary  z_inflateSetDictionary
-#  define inflateSync           z_inflateSync
-#  define inflateSyncPoint      z_inflateSyncPoint
-#  define inflateUndermine      z_inflateUndermine
-#  define inflateResetKeep      z_inflateResetKeep
-#  define inflate_copyright     z_inflate_copyright
-#  define inflate_fast          z_inflate_fast
-#  define inflate_table         z_inflate_table
-#  ifndef Z_SOLO
-#    define uncompress            z_uncompress
-#  endif
-#  define zError                z_zError
-#  ifndef Z_SOLO
-#    define zcalloc               z_zcalloc
-#    define zcfree                z_zcfree
-#  endif
-#  define zlibCompileFlags      z_zlibCompileFlags
-#  define zlibVersion           z_zlibVersion
-
-/* all zlib typedefs in zlib.h and zconf.h */
-#  define Byte                  z_Byte
-#  define Bytef                 z_Bytef
-#  define alloc_func            z_alloc_func
-#  define charf                 z_charf
-#  define free_func             z_free_func
-#  ifndef Z_SOLO
-#    define gzFile                z_gzFile
-#    define gz_header             z_gz_header
-#    define gz_headerp            z_gz_headerp
-#  endif
-#  define in_func               z_in_func
-#  define intf                  z_intf
-#  define out_func              z_out_func
-#  define uInt                  z_uInt
-#  define uIntf                 z_uIntf
-#  define uLong                 z_uLong
-#  define uLongf                z_uLongf
-#  define voidp                 z_voidp
-#  define voidpc                z_voidpc
-#  define voidpf                z_voidpf
-
-/* all zlib structs in zlib.h and zconf.h */
-#  ifndef Z_SOLO
-#    define gz_header_s           z_gz_header_s
-#  endif
-#  define internal_state        z_internal_state
-
-#endif
-
-#if defined(__MSDOS__) && !defined(MSDOS)
-#  define MSDOS
-#endif
-#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2)
-#  define OS2
-#endif
-#if defined(_WINDOWS) && !defined(WINDOWS)
-#  define WINDOWS
-#endif
-#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__)
-#  ifndef WIN32
-#    define WIN32
-#  endif
-#endif
-#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32)
-#  if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__)
-#    ifndef SYS16BIT
-#      define SYS16BIT
-#    endif
-#  endif
-#endif
-
-/*
- * Compile with -DMAXSEG_64K if the alloc function cannot allocate more
- * than 64k bytes at a time (needed on systems with 16-bit int).
- */
-#ifdef SYS16BIT
-#  define MAXSEG_64K
-#endif
-#ifdef MSDOS
-#  define UNALIGNED_OK
-#endif
-
-#ifdef __STDC_VERSION__
-#  ifndef STDC
-#    define STDC
-#  endif
-#  if __STDC_VERSION__ >= 199901L
-#    ifndef STDC99
-#      define STDC99
-#    endif
-#  endif
-#endif
-#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus))
-#  define STDC
-#endif
-#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__))
-#  define STDC
-#endif
-#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32))
-#  define STDC
-#endif
-#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__))
-#  define STDC
-#endif
-
-#if defined(__OS400__) && !defined(STDC)    /* iSeries (formerly AS/400). */
-#  define STDC
-#endif
-
-#ifndef STDC
-#  ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
-#    define const       /* note: need a more gentle solution here */
-#  endif
-#endif
-
-#if defined(ZLIB_CONST) && !defined(z_const)
-#  define z_const const
-#else
-#  define z_const
-#endif
-
-/* Some Mac compilers merge all .h files incorrectly: */
-#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__)
-#  define NO_DUMMY_DECL
-#endif
-
-/* Maximum value for memLevel in deflateInit2 */
-#ifndef MAX_MEM_LEVEL
-#  ifdef MAXSEG_64K
-#    define MAX_MEM_LEVEL 8
-#  else
-#    define MAX_MEM_LEVEL 9
-#  endif
-#endif
-
-/* Maximum value for windowBits in deflateInit2 and inflateInit2.
- * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
- * created by gzip. (Files created by minigzip can still be extracted by
- * gzip.)
- */
-#ifndef MAX_WBITS
-#  define MAX_WBITS   15 /* 32K LZ77 window */
-#endif
-
-/* The memory requirements for deflate are (in bytes):
-            (1 << (windowBits+2)) +  (1 << (memLevel+9))
- that is: 128K for windowBits=15  +  128K for memLevel = 8  (default values)
- plus a few kilobytes for small objects. For example, if you want to reduce
- the default memory requirements from 256K to 128K, compile with
-     make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
- Of course this will generally degrade compression (there's no free lunch).
-
-   The memory requirements for inflate are (in bytes) 1 << windowBits
- that is, 32K for windowBits=15 (default value) plus a few kilobytes
- for small objects.
-*/
-
-                        /* Type declarations */
-
-#ifndef OF /* function prototypes */
-#  ifdef STDC
-#    define OF(args)  args
-#  else
-#    define OF(args)  ()
-#  endif
-#endif
-
-#ifndef Z_ARG /* function prototypes for stdarg */
-#  if defined(STDC) || defined(Z_HAVE_STDARG_H)
-#    define Z_ARG(args)  args
-#  else
-#    define Z_ARG(args)  ()
-#  endif
-#endif
-
-/* The following definitions for FAR are needed only for MSDOS mixed
- * model programming (small or medium model with some far allocations).
- * This was tested only with MSC; for other MSDOS compilers you may have
- * to define NO_MEMCPY in zutil.h.  If you don't need the mixed model,
- * just define FAR to be empty.
- */
-#ifdef SYS16BIT
-#  if defined(M_I86SM) || defined(M_I86MM)
-     /* MSC small or medium model */
-#    define SMALL_MEDIUM
-#    ifdef _MSC_VER
-#      define FAR _far
-#    else
-#      define FAR far
-#    endif
-#  endif
-#  if (defined(__SMALL__) || defined(__MEDIUM__))
-     /* Turbo C small or medium model */
-#    define SMALL_MEDIUM
-#    ifdef __BORLANDC__
-#      define FAR _far
-#    else
-#      define FAR far
-#    endif
-#  endif
-#endif
-
-#if defined(WINDOWS) || defined(WIN32)
-   /* If building or using zlib as a DLL, define ZLIB_DLL.
-    * This is not mandatory, but it offers a little performance increase.
-    */
-#  ifdef ZLIB_DLL
-#    if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500))
-#      ifdef ZLIB_INTERNAL
-#        define ZEXTERN extern __declspec(dllexport)
-#      else
-#        define ZEXTERN extern __declspec(dllimport)
-#      endif
-#    endif
-#  endif  /* ZLIB_DLL */
-   /* If building or using zlib with the WINAPI/WINAPIV calling convention,
-    * define ZLIB_WINAPI.
-    * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI.
-    */
-#  ifdef ZLIB_WINAPI
-#    ifdef FAR
-#      undef FAR
-#    endif
-#    include <windows.h>
-     /* No need for _export, use ZLIB.DEF instead. */
-     /* For complete Windows compatibility, use WINAPI, not __stdcall. */
-#    define ZEXPORT WINAPI
-#    ifdef WIN32
-#      define ZEXPORTVA WINAPIV
-#    else
-#      define ZEXPORTVA FAR CDECL
-#    endif
-#  endif
-#endif
-
-#if defined (__BEOS__)
-#  ifdef ZLIB_DLL
-#    ifdef ZLIB_INTERNAL
-#      define ZEXPORT   __declspec(dllexport)
-#      define ZEXPORTVA __declspec(dllexport)
-#    else
-#      define ZEXPORT   __declspec(dllimport)
-#      define ZEXPORTVA __declspec(dllimport)
-#    endif
-#  endif
-#endif
-
-#ifndef ZEXTERN
-#  define ZEXTERN extern
-#endif
-#ifndef ZEXPORT
-#  define ZEXPORT
-#endif
-#ifndef ZEXPORTVA
-#  define ZEXPORTVA
-#endif
-
-#ifndef FAR
-#  define FAR
-#endif
-
-#if !defined(__MACTYPES__)
-typedef unsigned char  Byte;  /* 8 bits */
-#endif
-typedef unsigned int   uInt;  /* 16 bits or more */
-typedef unsigned long  uLong; /* 32 bits or more */
-
-#ifdef SMALL_MEDIUM
-   /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */
-#  define Bytef Byte FAR
-#else
-   typedef Byte  FAR Bytef;
-#endif
-typedef char  FAR charf;
-typedef int   FAR intf;
-typedef uInt  FAR uIntf;
-typedef uLong FAR uLongf;
-
-#ifdef STDC
-   typedef void const *voidpc;
-   typedef void FAR   *voidpf;
-   typedef void       *voidp;
-#else
-   typedef Byte const *voidpc;
-   typedef Byte FAR   *voidpf;
-   typedef Byte       *voidp;
-#endif
-
-#ifdef HAVE_UNISTD_H    /* may be set to #if 1 by ./configure */
-#  define Z_HAVE_UNISTD_H
-#endif
-
-#ifdef HAVE_STDARG_H    /* may be set to #if 1 by ./configure */
-#  define Z_HAVE_STDARG_H
-#endif
-
-#ifdef STDC
-#  ifndef Z_SOLO
-#    include <sys/types.h>      /* for off_t */
-#  endif
-#endif
-
-/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and
- * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even
- * though the former does not conform to the LFS document), but considering
- * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as
- * equivalently requesting no 64-bit operations
- */
-#if -_LARGEFILE64_SOURCE - -1 == 1
-#  undef _LARGEFILE64_SOURCE
-#endif
-
-#if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0
-#  define Z_LARGE
-#endif
-
-#if (defined(Z_HAVE_UNISTD_H) || defined(Z_LARGE)) && !defined(Z_SOLO)
-#  include <unistd.h>       /* for SEEK_* and off_t */
-#  ifdef VMS
-#    include <unixio.h>     /* for off_t */
-#  endif
-#  ifndef z_off_t
-#    define z_off_t off_t
-#  endif
-#endif
-
-#if !defined(SEEK_SET) && !defined(Z_SOLO)
-#  define SEEK_SET        0       /* Seek from beginning of file.  */
-#  define SEEK_CUR        1       /* Seek from current position.  */
-#  define SEEK_END        2       /* Set file pointer to EOF plus "offset" */
-#endif
-
-#ifndef z_off_t
-#  define z_off_t long
-#endif
-
-#if !defined(_WIN32) && (defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0)
-#  define z_off64_t off64_t
-#else
-#  if defined(_WIN32)
-#    define z_off64_t __int64
-#  else
-#  define z_off64_t z_off_t
-#endif
-#endif
-
-/* MVS linker does not support external names larger than 8 bytes */
-#if defined(__MVS__)
-  #pragma map(deflateInit_,"DEIN")
-  #pragma map(deflateInit2_,"DEIN2")
-  #pragma map(deflateEnd,"DEEND")
-  #pragma map(deflateBound,"DEBND")
-  #pragma map(inflateInit_,"ININ")
-  #pragma map(inflateInit2_,"ININ2")
-  #pragma map(inflateEnd,"INEND")
-  #pragma map(inflateSync,"INSY")
-  #pragma map(inflateSetDictionary,"INSEDI")
-  #pragma map(compressBound,"CMBND")
-  #pragma map(inflate_table,"INTABL")
-  #pragma map(inflate_fast,"INFA")
-  #pragma map(inflate_copyright,"INCOPY")
-#endif
-
-#endif /* ZCONF_H */
diff --git a/misc/builddeps/win32/zlib/bin/zlib1.dll b/misc/builddeps/win32/zlib/bin/zlib1.dll
deleted file mode 100755 (executable)
index 1ced00e..0000000
Binary files a/misc/builddeps/win32/zlib/bin/zlib1.dll and /dev/null differ
diff --git a/misc/builddeps/win32/zlib/include/zlib.h b/misc/builddeps/win32/zlib/include/zlib.h
deleted file mode 100644 (file)
index 79142d1..0000000
+++ /dev/null
@@ -1,1732 +0,0 @@
-/* zlib.h -- interface of the 'zlib' general purpose compression library
-  version 1.2.6, January 29th, 2012
-
-  Copyright (C) 1995-2012 Jean-loup Gailly and Mark Adler
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-
-  Jean-loup Gailly        Mark Adler
-  jloup@gzip.org          madler@alumni.caltech.edu
-
-
-  The data format used by the zlib library is described by RFCs (Request for
-  Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950
-  (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format).
-*/
-
-#ifndef ZLIB_H
-#define ZLIB_H
-
-#include "zconf.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define ZLIB_VERSION "1.2.6"
-#define ZLIB_VERNUM 0x1260
-#define ZLIB_VER_MAJOR 1
-#define ZLIB_VER_MINOR 2
-#define ZLIB_VER_REVISION 6
-#define ZLIB_VER_SUBREVISION 0
-
-/*
-    The 'zlib' compression library provides in-memory compression and
-  decompression functions, including integrity checks of the uncompressed data.
-  This version of the library supports only one compression method (deflation)
-  but other algorithms will be added later and will have the same stream
-  interface.
-
-    Compression can be done in a single step if the buffers are large enough,
-  or can be done by repeated calls of the compression function.  In the latter
-  case, the application must provide more input and/or consume the output
-  (providing more output space) before each call.
-
-    The compressed data format used by default by the in-memory functions is
-  the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped
-  around a deflate stream, which is itself documented in RFC 1951.
-
-    The library also supports reading and writing files in gzip (.gz) format
-  with an interface similar to that of stdio using the functions that start
-  with "gz".  The gzip format is different from the zlib format.  gzip is a
-  gzip wrapper, documented in RFC 1952, wrapped around a deflate stream.
-
-    This library can optionally read and write gzip streams in memory as well.
-
-    The zlib format was designed to be compact and fast for use in memory
-  and on communications channels.  The gzip format was designed for single-
-  file compression on file systems, has a larger header than zlib to maintain
-  directory information, and uses a different, slower check method than zlib.
-
-    The library does not install any signal handler.  The decoder checks
-  the consistency of the compressed data, so the library should never crash
-  even in case of corrupted input.
-*/
-
-typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size));
-typedef void   (*free_func)  OF((voidpf opaque, voidpf address));
-
-struct internal_state;
-
-typedef struct z_stream_s {
-    z_const Bytef *next_in;     /* next input byte */
-    uInt     avail_in;  /* number of bytes available at next_in */
-    uLong    total_in;  /* total number of input bytes read so far */
-
-    Bytef    *next_out; /* next output byte should be put there */
-    uInt     avail_out; /* remaining free space at next_out */
-    uLong    total_out; /* total number of bytes output so far */
-
-    z_const char *msg;  /* last error message, NULL if no error */
-    struct internal_state FAR *state; /* not visible by applications */
-
-    alloc_func zalloc;  /* used to allocate the internal state */
-    free_func  zfree;   /* used to free the internal state */
-    voidpf     opaque;  /* private data object passed to zalloc and zfree */
-
-    int     data_type;  /* best guess about the data type: binary or text */
-    uLong   adler;      /* adler32 value of the uncompressed data */
-    uLong   reserved;   /* reserved for future use */
-} z_stream;
-
-typedef z_stream FAR *z_streamp;
-
-/*
-     gzip header information passed to and from zlib routines.  See RFC 1952
-  for more details on the meanings of these fields.
-*/
-typedef struct gz_header_s {
-    int     text;       /* true if compressed data believed to be text */
-    uLong   time;       /* modification time */
-    int     xflags;     /* extra flags (not used when writing a gzip file) */
-    int     os;         /* operating system */
-    Bytef   *extra;     /* pointer to extra field or Z_NULL if none */
-    uInt    extra_len;  /* extra field length (valid if extra != Z_NULL) */
-    uInt    extra_max;  /* space at extra (only when reading header) */
-    Bytef   *name;      /* pointer to zero-terminated file name or Z_NULL */
-    uInt    name_max;   /* space at name (only when reading header) */
-    Bytef   *comment;   /* pointer to zero-terminated comment or Z_NULL */
-    uInt    comm_max;   /* space at comment (only when reading header) */
-    int     hcrc;       /* true if there was or will be a header crc */
-    int     done;       /* true when done reading gzip header (not used
-                           when writing a gzip file) */
-} gz_header;
-
-typedef gz_header FAR *gz_headerp;
-
-/*
-     The application must update next_in and avail_in when avail_in has dropped
-   to zero.  It must update next_out and avail_out when avail_out has dropped
-   to zero.  The application must initialize zalloc, zfree and opaque before
-   calling the init function.  All other fields are set by the compression
-   library and must not be updated by the application.
-
-     The opaque value provided by the application will be passed as the first
-   parameter for calls of zalloc and zfree.  This can be useful for custom
-   memory management.  The compression library attaches no meaning to the
-   opaque value.
-
-     zalloc must return Z_NULL if there is not enough memory for the object.
-   If zlib is used in a multi-threaded application, zalloc and zfree must be
-   thread safe.
-
-     On 16-bit systems, the functions zalloc and zfree must be able to allocate
-   exactly 65536 bytes, but will not be required to allocate more than this if
-   the symbol MAXSEG_64K is defined (see zconf.h).  WARNING: On MSDOS, pointers
-   returned by zalloc for objects of exactly 65536 bytes *must* have their
-   offset normalized to zero.  The default allocation function provided by this
-   library ensures this (see zutil.c).  To reduce memory requirements and avoid
-   any allocation of 64K objects, at the expense of compression ratio, compile
-   the library with -DMAX_WBITS=14 (see zconf.h).
-
-     The fields total_in and total_out can be used for statistics or progress
-   reports.  After compression, total_in holds the total size of the
-   uncompressed data and may be saved for use in the decompressor (particularly
-   if the decompressor wants to decompress everything in a single step).
-*/
-
-                        /* constants */
-
-#define Z_NO_FLUSH      0
-#define Z_PARTIAL_FLUSH 1
-#define Z_SYNC_FLUSH    2
-#define Z_FULL_FLUSH    3
-#define Z_FINISH        4
-#define Z_BLOCK         5
-#define Z_TREES         6
-/* Allowed flush values; see deflate() and inflate() below for details */
-
-#define Z_OK            0
-#define Z_STREAM_END    1
-#define Z_NEED_DICT     2
-#define Z_ERRNO        (-1)
-#define Z_STREAM_ERROR (-2)
-#define Z_DATA_ERROR   (-3)
-#define Z_MEM_ERROR    (-4)
-#define Z_BUF_ERROR    (-5)
-#define Z_VERSION_ERROR (-6)
-/* Return codes for the compression/decompression functions. Negative values
- * are errors, positive values are used for special but normal events.
- */
-
-#define Z_NO_COMPRESSION         0
-#define Z_BEST_SPEED             1
-#define Z_BEST_COMPRESSION       9
-#define Z_DEFAULT_COMPRESSION  (-1)
-/* compression levels */
-
-#define Z_FILTERED            1
-#define Z_HUFFMAN_ONLY        2
-#define Z_RLE                 3
-#define Z_FIXED               4
-#define Z_DEFAULT_STRATEGY    0
-/* compression strategy; see deflateInit2() below for details */
-
-#define Z_BINARY   0
-#define Z_TEXT     1
-#define Z_ASCII    Z_TEXT   /* for compatibility with 1.2.2 and earlier */
-#define Z_UNKNOWN  2
-/* Possible values of the data_type field (though see inflate()) */
-
-#define Z_DEFLATED   8
-/* The deflate compression method (the only one supported in this version) */
-
-#define Z_NULL  0  /* for initializing zalloc, zfree, opaque */
-
-#define zlib_version zlibVersion()
-/* for compatibility with versions < 1.0.2 */
-
-
-                        /* basic functions */
-
-ZEXTERN const char * ZEXPORT zlibVersion OF((void));
-/* The application can compare zlibVersion and ZLIB_VERSION for consistency.
-   If the first character differs, the library code actually used is not
-   compatible with the zlib.h header file used by the application.  This check
-   is automatically made by deflateInit and inflateInit.
- */
-
-/*
-ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level));
-
-     Initializes the internal stream state for compression.  The fields
-   zalloc, zfree and opaque must be initialized before by the caller.  If
-   zalloc and zfree are set to Z_NULL, deflateInit updates them to use default
-   allocation functions.
-
-     The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9:
-   1 gives best speed, 9 gives best compression, 0 gives no compression at all
-   (the input data is simply copied a block at a time).  Z_DEFAULT_COMPRESSION
-   requests a default compromise between speed and compression (currently
-   equivalent to level 6).
-
-     deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_STREAM_ERROR if level is not a valid compression level, or
-   Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible
-   with the version assumed by the caller (ZLIB_VERSION).  msg is set to null
-   if there is no error message.  deflateInit does not perform any compression:
-   this will be done by deflate().
-*/
-
-
-ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush));
-/*
-    deflate compresses as much data as possible, and stops when the input
-  buffer becomes empty or the output buffer becomes full.  It may introduce
-  some output latency (reading input without producing any output) except when
-  forced to flush.
-
-    The detailed semantics are as follows.  deflate performs one or both of the
-  following actions:
-
-  - Compress more input starting at next_in and update next_in and avail_in
-    accordingly.  If not all input can be processed (because there is not
-    enough room in the output buffer), next_in and avail_in are updated and
-    processing will resume at this point for the next call of deflate().
-
-  - Provide more output starting at next_out and update next_out and avail_out
-    accordingly.  This action is forced if the parameter flush is non zero.
-    Forcing flush frequently degrades the compression ratio, so this parameter
-    should be set only when necessary (in interactive applications).  Some
-    output may be provided even if flush is not set.
-
-    Before the call of deflate(), the application should ensure that at least
-  one of the actions is possible, by providing more input and/or consuming more
-  output, and updating avail_in or avail_out accordingly; avail_out should
-  never be zero before the call.  The application can consume the compressed
-  output when it wants, for example when the output buffer is full (avail_out
-  == 0), or after each call of deflate().  If deflate returns Z_OK and with
-  zero avail_out, it must be called again after making room in the output
-  buffer because there might be more output pending.
-
-    Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to
-  decide how much data to accumulate before producing output, in order to
-  maximize compression.
-
-    If the parameter flush is set to Z_SYNC_FLUSH, all pending output is
-  flushed to the output buffer and the output is aligned on a byte boundary, so
-  that the decompressor can get all input data available so far.  (In
-  particular avail_in is zero after the call if enough output space has been
-  provided before the call.) Flushing may degrade compression for some
-  compression algorithms and so it should be used only when necessary.  This
-  completes the current deflate block and follows it with an empty stored block
-  that is three bits plus filler bits to the next byte, followed by four bytes
-  (00 00 ff ff).
-
-    If flush is set to Z_PARTIAL_FLUSH, all pending output is flushed to the
-  output buffer, but the output is not aligned to a byte boundary.  All of the
-  input data so far will be available to the decompressor, as for Z_SYNC_FLUSH.
-  This completes the current deflate block and follows it with an empty fixed
-  codes block that is 10 bits long.  This assures that enough bytes are output
-  in order for the decompressor to finish the block before the empty fixed code
-  block.
-
-    If flush is set to Z_BLOCK, a deflate block is completed and emitted, as
-  for Z_SYNC_FLUSH, but the output is not aligned on a byte boundary, and up to
-  seven bits of the current block are held to be written as the next byte after
-  the next deflate block is completed.  In this case, the decompressor may not
-  be provided enough bits at this point in order to complete decompression of
-  the data provided so far to the compressor.  It may need to wait for the next
-  block to be emitted.  This is for advanced applications that need to control
-  the emission of deflate blocks.
-
-    If flush is set to Z_FULL_FLUSH, all output is flushed as with
-  Z_SYNC_FLUSH, and the compression state is reset so that decompression can
-  restart from this point if previous compressed data has been damaged or if
-  random access is desired.  Using Z_FULL_FLUSH too often can seriously degrade
-  compression.
-
-    If deflate returns with avail_out == 0, this function must be called again
-  with the same value of the flush parameter and more output space (updated
-  avail_out), until the flush is complete (deflate returns with non-zero
-  avail_out).  In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that
-  avail_out is greater than six to avoid repeated flush markers due to
-  avail_out == 0 on return.
-
-    If the parameter flush is set to Z_FINISH, pending input is processed,
-  pending output is flushed and deflate returns with Z_STREAM_END if there was
-  enough output space; if deflate returns with Z_OK, this function must be
-  called again with Z_FINISH and more output space (updated avail_out) but no
-  more input data, until it returns with Z_STREAM_END or an error.  After
-  deflate has returned Z_STREAM_END, the only possible operations on the stream
-  are deflateReset or deflateEnd.
-
-    Z_FINISH can be used immediately after deflateInit if all the compression
-  is to be done in a single step.  In this case, avail_out must be at least the
-  value returned by deflateBound (see below).  Then deflate is guaranteed to
-  return Z_STREAM_END.  If not enough output space is provided, deflate will
-  not return Z_STREAM_END, and it must be called again as described above.
-
-    deflate() sets strm->adler to the adler32 checksum of all input read
-  so far (that is, total_in bytes).
-
-    deflate() may update strm->data_type if it can make a good guess about
-  the input data type (Z_BINARY or Z_TEXT).  In doubt, the data is considered
-  binary.  This field is only for information purposes and does not affect the
-  compression algorithm in any manner.
-
-    deflate() returns Z_OK if some progress has been made (more input
-  processed or more output produced), Z_STREAM_END if all input has been
-  consumed and all output has been produced (only when flush is set to
-  Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example
-  if next_in or next_out was Z_NULL), Z_BUF_ERROR if no progress is possible
-  (for example avail_in or avail_out was zero).  Note that Z_BUF_ERROR is not
-  fatal, and deflate() can be called again with more input and more output
-  space to continue compressing.
-*/
-
-
-ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm));
-/*
-     All dynamically allocated data structures for this stream are freed.
-   This function discards any unprocessed input and does not flush any pending
-   output.
-
-     deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the
-   stream state was inconsistent, Z_DATA_ERROR if the stream was freed
-   prematurely (some input or output was discarded).  In the error case, msg
-   may be set but then points to a static string (which must not be
-   deallocated).
-*/
-
-
-/*
-ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm));
-
-     Initializes the internal stream state for decompression.  The fields
-   next_in, avail_in, zalloc, zfree and opaque must be initialized before by
-   the caller.  If next_in is not Z_NULL and avail_in is large enough (the
-   exact value depends on the compression method), inflateInit determines the
-   compression method from the zlib header and allocates all data structures
-   accordingly; otherwise the allocation will be deferred to the first call of
-   inflate.  If zalloc and zfree are set to Z_NULL, inflateInit updates them to
-   use default allocation functions.
-
-     inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_VERSION_ERROR if the zlib library version is incompatible with the
-   version assumed by the caller, or Z_STREAM_ERROR if the parameters are
-   invalid, such as a null pointer to the structure.  msg is set to null if
-   there is no error message.  inflateInit does not perform any decompression
-   apart from possibly reading the zlib header if present: actual decompression
-   will be done by inflate().  (So next_in and avail_in may be modified, but
-   next_out and avail_out are unused and unchanged.) The current implementation
-   of inflateInit() does not process any header information -- that is deferred
-   until inflate() is called.
-*/
-
-
-ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush));
-/*
-    inflate decompresses as much data as possible, and stops when the input
-  buffer becomes empty or the output buffer becomes full.  It may introduce
-  some output latency (reading input without producing any output) except when
-  forced to flush.
-
-  The detailed semantics are as follows.  inflate performs one or both of the
-  following actions:
-
-  - Decompress more input starting at next_in and update next_in and avail_in
-    accordingly.  If not all input can be processed (because there is not
-    enough room in the output buffer), next_in is updated and processing will
-    resume at this point for the next call of inflate().
-
-  - Provide more output starting at next_out and update next_out and avail_out
-    accordingly.  inflate() provides as much output as possible, until there is
-    no more input data or no more space in the output buffer (see below about
-    the flush parameter).
-
-    Before the call of inflate(), the application should ensure that at least
-  one of the actions is possible, by providing more input and/or consuming more
-  output, and updating the next_* and avail_* values accordingly.  The
-  application can consume the uncompressed output when it wants, for example
-  when the output buffer is full (avail_out == 0), or after each call of
-  inflate().  If inflate returns Z_OK and with zero avail_out, it must be
-  called again after making room in the output buffer because there might be
-  more output pending.
-
-    The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH, Z_FINISH,
-  Z_BLOCK, or Z_TREES.  Z_SYNC_FLUSH requests that inflate() flush as much
-  output as possible to the output buffer.  Z_BLOCK requests that inflate()
-  stop if and when it gets to the next deflate block boundary.  When decoding
-  the zlib or gzip format, this will cause inflate() to return immediately
-  after the header and before the first block.  When doing a raw inflate,
-  inflate() will go ahead and process the first block, and will return when it
-  gets to the end of that block, or when it runs out of data.
-
-    The Z_BLOCK option assists in appending to or combining deflate streams.
-  Also to assist in this, on return inflate() will set strm->data_type to the
-  number of unused bits in the last byte taken from strm->next_in, plus 64 if
-  inflate() is currently decoding the last block in the deflate stream, plus
-  128 if inflate() returned immediately after decoding an end-of-block code or
-  decoding the complete header up to just before the first byte of the deflate
-  stream.  The end-of-block will not be indicated until all of the uncompressed
-  data from that block has been written to strm->next_out.  The number of
-  unused bits may in general be greater than seven, except when bit 7 of
-  data_type is set, in which case the number of unused bits will be less than
-  eight.  data_type is set as noted here every time inflate() returns for all
-  flush options, and so can be used to determine the amount of currently
-  consumed input in bits.
-
-    The Z_TREES option behaves as Z_BLOCK does, but it also returns when the
-  end of each deflate block header is reached, before any actual data in that
-  block is decoded.  This allows the caller to determine the length of the
-  deflate block header for later use in random access within a deflate block.
-  256 is added to the value of strm->data_type when inflate() returns
-  immediately after reaching the end of the deflate block header.
-
-    inflate() should normally be called until it returns Z_STREAM_END or an
-  error.  However if all decompression is to be performed in a single step (a
-  single call of inflate), the parameter flush should be set to Z_FINISH.  In
-  this case all pending input is processed and all pending output is flushed;
-  avail_out must be large enough to hold all the uncompressed data.  (The size
-  of the uncompressed data may have been saved by the compressor for this
-  purpose.) The next operation on this stream must be inflateEnd to deallocate
-  the decompression state.  The use of Z_FINISH is not required to perform an
-  inflation in one step.  However it may be used to inform inflate that a
-  faster approach can be used for the single inflate() call.  Z_FINISH also
-  informs inflate to not maintain a sliding window if the stream completes,
-  which reduces inflate's memory footprint.
-
-     In this implementation, inflate() always flushes as much output as
-  possible to the output buffer, and always uses the faster approach on the
-  first call.  So the effects of the flush parameter in this implementation are
-  on the return value of inflate() as noted below, when inflate() returns early
-  when Z_BLOCK or Z_TREES is used, and when inflate() avoids the allocation of
-  memory for a sliding window when Z_FINISH is used.
-
-     If a preset dictionary is needed after this call (see inflateSetDictionary
-  below), inflate sets strm->adler to the Adler-32 checksum of the dictionary
-  chosen by the compressor and returns Z_NEED_DICT; otherwise it sets
-  strm->adler to the Adler-32 checksum of all output produced so far (that is,
-  total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described
-  below.  At the end of the stream, inflate() checks that its computed adler32
-  checksum is equal to that saved by the compressor and returns Z_STREAM_END
-  only if the checksum is correct.
-
-    inflate() can decompress and check either zlib-wrapped or gzip-wrapped
-  deflate data.  The header type is detected automatically, if requested when
-  initializing with inflateInit2().  Any information contained in the gzip
-  header is not retained, so applications that need that information should
-  instead use raw inflate, see inflateInit2() below, or inflateBack() and
-  perform their own processing of the gzip header and trailer.  When processing
-  gzip-wrapped deflate data, strm->adler32 is set to the CRC-32 of the output
-  producted so far.  The CRC-32 is checked against the gzip trailer.
-
-    inflate() returns Z_OK if some progress has been made (more input processed
-  or more output produced), Z_STREAM_END if the end of the compressed data has
-  been reached and all uncompressed output has been produced, Z_NEED_DICT if a
-  preset dictionary is needed at this point, Z_DATA_ERROR if the input data was
-  corrupted (input stream not conforming to the zlib format or incorrect check
-  value), Z_STREAM_ERROR if the stream structure was inconsistent (for example
-  next_in or next_out was Z_NULL), Z_MEM_ERROR if there was not enough memory,
-  Z_BUF_ERROR if no progress is possible or if there was not enough room in the
-  output buffer when Z_FINISH is used.  Note that Z_BUF_ERROR is not fatal, and
-  inflate() can be called again with more input and more output space to
-  continue decompressing.  If Z_DATA_ERROR is returned, the application may
-  then call inflateSync() to look for a good compression block if a partial
-  recovery of the data is desired.
-*/
-
-
-ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm));
-/*
-     All dynamically allocated data structures for this stream are freed.
-   This function discards any unprocessed input and does not flush any pending
-   output.
-
-     inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state
-   was inconsistent.  In the error case, msg may be set but then points to a
-   static string (which must not be deallocated).
-*/
-
-
-                        /* Advanced functions */
-
-/*
-    The following functions are needed only in some special applications.
-*/
-
-/*
-ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm,
-                                     int  level,
-                                     int  method,
-                                     int  windowBits,
-                                     int  memLevel,
-                                     int  strategy));
-
-     This is another version of deflateInit with more compression options.  The
-   fields next_in, zalloc, zfree and opaque must be initialized before by the
-   caller.
-
-     The method parameter is the compression method.  It must be Z_DEFLATED in
-   this version of the library.
-
-     The windowBits parameter is the base two logarithm of the window size
-   (the size of the history buffer).  It should be in the range 8..15 for this
-   version of the library.  Larger values of this parameter result in better
-   compression at the expense of memory usage.  The default value is 15 if
-   deflateInit is used instead.
-
-     windowBits can also be -8..-15 for raw deflate.  In this case, -windowBits
-   determines the window size.  deflate() will then generate raw deflate data
-   with no zlib header or trailer, and will not compute an adler32 check value.
-
-     windowBits can also be greater than 15 for optional gzip encoding.  Add
-   16 to windowBits to write a simple gzip header and trailer around the
-   compressed data instead of a zlib wrapper.  The gzip header will have no
-   file name, no extra data, no comment, no modification time (set to zero), no
-   header crc, and the operating system will be set to 255 (unknown).  If a
-   gzip stream is being written, strm->adler is a crc32 instead of an adler32.
-
-     The memLevel parameter specifies how much memory should be allocated
-   for the internal compression state.  memLevel=1 uses minimum memory but is
-   slow and reduces compression ratio; memLevel=9 uses maximum memory for
-   optimal speed.  The default value is 8.  See zconf.h for total memory usage
-   as a function of windowBits and memLevel.
-
-     The strategy parameter is used to tune the compression algorithm.  Use the
-   value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a
-   filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no
-   string match), or Z_RLE to limit match distances to one (run-length
-   encoding).  Filtered data consists mostly of small values with a somewhat
-   random distribution.  In this case, the compression algorithm is tuned to
-   compress them better.  The effect of Z_FILTERED is to force more Huffman
-   coding and less string matching; it is somewhat intermediate between
-   Z_DEFAULT_STRATEGY and Z_HUFFMAN_ONLY.  Z_RLE is designed to be almost as
-   fast as Z_HUFFMAN_ONLY, but give better compression for PNG image data.  The
-   strategy parameter only affects the compression ratio but not the
-   correctness of the compressed output even if it is not set appropriately.
-   Z_FIXED prevents the use of dynamic Huffman codes, allowing for a simpler
-   decoder for special applications.
-
-     deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_STREAM_ERROR if any parameter is invalid (such as an invalid
-   method), or Z_VERSION_ERROR if the zlib library version (zlib_version) is
-   incompatible with the version assumed by the caller (ZLIB_VERSION).  msg is
-   set to null if there is no error message.  deflateInit2 does not perform any
-   compression: this will be done by deflate().
-*/
-
-ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm,
-                                             const Bytef *dictionary,
-                                             uInt  dictLength));
-/*
-     Initializes the compression dictionary from the given byte sequence
-   without producing any compressed output.  When using the zlib format, this
-   function must be called immediately after deflateInit, deflateInit2 or
-   deflateReset, and before any call of deflate.  When doing raw deflate, this
-   function must be called either before any call of deflate, or immediately
-   after the completion of a deflate block, i.e. after all input has been
-   consumed and all output has been delivered when using any of the flush
-   options Z_BLOCK, Z_PARTIAL_FLUSH, Z_SYNC_FLUSH, or Z_FULL_FLUSH.  The
-   compressor and decompressor must use exactly the same dictionary (see
-   inflateSetDictionary).
-
-     The dictionary should consist of strings (byte sequences) that are likely
-   to be encountered later in the data to be compressed, with the most commonly
-   used strings preferably put towards the end of the dictionary.  Using a
-   dictionary is most useful when the data to be compressed is short and can be
-   predicted with good accuracy; the data can then be compressed better than
-   with the default empty dictionary.
-
-     Depending on the size of the compression data structures selected by
-   deflateInit or deflateInit2, a part of the dictionary may in effect be
-   discarded, for example if the dictionary is larger than the window size
-   provided in deflateInit or deflateInit2.  Thus the strings most likely to be
-   useful should be put at the end of the dictionary, not at the front.  In
-   addition, the current implementation of deflate will use at most the window
-   size minus 262 bytes of the provided dictionary.
-
-     Upon return of this function, strm->adler is set to the adler32 value
-   of the dictionary; the decompressor may later use this value to determine
-   which dictionary has been used by the compressor.  (The adler32 value
-   applies to the whole dictionary even if only a subset of the dictionary is
-   actually used by the compressor.) If a raw deflate was requested, then the
-   adler32 value is not computed and strm->adler is not set.
-
-     deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a
-   parameter is invalid (e.g.  dictionary being Z_NULL) or the stream state is
-   inconsistent (for example if deflate has already been called for this stream
-   or if not at a block boundary for raw deflate).  deflateSetDictionary does
-   not perform any compression: this will be done by deflate().
-*/
-
-ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest,
-                                    z_streamp source));
-/*
-     Sets the destination stream as a complete copy of the source stream.
-
-     This function can be useful when several compression strategies will be
-   tried, for example when there are several ways of pre-processing the input
-   data with a filter.  The streams that will be discarded should then be freed
-   by calling deflateEnd.  Note that deflateCopy duplicates the internal
-   compression state which can be quite large, so this strategy is slow and can
-   consume lots of memory.
-
-     deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
-   enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
-   (such as zalloc being Z_NULL).  msg is left unchanged in both source and
-   destination.
-*/
-
-ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm));
-/*
-     This function is equivalent to deflateEnd followed by deflateInit,
-   but does not free and reallocate all the internal compression state.  The
-   stream will keep the same compression level and any other attributes that
-   may have been set by deflateInit2.
-
-     deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent (such as zalloc or state being Z_NULL).
-*/
-
-ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm,
-                                      int level,
-                                      int strategy));
-/*
-     Dynamically update the compression level and compression strategy.  The
-   interpretation of level and strategy is as in deflateInit2.  This can be
-   used to switch between compression and straight copy of the input data, or
-   to switch to a different kind of input data requiring a different strategy.
-   If the compression level is changed, the input available so far is
-   compressed with the old level (and may be flushed); the new level will take
-   effect only at the next call of deflate().
-
-     Before the call of deflateParams, the stream state must be set as for
-   a call of deflate(), since the currently available input may have to be
-   compressed and flushed.  In particular, strm->avail_out must be non-zero.
-
-     deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source
-   stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR if
-   strm->avail_out was zero.
-*/
-
-ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm,
-                                    int good_length,
-                                    int max_lazy,
-                                    int nice_length,
-                                    int max_chain));
-/*
-     Fine tune deflate's internal compression parameters.  This should only be
-   used by someone who understands the algorithm used by zlib's deflate for
-   searching for the best matching string, and even then only by the most
-   fanatic optimizer trying to squeeze out the last compressed bit for their
-   specific input data.  Read the deflate.c source code for the meaning of the
-   max_lazy, good_length, nice_length, and max_chain parameters.
-
-     deflateTune() can be called after deflateInit() or deflateInit2(), and
-   returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream.
- */
-
-ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm,
-                                       uLong sourceLen));
-/*
-     deflateBound() returns an upper bound on the compressed size after
-   deflation of sourceLen bytes.  It must be called after deflateInit() or
-   deflateInit2(), and after deflateSetHeader(), if used.  This would be used
-   to allocate an output buffer for deflation in a single pass, and so would be
-   called before deflate().  If that first deflate() call is provided the
-   sourceLen input bytes, an output buffer allocated to the size returned by
-   deflateBound(), and the flush value Z_FINISH, then deflate() is guaranteed
-   to return Z_STREAM_END.  Note that it is possible for the compressed size to
-   be larger than the value returned by deflateBound() if flush options other
-   than Z_FINISH or Z_NO_FLUSH are used.
-*/
-
-ZEXTERN int ZEXPORT deflatePending OF((z_streamp strm,
-                                       unsigned *pending,
-                                       int *bits));
-/*
-     deflatePending() returns the number of bytes and bits of output that have
-   been generated, but not yet provided in the available output.  The bytes not
-   provided would be due to the available output space having being consumed.
-   The number of bits of output not provided are between 0 and 7, where they
-   await more bits to join them in order to fill out a full byte.  If pending
-   or bits are Z_NULL, then those values are not set.
-
-     deflatePending returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent.
- */
-
-ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm,
-                                     int bits,
-                                     int value));
-/*
-     deflatePrime() inserts bits in the deflate output stream.  The intent
-   is that this function is used to start off the deflate output with the bits
-   leftover from a previous deflate stream when appending to it.  As such, this
-   function can only be used for raw deflate, and must be used before the first
-   deflate() call after a deflateInit2() or deflateReset().  bits must be less
-   than or equal to 16, and that many of the least significant bits of value
-   will be inserted in the output.
-
-     deflatePrime returns Z_OK if success, Z_BUF_ERROR if there was not enough
-   room in the internal buffer to insert the bits, or Z_STREAM_ERROR if the
-   source stream state was inconsistent.
-*/
-
-ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm,
-                                         gz_headerp head));
-/*
-     deflateSetHeader() provides gzip header information for when a gzip
-   stream is requested by deflateInit2().  deflateSetHeader() may be called
-   after deflateInit2() or deflateReset() and before the first call of
-   deflate().  The text, time, os, extra field, name, and comment information
-   in the provided gz_header structure are written to the gzip header (xflag is
-   ignored -- the extra flags are set according to the compression level).  The
-   caller must assure that, if not Z_NULL, name and comment are terminated with
-   a zero byte, and that if extra is not Z_NULL, that extra_len bytes are
-   available there.  If hcrc is true, a gzip header crc is included.  Note that
-   the current versions of the command-line version of gzip (up through version
-   1.3.x) do not support header crc's, and will report that it is a "multi-part
-   gzip file" and give up.
-
-     If deflateSetHeader is not used, the default gzip header has text false,
-   the time set to zero, and os set to 255, with no extra, name, or comment
-   fields.  The gzip header is returned to the default state by deflateReset().
-
-     deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent.
-*/
-
-/*
-ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm,
-                                     int  windowBits));
-
-     This is another version of inflateInit with an extra parameter.  The
-   fields next_in, avail_in, zalloc, zfree and opaque must be initialized
-   before by the caller.
-
-     The windowBits parameter is the base two logarithm of the maximum window
-   size (the size of the history buffer).  It should be in the range 8..15 for
-   this version of the library.  The default value is 15 if inflateInit is used
-   instead.  windowBits must be greater than or equal to the windowBits value
-   provided to deflateInit2() while compressing, or it must be equal to 15 if
-   deflateInit2() was not used.  If a compressed stream with a larger window
-   size is given as input, inflate() will return with the error code
-   Z_DATA_ERROR instead of trying to allocate a larger window.
-
-     windowBits can also be zero to request that inflate use the window size in
-   the zlib header of the compressed stream.
-
-     windowBits can also be -8..-15 for raw inflate.  In this case, -windowBits
-   determines the window size.  inflate() will then process raw deflate data,
-   not looking for a zlib or gzip header, not generating a check value, and not
-   looking for any check values for comparison at the end of the stream.  This
-   is for use with other formats that use the deflate compressed data format
-   such as zip.  Those formats provide their own check values.  If a custom
-   format is developed using the raw deflate format for compressed data, it is
-   recommended that a check value such as an adler32 or a crc32 be applied to
-   the uncompressed data as is done in the zlib, gzip, and zip formats.  For
-   most applications, the zlib format should be used as is.  Note that comments
-   above on the use in deflateInit2() applies to the magnitude of windowBits.
-
-     windowBits can also be greater than 15 for optional gzip decoding.  Add
-   32 to windowBits to enable zlib and gzip decoding with automatic header
-   detection, or add 16 to decode only the gzip format (the zlib format will
-   return a Z_DATA_ERROR).  If a gzip stream is being decoded, strm->adler is a
-   crc32 instead of an adler32.
-
-     inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_VERSION_ERROR if the zlib library version is incompatible with the
-   version assumed by the caller, or Z_STREAM_ERROR if the parameters are
-   invalid, such as a null pointer to the structure.  msg is set to null if
-   there is no error message.  inflateInit2 does not perform any decompression
-   apart from possibly reading the zlib header if present: actual decompression
-   will be done by inflate().  (So next_in and avail_in may be modified, but
-   next_out and avail_out are unused and unchanged.) The current implementation
-   of inflateInit2() does not process any header information -- that is
-   deferred until inflate() is called.
-*/
-
-ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm,
-                                             const Bytef *dictionary,
-                                             uInt  dictLength));
-/*
-     Initializes the decompression dictionary from the given uncompressed byte
-   sequence.  This function must be called immediately after a call of inflate,
-   if that call returned Z_NEED_DICT.  The dictionary chosen by the compressor
-   can be determined from the adler32 value returned by that call of inflate.
-   The compressor and decompressor must use exactly the same dictionary (see
-   deflateSetDictionary).  For raw inflate, this function can be called at any
-   time to set the dictionary.  If the provided dictionary is smaller than the
-   window and there is already data in the window, then the provided dictionary
-   will amend what's there.  The application must insure that the dictionary
-   that was used for compression is provided.
-
-     inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a
-   parameter is invalid (e.g.  dictionary being Z_NULL) or the stream state is
-   inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the
-   expected one (incorrect adler32 value).  inflateSetDictionary does not
-   perform any decompression: this will be done by subsequent calls of
-   inflate().
-*/
-
-ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm));
-/*
-     Skips invalid compressed data until a possible full flush point (see above
-   for the description of deflate with Z_FULL_FLUSH) can be found, or until all
-   available input is skipped.  No output is provided.
-
-     inflateSync searches for a 00 00 FF FF pattern in the compressed data.
-   All full flush points have this pattern, but not all occurences of this
-   pattern are full flush points.
-
-     inflateSync returns Z_OK if a possible full flush point has been found,
-   Z_BUF_ERROR if no more input was provided, Z_DATA_ERROR if no flush point
-   has been found, or Z_STREAM_ERROR if the stream structure was inconsistent.
-   In the success case, the application may save the current current value of
-   total_in which indicates where valid compressed data was found.  In the
-   error case, the application may repeatedly call inflateSync, providing more
-   input each time, until success or end of the input data.
-*/
-
-ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest,
-                                    z_streamp source));
-/*
-     Sets the destination stream as a complete copy of the source stream.
-
-     This function can be useful when randomly accessing a large stream.  The
-   first pass through the stream can periodically record the inflate state,
-   allowing restarting inflate at those points when randomly accessing the
-   stream.
-
-     inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
-   enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
-   (such as zalloc being Z_NULL).  msg is left unchanged in both source and
-   destination.
-*/
-
-ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm));
-/*
-     This function is equivalent to inflateEnd followed by inflateInit,
-   but does not free and reallocate all the internal decompression state.  The
-   stream will keep attributes that may have been set by inflateInit2.
-
-     inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent (such as zalloc or state being Z_NULL).
-*/
-
-ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm,
-                                      int windowBits));
-/*
-     This function is the same as inflateReset, but it also permits changing
-   the wrap and window size requests.  The windowBits parameter is interpreted
-   the same as it is for inflateInit2.
-
-     inflateReset2 returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent (such as zalloc or state being Z_NULL), or if
-   the windowBits parameter is invalid.
-*/
-
-ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm,
-                                     int bits,
-                                     int value));
-/*
-     This function inserts bits in the inflate input stream.  The intent is
-   that this function is used to start inflating at a bit position in the
-   middle of a byte.  The provided bits will be used before any bytes are used
-   from next_in.  This function should only be used with raw inflate, and
-   should be used before the first inflate() call after inflateInit2() or
-   inflateReset().  bits must be less than or equal to 16, and that many of the
-   least significant bits of value will be inserted in the input.
-
-     If bits is negative, then the input stream bit buffer is emptied.  Then
-   inflatePrime() can be called again to put bits in the buffer.  This is used
-   to clear out bits leftover after feeding inflate a block description prior
-   to feeding inflate codes.
-
-     inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent.
-*/
-
-ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm));
-/*
-     This function returns two values, one in the lower 16 bits of the return
-   value, and the other in the remaining upper bits, obtained by shifting the
-   return value down 16 bits.  If the upper value is -1 and the lower value is
-   zero, then inflate() is currently decoding information outside of a block.
-   If the upper value is -1 and the lower value is non-zero, then inflate is in
-   the middle of a stored block, with the lower value equaling the number of
-   bytes from the input remaining to copy.  If the upper value is not -1, then
-   it is the number of bits back from the current bit position in the input of
-   the code (literal or length/distance pair) currently being processed.  In
-   that case the lower value is the number of bytes already emitted for that
-   code.
-
-     A code is being processed if inflate is waiting for more input to complete
-   decoding of the code, or if it has completed decoding but is waiting for
-   more output space to write the literal or match data.
-
-     inflateMark() is used to mark locations in the input data for random
-   access, which may be at bit positions, and to note those cases where the
-   output of a code may span boundaries of random access blocks.  The current
-   location in the input stream can be determined from avail_in and data_type
-   as noted in the description for the Z_BLOCK flush parameter for inflate.
-
-     inflateMark returns the value noted above or -1 << 16 if the provided
-   source stream state was inconsistent.
-*/
-
-ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm,
-                                         gz_headerp head));
-/*
-     inflateGetHeader() requests that gzip header information be stored in the
-   provided gz_header structure.  inflateGetHeader() may be called after
-   inflateInit2() or inflateReset(), and before the first call of inflate().
-   As inflate() processes the gzip stream, head->done is zero until the header
-   is completed, at which time head->done is set to one.  If a zlib stream is
-   being decoded, then head->done is set to -1 to indicate that there will be
-   no gzip header information forthcoming.  Note that Z_BLOCK or Z_TREES can be
-   used to force inflate() to return immediately after header processing is
-   complete and before any actual data is decompressed.
-
-     The text, time, xflags, and os fields are filled in with the gzip header
-   contents.  hcrc is set to true if there is a header CRC.  (The header CRC
-   was valid if done is set to one.) If extra is not Z_NULL, then extra_max
-   contains the maximum number of bytes to write to extra.  Once done is true,
-   extra_len contains the actual extra field length, and extra contains the
-   extra field, or that field truncated if extra_max is less than extra_len.
-   If name is not Z_NULL, then up to name_max characters are written there,
-   terminated with a zero unless the length is greater than name_max.  If
-   comment is not Z_NULL, then up to comm_max characters are written there,
-   terminated with a zero unless the length is greater than comm_max.  When any
-   of extra, name, or comment are not Z_NULL and the respective field is not
-   present in the header, then that field is set to Z_NULL to signal its
-   absence.  This allows the use of deflateSetHeader() with the returned
-   structure to duplicate the header.  However if those fields are set to
-   allocated memory, then the application will need to save those pointers
-   elsewhere so that they can be eventually freed.
-
-     If inflateGetHeader is not used, then the header information is simply
-   discarded.  The header is always checked for validity, including the header
-   CRC if present.  inflateReset() will reset the process to discard the header
-   information.  The application would need to call inflateGetHeader() again to
-   retrieve the header from the next gzip stream.
-
-     inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent.
-*/
-
-/*
-ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits,
-                                        unsigned char FAR *window));
-
-     Initialize the internal stream state for decompression using inflateBack()
-   calls.  The fields zalloc, zfree and opaque in strm must be initialized
-   before the call.  If zalloc and zfree are Z_NULL, then the default library-
-   derived memory allocation routines are used.  windowBits is the base two
-   logarithm of the window size, in the range 8..15.  window is a caller
-   supplied buffer of that size.  Except for special applications where it is
-   assured that deflate was used with small window sizes, windowBits must be 15
-   and a 32K byte window must be supplied to be able to decompress general
-   deflate streams.
-
-     See inflateBack() for the usage of these routines.
-
-     inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of
-   the parameters are invalid, Z_MEM_ERROR if the internal state could not be
-   allocated, or Z_VERSION_ERROR if the version of the library does not match
-   the version of the header file.
-*/
-
-typedef unsigned (*in_func) OF((void FAR *, unsigned char FAR * FAR *));
-typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned));
-
-ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm,
-                                    in_func in, void FAR *in_desc,
-                                    out_func out, void FAR *out_desc));
-/*
-     inflateBack() does a raw inflate with a single call using a call-back
-   interface for input and output.  This is more efficient than inflate() for
-   file i/o applications in that it avoids copying between the output and the
-   sliding window by simply making the window itself the output buffer.  This
-   function trusts the application to not change the output buffer passed by
-   the output function, at least until inflateBack() returns.
-
-     inflateBackInit() must be called first to allocate the internal state
-   and to initialize the state with the user-provided window buffer.
-   inflateBack() may then be used multiple times to inflate a complete, raw
-   deflate stream with each call.  inflateBackEnd() is then called to free the
-   allocated state.
-
-     A raw deflate stream is one with no zlib or gzip header or trailer.
-   This routine would normally be used in a utility that reads zip or gzip
-   files and writes out uncompressed files.  The utility would decode the
-   header and process the trailer on its own, hence this routine expects only
-   the raw deflate stream to decompress.  This is different from the normal
-   behavior of inflate(), which expects either a zlib or gzip header and
-   trailer around the deflate stream.
-
-     inflateBack() uses two subroutines supplied by the caller that are then
-   called by inflateBack() for input and output.  inflateBack() calls those
-   routines until it reads a complete deflate stream and writes out all of the
-   uncompressed data, or until it encounters an error.  The function's
-   parameters and return types are defined above in the in_func and out_func
-   typedefs.  inflateBack() will call in(in_desc, &buf) which should return the
-   number of bytes of provided input, and a pointer to that input in buf.  If
-   there is no input available, in() must return zero--buf is ignored in that
-   case--and inflateBack() will return a buffer error.  inflateBack() will call
-   out(out_desc, buf, len) to write the uncompressed data buf[0..len-1].  out()
-   should return zero on success, or non-zero on failure.  If out() returns
-   non-zero, inflateBack() will return with an error.  Neither in() nor out()
-   are permitted to change the contents of the window provided to
-   inflateBackInit(), which is also the buffer that out() uses to write from.
-   The length written by out() will be at most the window size.  Any non-zero
-   amount of input may be provided by in().
-
-     For convenience, inflateBack() can be provided input on the first call by
-   setting strm->next_in and strm->avail_in.  If that input is exhausted, then
-   in() will be called.  Therefore strm->next_in must be initialized before
-   calling inflateBack().  If strm->next_in is Z_NULL, then in() will be called
-   immediately for input.  If strm->next_in is not Z_NULL, then strm->avail_in
-   must also be initialized, and then if strm->avail_in is not zero, input will
-   initially be taken from strm->next_in[0 ..  strm->avail_in - 1].
-
-     The in_desc and out_desc parameters of inflateBack() is passed as the
-   first parameter of in() and out() respectively when they are called.  These
-   descriptors can be optionally used to pass any information that the caller-
-   supplied in() and out() functions need to do their job.
-
-     On return, inflateBack() will set strm->next_in and strm->avail_in to
-   pass back any unused input that was provided by the last in() call.  The
-   return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR
-   if in() or out() returned an error, Z_DATA_ERROR if there was a format error
-   in the deflate stream (in which case strm->msg is set to indicate the nature
-   of the error), or Z_STREAM_ERROR if the stream was not properly initialized.
-   In the case of Z_BUF_ERROR, an input or output error can be distinguished
-   using strm->next_in which will be Z_NULL only if in() returned an error.  If
-   strm->next_in is not Z_NULL, then the Z_BUF_ERROR was due to out() returning
-   non-zero.  (in() will always be called before out(), so strm->next_in is
-   assured to be defined if out() returns non-zero.) Note that inflateBack()
-   cannot return Z_OK.
-*/
-
-ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm));
-/*
-     All memory allocated by inflateBackInit() is freed.
-
-     inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream
-   state was inconsistent.
-*/
-
-ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void));
-/* Return flags indicating compile-time options.
-
-    Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other:
-     1.0: size of uInt
-     3.2: size of uLong
-     5.4: size of voidpf (pointer)
-     7.6: size of z_off_t
-
-    Compiler, assembler, and debug options:
-     8: DEBUG
-     9: ASMV or ASMINF -- use ASM code
-     10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention
-     11: 0 (reserved)
-
-    One-time table building (smaller code, but not thread-safe if true):
-     12: BUILDFIXED -- build static block decoding tables when needed
-     13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed
-     14,15: 0 (reserved)
-
-    Library content (indicates missing functionality):
-     16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking
-                          deflate code when not needed)
-     17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect
-                    and decode gzip streams (to avoid linking crc code)
-     18-19: 0 (reserved)
-
-    Operation variations (changes in library functionality):
-     20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate
-     21: FASTEST -- deflate algorithm with only one, lowest compression level
-     22,23: 0 (reserved)
-
-    The sprintf variant used by gzprintf (zero is best):
-     24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format
-     25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure!
-     26: 0 = returns value, 1 = void -- 1 means inferred string length returned
-
-    Remainder:
-     27-31: 0 (reserved)
- */
-
-#ifndef Z_SOLO
-
-                        /* utility functions */
-
-/*
-     The following utility functions are implemented on top of the basic
-   stream-oriented functions.  To simplify the interface, some default options
-   are assumed (compression level and memory usage, standard memory allocation
-   functions).  The source code of these utility functions can be modified if
-   you need special options.
-*/
-
-ZEXTERN int ZEXPORT compress OF((Bytef *dest,   uLongf *destLen,
-                                 const Bytef *source, uLong sourceLen));
-/*
-     Compresses the source buffer into the destination buffer.  sourceLen is
-   the byte length of the source buffer.  Upon entry, destLen is the total size
-   of the destination buffer, which must be at least the value returned by
-   compressBound(sourceLen).  Upon exit, destLen is the actual size of the
-   compressed buffer.
-
-     compress returns Z_OK if success, Z_MEM_ERROR if there was not
-   enough memory, Z_BUF_ERROR if there was not enough room in the output
-   buffer.
-*/
-
-ZEXTERN int ZEXPORT compress2 OF((Bytef *dest,   uLongf *destLen,
-                                  const Bytef *source, uLong sourceLen,
-                                  int level));
-/*
-     Compresses the source buffer into the destination buffer.  The level
-   parameter has the same meaning as in deflateInit.  sourceLen is the byte
-   length of the source buffer.  Upon entry, destLen is the total size of the
-   destination buffer, which must be at least the value returned by
-   compressBound(sourceLen).  Upon exit, destLen is the actual size of the
-   compressed buffer.
-
-     compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_BUF_ERROR if there was not enough room in the output buffer,
-   Z_STREAM_ERROR if the level parameter is invalid.
-*/
-
-ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen));
-/*
-     compressBound() returns an upper bound on the compressed size after
-   compress() or compress2() on sourceLen bytes.  It would be used before a
-   compress() or compress2() call to allocate the destination buffer.
-*/
-
-ZEXTERN int ZEXPORT uncompress OF((Bytef *dest,   uLongf *destLen,
-                                   const Bytef *source, uLong sourceLen));
-/*
-     Decompresses the source buffer into the destination buffer.  sourceLen is
-   the byte length of the source buffer.  Upon entry, destLen is the total size
-   of the destination buffer, which must be large enough to hold the entire
-   uncompressed data.  (The size of the uncompressed data must have been saved
-   previously by the compressor and transmitted to the decompressor by some
-   mechanism outside the scope of this compression library.) Upon exit, destLen
-   is the actual size of the uncompressed buffer.
-
-     uncompress returns Z_OK if success, Z_MEM_ERROR if there was not
-   enough memory, Z_BUF_ERROR if there was not enough room in the output
-   buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete.  In
-   the case where there is not enough room, uncompress() will fill the output
-   buffer with the uncompressed data up to that point.
-*/
-
-                        /* gzip file access functions */
-
-/*
-     This library supports reading and writing files in gzip (.gz) format with
-   an interface similar to that of stdio, using the functions that start with
-   "gz".  The gzip format is different from the zlib format.  gzip is a gzip
-   wrapper, documented in RFC 1952, wrapped around a deflate stream.
-*/
-
-typedef struct gzFile_s *gzFile;    /* semi-opaque gzip file descriptor */
-
-/*
-ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode));
-
-     Opens a gzip (.gz) file for reading or writing.  The mode parameter is as
-   in fopen ("rb" or "wb") but can also include a compression level ("wb9") or
-   a strategy: 'f' for filtered data as in "wb6f", 'h' for Huffman-only
-   compression as in "wb1h", 'R' for run-length encoding as in "wb1R", or 'F'
-   for fixed code compression as in "wb9F".  (See the description of
-   deflateInit2 for more information about the strategy parameter.)  'T' will
-   request transparent writing or appending with no compression and not using
-   the gzip format.
-
-     "a" can be used instead of "w" to request that the gzip stream that will
-   be written be appended to the file.  "+" will result in an error, since
-   reading and writing to the same gzip file is not supported.
-
-     These functions, as well as gzip, will read and decode a sequence of gzip
-   streams in a file.  The append function of gzopen() can be used to create
-   such a file.  (Also see gzflush() for another way to do this.)  When
-   appending, gzopen does not test whether the file begins with a gzip stream,
-   nor does it look for the end of the gzip streams to begin appending.  gzopen
-   will simply append a gzip stream to the existing file.
-
-     gzopen can be used to read a file which is not in gzip format; in this
-   case gzread will directly read from the file without decompression.  When
-   reading, this will be detected automatically by looking for the magic two-
-   byte gzip header.
-
-     gzopen returns NULL if the file could not be opened, if there was
-   insufficient memory to allocate the gzFile state, or if an invalid mode was
-   specified (an 'r', 'w', or 'a' was not provided, or '+' was provided).
-   errno can be checked to determine if the reason gzopen failed was that the
-   file could not be opened.
-*/
-
-ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode));
-/*
-     gzdopen associates a gzFile with the file descriptor fd.  File descriptors
-   are obtained from calls like open, dup, creat, pipe or fileno (if the file
-   has been previously opened with fopen).  The mode parameter is as in gzopen.
-
-     The next call of gzclose on the returned gzFile will also close the file
-   descriptor fd, just like fclose(fdopen(fd, mode)) closes the file descriptor
-   fd.  If you want to keep fd open, use fd = dup(fd_keep); gz = gzdopen(fd,
-   mode);.  The duplicated descriptor should be saved to avoid a leak, since
-   gzdopen does not close fd if it fails.  If you are using fileno() to get the
-   file descriptor from a FILE *, then you will have to use dup() to avoid
-   double-close()ing the file descriptor.  Both gzclose() and fclose() will
-   close the associated file descriptor, so they need to have different file
-   descriptors.
-
-     gzdopen returns NULL if there was insufficient memory to allocate the
-   gzFile state, if an invalid mode was specified (an 'r', 'w', or 'a' was not
-   provided, or '+' was provided), or if fd is -1.  The file descriptor is not
-   used until the next gz* read, write, seek, or close operation, so gzdopen
-   will not detect if fd is invalid (unless fd is -1).
-*/
-
-ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size));
-/*
-     Set the internal buffer size used by this library's functions.  The
-   default buffer size is 8192 bytes.  This function must be called after
-   gzopen() or gzdopen(), and before any other calls that read or write the
-   file.  The buffer memory allocation is always deferred to the first read or
-   write.  Two buffers are allocated, either both of the specified size when
-   writing, or one of the specified size and the other twice that size when
-   reading.  A larger buffer size of, for example, 64K or 128K bytes will
-   noticeably increase the speed of decompression (reading).
-
-     The new buffer size also affects the maximum length for gzprintf().
-
-     gzbuffer() returns 0 on success, or -1 on failure, such as being called
-   too late.
-*/
-
-ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy));
-/*
-     Dynamically update the compression level or strategy.  See the description
-   of deflateInit2 for the meaning of these parameters.
-
-     gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not
-   opened for writing.
-*/
-
-ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len));
-/*
-     Reads the given number of uncompressed bytes from the compressed file.  If
-   the input file is not in gzip format, gzread copies the given number of
-   bytes into the buffer directly from the file.
-
-     After reaching the end of a gzip stream in the input, gzread will continue
-   to read, looking for another gzip stream.  Any number of gzip streams may be
-   concatenated in the input file, and will all be decompressed by gzread().
-   If something other than a gzip stream is encountered after a gzip stream,
-   that remaining trailing garbage is ignored (and no error is returned).
-
-     gzread can be used to read a gzip file that is being concurrently written.
-   Upon reaching the end of the input, gzread will return with the available
-   data.  If the error code returned by gzerror is Z_OK or Z_BUF_ERROR, then
-   gzclearerr can be used to clear the end of file indicator in order to permit
-   gzread to be tried again.  Z_OK indicates that a gzip stream was completed
-   on the last gzread.  Z_BUF_ERROR indicates that the input file ended in the
-   middle of a gzip stream.  Note that gzread does not return -1 in the event
-   of an incomplete gzip stream.  This error is deferred until gzclose(), which
-   will return Z_BUF_ERROR if the last gzread ended in the middle of a gzip
-   stream.  Alternatively, gzerror can be used before gzclose to detect this
-   case.
-
-     gzread returns the number of uncompressed bytes actually read, less than
-   len for end of file, or -1 for error.
-*/
-
-ZEXTERN int ZEXPORT gzwrite OF((gzFile file,
-                                voidpc buf, unsigned len));
-/*
-     Writes the given number of uncompressed bytes into the compressed file.
-   gzwrite returns the number of uncompressed bytes written or 0 in case of
-   error.
-*/
-
-ZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...));
-/*
-     Converts, formats, and writes the arguments to the compressed file under
-   control of the format string, as in fprintf.  gzprintf returns the number of
-   uncompressed bytes actually written, or 0 in case of error.  The number of
-   uncompressed bytes written is limited to 8191, or one less than the buffer
-   size given to gzbuffer().  The caller should assure that this limit is not
-   exceeded.  If it is exceeded, then gzprintf() will return an error (0) with
-   nothing written.  In this case, there may also be a buffer overflow with
-   unpredictable consequences, which is possible only if zlib was compiled with
-   the insecure functions sprintf() or vsprintf() because the secure snprintf()
-   or vsnprintf() functions were not available.  This can be determined using
-   zlibCompileFlags().
-*/
-
-ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s));
-/*
-     Writes the given null-terminated string to the compressed file, excluding
-   the terminating null character.
-
-     gzputs returns the number of characters written, or -1 in case of error.
-*/
-
-ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len));
-/*
-     Reads bytes from the compressed file until len-1 characters are read, or a
-   newline character is read and transferred to buf, or an end-of-file
-   condition is encountered.  If any characters are read or if len == 1, the
-   string is terminated with a null character.  If no characters are read due
-   to an end-of-file or len < 1, then the buffer is left untouched.
-
-     gzgets returns buf which is a null-terminated string, or it returns NULL
-   for end-of-file or in case of error.  If there was an error, the contents at
-   buf are indeterminate.
-*/
-
-ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c));
-/*
-     Writes c, converted to an unsigned char, into the compressed file.  gzputc
-   returns the value that was written, or -1 in case of error.
-*/
-
-ZEXTERN int ZEXPORT gzgetc OF((gzFile file));
-/*
-     Reads one byte from the compressed file.  gzgetc returns this byte or -1
-   in case of end of file or error.  This is implemented as a macro for speed.
-   As such, it does not do all of the checking the other functions do.  I.e.
-   it does not check to see if file is NULL, nor whether the structure file
-   points to has been clobbered or not.
-*/
-
-ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file));
-/*
-     Push one character back onto the stream to be read as the first character
-   on the next read.  At least one character of push-back is allowed.
-   gzungetc() returns the character pushed, or -1 on failure.  gzungetc() will
-   fail if c is -1, and may fail if a character has been pushed but not read
-   yet.  If gzungetc is used immediately after gzopen or gzdopen, at least the
-   output buffer size of pushed characters is allowed.  (See gzbuffer above.)
-   The pushed character will be discarded if the stream is repositioned with
-   gzseek() or gzrewind().
-*/
-
-ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush));
-/*
-     Flushes all pending output into the compressed file.  The parameter flush
-   is as in the deflate() function.  The return value is the zlib error number
-   (see function gzerror below).  gzflush is only permitted when writing.
-
-     If the flush parameter is Z_FINISH, the remaining data is written and the
-   gzip stream is completed in the output.  If gzwrite() is called again, a new
-   gzip stream will be started in the output.  gzread() is able to read such
-   concatented gzip streams.
-
-     gzflush should be called only when strictly necessary because it will
-   degrade compression if called too often.
-*/
-
-/*
-ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file,
-                                   z_off_t offset, int whence));
-
-     Sets the starting position for the next gzread or gzwrite on the given
-   compressed file.  The offset represents a number of bytes in the
-   uncompressed data stream.  The whence parameter is defined as in lseek(2);
-   the value SEEK_END is not supported.
-
-     If the file is opened for reading, this function is emulated but can be
-   extremely slow.  If the file is opened for writing, only forward seeks are
-   supported; gzseek then compresses a sequence of zeroes up to the new
-   starting position.
-
-     gzseek returns the resulting offset location as measured in bytes from
-   the beginning of the uncompressed stream, or -1 in case of error, in
-   particular if the file is opened for writing and the new starting position
-   would be before the current position.
-*/
-
-ZEXTERN int ZEXPORT    gzrewind OF((gzFile file));
-/*
-     Rewinds the given file. This function is supported only for reading.
-
-     gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET)
-*/
-
-/*
-ZEXTERN z_off_t ZEXPORT    gztell OF((gzFile file));
-
-     Returns the starting position for the next gzread or gzwrite on the given
-   compressed file.  This position represents a number of bytes in the
-   uncompressed data stream, and is zero when starting, even if appending or
-   reading a gzip stream from the middle of a file using gzdopen().
-
-     gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR)
-*/
-
-/*
-ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file));
-
-     Returns the current offset in the file being read or written.  This offset
-   includes the count of bytes that precede the gzip stream, for example when
-   appending or when using gzdopen() for reading.  When reading, the offset
-   does not include as yet unused buffered input.  This information can be used
-   for a progress indicator.  On error, gzoffset() returns -1.
-*/
-
-ZEXTERN int ZEXPORT gzeof OF((gzFile file));
-/*
-     Returns true (1) if the end-of-file indicator has been set while reading,
-   false (0) otherwise.  Note that the end-of-file indicator is set only if the
-   read tried to go past the end of the input, but came up short.  Therefore,
-   just like feof(), gzeof() may return false even if there is no more data to
-   read, in the event that the last read request was for the exact number of
-   bytes remaining in the input file.  This will happen if the input file size
-   is an exact multiple of the buffer size.
-
-     If gzeof() returns true, then the read functions will return no more data,
-   unless the end-of-file indicator is reset by gzclearerr() and the input file
-   has grown since the previous end of file was detected.
-*/
-
-ZEXTERN int ZEXPORT gzdirect OF((gzFile file));
-/*
-     Returns true (1) if file is being copied directly while reading, or false
-   (0) if file is a gzip stream being decompressed.
-
-     If the input file is empty, gzdirect() will return true, since the input
-   does not contain a gzip stream.
-
-     If gzdirect() is used immediately after gzopen() or gzdopen() it will
-   cause buffers to be allocated to allow reading the file to determine if it
-   is a gzip file.  Therefore if gzbuffer() is used, it should be called before
-   gzdirect().
-
-     When writing, gzdirect() returns true (1) if transparent writing was
-   requested ("wT" for the gzopen() mode), or false (0) otherwise.  (Note:
-   gzdirect() is not needed when writing.  Transparent writing must be
-   explicitly requested, so the application already knows the answer.  When
-   linking statically, using gzdirect() will include all of the zlib code for
-   gzip file reading and decompression, which may not be desired.)
-*/
-
-ZEXTERN int ZEXPORT    gzclose OF((gzFile file));
-/*
-     Flushes all pending output if necessary, closes the compressed file and
-   deallocates the (de)compression state.  Note that once file is closed, you
-   cannot call gzerror with file, since its structures have been deallocated.
-   gzclose must not be called more than once on the same file, just as free
-   must not be called more than once on the same allocation.
-
-     gzclose will return Z_STREAM_ERROR if file is not valid, Z_ERRNO on a
-   file operation error, Z_MEM_ERROR if out of memory, Z_BUF_ERROR if the
-   last read ended in the middle of a gzip stream, or Z_OK on success.
-*/
-
-ZEXTERN int ZEXPORT gzclose_r OF((gzFile file));
-ZEXTERN int ZEXPORT gzclose_w OF((gzFile file));
-/*
-     Same as gzclose(), but gzclose_r() is only for use when reading, and
-   gzclose_w() is only for use when writing or appending.  The advantage to
-   using these instead of gzclose() is that they avoid linking in zlib
-   compression or decompression code that is not used when only reading or only
-   writing respectively.  If gzclose() is used, then both compression and
-   decompression code will be included the application when linking to a static
-   zlib library.
-*/
-
-ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum));
-/*
-     Returns the error message for the last error which occurred on the given
-   compressed file.  errnum is set to zlib error number.  If an error occurred
-   in the file system and not in the compression library, errnum is set to
-   Z_ERRNO and the application may consult errno to get the exact error code.
-
-     The application must not modify the returned string.  Future calls to
-   this function may invalidate the previously returned string.  If file is
-   closed, then the string previously returned by gzerror will no longer be
-   available.
-
-     gzerror() should be used to distinguish errors from end-of-file for those
-   functions above that do not distinguish those cases in their return values.
-*/
-
-ZEXTERN void ZEXPORT gzclearerr OF((gzFile file));
-/*
-     Clears the error and end-of-file flags for file.  This is analogous to the
-   clearerr() function in stdio.  This is useful for continuing to read a gzip
-   file that is being written concurrently.
-*/
-
-#endif /* !Z_SOLO */
-
-                        /* checksum functions */
-
-/*
-     These functions are not related to compression but are exported
-   anyway because they might be useful in applications using the compression
-   library.
-*/
-
-ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len));
-/*
-     Update a running Adler-32 checksum with the bytes buf[0..len-1] and
-   return the updated checksum.  If buf is Z_NULL, this function returns the
-   required initial value for the checksum.
-
-     An Adler-32 checksum is almost as reliable as a CRC32 but can be computed
-   much faster.
-
-   Usage example:
-
-     uLong adler = adler32(0L, Z_NULL, 0);
-
-     while (read_buffer(buffer, length) != EOF) {
-       adler = adler32(adler, buffer, length);
-     }
-     if (adler != original_adler) error();
-*/
-
-/*
-ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2,
-                                          z_off_t len2));
-
-     Combine two Adler-32 checksums into one.  For two sequences of bytes, seq1
-   and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for
-   each, adler1 and adler2.  adler32_combine() returns the Adler-32 checksum of
-   seq1 and seq2 concatenated, requiring only adler1, adler2, and len2.  Note
-   that the z_off_t type (like off_t) is a signed integer.  If len2 is
-   negative, the result has no meaning or utility.
-*/
-
-ZEXTERN uLong ZEXPORT crc32   OF((uLong crc, const Bytef *buf, uInt len));
-/*
-     Update a running CRC-32 with the bytes buf[0..len-1] and return the
-   updated CRC-32.  If buf is Z_NULL, this function returns the required
-   initial value for the for the crc.  Pre- and post-conditioning (one's
-   complement) is performed within this function so it shouldn't be done by the
-   application.
-
-   Usage example:
-
-     uLong crc = crc32(0L, Z_NULL, 0);
-
-     while (read_buffer(buffer, length) != EOF) {
-       crc = crc32(crc, buffer, length);
-     }
-     if (crc != original_crc) error();
-*/
-
-/*
-ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2));
-
-     Combine two CRC-32 check values into one.  For two sequences of bytes,
-   seq1 and seq2 with lengths len1 and len2, CRC-32 check values were
-   calculated for each, crc1 and crc2.  crc32_combine() returns the CRC-32
-   check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and
-   len2.
-*/
-
-
-                        /* various hacks, don't look :) */
-
-/* deflateInit and inflateInit are macros to allow checking the zlib version
- * and the compiler's view of z_stream:
- */
-ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level,
-                                     const char *version, int stream_size));
-ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm,
-                                     const char *version, int stream_size));
-ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int  level, int  method,
-                                      int windowBits, int memLevel,
-                                      int strategy, const char *version,
-                                      int stream_size));
-ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int  windowBits,
-                                      const char *version, int stream_size));
-ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits,
-                                         unsigned char FAR *window,
-                                         const char *version,
-                                         int stream_size));
-#define deflateInit(strm, level) \
-        deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream))
-#define inflateInit(strm) \
-        inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream))
-#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \
-        deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\
-                      (strategy), ZLIB_VERSION, (int)sizeof(z_stream))
-#define inflateInit2(strm, windowBits) \
-        inflateInit2_((strm), (windowBits), ZLIB_VERSION, \
-                      (int)sizeof(z_stream))
-#define inflateBackInit(strm, windowBits, window) \
-        inflateBackInit_((strm), (windowBits), (window), \
-                      ZLIB_VERSION, (int)sizeof(z_stream))
-
-#ifndef Z_SOLO
-
-/* gzgetc() macro and its supporting function and exposed data structure.  Note
- * that the real internal state is much larger than the exposed structure.
- * This abbreviated structure exposes just enough for the gzgetc() macro.  The
- * user should not mess with these exposed elements, since their names or
- * behavior could change in the future, perhaps even capriciously.  They can
- * only be used by the gzgetc() macro.  You have been warned.
- */
-struct gzFile_s {
-    unsigned have;
-    unsigned char *next;
-    z_off64_t pos;
-};
-ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file));
-#define gzgetc(g) \
-    ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : gzgetc_(g))
-
-/* provide 64-bit offset functions if _LARGEFILE64_SOURCE defined, and/or
- * change the regular functions to 64 bits if _FILE_OFFSET_BITS is 64 (if
- * both are true, the application gets the *64 functions, and the regular
- * functions are changed to 64 bits) -- in case these are set on systems
- * without large file support, _LFS64_LARGEFILE must also be true
- */
-#if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0
-   ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *));
-   ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int));
-   ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile));
-   ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile));
-   ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off64_t));
-   ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off64_t));
-#endif
-
-#if !defined(ZLIB_INTERNAL) && _FILE_OFFSET_BITS-0 == 64 && _LFS64_LARGEFILE-0
-#  ifdef Z_PREFIX_SET
-#    define z_gzopen z_gzopen64
-#    define z_gzseek z_gzseek64
-#    define z_gztell z_gztell64
-#    define z_gzoffset z_gzoffset64
-#    define z_adler32_combine z_adler32_combine64
-#    define z_crc32_combine z_crc32_combine64
-#  else
-#    define gzopen gzopen64
-#    define gzseek gzseek64
-#    define gztell gztell64
-#    define gzoffset gzoffset64
-#    define adler32_combine adler32_combine64
-#    define crc32_combine crc32_combine64
-#  endif
-#  ifndef _LARGEFILE64_SOURCE
-     ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *));
-     ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int));
-     ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile));
-     ZEXTERN z_off_t ZEXPORT gzoffset64 OF((gzFile));
-     ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t));
-     ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t));
-#  endif
-#else
-   ZEXTERN gzFile ZEXPORT gzopen OF((const char *, const char *));
-   ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile, z_off_t, int));
-   ZEXTERN z_off_t ZEXPORT gztell OF((gzFile));
-   ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile));
-   ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t));
-   ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t));
-#endif
-
-#else /* Z_SOLO */
-
-   ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t));
-   ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t));
-
-#endif /* !Z_SOLO */
-
-/* hack for buggy compilers */
-#if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL)
-    struct internal_state {int dummy;};
-#endif
-
-/* undocumented functions */
-ZEXTERN const char   * ZEXPORT zError           OF((int));
-ZEXTERN int            ZEXPORT inflateSyncPoint OF((z_streamp));
-ZEXTERN const uLongf * ZEXPORT get_crc_table    OF((void));
-ZEXTERN int            ZEXPORT inflateUndermine OF((z_streamp, int));
-ZEXTERN int            ZEXPORT inflateResetKeep OF((z_streamp));
-ZEXTERN int            ZEXPORT deflateResetKeep OF((z_streamp));
-#ifndef Z_SOLO
-  ZEXTERN unsigned long  ZEXPORT gzflags          OF((void));
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ZLIB_H */
diff --git a/misc/builddeps/win32/zlib/lib/libz.a b/misc/builddeps/win32/zlib/lib/libz.a
deleted file mode 100644 (file)
index 9c193d2..0000000
Binary files a/misc/builddeps/win32/zlib/lib/libz.a and /dev/null differ
diff --git a/misc/builddeps/win32/zlib/lib/libz.dll.a b/misc/builddeps/win32/zlib/lib/libz.dll.a
deleted file mode 120000 (symlink)
index d68f850..0000000
+++ /dev/null
@@ -1 +0,0 @@
-libzdll.a
\ No newline at end of file
diff --git a/misc/builddeps/win32/zlib/lib/libzdll.a b/misc/builddeps/win32/zlib/lib/libzdll.a
deleted file mode 100644 (file)
index 2991368..0000000
Binary files a/misc/builddeps/win32/zlib/lib/libzdll.a and /dev/null differ
diff --git a/misc/builddeps/win32/zlib/lib/pkgconfig/zlib.pc b/misc/builddeps/win32/zlib/lib/pkgconfig/zlib.pc
deleted file mode 100644 (file)
index 17626e1..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-prefix=/usr/local
-exec_prefix=/usr/local
-libdir=/tmp/zlib-1.2.6.out/usr/local/lib
-sharedlibdir=/tmp/zlib-1.2.6.out/usr/local/lib
-includedir=/tmp/zlib-1.2.6.out/usr/local/include
-
-Name: zlib
-Description: zlib compression library
-Version: 1.2.6
-
-Requires:
-Libs: -L${libdir} -L${sharedlibdir} -lz
-Cflags: -I${includedir}
diff --git a/misc/builddeps/win64/dx/include/_mingw_dxhelper.h b/misc/builddeps/win64/dx/include/_mingw_dxhelper.h
deleted file mode 100644 (file)
index e13408c..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the w64 mingw-runtime package.
- * No warranty is given; refer to the file DISCLAIMER within this package.
- */
-
-#if defined(_MSC_VER) && !defined(_MSC_EXTENSIONS)
-#define NONAMELESSUNION                1
-#endif
-#if defined(NONAMELESSSTRUCT) && \
-   !defined(NONAMELESSUNION)
-#define NONAMELESSUNION                1
-#endif
-#if defined(NONAMELESSUNION)  && \
-   !defined(NONAMELESSSTRUCT)
-#define NONAMELESSSTRUCT       1
-#endif
-
-#ifndef __ANONYMOUS_DEFINED
-#define __ANONYMOUS_DEFINED
-#if defined(__GNUC__) || defined(__GNUG__)
-#define _ANONYMOUS_UNION       __extension__
-#define _ANONYMOUS_STRUCT      __extension__
-#else
-#define _ANONYMOUS_UNION
-#define _ANONYMOUS_STRUCT
-#endif
-#ifndef NONAMELESSUNION
-#define _UNION_NAME(x)
-#define _STRUCT_NAME(x)
-#else /* NONAMELESSUNION */
-#define _UNION_NAME(x)  x
-#define _STRUCT_NAME(x) x
-#endif
-#endif /* __ANONYMOUS_DEFINED */
-
-#ifndef DUMMYUNIONNAME
-# ifdef NONAMELESSUNION
-#  define DUMMYUNIONNAME  u
-#  define DUMMYUNIONNAME1 u1   /* Wine uses this variant */
-#  define DUMMYUNIONNAME2 u2
-#  define DUMMYUNIONNAME3 u3
-#  define DUMMYUNIONNAME4 u4
-#  define DUMMYUNIONNAME5 u5
-#  define DUMMYUNIONNAME6 u6
-#  define DUMMYUNIONNAME7 u7
-#  define DUMMYUNIONNAME8 u8
-#  define DUMMYUNIONNAME9 u9
-# else /* NONAMELESSUNION */
-#  define DUMMYUNIONNAME
-#  define DUMMYUNIONNAME1      /* Wine uses this variant */
-#  define DUMMYUNIONNAME2
-#  define DUMMYUNIONNAME3
-#  define DUMMYUNIONNAME4
-#  define DUMMYUNIONNAME5
-#  define DUMMYUNIONNAME6
-#  define DUMMYUNIONNAME7
-#  define DUMMYUNIONNAME8
-#  define DUMMYUNIONNAME9
-# endif
-#endif /* DUMMYUNIONNAME */
-
-#ifndef DUMMYSTRUCTNAME
-# ifdef NONAMELESSUNION
-#  define DUMMYSTRUCTNAME  s
-#  define DUMMYSTRUCTNAME1 s1  /* Wine uses this variant */
-#  define DUMMYSTRUCTNAME2 s2
-#  define DUMMYSTRUCTNAME3 s3
-#  define DUMMYSTRUCTNAME4 s4
-#  define DUMMYSTRUCTNAME5 s5
-# else
-#  define DUMMYSTRUCTNAME
-#  define DUMMYSTRUCTNAME1     /* Wine uses this variant */
-#  define DUMMYSTRUCTNAME2
-#  define DUMMYSTRUCTNAME3
-#  define DUMMYSTRUCTNAME4
-#  define DUMMYSTRUCTNAME5
-# endif
-#endif /* DUMMYSTRUCTNAME */
-
-/* These are for compatibility with the Wine source tree */
-
-#ifndef WINELIB_NAME_AW
-# ifdef __MINGW_NAME_AW
-#   define WINELIB_NAME_AW  __MINGW_NAME_AW
-# else
-#  ifdef UNICODE
-#   define WINELIB_NAME_AW(func) func##W
-#  else
-#   define WINELIB_NAME_AW(func) func##A
-#  endif
-# endif
-#endif /* WINELIB_NAME_AW */
-
-#ifndef DECL_WINELIB_TYPE_AW
-# ifdef __MINGW_TYPEDEF_AW
-#  define DECL_WINELIB_TYPE_AW  __MINGW_TYPEDEF_AW
-# else
-#  define DECL_WINELIB_TYPE_AW(type)  typedef WINELIB_NAME_AW(type) type;
-# endif
-#endif /* DECL_WINELIB_TYPE_AW */
-
diff --git a/misc/builddeps/win64/dx/include/d3d.h b/misc/builddeps/win64/dx/include/d3d.h
deleted file mode 100644 (file)
index 409be1b..0000000
+++ /dev/null
@@ -1,1531 +0,0 @@
-/*
- * Copyright (C) the Wine project
- *
- * 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_D3D_H
-#define __WINE_D3D_H
-
-#include <stdlib.h>
-
-#define COM_NO_WINDOWS_H
-#include <objbase.h>
-#include <d3dtypes.h> /* must precede d3dcaps.h */
-#include <d3dcaps.h>
-
-/*****************************************************************************
- * Predeclare the interfaces
- */
-DEFINE_GUID(IID_IDirect3D,              0x3BBA0080,0x2421,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56);
-DEFINE_GUID(IID_IDirect3D2,             0x6aae1ec1,0x662a,0x11d0,0x88,0x9d,0x00,0xaa,0x00,0xbb,0xb7,0x6a);
-DEFINE_GUID(IID_IDirect3D3,             0xbb223240,0xe72b,0x11d0,0xa9,0xb4,0x00,0xaa,0x00,0xc0,0x99,0x3e);
-DEFINE_GUID(IID_IDirect3D7,             0xf5049e77,0x4861,0x11d2,0xa4,0x07,0x00,0xa0,0xc9,0x06,0x29,0xa8);
-
-DEFINE_GUID(IID_IDirect3DRampDevice,   0xF2086B20,0x259F,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56);
-DEFINE_GUID(IID_IDirect3DRGBDevice,    0xA4665C60,0x2673,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56);
-DEFINE_GUID(IID_IDirect3DHALDevice,    0x84E63dE0,0x46AA,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E);
-DEFINE_GUID(IID_IDirect3DMMXDevice,    0x881949a1,0xd6f3,0x11d0,0x89,0xab,0x00,0xa0,0xc9,0x05,0x41,0x29);
-DEFINE_GUID(IID_IDirect3DRefDevice,     0x50936643,0x13e9,0x11d1,0x89,0xaa,0x00,0xa0,0xc9,0x05,0x41,0x29);
-DEFINE_GUID(IID_IDirect3DTnLHalDevice,  0xf5049e78,0x4861,0x11d2,0xa4,0x07,0x00,0xa0,0xc9,0x06,0x29,0xa8);
-DEFINE_GUID(IID_IDirect3DNullDevice,    0x8767df22,0xbacc,0x11d1,0x89,0x69,0x00,0xa0,0xc9,0x06,0x29,0xa8);
-
-DEFINE_GUID(IID_IDirect3DDevice,       0x64108800,0x957d,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29);
-DEFINE_GUID(IID_IDirect3DDevice2,      0x93281501,0x8CF8,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29);
-DEFINE_GUID(IID_IDirect3DDevice3,       0xb0ab3b60,0x33d7,0x11d1,0xa9,0x81,0x00,0xc0,0x4f,0xd7,0xb1,0x74);
-DEFINE_GUID(IID_IDirect3DDevice7,       0xf5049e79,0x4861,0x11d2,0xa4,0x07,0x00,0xa0,0xc9,0x06,0x29,0xa8);
-
-DEFINE_GUID(IID_IDirect3DTexture,      0x2CDCD9E0,0x25A0,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56);
-DEFINE_GUID(IID_IDirect3DTexture2,     0x93281502,0x8CF8,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29);
-
-DEFINE_GUID(IID_IDirect3DLight,                0x4417C142,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E);
-
-DEFINE_GUID(IID_IDirect3DMaterial,     0x4417C144,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E);
-DEFINE_GUID(IID_IDirect3DMaterial2,    0x93281503,0x8CF8,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29);
-DEFINE_GUID(IID_IDirect3DMaterial3,     0xca9c46f4,0xd3c5,0x11d1,0xb7,0x5a,0x00,0x60,0x08,0x52,0xb3,0x12);
-
-DEFINE_GUID(IID_IDirect3DExecuteBuffer,        0x4417C145,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E);
-
-DEFINE_GUID(IID_IDirect3DViewport,     0x4417C146,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E);
-DEFINE_GUID(IID_IDirect3DViewport2,    0x93281500,0x8CF8,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29);
-DEFINE_GUID(IID_IDirect3DViewport3,     0xb0ab3b61,0x33d7,0x11d1,0xa9,0x81,0x00,0xc0,0x4f,0xd7,0xb1,0x74);
-
-DEFINE_GUID(IID_IDirect3DVertexBuffer,  0x7a503555,0x4a83,0x11d1,0xa5,0xdb,0x00,0xa0,0xc9,0x03,0x67,0xf8);
-DEFINE_GUID(IID_IDirect3DVertexBuffer7, 0xf5049e7d,0x4861,0x11d2,0xa4,0x07,0x00,0xa0,0xc9,0x06,0x29,0xa8);
-
-
-typedef struct IDirect3D *LPDIRECT3D;
-typedef struct IDirect3D2 *LPDIRECT3D2;
-typedef struct IDirect3D3 *LPDIRECT3D3;
-typedef struct IDirect3D7 *LPDIRECT3D7;
-
-typedef struct IDirect3DLight *LPDIRECT3DLIGHT;
-
-typedef struct IDirect3DDevice *LPDIRECT3DDEVICE;
-typedef struct IDirect3DDevice2 *LPDIRECT3DDEVICE2;
-typedef struct IDirect3DDevice3 *LPDIRECT3DDEVICE3;
-typedef struct IDirect3DDevice7 *LPDIRECT3DDEVICE7;
-
-typedef struct IDirect3DViewport *LPDIRECT3DVIEWPORT;
-typedef struct IDirect3DViewport2 *LPDIRECT3DVIEWPORT2;
-typedef struct IDirect3DViewport3 *LPDIRECT3DVIEWPORT3;
-
-typedef struct IDirect3DMaterial *LPDIRECT3DMATERIAL;
-typedef struct IDirect3DMaterial2 *LPDIRECT3DMATERIAL2;
-typedef struct IDirect3DMaterial3 *LPDIRECT3DMATERIAL3;
-
-typedef struct IDirect3DTexture *LPDIRECT3DTEXTURE;
-typedef struct IDirect3DTexture2 *LPDIRECT3DTEXTURE2;
-
-typedef struct IDirect3DExecuteBuffer *LPDIRECT3DEXECUTEBUFFER;
-
-typedef struct IDirect3DVertexBuffer *LPDIRECT3DVERTEXBUFFER;
-typedef struct IDirect3DVertexBuffer7 *LPDIRECT3DVERTEXBUFFER7;
-
-/* ********************************************************************
-   Error Codes
-   ******************************************************************** */
-#define D3D_OK                          DD_OK
-#define D3DERR_BADMAJORVERSION          MAKE_DDHRESULT(700)
-#define D3DERR_BADMINORVERSION          MAKE_DDHRESULT(701)
-#define D3DERR_INVALID_DEVICE           MAKE_DDHRESULT(705)
-#define D3DERR_INITFAILED               MAKE_DDHRESULT(706)
-#define D3DERR_DEVICEAGGREGATED         MAKE_DDHRESULT(707)
-#define D3DERR_EXECUTE_CREATE_FAILED    MAKE_DDHRESULT(710)
-#define D3DERR_EXECUTE_DESTROY_FAILED   MAKE_DDHRESULT(711)
-#define D3DERR_EXECUTE_LOCK_FAILED      MAKE_DDHRESULT(712)
-#define D3DERR_EXECUTE_UNLOCK_FAILED    MAKE_DDHRESULT(713)
-#define D3DERR_EXECUTE_LOCKED           MAKE_DDHRESULT(714)
-#define D3DERR_EXECUTE_NOT_LOCKED       MAKE_DDHRESULT(715)
-#define D3DERR_EXECUTE_FAILED           MAKE_DDHRESULT(716)
-#define D3DERR_EXECUTE_CLIPPED_FAILED   MAKE_DDHRESULT(717)
-#define D3DERR_TEXTURE_NO_SUPPORT       MAKE_DDHRESULT(720)
-#define D3DERR_TEXTURE_CREATE_FAILED    MAKE_DDHRESULT(721)
-#define D3DERR_TEXTURE_DESTROY_FAILED   MAKE_DDHRESULT(722)
-#define D3DERR_TEXTURE_LOCK_FAILED      MAKE_DDHRESULT(723)
-#define D3DERR_TEXTURE_UNLOCK_FAILED    MAKE_DDHRESULT(724)
-#define D3DERR_TEXTURE_LOAD_FAILED      MAKE_DDHRESULT(725)
-#define D3DERR_TEXTURE_SWAP_FAILED      MAKE_DDHRESULT(726)
-#define D3DERR_TEXTURE_LOCKED           MAKE_DDHRESULT(727)
-#define D3DERR_TEXTURE_NOT_LOCKED       MAKE_DDHRESULT(728)
-#define D3DERR_TEXTURE_GETSURF_FAILED   MAKE_DDHRESULT(729)
-#define D3DERR_MATRIX_CREATE_FAILED     MAKE_DDHRESULT(730)
-#define D3DERR_MATRIX_DESTROY_FAILED    MAKE_DDHRESULT(731)
-#define D3DERR_MATRIX_SETDATA_FAILED    MAKE_DDHRESULT(732)
-#define D3DERR_MATRIX_GETDATA_FAILED    MAKE_DDHRESULT(733)
-#define D3DERR_SETVIEWPORTDATA_FAILED   MAKE_DDHRESULT(734)
-#define D3DERR_INVALIDCURRENTVIEWPORT   MAKE_DDHRESULT(735)
-#define D3DERR_INVALIDPRIMITIVETYPE     MAKE_DDHRESULT(736)
-#define D3DERR_INVALIDVERTEXTYPE        MAKE_DDHRESULT(737)
-#define D3DERR_TEXTURE_BADSIZE          MAKE_DDHRESULT(738)
-#define D3DERR_INVALIDRAMPTEXTURE       MAKE_DDHRESULT(739)
-#define D3DERR_MATERIAL_CREATE_FAILED   MAKE_DDHRESULT(740)
-#define D3DERR_MATERIAL_DESTROY_FAILED  MAKE_DDHRESULT(741)
-#define D3DERR_MATERIAL_SETDATA_FAILED  MAKE_DDHRESULT(742)
-#define D3DERR_MATERIAL_GETDATA_FAILED  MAKE_DDHRESULT(743)
-#define D3DERR_INVALIDPALETTE           MAKE_DDHRESULT(744)
-#define D3DERR_ZBUFF_NEEDS_SYSTEMMEMORY MAKE_DDHRESULT(745)
-#define D3DERR_ZBUFF_NEEDS_VIDEOMEMORY  MAKE_DDHRESULT(746)
-#define D3DERR_SURFACENOTINVIDMEM       MAKE_DDHRESULT(747)
-#define D3DERR_LIGHT_SET_FAILED         MAKE_DDHRESULT(750)
-#define D3DERR_LIGHTHASVIEWPORT         MAKE_DDHRESULT(751)
-#define D3DERR_LIGHTNOTINTHISVIEWPORT   MAKE_DDHRESULT(752)
-#define D3DERR_SCENE_IN_SCENE           MAKE_DDHRESULT(760)
-#define D3DERR_SCENE_NOT_IN_SCENE       MAKE_DDHRESULT(761)
-#define D3DERR_SCENE_BEGIN_FAILED       MAKE_DDHRESULT(762)
-#define D3DERR_SCENE_END_FAILED         MAKE_DDHRESULT(763)
-#define D3DERR_INBEGIN                  MAKE_DDHRESULT(770)
-#define D3DERR_NOTINBEGIN               MAKE_DDHRESULT(771)
-#define D3DERR_NOVIEWPORTS              MAKE_DDHRESULT(772)
-#define D3DERR_VIEWPORTDATANOTSET       MAKE_DDHRESULT(773)
-#define D3DERR_VIEWPORTHASNODEVICE      MAKE_DDHRESULT(774)
-#define D3DERR_NOCURRENTVIEWPORT        MAKE_DDHRESULT(775)
-#define D3DERR_INVALIDVERTEXFORMAT     MAKE_DDHRESULT(2048)
-#define D3DERR_COLORKEYATTACHED         MAKE_DDHRESULT(2050)
-#define D3DERR_VERTEXBUFFEROPTIMIZED   MAKE_DDHRESULT(2060)
-#define D3DERR_VBUF_CREATE_FAILED      MAKE_DDHRESULT(2061)
-#define D3DERR_VERTEXBUFFERLOCKED      MAKE_DDHRESULT(2062)
-#define D3DERR_VERTEXBUFFERUNLOCKFAILED        MAKE_DDHRESULT(2063)
-#define D3DERR_ZBUFFER_NOTPRESENT      MAKE_DDHRESULT(2070)
-#define D3DERR_STENCILBUFFER_NOTPRESENT        MAKE_DDHRESULT(2071)
-
-#define D3DERR_WRONGTEXTUREFORMAT              MAKE_DDHRESULT(2072)
-#define D3DERR_UNSUPPORTEDCOLOROPERATION       MAKE_DDHRESULT(2073)
-#define D3DERR_UNSUPPORTEDCOLORARG             MAKE_DDHRESULT(2074)
-#define D3DERR_UNSUPPORTEDALPHAOPERATION       MAKE_DDHRESULT(2075)
-#define D3DERR_UNSUPPORTEDALPHAARG             MAKE_DDHRESULT(2076)
-#define D3DERR_TOOMANYOPERATIONS               MAKE_DDHRESULT(2077)
-#define D3DERR_CONFLICTINGTEXTUREFILTER                MAKE_DDHRESULT(2078)
-#define D3DERR_UNSUPPORTEDFACTORVALUE          MAKE_DDHRESULT(2079)
-#define D3DERR_CONFLICTINGRENDERSTATE          MAKE_DDHRESULT(2081)
-#define D3DERR_UNSUPPORTEDTEXTUREFILTER                MAKE_DDHRESULT(2082)
-#define D3DERR_TOOMANYPRIMITIVES               MAKE_DDHRESULT(2083)
-#define D3DERR_INVALIDMATRIX                   MAKE_DDHRESULT(2084)
-#define D3DERR_TOOMANYVERTICES                 MAKE_DDHRESULT(2085)
-#define D3DERR_CONFLICTINGTEXTUREPALETTE       MAKE_DDHRESULT(2086)
-
-#define D3DERR_INVALIDSTATEBLOCK       MAKE_DDHRESULT(2100)
-#define D3DERR_INBEGINSTATEBLOCK       MAKE_DDHRESULT(2101)
-#define D3DERR_NOTINBEGINSTATEBLOCK    MAKE_DDHRESULT(2102)
-
-/* ********************************************************************
-   Enums
-   ******************************************************************** */
-#define D3DNEXT_NEXT 0x01l
-#define D3DNEXT_HEAD 0x02l
-#define D3DNEXT_TAIL 0x04l
-
-#define D3DDP_WAIT               0x00000001l
-#define D3DDP_OUTOFORDER         0x00000002l
-#define D3DDP_DONOTCLIP          0x00000004l
-#define D3DDP_DONOTUPDATEEXTENTS 0x00000008l
-#define D3DDP_DONOTLIGHT         0x00000010l
-
-/* ********************************************************************
-   Types and structures
-   ******************************************************************** */
-typedef DWORD D3DVIEWPORTHANDLE, *LPD3DVIEWPORTHANDLE;
-
-
-/*****************************************************************************
- * IDirect3D interface
- */
-#undef INTERFACE
-#define INTERFACE IDirect3D
-DECLARE_INTERFACE_(IDirect3D,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3D methods ***/
-    STDMETHOD(Initialize)(THIS_ REFIID riid) PURE;
-    STDMETHOD(EnumDevices)(THIS_ LPD3DENUMDEVICESCALLBACK lpEnumDevicesCallback, LPVOID lpUserArg) PURE;
-    STDMETHOD(CreateLight)(THIS_ LPDIRECT3DLIGHT *lplpDirect3DLight, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(CreateMaterial)(THIS_ LPDIRECT3DMATERIAL *lplpDirect3DMaterial, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(CreateViewport)(THIS_ LPDIRECT3DVIEWPORT *lplpD3DViewport, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(FindDevice)(THIS_ LPD3DFINDDEVICESEARCH lpD3DDFS, LPD3DFINDDEVICERESULT lplpD3DDevice) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3D_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3D_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3D_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3D methods ***/
-#define IDirect3D_Initialize(p,a)       (p)->lpVtbl->Initialize(p,a)
-#define IDirect3D_EnumDevices(p,a,b)    (p)->lpVtbl->EnumDevices(p,a,b)
-#define IDirect3D_CreateLight(p,a,b)    (p)->lpVtbl->CreateLight(p,a,b)
-#define IDirect3D_CreateMaterial(p,a,b) (p)->lpVtbl->CreateMaterial(p,a,b)
-#define IDirect3D_CreateViewport(p,a,b) (p)->lpVtbl->CreateViewport(p,a,b)
-#define IDirect3D_FindDevice(p,a,b)     (p)->lpVtbl->FindDevice(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3D_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3D_AddRef(p)             (p)->AddRef()
-#define IDirect3D_Release(p)            (p)->Release()
-/*** IDirect3D methods ***/
-#define IDirect3D_Initialize(p,a)       (p)->Initialize(a)
-#define IDirect3D_EnumDevices(p,a,b)    (p)->EnumDevices(a,b)
-#define IDirect3D_CreateLight(p,a,b)    (p)->CreateLight(a,b)
-#define IDirect3D_CreateMaterial(p,a,b) (p)->CreateMaterial(a,b)
-#define IDirect3D_CreateViewport(p,a,b) (p)->CreateViewport(a,b)
-#define IDirect3D_FindDevice(p,a,b)     (p)->FindDevice(a,b)
-#endif
-
-
-/*****************************************************************************
- * IDirect3D2 interface
- */
-#define INTERFACE IDirect3D2
-DECLARE_INTERFACE_(IDirect3D2,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3D2 methods ***/
-    STDMETHOD(EnumDevices)(THIS_ LPD3DENUMDEVICESCALLBACK lpEnumDevicesCallback, LPVOID lpUserArg) PURE;
-    STDMETHOD(CreateLight)(THIS_ LPDIRECT3DLIGHT *lplpDirect3DLight, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(CreateMaterial)(THIS_ LPDIRECT3DMATERIAL2 *lplpDirect3DMaterial2, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(CreateViewport)(THIS_ LPDIRECT3DVIEWPORT2 *lplpD3DViewport2, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(FindDevice)(THIS_ LPD3DFINDDEVICESEARCH lpD3DDFS, LPD3DFINDDEVICERESULT lpD3DFDR) PURE;
-    STDMETHOD(CreateDevice)(THIS_ REFCLSID rclsid, LPDIRECTDRAWSURFACE lpDDS, LPDIRECT3DDEVICE2 *lplpD3DDevice2) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3D2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3D2_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3D2_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3D2 methods ***/
-#define IDirect3D2_EnumDevices(p,a,b)    (p)->lpVtbl->EnumDevices(p,a,b)
-#define IDirect3D2_CreateLight(p,a,b)    (p)->lpVtbl->CreateLight(p,a,b)
-#define IDirect3D2_CreateMaterial(p,a,b) (p)->lpVtbl->CreateMaterial(p,a,b)
-#define IDirect3D2_CreateViewport(p,a,b) (p)->lpVtbl->CreateViewport(p,a,b)
-#define IDirect3D2_FindDevice(p,a,b)     (p)->lpVtbl->FindDevice(p,a,b)
-#define IDirect3D2_CreateDevice(p,a,b,c) (p)->lpVtbl->CreateDevice(p,a,b,c)
-#else
-/*** IUnknown methods ***/
-#define IDirect3D2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3D2_AddRef(p)             (p)->AddRef()
-#define IDirect3D2_Release(p)            (p)->Release()
-/*** IDirect3D2 methods ***/
-#define IDirect3D2_EnumDevices(p,a,b)    (p)->EnumDevices(a,b)
-#define IDirect3D2_CreateLight(p,a,b)    (p)->CreateLight(a,b)
-#define IDirect3D2_CreateMaterial(p,a,b) (p)->CreateMaterial(a,b)
-#define IDirect3D2_CreateViewport(p,a,b) (p)->CreateViewport(a,b)
-#define IDirect3D2_FindDevice(p,a,b)     (p)->FindDevice(a,b)
-#define IDirect3D2_CreateDevice(p,a,b,c) (p)->CreateDevice(a,b,c)
-#endif
-
-
-/*****************************************************************************
- * IDirect3D3 interface
- */
-#define INTERFACE IDirect3D3
-DECLARE_INTERFACE_(IDirect3D3,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3D3 methods ***/
-    STDMETHOD(EnumDevices)(THIS_ LPD3DENUMDEVICESCALLBACK lpEnumDevicesCallback, LPVOID lpUserArg) PURE;
-    STDMETHOD(CreateLight)(THIS_ LPDIRECT3DLIGHT *lplpDirect3DLight, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(CreateMaterial)(THIS_ LPDIRECT3DMATERIAL3 *lplpDirect3DMaterial3, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(CreateViewport)(THIS_ LPDIRECT3DVIEWPORT3 *lplpD3DViewport3, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(FindDevice)(THIS_ LPD3DFINDDEVICESEARCH lpD3DDFS, LPD3DFINDDEVICERESULT lpD3DFDR) PURE;
-    STDMETHOD(CreateDevice)(THIS_ REFCLSID rclsid,LPDIRECTDRAWSURFACE4 lpDDS, LPDIRECT3DDEVICE3 *lplpD3DDevice3,LPUNKNOWN lpUnk) PURE;
-    STDMETHOD(CreateVertexBuffer)(THIS_ LPD3DVERTEXBUFFERDESC lpD3DVertBufDesc,LPDIRECT3DVERTEXBUFFER *lplpD3DVertBuf,DWORD dwFlags,LPUNKNOWN lpUnk) PURE;
-    STDMETHOD(EnumZBufferFormats)(THIS_ REFCLSID riidDevice,LPD3DENUMPIXELFORMATSCALLBACK lpEnumCallback,LPVOID lpContext) PURE;
-    STDMETHOD(EvictManagedTextures)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3D3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3D3_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3D3_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3D3 methods ***/
-#define IDirect3D3_EnumDevices(p,a,b)            (p)->lpVtbl->EnumDevices(p,a,b)
-#define IDirect3D3_CreateLight(p,a,b)            (p)->lpVtbl->CreateLight(p,a,b)
-#define IDirect3D3_CreateMaterial(p,a,b)         (p)->lpVtbl->CreateMaterial(p,a,b)
-#define IDirect3D3_CreateViewport(p,a,b)         (p)->lpVtbl->CreateViewport(p,a,b)
-#define IDirect3D3_FindDevice(p,a,b)             (p)->lpVtbl->FindDevice(p,a,b)
-#define IDirect3D3_CreateDevice(p,a,b,c,d)       (p)->lpVtbl->CreateDevice(p,a,b,c,d)
-#define IDirect3D3_CreateVertexBuffer(p,a,b,c,d) (p)->lpVtbl->CreateVertexBuffer(p,a,b,c,d)
-#define IDirect3D3_EnumZBufferFormats(p,a,b,c)   (p)->lpVtbl->EnumZBufferFormats(p,a,b,c)
-#define IDirect3D3_EvictManagedTextures(p)       (p)->lpVtbl->EvictManagedTextures(p)
-#else
-/*** IUnknown methods ***/
-#define IDirect3D3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3D3_AddRef(p)             (p)->AddRef()
-#define IDirect3D3_Release(p)            (p)->Release()
-/*** IDirect3D3 methods ***/
-#define IDirect3D3_EnumDevices(p,a,b)            (p)->EnumDevices(a,b)
-#define IDirect3D3_CreateLight(p,a,b)            (p)->CreateLight(a,b)
-#define IDirect3D3_CreateMaterial(p,a,b)         (p)->CreateMaterial(a,b)
-#define IDirect3D3_CreateViewport(p,a,b)         (p)->CreateViewport(a,b)
-#define IDirect3D3_FindDevice(p,a,b)             (p)->FindDevice(a,b)
-#define IDirect3D3_CreateDevice(p,a,b,c,d)       (p)->CreateDevice(a,b,c,d)
-#define IDirect3D3_CreateVertexBuffer(p,a,b,c,d) (p)->CreateVertexBuffer(a,b,c,d)
-#define IDirect3D3_EnumZBufferFormats(p,a,b,c)   (p)->EnumZBufferFormats(a,b,c)
-#define IDirect3D3_EvictManagedTextures(p)       (p)->EvictManagedTextures()
-#endif
-
-/*****************************************************************************
- * IDirect3D7 interface
- */
-#define INTERFACE IDirect3D7
-DECLARE_INTERFACE_(IDirect3D7,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3D7 methods ***/
-    STDMETHOD(EnumDevices)(THIS_ LPD3DENUMDEVICESCALLBACK7 lpEnumDevicesCallback, LPVOID lpUserArg) PURE;
-    STDMETHOD(CreateDevice)(THIS_ REFCLSID rclsid,LPDIRECTDRAWSURFACE7 lpDDS, LPDIRECT3DDEVICE7 *lplpD3DDevice) PURE;
-    STDMETHOD(CreateVertexBuffer)(THIS_ LPD3DVERTEXBUFFERDESC lpD3DVertBufDesc,LPDIRECT3DVERTEXBUFFER7 *lplpD3DVertBuf,DWORD dwFlags) PURE;
-    STDMETHOD(EnumZBufferFormats)(THIS_ REFCLSID riidDevice,LPD3DENUMPIXELFORMATSCALLBACK lpEnumCallback,LPVOID lpContext) PURE;
-    STDMETHOD(EvictManagedTextures)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3D7_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3D7_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3D7_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3D3 methods ***/
-#define IDirect3D7_EnumDevices(p,a,b)            (p)->lpVtbl->EnumDevices(p,a,b)
-#define IDirect3D7_CreateDevice(p,a,b,c)         (p)->lpVtbl->CreateDevice(p,a,b,c)
-#define IDirect3D7_CreateVertexBuffer(p,a,b,c)   (p)->lpVtbl->CreateVertexBuffer(p,a,b,c)
-#define IDirect3D7_EnumZBufferFormats(p,a,b,c)   (p)->lpVtbl->EnumZBufferFormats(p,a,b,c)
-#define IDirect3D7_EvictManagedTextures(p)       (p)->lpVtbl->EvictManagedTextures(p)
-#else
-/*** IUnknown methods ***/
-#define IDirect3D7_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3D7_AddRef(p)             (p)->AddRef()
-#define IDirect3D7_Release(p)            (p)->Release()
-/*** IDirect3D3 methods ***/
-#define IDirect3D7_EnumDevices(p,a,b)            (p)->EnumDevices(a,b)
-#define IDirect3D7_CreateDevice(p,a,b,c)         (p)->CreateDevice(a,b,c)
-#define IDirect3D7_CreateVertexBuffer(p,a,b,c)   (p)->CreateVertexBuffer(a,b,c)
-#define IDirect3D7_EnumZBufferFormats(p,a,b,c)   (p)->EnumZBufferFormats(a,b,c)
-#define IDirect3D7_EvictManagedTextures(p)       (p)->EvictManagedTextures()
-#endif
-
-
-/*****************************************************************************
- * IDirect3DLight interface
- */
-#define INTERFACE IDirect3DLight
-DECLARE_INTERFACE_(IDirect3DLight,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DLight methods ***/
-    STDMETHOD(Initialize)(THIS_ LPDIRECT3D lpDirect3D) PURE;
-    STDMETHOD(SetLight)(THIS_ LPD3DLIGHT lpLight) PURE;
-    STDMETHOD(GetLight)(THIS_ LPD3DLIGHT lpLight) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DLight_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DLight_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DLight_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3DLight methods ***/
-#define IDirect3DLight_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
-#define IDirect3DLight_SetLight(p,a)   (p)->lpVtbl->SetLight(p,a)
-#define IDirect3DLight_GetLight(p,a)   (p)->lpVtbl->GetLight(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DLight_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DLight_AddRef(p)             (p)->AddRef()
-#define IDirect3DLight_Release(p)            (p)->Release()
-/*** IDirect3DLight methods ***/
-#define IDirect3DLight_Initialize(p,a) (p)->Initialize(a)
-#define IDirect3DLight_SetLight(p,a)   (p)->SetLight(a)
-#define IDirect3DLight_GetLight(p,a)   (p)->GetLight(a)
-#endif
-
-
-/*****************************************************************************
- * IDirect3DMaterial interface
- */
-#define INTERFACE IDirect3DMaterial
-DECLARE_INTERFACE_(IDirect3DMaterial,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DMaterial methods ***/
-    STDMETHOD(Initialize)(THIS_ LPDIRECT3D lpDirect3D) PURE;
-    STDMETHOD(SetMaterial)(THIS_ LPD3DMATERIAL lpMat) PURE;
-    STDMETHOD(GetMaterial)(THIS_ LPD3DMATERIAL lpMat) PURE;
-    STDMETHOD(GetHandle)(THIS_ LPDIRECT3DDEVICE lpDirect3DDevice, LPD3DMATERIALHANDLE lpHandle) PURE;
-    STDMETHOD(Reserve)(THIS) PURE;
-    STDMETHOD(Unreserve)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DMaterial_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DMaterial_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DMaterial_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3DMaterial methods ***/
-#define IDirect3DMaterial_Initialize(p,a)  (p)->lpVtbl->Initialize(p,a)
-#define IDirect3DMaterial_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
-#define IDirect3DMaterial_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
-#define IDirect3DMaterial_GetHandle(p,a,b) (p)->lpVtbl->GetHandle(p,a,b)
-#define IDirect3DMaterial_Reserve(p)       (p)->lpVtbl->Reserve(p)
-#define IDirect3DMaterial_Unreserve(p)     (p)->lpVtbl->Unreserve(p)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DMaterial_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DMaterial_AddRef(p)             (p)->AddRef()
-#define IDirect3DMaterial_Release(p)            (p)->Release()
-/*** IDirect3DMaterial methods ***/
-#define IDirect3DMaterial_Initialize(p,a)  (p)->Initialize(a)
-#define IDirect3DMaterial_SetMaterial(p,a) (p)->SetMaterial(a)
-#define IDirect3DMaterial_GetMaterial(p,a) (p)->GetMaterial(a)
-#define IDirect3DMaterial_GetHandle(p,a,b) (p)->GetHandle(a,b)
-#define IDirect3DMaterial_Reserve(p)       (p)->Reserve()
-#define IDirect3DMaterial_Unreserve(p)     (p)->Unreserve()
-#endif
-
-
-/*****************************************************************************
- * IDirect3DMaterial2 interface
- */
-#define INTERFACE IDirect3DMaterial2
-DECLARE_INTERFACE_(IDirect3DMaterial2,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DMaterial2 methods ***/
-    STDMETHOD(SetMaterial)(THIS_ LPD3DMATERIAL lpMat) PURE;
-    STDMETHOD(GetMaterial)(THIS_ LPD3DMATERIAL lpMat) PURE;
-    STDMETHOD(GetHandle)(THIS_ LPDIRECT3DDEVICE2 lpDirect3DDevice2, LPD3DMATERIALHANDLE lpHandle) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DMaterial2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DMaterial2_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DMaterial2_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3DMaterial2 methods ***/
-#define IDirect3DMaterial2_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
-#define IDirect3DMaterial2_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
-#define IDirect3DMaterial2_GetHandle(p,a,b) (p)->lpVtbl->GetHandle(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DMaterial2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DMaterial2_AddRef(p)             (p)->AddRef()
-#define IDirect3DMaterial2_Release(p)            (p)->Release()
-/*** IDirect3DMaterial2 methods ***/
-#define IDirect3DMaterial2_SetMaterial(p,a) (p)->SetMaterial(a)
-#define IDirect3DMaterial2_GetMaterial(p,a) (p)->GetMaterial(a)
-#define IDirect3DMaterial2_GetHandle(p,a,b) (p)->GetHandle(a,b)
-#endif
-
-
-/*****************************************************************************
- * IDirect3DMaterial3 interface
- */
-#define INTERFACE IDirect3DMaterial3
-DECLARE_INTERFACE_(IDirect3DMaterial3,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DMaterial3 methods ***/
-    STDMETHOD(SetMaterial)(THIS_ LPD3DMATERIAL lpMat) PURE;
-    STDMETHOD(GetMaterial)(THIS_ LPD3DMATERIAL lpMat) PURE;
-    STDMETHOD(GetHandle)(THIS_ LPDIRECT3DDEVICE3 lpDirect3DDevice3, LPD3DMATERIALHANDLE lpHandle) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DMaterial3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DMaterial3_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DMaterial3_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3DMaterial3 methods ***/
-#define IDirect3DMaterial3_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
-#define IDirect3DMaterial3_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
-#define IDirect3DMaterial3_GetHandle(p,a,b) (p)->lpVtbl->GetHandle(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DMaterial3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DMaterial3_AddRef(p)             (p)->AddRef()
-#define IDirect3DMaterial3_Release(p)            (p)->Release()
-/*** IDirect3DMaterial3 methods ***/
-#define IDirect3DMaterial3_SetMaterial(p,a) (p)->SetMaterial(a)
-#define IDirect3DMaterial3_GetMaterial(p,a) (p)->GetMaterial(a)
-#define IDirect3DMaterial3_GetHandle(p,a,b) (p)->GetHandle(a,b)
-#endif
-
-
-/*****************************************************************************
- * IDirect3DTexture interface
- */
-#define INTERFACE IDirect3DTexture
-DECLARE_INTERFACE_(IDirect3DTexture,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DTexture methods ***/
-    STDMETHOD(Initialize)(THIS_ LPDIRECT3DDEVICE lpDirect3DDevice, LPDIRECTDRAWSURFACE lpDDSurface) PURE;
-    STDMETHOD(GetHandle)(THIS_ LPDIRECT3DDEVICE lpDirect3DDevice, LPD3DTEXTUREHANDLE  lpHandle) PURE;
-    STDMETHOD(PaletteChanged)(THIS_ DWORD dwStart, DWORD dwCount) PURE;
-    STDMETHOD(Load)(THIS_ LPDIRECT3DTEXTURE lpD3DTexture) PURE;
-    STDMETHOD(Unload)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DTexture_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DTexture_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DTexture_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3DTexture methods ***/
-#define IDirect3DTexture_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
-#define IDirect3DTexture_GetHandle(p,a,b) (p)->lpVtbl->GetHandle(p,a,b)
-#define IDirect3DTexture_PaletteChanged(p,a,b) (p)->lpVtbl->PaletteChanged(p,a,b)
-#define IDirect3DTexture_Load(p,a) (p)->lpVtbl->Load(p,a)
-#define IDirect3DTexture_Unload(p) (p)->lpVtbl->Unload(p)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DTexture_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DTexture_AddRef(p)             (p)->AddRef()
-#define IDirect3DTexture_Release(p)            (p)->Release()
-/*** IDirect3DTexture methods ***/
-#define IDirect3DTexture_Initialize(p,a,b) (p)->Initialize(a,b)
-#define IDirect3DTexture_GetHandle(p,a,b) (p)->GetHandle(a,b)
-#define IDirect3DTexture_PaletteChanged(p,a,b) (p)->PaletteChanged(a,b)
-#define IDirect3DTexture_Load(p,a) (p)->Load(a)
-#define IDirect3DTexture_Unload(p) (p)->Unload()
-#endif
-
-
-/*****************************************************************************
- * IDirect3DTexture2 interface
- */
-#define INTERFACE IDirect3DTexture2
-DECLARE_INTERFACE_(IDirect3DTexture2,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DTexture2 methods ***/
-    STDMETHOD(GetHandle)(THIS_ LPDIRECT3DDEVICE2 lpDirect3DDevice2, LPD3DTEXTUREHANDLE lpHandle) PURE;
-    STDMETHOD(PaletteChanged)(THIS_ DWORD dwStart, DWORD dwCount) PURE;
-    STDMETHOD(Load)(THIS_ LPDIRECT3DTEXTURE2 lpD3DTexture2) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DTexture2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DTexture2_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DTexture2_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3DTexture2 methods ***/
-#define IDirect3DTexture2_GetHandle(p,a,b)      (p)->lpVtbl->GetHandle(p,a,b)
-#define IDirect3DTexture2_PaletteChanged(p,a,b) (p)->lpVtbl->PaletteChanged(p,a,b)
-#define IDirect3DTexture2_Load(p,a)             (p)->lpVtbl->Load(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DTexture2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DTexture2_AddRef(p)             (p)->AddRef()
-#define IDirect3DTexture2_Release(p)            (p)->Release()
-/*** IDirect3DTexture2 methods ***/
-#define IDirect3DTexture2_GetHandle(p,a,b)      (p)->GetHandle(a,b)
-#define IDirect3DTexture2_PaletteChanged(p,a,b) (p)->PaletteChanged(a,b)
-#define IDirect3DTexture2_Load(p,a)             (p)->Load(a)
-#endif
-
-
-/*****************************************************************************
- * IDirect3DViewport interface
- */
-#define INTERFACE IDirect3DViewport
-DECLARE_INTERFACE_(IDirect3DViewport,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DViewport methods ***/
-    STDMETHOD(Initialize)(THIS_ LPDIRECT3D lpDirect3D) PURE;
-    STDMETHOD(GetViewport)(THIS_ LPD3DVIEWPORT lpData) PURE;
-    STDMETHOD(SetViewport)(THIS_ LPD3DVIEWPORT lpData) PURE;
-    STDMETHOD(TransformVertices)(THIS_ DWORD dwVertexCount, LPD3DTRANSFORMDATA lpData, DWORD dwFlags, LPDWORD lpOffScreen) PURE;
-    STDMETHOD(LightElements)(THIS_ DWORD dwElementCount, LPD3DLIGHTDATA lpData) PURE;
-    STDMETHOD(SetBackground)(THIS_ D3DMATERIALHANDLE hMat) PURE;
-    STDMETHOD(GetBackground)(THIS_ LPD3DMATERIALHANDLE lphMat, LPBOOL lpValid) PURE;
-    STDMETHOD(SetBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE lpDDSurface) PURE;
-    STDMETHOD(GetBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE *lplpDDSurface, LPBOOL lpValid) PURE;
-    STDMETHOD(Clear)(THIS_ DWORD dwCount, LPD3DRECT lpRects, DWORD dwFlags) PURE;
-    STDMETHOD(AddLight)(THIS_ LPDIRECT3DLIGHT lpDirect3DLight) PURE;
-    STDMETHOD(DeleteLight)(THIS_ LPDIRECT3DLIGHT lpDirect3DLight) PURE;
-    STDMETHOD(NextLight)(THIS_ LPDIRECT3DLIGHT lpDirect3DLight, LPDIRECT3DLIGHT *lplpDirect3DLight, DWORD dwFlags) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DViewport_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DViewport_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DViewport_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3DViewport methods ***/
-#define IDirect3DViewport_Initialize(p,a)              (p)->lpVtbl->Initialize(p,a)
-#define IDirect3DViewport_GetViewport(p,a)             (p)->lpVtbl->GetViewport(p,a)
-#define IDirect3DViewport_SetViewport(p,a)             (p)->lpVtbl->SetViewport(p,a)
-#define IDirect3DViewport_TransformVertices(p,a,b,c,d) (p)->lpVtbl->TransformVertices(p,a,b,c,d)
-#define IDirect3DViewport_LightElements(p,a,b)         (p)->lpVtbl->LightElements(p,a,b)
-#define IDirect3DViewport_SetBackground(p,a)           (p)->lpVtbl->SetBackground(p,a)
-#define IDirect3DViewport_GetBackground(p,a,b)         (p)->lpVtbl->GetBackground(p,a,b)
-#define IDirect3DViewport_SetBackgroundDepth(p,a)      (p)->lpVtbl->SetBackgroundDepth(p,a)
-#define IDirect3DViewport_GetBackgroundDepth(p,a,b)    (p)->lpVtbl->GetBackgroundDepth(p,a,b)
-#define IDirect3DViewport_Clear(p,a,b,c)               (p)->lpVtbl->Clear(p,a,b,c)
-#define IDirect3DViewport_AddLight(p,a)                (p)->lpVtbl->AddLight(p,a)
-#define IDirect3DViewport_DeleteLight(p,a)             (p)->lpVtbl->DeleteLight(p,a)
-#define IDirect3DViewport_NextLight(p,a,b,c)           (p)->lpVtbl->NextLight(p,a,b,c)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DViewport_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DViewport_AddRef(p)             (p)->AddRef()
-#define IDirect3DViewport_Release(p)            (p)->Release()
-/*** IDirect3DViewport methods ***/
-#define IDirect3DViewport_Initialize(p,a)              (p)->Initialize(a)
-#define IDirect3DViewport_GetViewport(p,a)             (p)->GetViewport(a)
-#define IDirect3DViewport_SetViewport(p,a)             (p)->SetViewport(a)
-#define IDirect3DViewport_TransformVertices(p,a,b,c,d) (p)->TransformVertices(a,b,c,d)
-#define IDirect3DViewport_LightElements(p,a,b)         (p)->LightElements(a,b)
-#define IDirect3DViewport_SetBackground(p,a)           (p)->SetBackground(a)
-#define IDirect3DViewport_GetBackground(p,a,b)         (p)->GetBackground(a,b)
-#define IDirect3DViewport_SetBackgroundDepth(p,a)      (p)->SetBackgroundDepth(a)
-#define IDirect3DViewport_GetBackgroundDepth(p,a,b)    (p)->GetBackgroundDepth(a,b)
-#define IDirect3DViewport_Clear(p,a,b,c)               (p)->Clear(a,b,c)
-#define IDirect3DViewport_AddLight(p,a)                (p)->AddLight(a)
-#define IDirect3DViewport_DeleteLight(p,a)             (p)->DeleteLight(a)
-#define IDirect3DViewport_NextLight(p,a,b,c)           (p)->NextLight(a,b,c)
-#endif
-
-
-/*****************************************************************************
- * IDirect3DViewport2 interface
- */
-#define INTERFACE IDirect3DViewport2
-DECLARE_INTERFACE_(IDirect3DViewport2,IDirect3DViewport)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DViewport methods ***/
-    STDMETHOD(Initialize)(THIS_ LPDIRECT3D lpDirect3D) PURE;
-    STDMETHOD(GetViewport)(THIS_ LPD3DVIEWPORT lpData) PURE;
-    STDMETHOD(SetViewport)(THIS_ LPD3DVIEWPORT lpData) PURE;
-    STDMETHOD(TransformVertices)(THIS_ DWORD dwVertexCount, LPD3DTRANSFORMDATA lpData, DWORD dwFlags, LPDWORD lpOffScreen) PURE;
-    STDMETHOD(LightElements)(THIS_ DWORD dwElementCount, LPD3DLIGHTDATA lpData) PURE;
-    STDMETHOD(SetBackground)(THIS_ D3DMATERIALHANDLE hMat) PURE;
-    STDMETHOD(GetBackground)(THIS_ LPD3DMATERIALHANDLE lphMat, LPBOOL lpValid) PURE;
-    STDMETHOD(SetBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE lpDDSurface) PURE;
-    STDMETHOD(GetBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE *lplpDDSurface, LPBOOL lpValid) PURE;
-    STDMETHOD(Clear)(THIS_ DWORD dwCount, LPD3DRECT lpRects, DWORD dwFlags) PURE;
-    STDMETHOD(AddLight)(THIS_ LPDIRECT3DLIGHT lpDirect3DLight) PURE;
-    STDMETHOD(DeleteLight)(THIS_ LPDIRECT3DLIGHT lpDirect3DLight) PURE;
-    STDMETHOD(NextLight)(THIS_ LPDIRECT3DLIGHT lpDirect3DLight, LPDIRECT3DLIGHT *lplpDirect3DLight, DWORD dwFlags) PURE;
-    /*** IDirect3DViewport2 methods ***/
-    STDMETHOD(GetViewport2)(THIS_ LPD3DVIEWPORT2 lpData) PURE;
-    STDMETHOD(SetViewport2)(THIS_ LPD3DVIEWPORT2 lpData) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DViewport2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DViewport2_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DViewport2_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3Viewport methods ***/
-#define IDirect3DViewport2_Initialize(p,a)              (p)->lpVtbl->Initialize(p,a)
-#define IDirect3DViewport2_GetViewport(p,a)             (p)->lpVtbl->GetViewport(p,a)
-#define IDirect3DViewport2_SetViewport(p,a)             (p)->lpVtbl->SetViewport(p,a)
-#define IDirect3DViewport2_TransformVertices(p,a,b,c,d) (p)->lpVtbl->TransformVertices(p,a,b,c,d)
-#define IDirect3DViewport2_LightElements(p,a,b)         (p)->lpVtbl->LightElements(p,a,b)
-#define IDirect3DViewport2_SetBackground(p,a)           (p)->lpVtbl->SetBackground(p,a)
-#define IDirect3DViewport2_GetBackground(p,a,b)         (p)->lpVtbl->GetBackground(p,a,b)
-#define IDirect3DViewport2_SetBackgroundDepth(p,a)      (p)->lpVtbl->SetBackgroundDepth(p,a)
-#define IDirect3DViewport2_GetBackgroundDepth(p,a,b)    (p)->lpVtbl->GetBackgroundDepth(p,a,b)
-#define IDirect3DViewport2_Clear(p,a,b,c)               (p)->lpVtbl->Clear(p,a,b,c)
-#define IDirect3DViewport2_AddLight(p,a)                (p)->lpVtbl->AddLight(p,a)
-#define IDirect3DViewport2_DeleteLight(p,a)             (p)->lpVtbl->DeleteLight(p,a)
-#define IDirect3DViewport2_NextLight(p,a,b,c)           (p)->lpVtbl->NextLight(p,a,b,c)
-/*** IDirect3DViewport2 methods ***/
-#define IDirect3DViewport2_GetViewport2(p,a) (p)->lpVtbl->GetViewport2(p,a)
-#define IDirect3DViewport2_SetViewport2(p,a) (p)->lpVtbl->SetViewport2(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DViewport2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DViewport2_AddRef(p)             (p)->AddRef()
-#define IDirect3DViewport2_Release(p)            (p)->Release()
-/*** IDirect3Viewport methods ***/
-#define IDirect3DViewport2_Initialize(p,a)              (p)->Initialize(a)
-#define IDirect3DViewport2_GetViewport(p,a)             (p)->GetViewport(a)
-#define IDirect3DViewport2_SetViewport(p,a)             (p)->SetViewport(a)
-#define IDirect3DViewport2_TransformVertices(p,a,b,c,d) (p)->TransformVertices(a,b,c,d)
-#define IDirect3DViewport2_LightElements(p,a,b)         (p)->LightElements(a,b)
-#define IDirect3DViewport2_SetBackground(p,a)           (p)->SetBackground(a)
-#define IDirect3DViewport2_GetBackground(p,a,b)         (p)->GetBackground(a,b)
-#define IDirect3DViewport2_SetBackgroundDepth(p,a)      (p)->SetBackgroundDepth(a)
-#define IDirect3DViewport2_GetBackgroundDepth(p,a,b)    (p)->GetBackgroundDepth(a,b)
-#define IDirect3DViewport2_Clear(p,a,b,c)               (p)->Clear(a,b,c)
-#define IDirect3DViewport2_AddLight(p,a)                (p)->AddLight(a)
-#define IDirect3DViewport2_DeleteLight(p,a)             (p)->DeleteLight(a)
-#define IDirect3DViewport2_NextLight(p,a,b,c)           (p)->NextLight(a,b,c)
-/*** IDirect3DViewport2 methods ***/
-#define IDirect3DViewport2_GetViewport2(p,a) (p)->GetViewport2(a)
-#define IDirect3DViewport2_SetViewport2(p,a) (p)->SetViewport2(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DViewport3 interface
- */
-#define INTERFACE IDirect3DViewport3
-DECLARE_INTERFACE_(IDirect3DViewport3,IDirect3DViewport2)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DViewport methods ***/
-    STDMETHOD(Initialize)(THIS_ LPDIRECT3D lpDirect3D) PURE;
-    STDMETHOD(GetViewport)(THIS_ LPD3DVIEWPORT lpData) PURE;
-    STDMETHOD(SetViewport)(THIS_ LPD3DVIEWPORT lpData) PURE;
-    STDMETHOD(TransformVertices)(THIS_ DWORD dwVertexCount, LPD3DTRANSFORMDATA lpData, DWORD dwFlags, LPDWORD lpOffScreen) PURE;
-    STDMETHOD(LightElements)(THIS_ DWORD dwElementCount, LPD3DLIGHTDATA lpData) PURE;
-    STDMETHOD(SetBackground)(THIS_ D3DMATERIALHANDLE hMat) PURE;
-    STDMETHOD(GetBackground)(THIS_ LPD3DMATERIALHANDLE lphMat, LPBOOL lpValid) PURE;
-    STDMETHOD(SetBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE lpDDSurface) PURE;
-    STDMETHOD(GetBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE *lplpDDSurface, LPBOOL lpValid) PURE;
-    STDMETHOD(Clear)(THIS_ DWORD dwCount, LPD3DRECT lpRects, DWORD dwFlags) PURE;
-    STDMETHOD(AddLight)(THIS_ LPDIRECT3DLIGHT lpDirect3DLight) PURE;
-    STDMETHOD(DeleteLight)(THIS_ LPDIRECT3DLIGHT lpDirect3DLight) PURE;
-    STDMETHOD(NextLight)(THIS_ LPDIRECT3DLIGHT lpDirect3DLight, LPDIRECT3DLIGHT *lplpDirect3DLight, DWORD dwFlags) PURE;
-    /*** IDirect3DViewport2 methods ***/
-    STDMETHOD(GetViewport2)(THIS_ LPD3DVIEWPORT2 lpData) PURE;
-    STDMETHOD(SetViewport2)(THIS_ LPD3DVIEWPORT2 lpData) PURE;
-    /*** IDirect3DViewport3 methods ***/
-    STDMETHOD(SetBackgroundDepth2)(THIS_ LPDIRECTDRAWSURFACE4 lpDDS) PURE;
-    STDMETHOD(GetBackgroundDepth2)(THIS_ LPDIRECTDRAWSURFACE4 *lplpDDS,LPBOOL lpValid) PURE;
-    STDMETHOD(Clear2)(THIS_ DWORD dwCount,LPD3DRECT lpRects,DWORD dwFlags,DWORD dwColor,D3DVALUE dvZ,DWORD dwStencil) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DViewport3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DViewport3_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DViewport3_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3Viewport methods ***/
-#define IDirect3DViewport3_Initialize(p,a)              (p)->lpVtbl->Initialize(p,a)
-#define IDirect3DViewport3_GetViewport(p,a)             (p)->lpVtbl->GetViewport(p,a)
-#define IDirect3DViewport3_SetViewport(p,a)             (p)->lpVtbl->SetViewport(p,a)
-#define IDirect3DViewport3_TransformVertices(p,a,b,c,d) (p)->lpVtbl->TransformVertices(p,a,b,c,d)
-#define IDirect3DViewport3_LightElements(p,a,b)         (p)->lpVtbl->LightElements(p,a,b)
-#define IDirect3DViewport3_SetBackground(p,a)           (p)->lpVtbl->SetBackground(p,a)
-#define IDirect3DViewport3_GetBackground(p,a,b)         (p)->lpVtbl->GetBackground(p,a,b)
-#define IDirect3DViewport3_SetBackgroundDepth(p,a)      (p)->lpVtbl->SetBackgroundDepth(p,a)
-#define IDirect3DViewport3_GetBackgroundDepth(p,a,b)    (p)->lpVtbl->GetBackgroundDepth(p,a,b)
-#define IDirect3DViewport3_Clear(p,a,b,c)               (p)->lpVtbl->Clear(p,a,b,c)
-#define IDirect3DViewport3_AddLight(p,a)                (p)->lpVtbl->AddLight(p,a)
-#define IDirect3DViewport3_DeleteLight(p,a)             (p)->lpVtbl->DeleteLight(p,a)
-#define IDirect3DViewport3_NextLight(p,a,b,c)           (p)->lpVtbl->NextLight(p,a,b,c)
-/*** IDirect3DViewport2 methods ***/
-#define IDirect3DViewport3_GetViewport2(p,a) (p)->lpVtbl->GetViewport2(p,a)
-#define IDirect3DViewport3_SetViewport2(p,a) (p)->lpVtbl->SetViewport2(p,a)
-/*** IDirect3DViewport3 methods ***/
-#define IDirect3DViewport3_SetBackgroundDepth2(p,a)   (p)->lpVtbl->SetBackgroundDepth2(p,a)
-#define IDirect3DViewport3_GetBackgroundDepth2(p,a,b) (p)->lpVtbl->GetBackgroundDepth2(p,a,b)
-#define IDirect3DViewport3_Clear2(p,a,b,c,d,e,f)      (p)->lpVtbl->Clear2(p,a,b,c,d,e,f)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DViewport3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DViewport3_AddRef(p)             (p)->AddRef()
-#define IDirect3DViewport3_Release(p)            (p)->Release()
-/*** IDirect3Viewport methods ***/
-#define IDirect3DViewport3_Initialize(p,a)              (p)->Initialize(a)
-#define IDirect3DViewport3_GetViewport(p,a)             (p)->GetViewport(a)
-#define IDirect3DViewport3_SetViewport(p,a)             (p)->SetViewport(a)
-#define IDirect3DViewport3_TransformVertices(p,a,b,c,d) (p)->TransformVertices(a,b,c,d)
-#define IDirect3DViewport3_LightElements(p,a,b)         (p)->LightElements(a,b)
-#define IDirect3DViewport3_SetBackground(p,a)           (p)->SetBackground(a)
-#define IDirect3DViewport3_GetBackground(p,a,b)         (p)->GetBackground(a,b)
-#define IDirect3DViewport3_SetBackgroundDepth(p,a)      (p)->SetBackgroundDepth(a)
-#define IDirect3DViewport3_GetBackgroundDepth(p,a,b)    (p)->GetBackgroundDepth(a,b)
-#define IDirect3DViewport3_Clear(p,a,b,c)               (p)->Clear(a,b,c)
-#define IDirect3DViewport3_AddLight(p,a)                (p)->AddLight(a)
-#define IDirect3DViewport3_DeleteLight(p,a)             (p)->DeleteLight(a)
-#define IDirect3DViewport3_NextLight(p,a,b,c)           (p)->NextLight(a,b,c)
-/*** IDirect3DViewport2 methods ***/
-#define IDirect3DViewport3_GetViewport2(p,a) (p)->GetViewport2(a)
-#define IDirect3DViewport3_SetViewport2(p,a) (p)->SetViewport2(a)
-/*** IDirect3DViewport3 methods ***/
-#define IDirect3DViewport3_SetBackgroundDepth2(p,a)   (p)->SetBackgroundDepth2(a)
-#define IDirect3DViewport3_GetBackgroundDepth2(p,a,b) (p)->GetBackgroundDepth2(a,b)
-#define IDirect3DViewport3_Clear2(p,a,b,c,d,e,f)      (p)->Clear2(a,b,c,d,e,f)
-#endif
-
-
-
-/*****************************************************************************
- * IDirect3DExecuteBuffer interface
- */
-#define INTERFACE IDirect3DExecuteBuffer
-DECLARE_INTERFACE_(IDirect3DExecuteBuffer,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DExecuteBuffer methods ***/
-    STDMETHOD(Initialize)(THIS_ LPDIRECT3DDEVICE lpDirect3DDevice, LPD3DEXECUTEBUFFERDESC lpDesc) PURE;
-    STDMETHOD(Lock)(THIS_ LPD3DEXECUTEBUFFERDESC lpDesc) PURE;
-    STDMETHOD(Unlock)(THIS) PURE;
-    STDMETHOD(SetExecuteData)(THIS_ LPD3DEXECUTEDATA lpData) PURE;
-    STDMETHOD(GetExecuteData)(THIS_ LPD3DEXECUTEDATA lpData) PURE;
-    STDMETHOD(Validate)(THIS_ LPDWORD lpdwOffset, LPD3DVALIDATECALLBACK lpFunc, LPVOID lpUserArg, DWORD dwReserved) PURE;
-    STDMETHOD(Optimize)(THIS_ DWORD dwDummy) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DExecuteBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DExecuteBuffer_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DExecuteBuffer_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3DExecuteBuffer methods ***/
-#define IDirect3DExecuteBuffer_Initialize(p,a,b)   (p)->lpVtbl->Initialize(p,a,b)
-#define IDirect3DExecuteBuffer_Lock(p,a)           (p)->lpVtbl->Lock(p,a)
-#define IDirect3DExecuteBuffer_Unlock(p)           (p)->lpVtbl->Unlock(p)
-#define IDirect3DExecuteBuffer_SetExecuteData(p,a) (p)->lpVtbl->SetExecuteData(p,a)
-#define IDirect3DExecuteBuffer_GetExecuteData(p,a) (p)->lpVtbl->GetExecuteData(p,a)
-#define IDirect3DExecuteBuffer_Validate(p,a,b,c,d) (p)->lpVtbl->Validate(p,a,b,c,d)
-#define IDirect3DExecuteBuffer_Optimize(p,a)       (p)->lpVtbl->Optimize(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DExecuteBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DExecuteBuffer_AddRef(p)             (p)->AddRef()
-#define IDirect3DExecuteBuffer_Release(p)            (p)->Release()
-/*** IDirect3DExecuteBuffer methods ***/
-#define IDirect3DExecuteBuffer_Initialize(p,a,b)   (p)->Initialize(a,b)
-#define IDirect3DExecuteBuffer_Lock(p,a)           (p)->Lock(a)
-#define IDirect3DExecuteBuffer_Unlock(p)           (p)->Unlock()
-#define IDirect3DExecuteBuffer_SetExecuteData(p,a) (p)->SetExecuteData(a)
-#define IDirect3DExecuteBuffer_GetExecuteData(p,a) (p)->GetExecuteData(a)
-#define IDirect3DExecuteBuffer_Validate(p,a,b,c,d) (p)->Validate(a,b,c,d)
-#define IDirect3DExecuteBuffer_Optimize(p,a)       (p)->Optimize(a)
-#endif
-
-
-/*****************************************************************************
- * IDirect3DDevice interface
- */
-#define INTERFACE IDirect3DDevice
-DECLARE_INTERFACE_(IDirect3DDevice,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DDevice methods ***/
-    STDMETHOD(Initialize)(THIS_ LPDIRECT3D lpDirect3D, LPGUID lpGUID, LPD3DDEVICEDESC lpD3DDVDesc) PURE;
-    STDMETHOD(GetCaps)(THIS_ LPD3DDEVICEDESC lpD3DHWDevDesc, LPD3DDEVICEDESC lpD3DHELDevDesc) PURE;
-    STDMETHOD(SwapTextureHandles)(THIS_ LPDIRECT3DTEXTURE lpD3Dtex1, LPDIRECT3DTEXTURE lpD3DTex2) PURE;
-    STDMETHOD(CreateExecuteBuffer)(THIS_ LPD3DEXECUTEBUFFERDESC lpDesc, LPDIRECT3DEXECUTEBUFFER *lplpDirect3DExecuteBuffer, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(GetStats)(THIS_ LPD3DSTATS lpD3DStats) PURE;
-    STDMETHOD(Execute)(THIS_ LPDIRECT3DEXECUTEBUFFER lpDirect3DExecuteBuffer, LPDIRECT3DVIEWPORT lpDirect3DViewport, DWORD dwFlags) PURE;
-    STDMETHOD(AddViewport)(THIS_ LPDIRECT3DVIEWPORT lpDirect3DViewport) PURE;
-    STDMETHOD(DeleteViewport)(THIS_ LPDIRECT3DVIEWPORT lpDirect3DViewport) PURE;
-    STDMETHOD(NextViewport)(THIS_ LPDIRECT3DVIEWPORT lpDirect3DViewport, LPDIRECT3DVIEWPORT *lplpDirect3DViewport, DWORD dwFlags) PURE;
-    STDMETHOD(Pick)(THIS_ LPDIRECT3DEXECUTEBUFFER lpDirect3DExecuteBuffer, LPDIRECT3DVIEWPORT lpDirect3DViewport, DWORD dwFlags, LPD3DRECT lpRect) PURE;
-    STDMETHOD(GetPickRecords)(THIS_ LPDWORD lpCount, LPD3DPICKRECORD lpD3DPickRec) PURE;
-    STDMETHOD(EnumTextureFormats)(THIS_ LPD3DENUMTEXTUREFORMATSCALLBACK lpD3DEnumTextureProc, LPVOID lpArg) PURE;
-    STDMETHOD(CreateMatrix)(THIS_ LPD3DMATRIXHANDLE lpD3DMatHandle) PURE;
-    STDMETHOD(SetMatrix)(THIS_ D3DMATRIXHANDLE D3DMatHandle, LPD3DMATRIX lpD3DMatrix) PURE;
-    STDMETHOD(GetMatrix)(THIS_ D3DMATRIXHANDLE D3DMatHandle, LPD3DMATRIX lpD3DMatrix) PURE;
-    STDMETHOD(DeleteMatrix)(THIS_ D3DMATRIXHANDLE D3DMatHandle) PURE;
-    STDMETHOD(BeginScene)(THIS) PURE;
-    STDMETHOD(EndScene)(THIS) PURE;
-    STDMETHOD(GetDirect3D)(THIS_ LPDIRECT3D *lplpDirect3D) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DDevice_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DDevice_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DDevice_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3DDevice methods ***/
-#define IDirect3DDevice_Initialize(p,a,b,c)          (p)->lpVtbl->Initialize(p,a,b,c)
-#define IDirect3DDevice_GetCaps(p,a,b)               (p)->lpVtbl->GetCaps(p,a,b)
-#define IDirect3DDevice_SwapTextureHandles(p,a,b)    (p)->lpVtbl->SwapTextureHandles(p,a,b)
-#define IDirect3DDevice_CreateExecuteBuffer(p,a,b,c) (p)->lpVtbl->CreateExecuteBuffer(p,a,b,c)
-#define IDirect3DDevice_GetStats(p,a)                (p)->lpVtbl->GetStats(p,a)
-#define IDirect3DDevice_Execute(p,a,b,c)             (p)->lpVtbl->Execute(p,a,b,c)
-#define IDirect3DDevice_AddViewport(p,a)             (p)->lpVtbl->AddViewport(p,a)
-#define IDirect3DDevice_DeleteViewport(p,a)          (p)->lpVtbl->DeleteViewport(p,a)
-#define IDirect3DDevice_NextViewport(p,a,b,c)        (p)->lpVtbl->NextViewport(p,a,b,c)
-#define IDirect3DDevice_Pick(p,a,b,c,d)              (p)->lpVtbl->Pick(p,a,b,c,d)
-#define IDirect3DDevice_GetPickRecords(p,a,b)        (p)->lpVtbl->GetPickRecords(p,a,b)
-#define IDirect3DDevice_EnumTextureFormats(p,a,b)    (p)->lpVtbl->EnumTextureFormats(p,a,b)
-#define IDirect3DDevice_CreateMatrix(p,a)            (p)->lpVtbl->CreateMatrix(p,a)
-#define IDirect3DDevice_SetMatrix(p,a,b)             (p)->lpVtbl->SetMatrix(p,a,b)
-#define IDirect3DDevice_GetMatrix(p,a,b)             (p)->lpVtbl->GetMatrix(p,a,b)
-#define IDirect3DDevice_DeleteMatrix(p,a)            (p)->lpVtbl->DeleteMatrix(p,a)
-#define IDirect3DDevice_BeginScene(p)                (p)->lpVtbl->BeginScene(p)
-#define IDirect3DDevice_EndScene(p)                  (p)->lpVtbl->EndScene(p)
-#define IDirect3DDevice_GetDirect3D(p,a)             (p)->lpVtbl->GetDirect3D(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DDevice_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DDevice_AddRef(p)             (p)->AddRef()
-#define IDirect3DDevice_Release(p)            (p)->Release()
-/*** IDirect3DDevice methods ***/
-#define IDirect3DDevice_Initialize(p,a,b,c)          (p)->Initialize(a,b,c)
-#define IDirect3DDevice_GetCaps(p,a,b)               (p)->GetCaps(a,b)
-#define IDirect3DDevice_SwapTextureHandles(p,a,b)    (p)->SwapTextureHandles(a,b)
-#define IDirect3DDevice_CreateExecuteBuffer(p,a,b,c) (p)->CreateExecuteBuffer(a,b,c)
-#define IDirect3DDevice_GetStats(p,a)                (p)->GetStats(a)
-#define IDirect3DDevice_Execute(p,a,b,c)             (p)->Execute(a,b,c)
-#define IDirect3DDevice_AddViewport(p,a)             (p)->AddViewport(a)
-#define IDirect3DDevice_DeleteViewport(p,a)          (p)->DeleteViewport(a)
-#define IDirect3DDevice_NextViewport(p,a,b,c)        (p)->NextViewport(a,b,c)
-#define IDirect3DDevice_Pick(p,a,b,c,d)              (p)->Pick(a,b,c,d)
-#define IDirect3DDevice_GetPickRecords(p,a,b)        (p)->GetPickRecords(a,b)
-#define IDirect3DDevice_EnumTextureFormats(p,a,b)    (p)->EnumTextureFormats(a,b)
-#define IDirect3DDevice_CreateMatrix(p,a)            (p)->CreateMatrix(a)
-#define IDirect3DDevice_SetMatrix(p,a,b)             (p)->SetMatrix(a,b)
-#define IDirect3DDevice_GetMatrix(p,a,b)             (p)->GetMatrix(a,b)
-#define IDirect3DDevice_DeleteMatrix(p,a)            (p)->DeleteMatrix(a)
-#define IDirect3DDevice_BeginScene(p)                (p)->BeginScene()
-#define IDirect3DDevice_EndScene(p)                  (p)->EndScene()
-#define IDirect3DDevice_GetDirect3D(p,a)             (p)->GetDirect3D(a)
-#endif
-
-
-/*****************************************************************************
- * IDirect3DDevice2 interface
- */
-#define INTERFACE IDirect3DDevice2
-DECLARE_INTERFACE_(IDirect3DDevice2,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DDevice2 methods ***/
-    STDMETHOD(GetCaps)(THIS_ LPD3DDEVICEDESC lpD3DHWDevDesc, LPD3DDEVICEDESC lpD3DHELDevDesc) PURE;
-    STDMETHOD(SwapTextureHandles)(THIS_ LPDIRECT3DTEXTURE2 lpD3DTex1, LPDIRECT3DTEXTURE2 lpD3DTex2) PURE;
-    STDMETHOD(GetStats)(THIS_ LPD3DSTATS lpD3DStats) PURE;
-    STDMETHOD(AddViewport)(THIS_ LPDIRECT3DVIEWPORT2 lpDirect3DViewport2) PURE;
-    STDMETHOD(DeleteViewport)(THIS_ LPDIRECT3DVIEWPORT2 lpDirect3DViewport2) PURE;
-    STDMETHOD(NextViewport)(THIS_ LPDIRECT3DVIEWPORT2 lpDirect3DViewport2, LPDIRECT3DVIEWPORT2 *lplpDirect3DViewport2, DWORD dwFlags) PURE;
-    STDMETHOD(EnumTextureFormats)(THIS_ LPD3DENUMTEXTUREFORMATSCALLBACK lpD3DEnumTextureProc, LPVOID lpArg) PURE;
-    STDMETHOD(BeginScene)(THIS) PURE;
-    STDMETHOD(EndScene)(THIS) PURE;
-    STDMETHOD(GetDirect3D)(THIS_ LPDIRECT3D2 *lplpDirect3D2) PURE;
-    /*** DrawPrimitive API ***/
-    STDMETHOD(SetCurrentViewport)(THIS_ LPDIRECT3DVIEWPORT2 lpDirect3DViewport2) PURE;
-    STDMETHOD(GetCurrentViewport)(THIS_ LPDIRECT3DVIEWPORT2 *lplpDirect3DViewport2) PURE;
-    STDMETHOD(SetRenderTarget)(THIS_ LPDIRECTDRAWSURFACE lpNewRenderTarget, DWORD dwFlags) PURE;
-    STDMETHOD(GetRenderTarget)(THIS_ LPDIRECTDRAWSURFACE *lplpRenderTarget) PURE;
-    STDMETHOD(Begin)(THIS_ D3DPRIMITIVETYPE d3dpt,D3DVERTEXTYPE dwVertexTypeDesc,DWORD dwFlags) PURE;
-    STDMETHOD(BeginIndexed)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType, D3DVERTEXTYPE d3dvtVertexType, LPVOID lpvVertices, DWORD dwNumVertices, DWORD dwFlags) PURE;
-    STDMETHOD(Vertex)(THIS_ LPVOID lpVertexType) PURE;
-    STDMETHOD(Index)(THIS_ WORD wVertexIndex) PURE;
-    STDMETHOD(End)(THIS_ DWORD dwFlags) PURE;
-    STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, LPDWORD lpdwRenderState) PURE;
-    STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, DWORD dwRenderState) PURE;
-    STDMETHOD(GetLightState)(THIS_ D3DLIGHTSTATETYPE dwLightStateType, LPDWORD lpdwLightState) PURE;
-    STDMETHOD(SetLightState)(THIS_ D3DLIGHTSTATETYPE dwLightStateType, DWORD dwLightState) PURE;
-    STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix) PURE;
-    STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix) PURE;
-    STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix) PURE;
-    STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType, D3DVERTEXTYPE d3dvtVertexType, LPVOID lpvVertices, DWORD dwVertexCount, DWORD dwFlags) PURE;
-    STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType, D3DVERTEXTYPE d3dvtVertexType, LPVOID lpvVertices, DWORD dwVertexCount, LPWORD dwIndices, DWORD dwIndexCount, DWORD dwFlags) PURE;
-    STDMETHOD(SetClipStatus)(THIS_ LPD3DCLIPSTATUS lpD3DClipStatus) PURE;
-    STDMETHOD(GetClipStatus)(THIS_ LPD3DCLIPSTATUS lpD3DClipStatus) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DDevice2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DDevice2_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DDevice2_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3DDevice2 methods ***/
-#define IDirect3DDevice2_GetCaps(p,a,b)                        (p)->lpVtbl->GetCaps(p,a,b)
-#define IDirect3DDevice2_SwapTextureHandles(p,a,b)             (p)->lpVtbl->SwapTextureHandles(p,a,b)
-#define IDirect3DDevice2_GetStats(p,a)                         (p)->lpVtbl->GetStats(p,a)
-#define IDirect3DDevice2_AddViewport(p,a)                      (p)->lpVtbl->AddViewport(p,a)
-#define IDirect3DDevice2_DeleteViewport(p,a)                   (p)->lpVtbl->DeleteViewport(p,a)
-#define IDirect3DDevice2_NextViewport(p,a,b,c)                 (p)->lpVtbl->NextViewport(p,a,b,c)
-#define IDirect3DDevice2_EnumTextureFormats(p,a,b)             (p)->lpVtbl->EnumTextureFormats(p,a,b)
-#define IDirect3DDevice2_BeginScene(p)                         (p)->lpVtbl->BeginScene(p)
-#define IDirect3DDevice2_EndScene(p)                           (p)->lpVtbl->EndScene(p)
-#define IDirect3DDevice2_GetDirect3D(p,a)                      (p)->lpVtbl->GetDirect3D(p,a)
-#define IDirect3DDevice2_SetCurrentViewport(p,a)               (p)->lpVtbl->SetCurrentViewport(p,a)
-#define IDirect3DDevice2_GetCurrentViewport(p,a)               (p)->lpVtbl->GetCurrentViewport(p,a)
-#define IDirect3DDevice2_SetRenderTarget(p,a,b)                (p)->lpVtbl->SetRenderTarget(p,a,b)
-#define IDirect3DDevice2_GetRenderTarget(p,a)                  (p)->lpVtbl->GetRenderTarget(p,a)
-#define IDirect3DDevice2_Begin(p,a,b,c)                        (p)->lpVtbl->Begin(p,a,b,c)
-#define IDirect3DDevice2_BeginIndexed(p,a,b,c,d,e)             (p)->lpVtbl->BeginIndexed(p,a,b,c,d,e)
-#define IDirect3DDevice2_Vertex(p,a)                           (p)->lpVtbl->Vertex(p,a)
-#define IDirect3DDevice2_Index(p,a)                            (p)->lpVtbl->Index(p,a)
-#define IDirect3DDevice2_End(p,a)                              (p)->lpVtbl->End(p,a)
-#define IDirect3DDevice2_GetRenderState(p,a,b)                 (p)->lpVtbl->GetRenderState(p,a,b)
-#define IDirect3DDevice2_SetRenderState(p,a,b)                 (p)->lpVtbl->SetRenderState(p,a,b)
-#define IDirect3DDevice2_GetLightState(p,a,b)                  (p)->lpVtbl->GetLightState(p,a,b)
-#define IDirect3DDevice2_SetLightState(p,a,b)                  (p)->lpVtbl->SetLightState(p,a,b)
-#define IDirect3DDevice2_SetTransform(p,a,b)                   (p)->lpVtbl->SetTransform(p,a,b)
-#define IDirect3DDevice2_GetTransform(p,a,b)                   (p)->lpVtbl->GetTransform(p,a,b)
-#define IDirect3DDevice2_MultiplyTransform(p,a,b)              (p)->lpVtbl->MultiplyTransform(p,a,b)
-#define IDirect3DDevice2_DrawPrimitive(p,a,b,c,d,e)            (p)->lpVtbl->DrawPrimitive(p,a,b,c,d,e)
-#define IDirect3DDevice2_DrawIndexedPrimitive(p,a,b,c,d,e,f,g) (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f,g)
-#define IDirect3DDevice2_SetClipStatus(p,a)                    (p)->lpVtbl->SetClipStatus(p,a)
-#define IDirect3DDevice2_GetClipStatus(p,a)                    (p)->lpVtbl->GetClipStatus(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DDevice2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DDevice2_AddRef(p)             (p)->AddRef()
-#define IDirect3DDevice2_Release(p)            (p)->Release()
-/*** IDirect3DDevice2 methods ***/
-#define IDirect3DDevice2_GetCaps(p,a,b)                        (p)->GetCaps(a,b)
-#define IDirect3DDevice2_SwapTextureHandles(p,a,b)             (p)->SwapTextureHandles(a,b)
-#define IDirect3DDevice2_GetStats(p,a)                         (p)->GetStats(a)
-#define IDirect3DDevice2_AddViewport(p,a)                      (p)->AddViewport(a)
-#define IDirect3DDevice2_DeleteViewport(p,a)                   (p)->DeleteViewport(a)
-#define IDirect3DDevice2_NextViewport(p,a,b,c)                 (p)->NextViewport(a,b,c)
-#define IDirect3DDevice2_EnumTextureFormats(p,a,b)             (p)->EnumTextureFormats(a,b)
-#define IDirect3DDevice2_BeginScene(p)                         (p)->BeginScene()
-#define IDirect3DDevice2_EndScene(p)                           (p)->EndScene()
-#define IDirect3DDevice2_GetDirect3D(p,a)                      (p)->GetDirect3D(a)
-#define IDirect3DDevice2_SetCurrentViewport(p,a)               (p)->SetCurrentViewport(a)
-#define IDirect3DDevice2_GetCurrentViewport(p,a)               (p)->GetCurrentViewport(a)
-#define IDirect3DDevice2_SetRenderTarget(p,a,b)                (p)->SetRenderTarget(a,b)
-#define IDirect3DDevice2_GetRenderTarget(p,a)                  (p)->GetRenderTarget(a)
-#define IDirect3DDevice2_Begin(p,a,b,c)                        (p)->Begin(a,b,c)
-#define IDirect3DDevice2_BeginIndexed(p,a,b,c,d,e)             (p)->BeginIndexed(a,b,c,d,e)
-#define IDirect3DDevice2_Vertex(p,a)                           (p)->Vertex(a)
-#define IDirect3DDevice2_Index(p,a)                            (p)->Index(a)
-#define IDirect3DDevice2_End(p,a)                              (p)->End(a)
-#define IDirect3DDevice2_GetRenderState(p,a,b)                 (p)->GetRenderState(a,b)
-#define IDirect3DDevice2_SetRenderState(p,a,b)                 (p)->SetRenderState(a,b)
-#define IDirect3DDevice2_GetLightState(p,a,b)                  (p)->GetLightState(a,b)
-#define IDirect3DDevice2_SetLightState(p,a,b)                  (p)->SetLightState(a,b)
-#define IDirect3DDevice2_SetTransform(p,a,b)                   (p)->SetTransform(a,b)
-#define IDirect3DDevice2_GetTransform(p,a,b)                   (p)->GetTransform(a,b)
-#define IDirect3DDevice2_MultiplyTransform(p,a,b)              (p)->MultiplyTransform(a,b)
-#define IDirect3DDevice2_DrawPrimitive(p,a,b,c,d,e)            (p)->DrawPrimitive(a,b,c,d,e)
-#define IDirect3DDevice2_DrawIndexedPrimitive(p,a,b,c,d,e,f,g) (p)->DrawIndexedPrimitive(a,b,c,d,e,f,g)
-#define IDirect3DDevice2_SetClipStatus(p,a)                    (p)->SetClipStatus(a)
-#define IDirect3DDevice2_GetClipStatus(p,a)                    (p)->GetClipStatus(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DDevice3 interface
- */
-#define INTERFACE IDirect3DDevice3
-DECLARE_INTERFACE_(IDirect3DDevice3,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DDevice3 methods ***/
-    STDMETHOD(GetCaps)(THIS_ LPD3DDEVICEDESC lpD3DHWDevDesc, LPD3DDEVICEDESC lpD3DHELDevDesc) PURE;
-    STDMETHOD(GetStats)(THIS_ LPD3DSTATS lpD3DStats) PURE;
-    STDMETHOD(AddViewport)(THIS_ LPDIRECT3DVIEWPORT3 lpDirect3DViewport3) PURE;
-    STDMETHOD(DeleteViewport)(THIS_ LPDIRECT3DVIEWPORT3 lpDirect3DViewport3) PURE;
-    STDMETHOD(NextViewport)(THIS_ LPDIRECT3DVIEWPORT3 lpDirect3DViewport3, LPDIRECT3DVIEWPORT3 *lplpDirect3DViewport3, DWORD dwFlags) PURE;
-    STDMETHOD(EnumTextureFormats)(THIS_ LPD3DENUMPIXELFORMATSCALLBACK lpD3DEnumPixelProc, LPVOID lpArg) PURE;
-    STDMETHOD(BeginScene)(THIS) PURE;
-    STDMETHOD(EndScene)(THIS) PURE;
-    STDMETHOD(GetDirect3D)(THIS_ LPDIRECT3D3 *lplpDirect3D3) PURE;
-    /*** DrawPrimitive API ***/
-    STDMETHOD(SetCurrentViewport)(THIS_ LPDIRECT3DVIEWPORT3 lpDirect3DViewport3) PURE;
-    STDMETHOD(GetCurrentViewport)(THIS_ LPDIRECT3DVIEWPORT3 *lplpDirect3DViewport3) PURE;
-    STDMETHOD(SetRenderTarget)(THIS_ LPDIRECTDRAWSURFACE4 lpNewRenderTarget, DWORD dwFlags) PURE;
-    STDMETHOD(GetRenderTarget)(THIS_ LPDIRECTDRAWSURFACE4 *lplpRenderTarget) PURE;
-    STDMETHOD(Begin)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,DWORD dwVertexTypeDesc, DWORD dwFlags) PURE;
-    STDMETHOD(BeginIndexed)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,DWORD d3dvtVertexType, LPVOID lpvVertices, DWORD dwNumVertices, DWORD dwFlags) PURE;
-    STDMETHOD(Vertex)(THIS_ LPVOID lpVertexType) PURE;
-    STDMETHOD(Index)(THIS_ WORD wVertexIndex) PURE;
-    STDMETHOD(End)(THIS_ DWORD dwFlags) PURE;
-    STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, LPDWORD lpdwRenderState) PURE;
-    STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, DWORD dwRenderState) PURE;
-    STDMETHOD(GetLightState)(THIS_ D3DLIGHTSTATETYPE dwLightStateType, LPDWORD lpdwLightState) PURE;
-    STDMETHOD(SetLightState)(THIS_ D3DLIGHTSTATETYPE dwLightStateType, DWORD dwLightState) PURE;
-    STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix) PURE;
-    STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix) PURE;
-    STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix) PURE;
-    STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType, DWORD d3dvtVertexType, LPVOID lpvVertices, DWORD dwVertexCount, DWORD dwFlags) PURE;
-    STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType, DWORD d3dvtVertexType, LPVOID lpvVertices, DWORD dwVertexCount, LPWORD dwIndices, DWORD dwIndexCount, DWORD dwFlags) PURE;
-    STDMETHOD(SetClipStatus)(THIS_ LPD3DCLIPSTATUS lpD3DClipStatus) PURE;
-    STDMETHOD(GetClipStatus)(THIS_ LPD3DCLIPSTATUS lpD3DClipStatus) PURE;
-    STDMETHOD(DrawPrimitiveStrided)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,DWORD dwVertexType,LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData,DWORD dwVertexCount,DWORD dwFlags) PURE;
-    STDMETHOD(DrawIndexedPrimitiveStrided)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,DWORD dwVertexType,LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData,DWORD dwVertexCount,LPWORD lpIndex,DWORD dwIndexCount,DWORD dwFlags) PURE;
-    STDMETHOD(DrawPrimitiveVB)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,LPDIRECT3DVERTEXBUFFER lpD3DVertexBuf,DWORD dwStartVertex,DWORD dwNumVertices,DWORD dwFlags) PURE;
-    STDMETHOD(DrawIndexedPrimitiveVB)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,LPDIRECT3DVERTEXBUFFER lpD3DVertexBuf,LPWORD lpwIndices,DWORD dwIndexCount,DWORD dwFlags) PURE;
-    STDMETHOD(ComputeSphereVisibility)(THIS_ LPD3DVECTOR lpCenters,LPD3DVALUE lpRadii,DWORD dwNumSpheres,DWORD dwFlags,LPDWORD lpdwReturnValues) PURE;
-    STDMETHOD(GetTexture)(THIS_ DWORD dwStage,LPDIRECT3DTEXTURE2 *lplpTexture2) PURE;
-    STDMETHOD(SetTexture)(THIS_ DWORD dwStage,LPDIRECT3DTEXTURE2 lpTexture2) PURE;
-    STDMETHOD(GetTextureStageState)(THIS_ DWORD dwStage,D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,LPDWORD lpdwState) PURE;
-    STDMETHOD(SetTextureStageState)(THIS_ DWORD dwStage,D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,DWORD dwState) PURE;
-    STDMETHOD(ValidateDevice)(THIS_ LPDWORD lpdwPasses) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DDevice3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DDevice3_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DDevice3_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3DDevice3 methods ***/
-#define IDirect3DDevice3_GetCaps(p,a,b)                        (p)->lpVtbl->GetCaps(p,a,b)
-#define IDirect3DDevice3_GetStats(p,a)                         (p)->lpVtbl->GetStats(p,a)
-#define IDirect3DDevice3_AddViewport(p,a)                      (p)->lpVtbl->AddViewport(p,a)
-#define IDirect3DDevice3_DeleteViewport(p,a)                   (p)->lpVtbl->DeleteViewport(p,a)
-#define IDirect3DDevice3_NextViewport(p,a,b,c)                 (p)->lpVtbl->NextViewport(p,a,b,c)
-#define IDirect3DDevice3_EnumTextureFormats(p,a,b)             (p)->lpVtbl->EnumTextureFormats(p,a,b)
-#define IDirect3DDevice3_BeginScene(p)                         (p)->lpVtbl->BeginScene(p)
-#define IDirect3DDevice3_EndScene(p)                           (p)->lpVtbl->EndScene(p)
-#define IDirect3DDevice3_GetDirect3D(p,a)                      (p)->lpVtbl->GetDirect3D(p,a)
-#define IDirect3DDevice3_SetCurrentViewport(p,a)               (p)->lpVtbl->SetCurrentViewport(p,a)
-#define IDirect3DDevice3_GetCurrentViewport(p,a)               (p)->lpVtbl->GetCurrentViewport(p,a)
-#define IDirect3DDevice3_SetRenderTarget(p,a,b)                (p)->lpVtbl->SetRenderTarget(p,a,b)
-#define IDirect3DDevice3_GetRenderTarget(p,a)                  (p)->lpVtbl->GetRenderTarget(p,a)
-#define IDirect3DDevice3_Begin(p,a,b,c)                        (p)->lpVtbl->Begin(p,a,b,c)
-#define IDirect3DDevice3_BeginIndexed(p,a,b,c,d,e)             (p)->lpVtbl->BeginIndexed(p,a,b,c,d,e)
-#define IDirect3DDevice3_Vertex(p,a)                           (p)->lpVtbl->Vertex(p,a)
-#define IDirect3DDevice3_Index(p,a)                            (p)->lpVtbl->Index(p,a)
-#define IDirect3DDevice3_End(p,a)                              (p)->lpVtbl->End(p,a)
-#define IDirect3DDevice3_GetRenderState(p,a,b)                 (p)->lpVtbl->GetRenderState(p,a,b)
-#define IDirect3DDevice3_SetRenderState(p,a,b)                 (p)->lpVtbl->SetRenderState(p,a,b)
-#define IDirect3DDevice3_GetLightState(p,a,b)                  (p)->lpVtbl->GetLightState(p,a,b)
-#define IDirect3DDevice3_SetLightState(p,a,b)                  (p)->lpVtbl->SetLightState(p,a,b)
-#define IDirect3DDevice3_SetTransform(p,a,b)                   (p)->lpVtbl->SetTransform(p,a,b)
-#define IDirect3DDevice3_GetTransform(p,a,b)                   (p)->lpVtbl->GetTransform(p,a,b)
-#define IDirect3DDevice3_MultiplyTransform(p,a,b)              (p)->lpVtbl->MultiplyTransform(p,a,b)
-#define IDirect3DDevice3_DrawPrimitive(p,a,b,c,d,e)            (p)->lpVtbl->DrawPrimitive(p,a,b,c,d,e)
-#define IDirect3DDevice3_DrawIndexedPrimitive(p,a,b,c,d,e,f,g) (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f,g)
-#define IDirect3DDevice3_SetClipStatus(p,a)                    (p)->lpVtbl->SetClipStatus(p,a)
-#define IDirect3DDevice3_GetClipStatus(p,a)                    (p)->lpVtbl->GetClipStatus(p,a)
-#define IDirect3DDevice3_DrawPrimitiveStrided(p,a,b,c,d,e)     (p)->lpVtbl->DrawPrimitiveStrided(p,a,b,c,d,e)
-#define IDirect3DDevice3_DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g) (p)->lpVtbl->DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g)
-#define IDirect3DDevice3_DrawPrimitiveVB(p,a,b,c,d,e)          (p)->lpVtbl->DrawPrimitiveVB(p,a,b,c,d,e)
-#define IDirect3DDevice3_DrawIndexedPrimitiveVB(p,a,b,c,d,e)   (p)->lpVtbl->DrawIndexedPrimitiveVB(p,a,b,c,d,e)
-#define IDirect3DDevice3_ComputeSphereVisibility(p,a,b,c,d,e)  (p)->lpVtbl->ComputeSphereVisibility(p,a,b,c,d,e)
-#define IDirect3DDevice3_GetTexture(p,a,b)                     (p)->lpVtbl->GetTexture(p,a,b)
-#define IDirect3DDevice3_SetTexture(p,a,b)                     (p)->lpVtbl->SetTexture(p,a,b)
-#define IDirect3DDevice3_GetTextureStageState(p,a,b,c)         (p)->lpVtbl->GetTextureStageState(p,a,b,c)
-#define IDirect3DDevice3_SetTextureStageState(p,a,b,c)         (p)->lpVtbl->SetTextureStageState(p,a,b,c)
-#define IDirect3DDevice3_ValidateDevice(p,a)                   (p)->lpVtbl->ValidateDevice(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DDevice3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DDevice3_AddRef(p)             (p)->AddRef()
-#define IDirect3DDevice3_Release(p)            (p)->Release()
-/*** IDirect3DDevice3 methods ***/
-#define IDirect3DDevice3_GetCaps(p,a,b)                        (p)->GetCaps(a,b)
-#define IDirect3DDevice3_GetStats(p,a)                         (p)->GetStats(a)
-#define IDirect3DDevice3_AddViewport(p,a)                      (p)->AddViewport(a)
-#define IDirect3DDevice3_DeleteViewport(p,a)                   (p)->DeleteViewport(a)
-#define IDirect3DDevice3_NextViewport(p,a,b,c)                 (p)->NextViewport(a,b,c)
-#define IDirect3DDevice3_EnumTextureFormats(p,a,b)             (p)->EnumTextureFormats(a,b)
-#define IDirect3DDevice3_BeginScene(p)                         (p)->BeginScene()
-#define IDirect3DDevice3_EndScene(p)                           (p)->EndScene()
-#define IDirect3DDevice3_GetDirect3D(p,a)                      (p)->GetDirect3D(a)
-#define IDirect3DDevice3_SetCurrentViewport(p,a)               (p)->SetCurrentViewport(a)
-#define IDirect3DDevice3_GetCurrentViewport(p,a)               (p)->GetCurrentViewport(a)
-#define IDirect3DDevice3_SetRenderTarget(p,a,b)                (p)->SetRenderTarget(a,b)
-#define IDirect3DDevice3_GetRenderTarget(p,a)                  (p)->GetRenderTarget(a)
-#define IDirect3DDevice3_Begin(p,a,b,c)                        (p)->Begin(a,b,c)
-#define IDirect3DDevice3_BeginIndexed(p,a,b,c,d,e)             (p)->BeginIndexed(a,b,c,d,e)
-#define IDirect3DDevice3_Vertex(p,a)                           (p)->Vertex(a)
-#define IDirect3DDevice3_Index(p,a)                            (p)->Index(a)
-#define IDirect3DDevice3_End(p,a)                              (p)->End(a)
-#define IDirect3DDevice3_GetRenderState(p,a,b)                 (p)->GetRenderState(a,b)
-#define IDirect3DDevice3_SetRenderState(p,a,b)                 (p)->SetRenderState(a,b)
-#define IDirect3DDevice3_GetLightState(p,a,b)                  (p)->GetLightState(a,b)
-#define IDirect3DDevice3_SetLightState(p,a,b)                  (p)->SetLightState(a,b)
-#define IDirect3DDevice3_SetTransform(p,a,b)                   (p)->SetTransform(a,b)
-#define IDirect3DDevice3_GetTransform(p,a,b)                   (p)->GetTransform(a,b)
-#define IDirect3DDevice3_MultiplyTransform(p,a,b)              (p)->MultiplyTransform(a,b)
-#define IDirect3DDevice3_DrawPrimitive(p,a,b,c,d,e)            (p)->DrawPrimitive(a,b,c,d,e)
-#define IDirect3DDevice3_DrawIndexedPrimitive(p,a,b,c,d,e,f,g) (p)->DrawIndexedPrimitive(a,b,c,d,e,f,g)
-#define IDirect3DDevice3_SetClipStatus(p,a)                    (p)->SetClipStatus(a)
-#define IDirect3DDevice3_GetClipStatus(p,a)                    (p)->GetClipStatus(a)
-#define IDirect3DDevice3_DrawPrimitiveStrided(p,a,b,c,d,e)     (p)->DrawPrimitiveStrided(a,b,c,d,e)
-#define IDirect3DDevice3_DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g) (p)->DrawIndexedPrimitiveStrided(a,b,c,d,e,f,g)
-#define IDirect3DDevice3_DrawPrimitiveVB(p,a,b,c,d,e)          (p)->DrawPrimitiveVB(a,b,c,d,e)
-#define IDirect3DDevice3_DrawIndexedPrimitiveVB(p,a,b,c,d,e)   (p)->DrawIndexedPrimitiveVB(a,b,c,d,e)
-#define IDirect3DDevice3_ComputeSphereVisibility(p,a,b,c,d,e)  (p)->ComputeSphereVisibility(a,b,c,d,e)
-#define IDirect3DDevice3_GetTexture(p,a,b)                     (p)->GetTexture(a,b)
-#define IDirect3DDevice3_SetTexture(p,a,b)                     (p)->SetTexture(a,b)
-#define IDirect3DDevice3_GetTextureStageState(p,a,b,c)         (p)->GetTextureStageState(a,b,c)
-#define IDirect3DDevice3_SetTextureStageState(p,a,b,c)         (p)->SetTextureStageState(a,b,c)
-#define IDirect3DDevice3_ValidateDevice(p,a)                   (p)->ValidateDevice(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DDevice7 interface
- */
-#define INTERFACE IDirect3DDevice7
-DECLARE_INTERFACE_(IDirect3DDevice7,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DDevice7 methods ***/
-    STDMETHOD(GetCaps)(THIS_ LPD3DDEVICEDESC7 lpD3DHELDevDesc) PURE;
-    STDMETHOD(EnumTextureFormats)(THIS_ LPD3DENUMPIXELFORMATSCALLBACK lpD3DEnumPixelProc, LPVOID lpArg) PURE;
-    STDMETHOD(BeginScene)(THIS) PURE;
-    STDMETHOD(EndScene)(THIS) PURE;
-    STDMETHOD(GetDirect3D)(THIS_ LPDIRECT3D7 *lplpDirect3D3) PURE;
-    STDMETHOD(SetRenderTarget)(THIS_ LPDIRECTDRAWSURFACE7 lpNewRenderTarget,DWORD dwFlags) PURE;
-    STDMETHOD(GetRenderTarget)(THIS_ LPDIRECTDRAWSURFACE7 *lplpRenderTarget) PURE;
-    STDMETHOD(Clear)(THIS_ DWORD dwCount,LPD3DRECT lpRects,DWORD dwFlags,D3DCOLOR dwColor,D3DVALUE dvZ,DWORD dwStencil) PURE;
-    STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix) PURE;
-    STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix) PURE;
-    STDMETHOD(SetViewport)(THIS_ LPD3DVIEWPORT7 lpData) PURE;
-    STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE dtstTransformStateType,LPD3DMATRIX lpD3DMatrix) PURE;
-    STDMETHOD(GetViewport)(THIS_ LPD3DVIEWPORT7 lpData) PURE;
-    STDMETHOD(SetMaterial)(THIS_ LPD3DMATERIAL7 lpMat) PURE;
-    STDMETHOD(GetMaterial)(THIS_ LPD3DMATERIAL7 lpMat) PURE;
-    STDMETHOD(SetLight)(THIS_ DWORD dwLightIndex,LPD3DLIGHT7 lpLight) PURE;
-    STDMETHOD(GetLight)(THIS_ DWORD dwLightIndex,LPD3DLIGHT7 lpLight) PURE;
-    STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, DWORD dwRenderState) PURE;
-    STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, LPDWORD lpdwRenderState) PURE;
-    STDMETHOD(BeginStateBlock)(THIS) PURE;
-    STDMETHOD(EndStateBlock)(THIS_ LPDWORD lpdwBlockHandle) PURE;
-    STDMETHOD(PreLoad)(THIS_ LPDIRECTDRAWSURFACE7 lpddsTexture) PURE;
-    STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType, DWORD d3dvtVertexType, LPVOID lpvVertices, DWORD dwVertexCount, DWORD dwFlags) PURE;
-    STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType, DWORD d3dvtVertexType, LPVOID lpvVertices, DWORD dwVertexCount, LPWORD dwIndices, DWORD dwIndexCount, DWORD dwFlags) PURE;
-    STDMETHOD(SetClipStatus)(THIS_ LPD3DCLIPSTATUS lpD3DClipStatus) PURE;
-    STDMETHOD(GetClipStatus)(THIS_ LPD3DCLIPSTATUS lpD3DClipStatus) PURE;
-    STDMETHOD(DrawPrimitiveStrided)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,DWORD dwVertexType,LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData,DWORD dwVertexCount,DWORD dwFlags) PURE;
-    STDMETHOD(DrawIndexedPrimitiveStrided)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,DWORD dwVertexType,LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData,DWORD dwVertexCount,LPWORD lpIndex,DWORD dwIndexCount,DWORD dwFlags) PURE;
-    STDMETHOD(DrawPrimitiveVB)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,LPDIRECT3DVERTEXBUFFER7 lpD3DVertexBuf,DWORD dwStartVertex,DWORD dwNumVertices,DWORD dwFlags) PURE;
-    STDMETHOD(DrawIndexedPrimitiveVB)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,LPDIRECT3DVERTEXBUFFER7 lpD3DVertexBuf,DWORD dwStartVertex,DWORD dwNumVertices,LPWORD lpwIndices,DWORD dwIndexCount,DWORD dwFlags) PURE;
-    STDMETHOD(ComputeSphereVisibility)(THIS_ LPD3DVECTOR lpCenters,LPD3DVALUE lpRadii,DWORD dwNumSpheres,DWORD dwFlags,LPDWORD lpdwReturnValues) PURE;
-    STDMETHOD(GetTexture)(THIS_ DWORD dwStage,LPDIRECTDRAWSURFACE7 *lpTexture) PURE;
-    STDMETHOD(SetTexture)(THIS_ DWORD dwStage,LPDIRECTDRAWSURFACE7 lpTexture) PURE;
-    STDMETHOD(GetTextureStageState)(THIS_ DWORD dwStage,D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,LPDWORD lpdwState) PURE;
-    STDMETHOD(SetTextureStageState)(THIS_ DWORD dwStage,D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,DWORD dwState) PURE;
-    STDMETHOD(ValidateDevice)(THIS_ LPDWORD lpdwPasses) PURE;
-    STDMETHOD(ApplyStateBlock)(THIS_ DWORD dwBlockHandle) PURE;
-    STDMETHOD(CaptureStateBlock)(THIS_ DWORD dwBlockHandle) PURE;
-    STDMETHOD(DeleteStateBlock)(THIS_ DWORD dwBlockHandle) PURE;
-    STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE d3dsbType,LPDWORD lpdwBlockHandle) PURE;
-    STDMETHOD(Load)(THIS_ LPDIRECTDRAWSURFACE7 lpDestTex,LPPOINT lpDestPoint,LPDIRECTDRAWSURFACE7 lpSrcTex,LPRECT lprcSrcRect,DWORD dwFlags) PURE;
-    STDMETHOD(LightEnable)(THIS_ DWORD dwLightIndex,BOOL bEnable) PURE;
-    STDMETHOD(GetLightEnable)(THIS_ DWORD dwLightIndex,BOOL *pbEnable) PURE;
-    STDMETHOD(SetClipPlane)(THIS_ DWORD dwIndex,D3DVALUE *pPlaneEquation) PURE;
-    STDMETHOD(GetClipPlane)(THIS_ DWORD dwIndex,D3DVALUE *pPlaneEquation) PURE;
-    STDMETHOD(GetInfo)(THIS_ DWORD dwDevInfoID,LPVOID pDevInfoStruct,DWORD dwSize) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DDevice7_QueryInterface(p,a,b)                        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DDevice7_AddRef(p)                                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DDevice7_Release(p)                                   (p)->lpVtbl->Release(p)
-/*** IDirect3DDevice7 methods ***/
-#define IDirect3DDevice7_GetCaps(p,a)                                 (p)->lpVtbl->GetCaps(p,a)
-#define IDirect3DDevice7_EnumTextureFormats(p,a,b)                    (p)->lpVtbl->EnumTextureFormats(p,a,b)
-#define IDirect3DDevice7_BeginScene(p)                                (p)->lpVtbl->BeginScene(p)
-#define IDirect3DDevice7_EndScene(p)                                  (p)->lpVtbl->EndScene(p)
-#define IDirect3DDevice7_GetDirect3D(p,a)                             (p)->lpVtbl->GetDirect3D(p,a)
-#define IDirect3DDevice7_SetRenderTarget(p,a,b)                       (p)->lpVtbl->SetRenderTarget(p,a,b)
-#define IDirect3DDevice7_GetRenderTarget(p,a)                         (p)->lpVtbl->GetRenderTarget(p,a)
-#define IDirect3DDevice7_Clear(p,a,b,c,d,e,f)                         (p)->lpVtbl->Clear(p,a,b,c,d,e,f)
-#define IDirect3DDevice7_SetTransform(p,a,b)                          (p)->lpVtbl->SetTransform(p,a,b)
-#define IDirect3DDevice7_GetTransform(p,a,b)                          (p)->lpVtbl->GetTransform(p,a,b)
-#define IDirect3DDevice7_SetViewport(p,a)                             (p)->lpVtbl->SetViewport(p,a)
-#define IDirect3DDevice7_MultiplyTransform(p,a,b)                     (p)->lpVtbl->MultiplyTransform(p,a,b)
-#define IDirect3DDevice7_GetViewport(p,a)                             (p)->lpVtbl->GetViewport(p,a)
-#define IDirect3DDevice7_SetMaterial(p,a)                             (p)->lpVtbl->SetMaterial(p,a)
-#define IDirect3DDevice7_GetMaterial(p,a)                             (p)->lpVtbl->GetMaterial(p,a)
-#define IDirect3DDevice7_SetLight(p,a,b)                              (p)->lpVtbl->SetLight(p,a,b)
-#define IDirect3DDevice7_GetLight(p,a,b)                              (p)->lpVtbl->GetLight(p,a,b)
-#define IDirect3DDevice7_SetRenderState(p,a,b)                        (p)->lpVtbl->SetRenderState(p,a,b)
-#define IDirect3DDevice7_GetRenderState(p,a,b)                        (p)->lpVtbl->GetRenderState(p,a,b)
-#define IDirect3DDevice7_BeginStateBlock(p)                           (p)->lpVtbl->BeginStateBlock(p)
-#define IDirect3DDevice7_EndStateBlock(p,a)                           (p)->lpVtbl->EndStateBlock(p,a)
-#define IDirect3DDevice7_PreLoad(p,a)                                 (p)->lpVtbl->PreLoad(p,a)
-#define IDirect3DDevice7_DrawPrimitive(p,a,b,c,d,e)                   (p)->lpVtbl->DrawPrimitive(p,a,b,c,d,e)
-#define IDirect3DDevice7_DrawIndexedPrimitive(p,a,b,c,d,e,f,g)        (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f,g)
-#define IDirect3DDevice7_SetClipStatus(p,a)                           (p)->lpVtbl->SetClipStatus(p,a)
-#define IDirect3DDevice7_GetClipStatus(p,a)                           (p)->lpVtbl->GetClipStatus(p,a)
-#define IDirect3DDevice7_DrawPrimitiveStrided(p,a,b,c,d,e)            (p)->lpVtbl->DrawPrimitiveStrided(p,a,b,c,d,e)
-#define IDirect3DDevice7_DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g) (p)->lpVtbl->DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g)
-#define IDirect3DDevice7_DrawPrimitiveVB(p,a,b,c,d,e)                 (p)->lpVtbl->DrawPrimitiveVB(p,a,b,c,d,e)
-#define IDirect3DDevice7_DrawIndexedPrimitiveVB(p,a,b,c,d,e,f,g)      (p)->lpVtbl->DrawIndexedPrimitiveVB(p,a,b,c,d,e,f,g)
-#define IDirect3DDevice7_ComputeSphereVisibility(p,a,b,c,d,e)         (p)->lpVtbl->ComputeSphereVisibility(p,a,b,c,d,e)
-#define IDirect3DDevice7_GetTexture(p,a,b)                            (p)->lpVtbl->GetTexture(p,a,b)
-#define IDirect3DDevice7_SetTexture(p,a,b)                            (p)->lpVtbl->SetTexture(p,a,b)
-#define IDirect3DDevice7_GetTextureStageState(p,a,b,c)                (p)->lpVtbl->GetTextureStageState(p,a,b,c)
-#define IDirect3DDevice7_SetTextureStageState(p,a,b,c)                (p)->lpVtbl->SetTextureStageState(p,a,b,c)
-#define IDirect3DDevice7_ValidateDevice(p,a)                          (p)->lpVtbl->ValidateDevice(p,a)
-#define IDirect3DDevice7_ApplyStateBlock(p,a)                         (p)->lpVtbl->ApplyStateBlock(p,a)
-#define IDirect3DDevice7_CaptureStateBlock(p,a)                       (p)->lpVtbl->CaptureStateBlock(p,a)
-#define IDirect3DDevice7_DeleteStateBlock(p,a)                        (p)->lpVtbl->DeleteStateBlock(p,a)
-#define IDirect3DDevice7_CreateStateBlock(p,a,b)                      (p)->lpVtbl->CreateStateBlock(p,a,b)
-#define IDirect3DDevice7_Load(p,a,b,c,d,e)                            (p)->lpVtbl->Load(p,a,b,c,d,e)
-#define IDirect3DDevice7_LightEnable(p,a,b)                           (p)->lpVtbl->LightEnable(p,a,b)
-#define IDirect3DDevice7_GetLightEnable(p,a,b)                        (p)->lpVtbl->GetLightEnable(p,a,b)
-#define IDirect3DDevice7_SetClipPlane(p,a,b)                          (p)->lpVtbl->SetClipPlane(p,a,b)
-#define IDirect3DDevice7_GetClipPlane(p,a,b)                          (p)->lpVtbl->GetClipPlane(p,a,b)
-#define IDirect3DDevice7_GetInfo(p,a,b,c)                             (p)->lpVtbl->GetInfo(p,a,b,c)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DDevice7_QueryInterface(p,a,b)                        (p)->QueryInterface(a,b)
-#define IDirect3DDevice7_AddRef(p)                                    (p)->AddRef()
-#define IDirect3DDevice7_Release(p)                                   (p)->Release()
-/*** IDirect3DDevice7 methods ***/
-#define IDirect3DDevice7_GetCaps(p,a)                                 (p)->GetCaps(a)
-#define IDirect3DDevice7_EnumTextureFormats(p,a,b)                    (p)->EnumTextureFormats(a,b)
-#define IDirect3DDevice7_BeginScene(p)                                (p)->BeginScene()
-#define IDirect3DDevice7_EndScene(p)                                  (p)->EndScene()
-#define IDirect3DDevice7_GetDirect3D(p,a)                             (p)->GetDirect3D(a)
-#define IDirect3DDevice7_SetRenderTarget(p,a,b)                       (p)->SetRenderTarget(a,b)
-#define IDirect3DDevice7_GetRenderTarget(p,a)                         (p)->GetRenderTarget(a)
-#define IDirect3DDevice7_Clear(p,a,b,c,d,e,f)                         (p)->Clear(a,b,c,d,e,f)
-#define IDirect3DDevice7_SetTransform(p,a,b)                          (p)->SetTransform(a,b)
-#define IDirect3DDevice7_GetTransform(p,a,b)                          (p)->GetTransform(a,b)
-#define IDirect3DDevice7_SetViewport(p,a)                             (p)->SetViewport(a)
-#define IDirect3DDevice7_MultiplyTransform(p,a,b)                     (p)->MultiplyTransform(a,b)
-#define IDirect3DDevice7_GetViewport(p,a)                             (p)->GetViewport(a)
-#define IDirect3DDevice7_SetMaterial(p,a)                             (p)->SetMaterial(a)
-#define IDirect3DDevice7_GetMaterial(p,a)                             (p)->GetMaterial(a)
-#define IDirect3DDevice7_SetLight(p,a,b)                              (p)->SetLight(a,b)
-#define IDirect3DDevice7_GetLight(p,a,b)                              (p)->GetLight(a,b)
-#define IDirect3DDevice7_SetRenderState(p,a,b)                        (p)->SetRenderState(a,b)
-#define IDirect3DDevice7_GetRenderState(p,a,b)                        (p)->GetRenderState(a,b)
-#define IDirect3DDevice7_BeginStateBlock(p)                           (p)->BeginStateBlock()
-#define IDirect3DDevice7_EndStateBlock(p,a)                           (p)->EndStateBlock(a)
-#define IDirect3DDevice7_PreLoad(p,a)                                 (p)->PreLoad(a)
-#define IDirect3DDevice7_DrawPrimitive(p,a,b,c,d,e)                   (p)->DrawPrimitive(a,b,c,d,e)
-#define IDirect3DDevice7_DrawIndexedPrimitive(p,a,b,c,d,e,f,g)        (p)->DrawIndexedPrimitive(a,b,c,d,e,f,g)
-#define IDirect3DDevice7_SetClipStatus(p,a)                           (p)->SetClipStatus(a)
-#define IDirect3DDevice7_GetClipStatus(p,a)                           (p)->GetClipStatus(a)
-#define IDirect3DDevice7_DrawPrimitiveStrided(p,a,b,c,d,e)            (p)->DrawPrimitiveStrided(a,b,c,d,e)
-#define IDirect3DDevice7_DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g) (p)->DrawIndexedPrimitiveStrided(a,b,c,d,e,f,g)
-#define IDirect3DDevice7_DrawPrimitiveVB(p,a,b,c,d,e)                 (p)->DrawPrimitiveVB(a,b,c,d,e)
-#define IDirect3DDevice7_DrawIndexedPrimitiveVB(p,a,b,c,d,e,f,g)      (p)->DrawIndexedPrimitiveVB(a,b,c,d,e,f,g)
-#define IDirect3DDevice7_ComputeSphereVisibility(p,a,b,c,d,e)         (p)->ComputeSphereVisibility(a,b,c,d,e)
-#define IDirect3DDevice7_GetTexture(p,a,b)                            (p)->GetTexture(a,b)
-#define IDirect3DDevice7_SetTexture(p,a,b)                            (p)->SetTexture(a,b)
-#define IDirect3DDevice7_GetTextureStageState(p,a,b,c)                (p)->GetTextureStageState(a,b,c)
-#define IDirect3DDevice7_SetTextureStageState(p,a,b,c)                (p)->SetTextureStageState(a,b,c)
-#define IDirect3DDevice7_ValidateDevice(p,a)                          (p)->ValidateDevice(a)
-#define IDirect3DDevice7_ApplyStateBlock(p,a)                         (p)->ApplyStateBlock(a)
-#define IDirect3DDevice7_CaptureStateBlock(p,a)                       (p)->CaptureStateBlock(a)
-#define IDirect3DDevice7_DeleteStateBlock(p,a)                        (p)->DeleteStateBlock(a)
-#define IDirect3DDevice7_CreateStateBlock(p,a,b)                      (p)->CreateStateBlock(a,b)
-#define IDirect3DDevice7_Load(p,a,b,c,d,e)                            (p)->Load(a,b,c,d,e)
-#define IDirect3DDevice7_LightEnable(p,a,b)                           (p)->LightEnable(a,b)
-#define IDirect3DDevice7_GetLightEnable(p,a,b)                        (p)->GetLightEnable(a,b)
-#define IDirect3DDevice7_SetClipPlane(p,a,b)                          (p)->SetClipPlane(a,b)
-#define IDirect3DDevice7_GetClipPlane(p,a,b)                          (p)->GetClipPlane(a,b)
-#define IDirect3DDevice7_GetInfo(p,a,b,c)                             (p)->GetInfo(a,b,c)
-#endif
-
-
-
-/*****************************************************************************
- * IDirect3DVertexBuffer interface
- */
-#define INTERFACE IDirect3DVertexBuffer
-DECLARE_INTERFACE_(IDirect3DVertexBuffer,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DVertexBuffer methods ***/
-    STDMETHOD(Lock)(THIS_ DWORD dwFlags,LPVOID *lplpData,LPDWORD lpdwSize) PURE;
-    STDMETHOD(Unlock)(THIS) PURE;
-    STDMETHOD(ProcessVertices)(THIS_ DWORD dwVertexOp,DWORD dwDestIndex,DWORD dwCount,LPDIRECT3DVERTEXBUFFER lpSrcBuffer,DWORD dwSrcIndex,LPDIRECT3DDEVICE3 lpD3DDevice,DWORD dwFlags) PURE;
-    STDMETHOD(GetVertexBufferDesc)(THIS_ LPD3DVERTEXBUFFERDESC lpD3DVertexBufferDesc) PURE;
-    STDMETHOD(Optimize)(THIS_ LPDIRECT3DDEVICE3  lpD3DDevice,DWORD dwFlags) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DVertexBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DVertexBuffer_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DVertexBuffer_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3DVertexBuffer methods ***/
-#define IDirect3DVertexBuffer_Lock(p,a,b,c)                    (p)->lpVtbl->Lock(p,a,b,c)
-#define IDirect3DVertexBuffer_Unlock(p)                        (p)->lpVtbl->Unlock(p)
-#define IDirect3DVertexBuffer_ProcessVertices(p,a,b,c,d,e,f,g) (p)->lpVtbl->ProcessVertices(p,a,b,c,d,e,f,g)
-#define IDirect3DVertexBuffer_GetVertexBufferDesc(p,a)         (p)->lpVtbl->GetVertexBufferDesc(p,a)
-#define IDirect3DVertexBuffer_Optimize(p,a,b)                  (p)->lpVtbl->Optimize(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DVertexBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DVertexBuffer_AddRef(p)             (p)->AddRef()
-#define IDirect3DVertexBuffer_Release(p)            (p)->Release()
-/*** IDirect3DVertexBuffer methods ***/
-#define IDirect3DVertexBuffer_Lock(p,a,b,c)                    (p)->Lock(a,b,c)
-#define IDirect3DVertexBuffer_Unlock(p)                        (p)->Unlock()
-#define IDirect3DVertexBuffer_ProcessVertices(p,a,b,c,d,e,f,g) (p)->ProcessVertices(a,b,c,d,e,f,g)
-#define IDirect3DVertexBuffer_GetVertexBufferDesc(p,a)         (p)->GetVertexBufferDesc(a)
-#define IDirect3DVertexBuffer_Optimize(p,a,b)                  (p)->Optimize(a,b)
-#endif
-
-/*****************************************************************************
- * IDirect3DVertexBuffer7 interface
- */
-#define INTERFACE IDirect3DVertexBuffer7
-DECLARE_INTERFACE_(IDirect3DVertexBuffer7,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DVertexBuffer7 methods ***/
-    STDMETHOD(Lock)(THIS_ DWORD dwFlags,LPVOID *lplpData,LPDWORD lpdwSize) PURE;
-    STDMETHOD(Unlock)(THIS) PURE;
-    STDMETHOD(ProcessVertices)(THIS_ DWORD dwVertexOp,DWORD dwDestIndex,DWORD dwCount,LPDIRECT3DVERTEXBUFFER7 lpSrcBuffer,DWORD dwSrcIndex,LPDIRECT3DDEVICE7 lpD3DDevice,DWORD dwFlags) PURE;
-    STDMETHOD(GetVertexBufferDesc)(THIS_ LPD3DVERTEXBUFFERDESC lpD3DVertexBufferDesc) PURE;
-    STDMETHOD(Optimize)(THIS_ LPDIRECT3DDEVICE7  lpD3DDevice,DWORD dwFlags) PURE;
-    STDMETHOD(ProcessVerticesStrided)(THIS_ DWORD dwVertexOp,DWORD dwDestIndex,DWORD dwCount,LPD3DDRAWPRIMITIVESTRIDEDDATA lpStrideData,DWORD dwVertexTypeDesc,LPDIRECT3DDEVICE7 lpD3DDevice,DWORD dwFlags) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DVertexBuffer7_QueryInterface(p,a,b)                   (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DVertexBuffer7_AddRef(p)                               (p)->lpVtbl->AddRef(p)
-#define IDirect3DVertexBuffer7_Release(p)                              (p)->lpVtbl->Release(p)
-/*** IDirect3DVertexBuffer7 methods ***/
-#define IDirect3DVertexBuffer7_Lock(p,a,b,c)                           (p)->lpVtbl->Lock(p,a,b,c)
-#define IDirect3DVertexBuffer7_Unlock(p)                               (p)->lpVtbl->Unlock(p)
-#define IDirect3DVertexBuffer7_ProcessVertices(p,a,b,c,d,e,f,g)        (p)->lpVtbl->ProcessVertices(p,a,b,c,d,e,f,g)
-#define IDirect3DVertexBuffer7_GetVertexBufferDesc(p,a)                (p)->lpVtbl->GetVertexBufferDesc(p,a)
-#define IDirect3DVertexBuffer7_Optimize(p,a,b)                         (p)->lpVtbl->Optimize(p,a,b)
-#define IDirect3DVertexBuffer7_ProcessVerticesStrided(p,a,b,c,d,e,f,g) (p)->lpVtbl->ProcessVerticesStrided(p,a,b,c,d,e,f,g)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DVertexBuffer7_QueryInterface(p,a,b)                   (p)->QueryInterface(a,b)
-#define IDirect3DVertexBuffer7_AddRef(p)                               (p)->AddRef()
-#define IDirect3DVertexBuffer7_Release(p)                              (p)->Release()
-/*** IDirect3DVertexBuffer7 methods ***/
-#define IDirect3DVertexBuffer7_Lock(p,a,b,c)                           (p)->Lock(a,b,c)
-#define IDirect3DVertexBuffer7_Unlock(p)                               (p)->Unlock()
-#define IDirect3DVertexBuffer7_ProcessVertices(p,a,b,c,d,e,f,g)        (p)->ProcessVertices(a,b,c,d,e,f,g)
-#define IDirect3DVertexBuffer7_GetVertexBufferDesc(p,a)                (p)->GetVertexBufferDesc(a)
-#define IDirect3DVertexBuffer7_Optimize(p,a,b)                         (p)->Optimize(a,b)
-#define IDirect3DVertexBuffer7_ProcessVerticesStrided(p,a,b,c,d,e,f,g) (p)->ProcessVerticesStrided(a,b,c,d,e,f,g)
-#endif
-
-#endif /* __WINE_D3D_H */
diff --git a/misc/builddeps/win64/dx/include/d3d10.h b/misc/builddeps/win64/dx/include/d3d10.h
deleted file mode 100644 (file)
index dd6ea6c..0000000
+++ /dev/null
@@ -1,5603 +0,0 @@
-/*** Autogenerated by WIDL 1.2-rc3 from d3d10.idl - Do not edit ***/
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifndef __WIDL_D3D10_H
-#define __WIDL_D3D10_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Headers for imported files */
-
-#include <oaidl.h>
-#include <ocidl.h>
-#include <dxgi.h>
-
-/* Forward declarations */
-
-#ifndef __ID3D10DeviceChild_FWD_DEFINED__
-#define __ID3D10DeviceChild_FWD_DEFINED__
-typedef interface ID3D10DeviceChild ID3D10DeviceChild;
-#endif
-
-#ifndef __ID3D10Resource_FWD_DEFINED__
-#define __ID3D10Resource_FWD_DEFINED__
-typedef interface ID3D10Resource ID3D10Resource;
-#endif
-
-#ifndef __ID3D10Buffer_FWD_DEFINED__
-#define __ID3D10Buffer_FWD_DEFINED__
-typedef interface ID3D10Buffer ID3D10Buffer;
-#endif
-
-#ifndef __ID3D10Texture1D_FWD_DEFINED__
-#define __ID3D10Texture1D_FWD_DEFINED__
-typedef interface ID3D10Texture1D ID3D10Texture1D;
-#endif
-
-#ifndef __ID3D10Texture2D_FWD_DEFINED__
-#define __ID3D10Texture2D_FWD_DEFINED__
-typedef interface ID3D10Texture2D ID3D10Texture2D;
-#endif
-
-#ifndef __ID3D10Texture3D_FWD_DEFINED__
-#define __ID3D10Texture3D_FWD_DEFINED__
-typedef interface ID3D10Texture3D ID3D10Texture3D;
-#endif
-
-#ifndef __ID3D10View_FWD_DEFINED__
-#define __ID3D10View_FWD_DEFINED__
-typedef interface ID3D10View ID3D10View;
-#endif
-
-#ifndef __ID3D10DepthStencilView_FWD_DEFINED__
-#define __ID3D10DepthStencilView_FWD_DEFINED__
-typedef interface ID3D10DepthStencilView ID3D10DepthStencilView;
-#endif
-
-#ifndef __ID3D10RenderTargetView_FWD_DEFINED__
-#define __ID3D10RenderTargetView_FWD_DEFINED__
-typedef interface ID3D10RenderTargetView ID3D10RenderTargetView;
-#endif
-
-#ifndef __ID3D10ShaderResourceView_FWD_DEFINED__
-#define __ID3D10ShaderResourceView_FWD_DEFINED__
-typedef interface ID3D10ShaderResourceView ID3D10ShaderResourceView;
-#endif
-
-#ifndef __ID3D10BlendState_FWD_DEFINED__
-#define __ID3D10BlendState_FWD_DEFINED__
-typedef interface ID3D10BlendState ID3D10BlendState;
-#endif
-
-#ifndef __ID3D10DepthStencilState_FWD_DEFINED__
-#define __ID3D10DepthStencilState_FWD_DEFINED__
-typedef interface ID3D10DepthStencilState ID3D10DepthStencilState;
-#endif
-
-#ifndef __ID3D10GeometryShader_FWD_DEFINED__
-#define __ID3D10GeometryShader_FWD_DEFINED__
-typedef interface ID3D10GeometryShader ID3D10GeometryShader;
-#endif
-
-#ifndef __ID3D10InputLayout_FWD_DEFINED__
-#define __ID3D10InputLayout_FWD_DEFINED__
-typedef interface ID3D10InputLayout ID3D10InputLayout;
-#endif
-
-#ifndef __ID3D10PixelShader_FWD_DEFINED__
-#define __ID3D10PixelShader_FWD_DEFINED__
-typedef interface ID3D10PixelShader ID3D10PixelShader;
-#endif
-
-#ifndef __ID3D10RasterizerState_FWD_DEFINED__
-#define __ID3D10RasterizerState_FWD_DEFINED__
-typedef interface ID3D10RasterizerState ID3D10RasterizerState;
-#endif
-
-#ifndef __ID3D10SamplerState_FWD_DEFINED__
-#define __ID3D10SamplerState_FWD_DEFINED__
-typedef interface ID3D10SamplerState ID3D10SamplerState;
-#endif
-
-#ifndef __ID3D10VertexShader_FWD_DEFINED__
-#define __ID3D10VertexShader_FWD_DEFINED__
-typedef interface ID3D10VertexShader ID3D10VertexShader;
-#endif
-
-#ifndef __ID3D10Asynchronous_FWD_DEFINED__
-#define __ID3D10Asynchronous_FWD_DEFINED__
-typedef interface ID3D10Asynchronous ID3D10Asynchronous;
-#endif
-
-#ifndef __ID3D10Counter_FWD_DEFINED__
-#define __ID3D10Counter_FWD_DEFINED__
-typedef interface ID3D10Counter ID3D10Counter;
-#endif
-
-#ifndef __ID3D10Query_FWD_DEFINED__
-#define __ID3D10Query_FWD_DEFINED__
-typedef interface ID3D10Query ID3D10Query;
-#endif
-
-#ifndef __ID3D10Predicate_FWD_DEFINED__
-#define __ID3D10Predicate_FWD_DEFINED__
-typedef interface ID3D10Predicate ID3D10Predicate;
-#endif
-
-#ifndef __ID3D10Device_FWD_DEFINED__
-#define __ID3D10Device_FWD_DEFINED__
-typedef interface ID3D10Device ID3D10Device;
-#endif
-
-#ifndef __ID3D10Multithread_FWD_DEFINED__
-#define __ID3D10Multithread_FWD_DEFINED__
-typedef interface ID3D10Multithread ID3D10Multithread;
-#endif
-
-
-#ifndef _D3D10_CONSTANTS
-#define _D3D10_CONSTANTS
-#define D3D10_DEFAULT_BLEND_FACTOR_ALPHA (1.00000000000000)
-
-#define D3D10_DEFAULT_BLEND_FACTOR_BLUE (1.00000000000000)
-
-#define D3D10_DEFAULT_BLEND_FACTOR_GREEN (1.00000000000000)
-
-#define D3D10_DEFAULT_BLEND_FACTOR_RED (1.00000000000000)
-
-#define D3D10_DEFAULT_BORDER_COLOR_COMPONENT (0.00000000000000)
-
-#define D3D10_DEFAULT_SLOPE_SCALED_DEPTH_BIAS (0.00000000000000)
-
-#define D3D10_DEFAULT_DEPTH_BIAS_CLAMP (0.00000000000000)
-
-#define D3D10_DEFAULT_MAX_ANISOTROPY (16.0000000000000)
-
-#define D3D10_DEFAULT_MIP_LOD_BIAS (0.00000000000000)
-
-#define D3D10_DEFAULT_VIEWPORT_MAX_DEPTH (0.00000000000000)
-
-#define D3D10_DEFAULT_VIEWPORT_MIN_DEPTH (0.00000000000000)
-
-#define D3D10_FLOAT16_FUSED_TOLERANCE_IN_ULP (0.600000000000000)
-
-#define D3D10_FLOAT32_MAX (3.40282346600000e+38)
-
-#define D3D10_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP (0.600000000000000)
-
-#define D3D10_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR (2.40000000000000)
-
-#define D3D10_FLOAT_TO_SRGB_EXPONENT_NUMERATOR (1.00000000000000)
-
-#define D3D10_FLOAT_TO_SRGB_OFFSET (0.0550000000000000)
-
-#define D3D10_FLOAT_TO_SRGB_SCALE_1 (12.9200000000000)
-
-#define D3D10_FLOAT_TO_SRGB_SCALE_2 (1.05500000000000)
-
-#define D3D10_FLOAT_TO_SRGB_THRESHOLD (0.00313080000000000)
-
-#define D3D10_FTOI_INSTRUCTION_MAX_INPUT (2147483647.99900)
-
-#define D3D10_FTOI_INSTRUCTION_MIN_INPUT (-2147483648.99900)
-
-#define D3D10_FTOU_INSTRUCTION_MAX_INPUT (4294967295.99900)
-
-#define D3D10_FTOU_INSTRUCTION_MIN_INPUT (0.00000000000000)
-
-#define D3D10_LINEAR_GAMMA (1.00000000000000)
-
-#define D3D10_MAX_BORDER_COLOR_COMPONENT (1.00000000000000)
-
-#define D3D10_MAX_DEPTH (1.00000000000000)
-
-#define D3D10_MAX_POSITION_VALUE (3.40282346600000e+34)
-
-#define D3D10_MIN_BORDER_COLOR_COMPONENT (0.00000000000000)
-
-#define D3D10_MIN_DEPTH (0.00000000000000)
-
-#define D3D10_MIP_LOD_BIAS_MAX (15.9900000000000)
-
-#define D3D10_MIP_LOD_BIAS_MIN (-16.0000000000000)
-
-#define D3D10_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT (0.500000000000000)
-
-#define D3D10_MULTISAMPLE_ANTIALIAS_LINE_WIDTH (1.40000000000000)
-
-#define D3D10_SRGB_GAMMA (2.20000000000000)
-
-#define D3D10_SRGB_TO_FLOAT_DENOMINATOR_1 (12.9200000000000)
-
-#define D3D10_SRGB_TO_FLOAT_DENOMINATOR_2 (1.05500000000000)
-
-#define D3D10_SRGB_TO_FLOAT_EXPONENT (2.40000000000000)
-
-#define D3D10_SRGB_TO_FLOAT_OFFSET (0.0550000000000000)
-
-#define D3D10_SRGB_TO_FLOAT_THRESHOLD (0.0404500000000000)
-
-#define D3D10_SRGB_TO_FLOAT_TOLERANCE_IN_ULP (0.500000000000000)
-
-#define D3D10_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT (0.00000000000000)
-
-#define D3D_SPEC_VERSION (1.05000500000000)
-
-#define D3D10_16BIT_INDEX_STRIP_CUT_VALUE (0xffff)
-
-#define D3D10_32BIT_INDEX_STRIP_CUT_VALUE (0xffffffff)
-
-#define D3D10_8BIT_INDEX_STRIP_CUT_VALUE (0xff)
-
-#define D3D10_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT (9)
-
-#define D3D10_CLIP_OR_CULL_DISTANCE_COUNT (8)
-
-#define D3D10_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT (2)
-
-#define D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT (14)
-
-#define D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS (4)
-
-#define D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT (32)
-
-#define D3D10_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT (15)
-
-#define D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS (4)
-
-#define D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT (15)
-
-#define D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST (1)
-
-#define D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS (1)
-
-#define D3D10_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT (64)
-
-#define D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS (4)
-
-#define D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT (1)
-
-#define D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST (1)
-
-#define D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS (1)
-
-#define D3D10_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT (32)
-
-#define D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS (1)
-
-#define D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT (128)
-
-#define D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST (1)
-
-#define D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS (1)
-
-#define D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT (128)
-
-#define D3D10_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS (1)
-
-#define D3D10_COMMONSHADER_SAMPLER_REGISTER_COUNT (16)
-
-#define D3D10_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST (1)
-
-#define D3D10_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS (1)
-
-#define D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT (16)
-
-#define D3D10_COMMONSHADER_SUBROUTINE_NESTING_LIMIT (32)
-
-#define D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENTS (4)
-
-#define D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT (32)
-
-#define D3D10_COMMONSHADER_TEMP_REGISTER_COUNT (4096)
-
-#define D3D10_COMMONSHADER_TEMP_REGISTER_READS_PER_INST (3)
-
-#define D3D10_COMMONSHADER_TEMP_REGISTER_READ_PORTS (3)
-
-#define D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX (10)
-
-#define D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN (-10)
-
-#define D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE (-8)
-
-#define D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE (7)
-
-#define D3D10_DEFAULT_DEPTH_BIAS (0)
-
-#define D3D10_DEFAULT_RENDER_TARGET_ARRAY_INDEX (0)
-
-#define D3D10_DEFAULT_SAMPLE_MASK (0xffffffff)
-
-#define D3D10_DEFAULT_SCISSOR_ENDX (0)
-
-#define D3D10_DEFAULT_SCISSOR_ENDY (0)
-
-#define D3D10_DEFAULT_SCISSOR_STARTX (0)
-
-#define D3D10_DEFAULT_SCISSOR_STARTY (0)
-
-#define D3D10_DEFAULT_STENCIL_READ_MASK (0xff)
-
-#define D3D10_DEFAULT_STENCIL_REFERENCE (0)
-
-#define D3D10_DEFAULT_STENCIL_WRITE_MASK (0xff)
-
-#define D3D10_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX (0)
-
-#define D3D10_DEFAULT_VIEWPORT_HEIGHT (0)
-
-#define D3D10_DEFAULT_VIEWPORT_TOPLEFTX (0)
-
-#define D3D10_DEFAULT_VIEWPORT_TOPLEFTY (0)
-
-#define D3D10_DEFAULT_VIEWPORT_WIDTH (0)
-
-#define D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS (1)
-
-#define D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT (32)
-
-#define D3D10_GS_INPUT_PRIM_CONST_REGISTER_COUNT (1)
-
-#define D3D10_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST (2)
-
-#define D3D10_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS (1)
-
-#define D3D10_GS_INPUT_REGISTER_COMPONENTS (4)
-
-#define D3D10_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT (32)
-
-#define D3D10_GS_INPUT_REGISTER_COUNT (16)
-
-#define D3D10_GS_INPUT_REGISTER_READS_PER_INST (2)
-
-#define D3D10_GS_INPUT_REGISTER_READ_PORTS (1)
-
-#define D3D10_GS_INPUT_REGISTER_VERTICES (6)
-
-#define D3D10_GS_OUTPUT_ELEMENTS (32)
-
-#define D3D10_GS_OUTPUT_REGISTER_COMPONENTS (4)
-
-#define D3D10_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT (32)
-
-#define D3D10_GS_OUTPUT_REGISTER_COUNT (32)
-
-#define D3D10_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES (0)
-
-#define D3D10_IA_DEFAULT_PRIMITIVE_TOPOLOGY (0)
-
-#define D3D10_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES (0)
-
-#define D3D10_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT (1)
-
-#define D3D10_IA_INSTANCE_ID_BIT_COUNT (32)
-
-#define D3D10_IA_INTEGER_ARITHMETIC_BIT_COUNT (32)
-
-#define D3D10_IA_PRIMITIVE_ID_BIT_COUNT (32)
-
-#define D3D10_IA_VERTEX_ID_BIT_COUNT (32)
-
-#define D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT (16)
-
-#define D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS (64)
-
-#define D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT (16)
-
-#define D3D10_INTEGER_DIVIDE_BY_ZERO_QUOTIENT (0xffffffff)
-
-#define D3D10_INTEGER_DIVIDE_BY_ZERO_REMAINDER (0xffffffff)
-
-#define D3D10_MAX_MAXANISOTROPY (16)
-
-#define D3D10_MAX_MULTISAMPLE_SAMPLE_COUNT (32)
-
-#define D3D10_MAX_TEXTURE_DIMENSION_2_TO_EXP (17)
-
-#define D3D10_MIN_MAXANISOTROPY (0)
-
-#define D3D10_MIP_LOD_FRACTIONAL_BIT_COUNT (6)
-
-#define D3D10_MIP_LOD_RANGE_BIT_COUNT (8)
-
-#define D3D10_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT (0)
-
-#define D3D10_PIXEL_ADDRESS_RANGE_BIT_COUNT (13)
-
-#define D3D10_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT (15)
-
-#define D3D10_PS_FRONTFACING_DEFAULT_VALUE (0xffffffff)
-
-#define D3D10_PS_FRONTFACING_FALSE_VALUE (0)
-
-#define D3D10_PS_FRONTFACING_TRUE_VALUE (0xffffffff)
-
-#define D3D10_PS_INPUT_REGISTER_COMPONENTS (4)
-
-#define D3D10_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT (32)
-
-#define D3D10_PS_INPUT_REGISTER_COUNT (32)
-
-#define D3D10_PS_INPUT_REGISTER_READS_PER_INST (2)
-
-#define D3D10_PS_INPUT_REGISTER_READ_PORTS (1)
-
-#define D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS (1)
-
-#define D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT (32)
-
-#define D3D10_PS_OUTPUT_DEPTH_REGISTER_COUNT (1)
-
-#define D3D10_PS_OUTPUT_REGISTER_COMPONENTS (4)
-
-#define D3D10_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT (32)
-
-#define D3D10_PS_OUTPUT_REGISTER_COUNT (8)
-
-#define D3D10_REQ_BLEND_OBJECT_COUNT_PER_CONTEXT (4096)
-
-#define D3D10_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP (27)
-
-#define D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT (4096)
-
-#define D3D10_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_CONTEXT (4096)
-
-#define D3D10_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP (32)
-
-#define D3D10_REQ_DRAW_VERTEX_COUNT_2_TO_EXP (32)
-
-#define D3D10_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION (8192)
-
-#define D3D10_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT (1024)
-
-#define D3D10_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT (4096)
-
-#define D3D10_REQ_MAXANISOTROPY (16)
-
-#define D3D10_REQ_MIP_LEVELS (14)
-
-#define D3D10_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES (2048)
-
-#define D3D10_REQ_RASTERIZER_OBJECT_COUNT_PER_CONTEXT (4096)
-
-#define D3D10_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH (8192)
-
-#define D3D10_REQ_RESOURCE_SIZE_IN_MEGABYTES (128)
-
-#define D3D10_REQ_RESOURCE_VIEW_COUNT_PER_CONTEXT_2_TO_EXP (20)
-
-#define D3D10_REQ_SAMPLER_OBJECT_COUNT_PER_CONTEXT (4096)
-
-#define D3D10_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION (512)
-
-#define D3D10_REQ_TEXTURE1D_U_DIMENSION (8192)
-
-#define D3D10_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION (512)
-
-#define D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION (8192)
-
-#define D3D10_REQ_TEXTURE3D_U_V_OR_W_DIMENSION (2048)
-
-#define D3D10_REQ_TEXTURECUBE_DIMENSION (8192)
-
-#define D3D10_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL (0)
-
-#define D3D10_SHADER_MAJOR_VERSION (4)
-
-#define D3D10_SHADER_MINOR_VERSION (0)
-
-#define D3D10_SHIFT_INSTRUCTION_PAD_VALUE (0)
-
-#define D3D10_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT (5)
-
-#define D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT (8)
-
-#define D3D10_SO_BUFFER_MAX_STRIDE_IN_BYTES (2048)
-
-#define D3D10_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES (256)
-
-#define D3D10_SO_BUFFER_SLOT_COUNT (4)
-
-#define D3D10_SO_DDI_REGISTER_INDEX_DENOTING_GAP (0xffffffff)
-
-#define D3D10_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER (1)
-
-#define D3D10_SO_SINGLE_BUFFER_COMPONENT_LIMIT (64)
-
-#define D3D10_STANDARD_COMPONENT_BIT_COUNT (32)
-
-#define D3D10_STANDARD_COMPONENT_BIT_COUNT_DOUBLED (64)
-
-#define D3D10_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE (4)
-
-#define D3D10_STANDARD_PIXEL_COMPONENT_COUNT (128)
-
-#define D3D10_STANDARD_PIXEL_ELEMENT_COUNT (32)
-
-#define D3D10_STANDARD_VECTOR_SIZE (4)
-
-#define D3D10_STANDARD_VERTEX_ELEMENT_COUNT (16)
-
-#define D3D10_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT (64)
-
-#define D3D10_SUBPIXEL_FRACTIONAL_BIT_COUNT (8)
-
-#define D3D10_SUBTEXEL_FRACTIONAL_BIT_COUNT (6)
-
-#define D3D10_TEXEL_ADDRESS_RANGE_BIT_COUNT (18)
-
-#define D3D10_UNBOUND_MEMORY_ACCESS_RESULT (0)
-
-#define D3D10_VIEWPORT_AND_SCISSORRECT_MAX_INDEX (15)
-
-#define D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE (16)
-
-#define D3D10_VIEWPORT_BOUNDS_MAX (16383)
-
-#define D3D10_VIEWPORT_BOUNDS_MIN (-16384)
-
-#define D3D10_VS_INPUT_REGISTER_COMPONENTS (4)
-
-#define D3D10_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT (32)
-
-#define D3D10_VS_INPUT_REGISTER_COUNT (16)
-
-#define D3D10_VS_INPUT_REGISTER_READS_PER_INST (2)
-
-#define D3D10_VS_INPUT_REGISTER_READ_PORTS (1)
-
-#define D3D10_VS_OUTPUT_REGISTER_COMPONENTS (4)
-
-#define D3D10_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT (32)
-
-#define D3D10_VS_OUTPUT_REGISTER_COUNT (16)
-
-#define D3D10_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT (10)
-
-#define D3D10_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP (25)
-
-#define D3D10_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP (25)
-
-#define D3D_MAJOR_VERSION (10)
-
-#define D3D_MINOR_VERSION (0)
-
-#define D3D_SPEC_DATE_DAY (8)
-
-#define D3D_SPEC_DATE_MONTH (8)
-
-#define D3D_SPEC_DATE_YEAR (2006)
-
-#endif
-#define D3D10_APPEND_ALIGNED_ELEMENT (0xffffffff)
-
-#define _FACD3D10 (0x87)
-
-#define _FACD3D10DEBUG (_FACD3D10 + 1)
-
-#define D3D10_FILTER_TYPE_MASK (0x3)
-
-#define D3D10_SDK_VERSION (29)
-
-#define MAKE_D3D10_HRESULT(code)                   MAKE_HRESULT( 1, _FACD3D10, code)
-#define MAKE_D3D10_STATUS(code)                    MAKE_HRESULT( 0, _FACD3D10, code)
-#define D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS  MAKE_D3D10_HRESULT(1)
-#define D3D10_ERROR_FILE_NOT_FOUND                 MAKE_D3D10_HRESULT(2)
-typedef enum D3D10_BLEND {
-    D3D10_BLEND_ZERO = 1,
-    D3D10_BLEND_ONE = 2,
-    D3D10_BLEND_SRC_COLOR = 3,
-    D3D10_BLEND_INV_SRC_COLOR = 4,
-    D3D10_BLEND_SRC_ALPHA = 5,
-    D3D10_BLEND_INV_SRC_ALPHA = 6,
-    D3D10_BLEND_DEST_ALPHA = 7,
-    D3D10_BLEND_INV_DEST_ALPHA = 8,
-    D3D10_BLEND_DEST_COLOR = 9,
-    D3D10_BLEND_INV_DEST_COLOR = 10,
-    D3D10_BLEND_SRC_ALPHA_SAT = 11,
-    D3D10_BLEND_BLEND_FACTOR = 14,
-    D3D10_BLEND_INV_BLEND_FACTOR = 15,
-    D3D10_BLEND_SRC1_COLOR = 16,
-    D3D10_BLEND_INV_SRC1_COLOR = 17,
-    D3D10_BLEND_SRC1_ALPHA = 18,
-    D3D10_BLEND_INV_SRC1_ALPHA = 19
-} D3D10_BLEND;
-typedef enum D3D10_BLEND_OP {
-    D3D10_BLEND_OP_ADD = 1,
-    D3D10_BLEND_OP_SUBTRACT = 2,
-    D3D10_BLEND_OP_REV_SUBTRACT = 3,
-    D3D10_BLEND_OP_MIN = 4,
-    D3D10_BLEND_OP_MAX = 5
-} D3D10_BLEND_OP;
-typedef struct D3D10_BLEND_DESC {
-    BOOL AlphaToCoverageEnable;
-    BOOL BlendEnable[8];
-    D3D10_BLEND SrcBlend;
-    D3D10_BLEND DestBlend;
-    D3D10_BLEND_OP BlendOp;
-    D3D10_BLEND SrcBlendAlpha;
-    D3D10_BLEND DestBlendAlpha;
-    D3D10_BLEND_OP BlendOpAlpha;
-    UINT8 RenderTargetWriteMask[8];
-} D3D10_BLEND_DESC;
-typedef enum D3D10_DEPTH_WRITE_MASK {
-    D3D10_DEPTH_WRITE_MASK_ZERO = 0,
-    D3D10_DEPTH_WRITE_MASK_ALL = 1
-} D3D10_DEPTH_WRITE_MASK;
-typedef enum D3D10_COMPARISON_FUNC {
-    D3D10_COMPARISON_NEVER = 1,
-    D3D10_COMPARISON_LESS = 2,
-    D3D10_COMPARISON_EQUAL = 3,
-    D3D10_COMPARISON_LESS_EQUAL = 4,
-    D3D10_COMPARISON_GREATER = 5,
-    D3D10_COMPARISON_NOT_EQUAL = 6,
-    D3D10_COMPARISON_GREATER_EQUAL = 7,
-    D3D10_COMPARISON_ALWAYS = 8
-} D3D10_COMPARISON_FUNC;
-typedef enum D3D10_STENCIL_OP {
-    D3D10_STENCIL_OP_KEEP = 1,
-    D3D10_STENCIL_OP_ZERO = 2,
-    D3D10_STENCIL_OP_REPLACE = 3,
-    D3D10_STENCIL_OP_INCR_SAT = 4,
-    D3D10_STENCIL_OP_DECR_SAT = 5,
-    D3D10_STENCIL_OP_INVERT = 6,
-    D3D10_STENCIL_OP_INCR = 7,
-    D3D10_STENCIL_OP_DECR = 8
-} D3D10_STENCIL_OP;
-typedef struct D3D10_DEPTH_STENCILOP_DESC {
-    D3D10_STENCIL_OP StencilFailOp;
-    D3D10_STENCIL_OP StencilDepthFailOp;
-    D3D10_STENCIL_OP StencilPassOp;
-    D3D10_COMPARISON_FUNC StencilFunc;
-} D3D10_DEPTH_STENCILOP_DESC;
-typedef struct D3D10_DEPTH_STENCIL_DESC {
-    BOOL DepthEnable;
-    D3D10_DEPTH_WRITE_MASK DepthWriteMask;
-    D3D10_COMPARISON_FUNC DepthFunc;
-    BOOL StencilEnable;
-    UINT8 StencilReadMask;
-    UINT8 StencilWriteMask;
-    D3D10_DEPTH_STENCILOP_DESC FrontFace;
-    D3D10_DEPTH_STENCILOP_DESC BackFace;
-} D3D10_DEPTH_STENCIL_DESC;
-typedef enum D3D10_FILL_MODE {
-    D3D10_FILL_WIREFRAME = 2,
-    D3D10_FILL_SOLID = 3
-} D3D10_FILL_MODE;
-typedef enum D3D10_CULL_MODE {
-    D3D10_CULL_NONE = 1,
-    D3D10_CULL_FRONT = 2,
-    D3D10_CULL_BACK = 3
-} D3D10_CULL_MODE;
-typedef struct D3D10_RASTERIZER_DESC {
-    D3D10_FILL_MODE FillMode;
-    D3D10_CULL_MODE CullMode;
-    BOOL FrontCounterClockwise;
-    INT DepthBias;
-    FLOAT DepthBiasClamp;
-    FLOAT SlopeScaledDepthBias;
-    BOOL DepthClipEnable;
-    BOOL ScissorEnable;
-    BOOL MultisampleEnable;
-    BOOL AntialiasedLineEnable;
-} D3D10_RASTERIZER_DESC;
-typedef enum D3D10_FILTER {
-    D3D10_FILTER_MIN_MAG_MIP_POINT = 0,
-    D3D10_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1,
-    D3D10_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4,
-    D3D10_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5,
-    D3D10_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10,
-    D3D10_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11,
-    D3D10_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14,
-    D3D10_FILTER_MIN_MAG_MIP_LINEAR = 0x15,
-    D3D10_FILTER_ANISOTROPIC = 0x55,
-    D3D10_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80,
-    D3D10_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81,
-    D3D10_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84,
-    D3D10_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85,
-    D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90,
-    D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
-    D3D10_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94,
-    D3D10_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95,
-    D3D10_FILTER_COMPARISON_ANISOTROPIC = 0xd5,
-    D3D10_FILTER_TEXT_1BIT = 0x80000000
-} D3D10_FILTER;
-typedef enum D3D10_TEXTURE_ADDRESS_MODE {
-    D3D10_TEXTURE_ADDRESS_WRAP = 1,
-    D3D10_TEXTURE_ADDRESS_MIRROR = 2,
-    D3D10_TEXTURE_ADDRESS_CLAMP = 3,
-    D3D10_TEXTURE_ADDRESS_BORDER = 4,
-    D3D10_TEXTURE_ADDRESS_MIRROR_ONCE = 5
-} D3D10_TEXTURE_ADDRESS_MODE;
-typedef struct D3D10_SAMPLER_DESC {
-    D3D10_FILTER Filter;
-    D3D10_TEXTURE_ADDRESS_MODE AddressU;
-    D3D10_TEXTURE_ADDRESS_MODE AddressV;
-    D3D10_TEXTURE_ADDRESS_MODE AddressW;
-    FLOAT MipLODBias;
-    UINT MaxAnisotropy;
-    D3D10_COMPARISON_FUNC ComparisonFunc;
-    FLOAT BorderColor[4];
-    FLOAT MinLOD;
-    FLOAT MaxLOD;
-} D3D10_SAMPLER_DESC;
-typedef enum D3D10_COUNTER {
-    D3D10_COUNTER_GPU_IDLE = 0,
-    D3D10_COUNTER_VERTEX_PROCESSING = 1,
-    D3D10_COUNTER_GEOMETRY_PROCESSING = 2,
-    D3D10_COUNTER_PIXEL_PROCESSING = 3,
-    D3D10_COUNTER_OTHER_GPU_PROCESSING = 4,
-    D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION = 5,
-    D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION = 6,
-    D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION = 7,
-    D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION = 8,
-    D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION = 9,
-    D3D10_COUNTER_VS_MEMORY_LIMITED = 10,
-    D3D10_COUNTER_VS_COMPUTATION_LIMITED = 11,
-    D3D10_COUNTER_GS_MEMORY_LIMITED = 12,
-    D3D10_COUNTER_GS_COMPUTATION_LIMITED = 13,
-    D3D10_COUNTER_PS_MEMORY_LIMITED = 14,
-    D3D10_COUNTER_PS_COMPUTATION_LIMITED = 15,
-    D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE = 16,
-    D3D10_COUNTER_TEXTURE_CACHE_HIT_RATE = 17,
-    D3D10_COUNTER_DEVICE_DEPENDENT_0 = 0x40000000
-} D3D10_COUNTER;
-typedef struct D3D10_COUNTER_DESC {
-    D3D10_COUNTER Counter;
-    UINT MiscFlags;
-} D3D10_COUNTER_DESC;
-typedef enum D3D10_COUNTER_TYPE {
-    D3D10_COUNTER_TYPE_FLOAT32 = 0,
-    D3D10_COUNTER_TYPE_UINT16 = 1,
-    D3D10_COUNTER_TYPE_UINT32 = 2,
-    D3D10_COUNTER_TYPE_UINT64 = 3
-} D3D10_COUNTER_TYPE;
-typedef struct D3D10_COUNTER_INFO {
-    D3D10_COUNTER LastDeviceDependentCounter;
-    UINT NumSimultaneousCounters;
-    UINT8 NumDetectableParallelUnits;
-} D3D10_COUNTER_INFO;
-typedef enum D3D10_RESOURCE_DIMENSION {
-    D3D10_RESOURCE_DIMENSION_UNKNOWN = 0,
-    D3D10_RESOURCE_DIMENSION_BUFFER = 1,
-    D3D10_RESOURCE_DIMENSION_TEXTURE1D = 2,
-    D3D10_RESOURCE_DIMENSION_TEXTURE2D = 3,
-    D3D10_RESOURCE_DIMENSION_TEXTURE3D = 4
-} D3D10_RESOURCE_DIMENSION;
-typedef enum D3D10_USAGE {
-    D3D10_USAGE_DEFAULT = 0,
-    D3D10_USAGE_IMMUTABLE = 1,
-    D3D10_USAGE_DYNAMIC = 2,
-    D3D10_USAGE_STAGING = 3
-} D3D10_USAGE;
-typedef struct D3D10_BUFFER_DESC {
-    UINT ByteWidth;
-    D3D10_USAGE Usage;
-    UINT BindFlags;
-    UINT CPUAccessFlags;
-    UINT MiscFlags;
-} D3D10_BUFFER_DESC;
-typedef enum D3D10_MAP {
-    D3D10_MAP_READ = 1,
-    D3D10_MAP_WRITE = 2,
-    D3D10_MAP_READ_WRITE = 3,
-    D3D10_MAP_WRITE_DISCARD = 4,
-    D3D10_MAP_WRITE_NO_OVERWRITE = 5
-} D3D10_MAP;
-typedef struct D3D10_TEXTURE1D_DESC {
-    UINT Width;
-    UINT MipLevels;
-    UINT ArraySize;
-    DXGI_FORMAT Format;
-    D3D10_USAGE Usage;
-    UINT BindFlags;
-    UINT CPUAccessFlags;
-    UINT MiscFlags;
-} D3D10_TEXTURE1D_DESC;
-typedef struct D3D10_TEXTURE2D_DESC {
-    UINT Width;
-    UINT Height;
-    UINT MipLevels;
-    UINT ArraySize;
-    DXGI_FORMAT Format;
-    DXGI_SAMPLE_DESC SampleDesc;
-    D3D10_USAGE Usage;
-    UINT BindFlags;
-    UINT CPUAccessFlags;
-    UINT MiscFlags;
-} D3D10_TEXTURE2D_DESC;
-typedef struct D3D10_TEXTURE3D_DESC {
-    UINT Width;
-    UINT Height;
-    UINT Depth;
-    UINT MipLevels;
-    DXGI_FORMAT Format;
-    D3D10_USAGE Usage;
-    UINT BindFlags;
-    UINT CPUAccessFlags;
-    UINT MiscFlags;
-} D3D10_TEXTURE3D_DESC;
-typedef enum D3D10_DSV_DIMENSION {
-    D3D10_DSV_DIMENSION_UNKNOWN = 0,
-    D3D10_DSV_DIMENSION_TEXTURE1D = 1,
-    D3D10_DSV_DIMENSION_TEXTURE1DARRAY = 2,
-    D3D10_DSV_DIMENSION_TEXTURE2D = 3,
-    D3D10_DSV_DIMENSION_TEXTURE2DARRAY = 4,
-    D3D10_DSV_DIMENSION_TEXTURE2DMS = 5,
-    D3D10_DSV_DIMENSION_TEXTURE2DMSARRAY = 6
-} D3D10_DSV_DIMENSION;
-typedef struct D3D10_TEX1D_DSV {
-    UINT MipSlice;
-} D3D10_TEX1D_DSV;
-typedef struct D3D10_TEX1D_ARRAY_DSV {
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX1D_ARRAY_DSV;
-typedef struct D3D10_TEX2D_DSV {
-    UINT MipSlice;
-} D3D10_TEX2D_DSV;
-typedef struct D3D10_TEX2D_ARRAY_DSV {
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2D_ARRAY_DSV;
-typedef struct D3D10_TEX2DMS_DSV {
-    UINT UnusedField_NothingToDefine;
-} D3D10_TEX2DMS_DSV;
-typedef struct D3D10_TEX2DMS_ARRAY_DSV {
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2DMS_ARRAY_DSV;
-typedef struct D3D10_DEPTH_STENCIL_VIEW_DESC {
-    DXGI_FORMAT Format;
-    D3D10_DSV_DIMENSION ViewDimension;
-    union {
-        D3D10_TEX1D_DSV Texture1D;
-        D3D10_TEX1D_ARRAY_DSV Texture1DArray;
-        D3D10_TEX2D_DSV Texture2D;
-        D3D10_TEX2D_ARRAY_DSV Texture2DArray;
-        D3D10_TEX2DMS_DSV Texture2DMS;
-        D3D10_TEX2DMS_ARRAY_DSV Texture2DMSArray;
-    } DUMMYUNIONNAME;
-} D3D10_DEPTH_STENCIL_VIEW_DESC;
-typedef enum D3D10_RTV_DIMENSION {
-    D3D10_RTV_DIMENSION_UNKNOWN = 0,
-    D3D10_RTV_DIMENSION_BUFFER = 1,
-    D3D10_RTV_DIMENSION_TEXTURE1D = 2,
-    D3D10_RTV_DIMENSION_TEXTURE1DARRAY = 3,
-    D3D10_RTV_DIMENSION_TEXTURE2D = 4,
-    D3D10_RTV_DIMENSION_TEXTURE2DARRAY = 5,
-    D3D10_RTV_DIMENSION_TEXTURE2DMS = 6,
-    D3D10_RTV_DIMENSION_TEXTURE2DMSARRAY = 7,
-    D3D10_RTV_DIMENSION_TEXTURE3D = 8
-} D3D10_RTV_DIMENSION;
-typedef struct D3D10_BUFFER_RTV {
-    UINT ElementOffset;
-    UINT ElementWidth;
-} D3D10_BUFFER_RTV;
-typedef struct D3D10_TEX1D_RTV {
-    UINT MipSlice;
-} D3D10_TEX1D_RTV;
-typedef struct D3D10_TEX1D_ARRAY_RTV {
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX1D_ARRAY_RTV;
-typedef struct D3D10_TEX2D_RTV {
-    UINT MipSlice;
-} D3D10_TEX2D_RTV;
-typedef struct D3D10_TEX2D_ARRAY_RTV {
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2D_ARRAY_RTV;
-typedef struct D3D10_TEX2DMS_RTV {
-    UINT UnusedField_NothingToDefine;
-} D3D10_TEX2DMS_RTV;
-typedef struct D3D10_TEX2DMS_ARRAY_RTV {
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2DMS_ARRAY_RTV;
-typedef struct D3D10_TEX3D_RTV {
-    UINT MipSlice;
-    UINT FirstWSlice;
-    UINT WSize;
-} D3D10_TEX3D_RTV;
-typedef struct D3D10_RENDER_TARGET_VIEW_DESC {
-    DXGI_FORMAT Format;
-    D3D10_RTV_DIMENSION ViewDimension;
-    union {
-        D3D10_BUFFER_RTV Buffer;
-        D3D10_TEX1D_RTV Texture1D;
-        D3D10_TEX1D_ARRAY_RTV Texture1DArray;
-        D3D10_TEX2D_RTV Texture2D;
-        D3D10_TEX2D_ARRAY_RTV Texture2DArray;
-        D3D10_TEX2DMS_RTV Texture2DMS;
-        D3D10_TEX2DMS_ARRAY_RTV Texture2DMSArray;
-        D3D10_TEX3D_RTV Texture3D;
-    } DUMMYUNIONNAME;
-} D3D10_RENDER_TARGET_VIEW_DESC;
-typedef enum D3D10_SRV_DIMENSION {
-    D3D10_SRV_DIMENSION_UNKNOWN = 0,
-    D3D10_SRV_DIMENSION_BUFFER = 1,
-    D3D10_SRV_DIMENSION_TEXTURE1D = 2,
-    D3D10_SRV_DIMENSION_TEXTURE1DARRAY = 3,
-    D3D10_SRV_DIMENSION_TEXTURE2D = 4,
-    D3D10_SRV_DIMENSION_TEXTURE2DARRAY = 5,
-    D3D10_SRV_DIMENSION_TEXTURE2DMS = 6,
-    D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY = 7,
-    D3D10_SRV_DIMENSION_TEXTURE3D = 8,
-    D3D10_SRV_DIMENSION_TEXTURECUBE = 9
-} D3D10_SRV_DIMENSION;
-typedef struct D3D10_BUFFER_SRV {
-    UINT ElementOffset;
-    UINT ElementWidth;
-} D3D10_BUFFER_SRV;
-typedef struct D3D10_TEX1D_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-} D3D10_TEX1D_SRV;
-typedef struct D3D10_TEX1D_ARRAY_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX1D_ARRAY_SRV;
-typedef struct D3D10_TEX2D_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-} D3D10_TEX2D_SRV;
-typedef struct D3D10_TEX2D_ARRAY_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2D_ARRAY_SRV;
-typedef struct D3D10_TEX2DMS_SRV {
-    UINT UnusedField_NothingToDefine;
-} D3D10_TEX2DMS_SRV;
-typedef struct D3D10_TEX2DMS_ARRAY_SRV {
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2DMS_ARRAY_SRV;
-typedef struct D3D10_TEX3D_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-} D3D10_TEX3D_SRV;
-typedef struct D3D10_TEXCUBE_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-} D3D10_TEXCUBE_SRV;
-typedef struct D3D10_SHADER_RESOURCE_VIEW_DESC {
-    DXGI_FORMAT Format;
-    D3D10_SRV_DIMENSION ViewDimension;
-    union {
-        D3D10_BUFFER_SRV Buffer;
-        D3D10_TEX1D_SRV Texture1D;
-        D3D10_TEX1D_ARRAY_SRV Texture1DArray;
-        D3D10_TEX2D_SRV Texture2D;
-        D3D10_TEX2D_ARRAY_SRV Texture2DArray;
-        D3D10_TEX2DMS_SRV Texture2DMS;
-        D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray;
-        D3D10_TEX3D_SRV Texture3D;
-        D3D10_TEXCUBE_SRV TextureCube;
-    } DUMMYUNIONNAME;
-} D3D10_SHADER_RESOURCE_VIEW_DESC;
-typedef struct D3D10_BOX {
-    UINT left;
-    UINT top;
-    UINT front;
-    UINT right;
-    UINT bottom;
-    UINT back;
-} D3D10_BOX;
-typedef struct D3D10_SUBRESOURCE_DATA {
-    const void *pSysMem;
-    UINT SysMemPitch;
-    UINT SysMemSlicePitch;
-} D3D10_SUBRESOURCE_DATA;
-typedef struct D3D10_SO_DECLARATION_ENTRY {
-    LPCSTR SemanticName;
-    UINT SemanticIndex;
-    BYTE StartComponent;
-    BYTE ComponentCount;
-    BYTE OutputSlot;
-} D3D10_SO_DECLARATION_ENTRY;
-typedef enum D3D10_INPUT_CLASSIFICATION {
-    D3D10_INPUT_PER_VERTEX_DATA = 0,
-    D3D10_INPUT_PER_INSTANCE_DATA = 1
-} D3D10_INPUT_CLASSIFICATION;
-typedef struct D3D10_INPUT_ELEMENT_DESC {
-    LPCSTR SemanticName;
-    UINT SemanticIndex;
-    DXGI_FORMAT Format;
-    UINT InputSlot;
-    UINT AlignedByteOffset;
-    D3D10_INPUT_CLASSIFICATION InputSlotClass;
-    UINT InstanceDataStepRate;
-} D3D10_INPUT_ELEMENT_DESC;
-typedef enum D3D10_QUERY {
-    D3D10_QUERY_EVENT = 0,
-    D3D10_QUERY_OCCLUSION = 1,
-    D3D10_QUERY_TIMESTAMP = 2,
-    D3D10_QUERY_TIMESTAMP_DISJOINT = 3,
-    D3D10_QUERY_PIPELINE_STATISTICS = 4,
-    D3D10_QUERY_OCCLUSION_PREDICATE = 5,
-    D3D10_QUERY_SO_STATISTICS = 6,
-    D3D10_QUERY_SO_OVERFLOW_PREDICATE = 7
-} D3D10_QUERY;
-typedef struct D3D10_QUERY_DESC {
-    D3D10_QUERY Query;
-    UINT MiscFlags;
-} D3D10_QUERY_DESC;
-typedef enum D3D10_PRIMITIVE_TOPOLOGY {
-    D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED = 0,
-    D3D10_PRIMITIVE_TOPOLOGY_POINTLIST = 1,
-    D3D10_PRIMITIVE_TOPOLOGY_LINELIST = 2,
-    D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP = 3,
-    D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4,
-    D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5,
-    D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10,
-    D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11,
-    D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12,
-    D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13
-} D3D10_PRIMITIVE_TOPOLOGY;
-typedef RECT D3D10_RECT;
-typedef struct D3D10_VIEWPORT {
-    INT TopLeftX;
-    INT TopLeftY;
-    UINT Width;
-    UINT Height;
-    FLOAT MinDepth;
-    FLOAT MaxDepth;
-} D3D10_VIEWPORT;
-typedef struct D3D10_MAPPED_TEXTURE2D {
-    void *pData;
-    UINT RowPitch;
-} D3D10_MAPPED_TEXTURE2D;
-typedef struct D3D10_MAPPED_TEXTURE3D {
-    void *pData;
-    UINT RowPitch;
-    UINT DepthPitch;
-} D3D10_MAPPED_TEXTURE3D;
-typedef enum D3D10_BIND_FLAG {
-    D3D10_BIND_VERTEX_BUFFER = 0x1,
-    D3D10_BIND_INDEX_BUFFER = 0x2,
-    D3D10_BIND_CONSTANT_BUFFER = 0x4,
-    D3D10_BIND_SHADER_RESOURCE = 0x8,
-    D3D10_BIND_STREAM_OUTPUT = 0x10,
-    D3D10_BIND_RENDER_TARGET = 0x20,
-    D3D10_BIND_DEPTH_STENCIL = 0x40
-} D3D10_BIND_FLAG;
-typedef enum D3D10_CPU_ACCESS_FLAG {
-    D3D10_CPU_ACCESS_WRITE = 0x10000,
-    D3D10_CPU_ACCESS_READ = 0x20000
-} D3D10_CPU_ACCESS_FLAG;
-typedef enum D3D10_RESOURCE_MISC_FLAG {
-    D3D10_RESOURCE_MISC_GENERATE_MIPS = 0x1,
-    D3D10_RESOURCE_MISC_SHARED = 0x2,
-    D3D10_RESOURCE_MISC_TEXTURECUBE = 0x4
-} D3D10_RESOURCE_MISC_FLAG;
-typedef enum D3D10_MAP_FLAG {
-    D3D10_MAP_FLAG_DO_NOT_WAIT = 0x100000
-} D3D10_MAP_FLAG;
-typedef enum D3D10_CLEAR_FLAG {
-    D3D10_CLEAR_DEPTH = 0x1,
-    D3D10_CLEAR_STENCIL = 0x2
-} D3D10_CLEAR_FLAG;
-typedef enum D3D10_COLOR_WRITE_ENABLE {
-    D3D10_COLOR_WRITE_ENABLE_RED = 0x1,
-    D3D10_COLOR_WRITE_ENABLE_GREEN = 0x2,
-    D3D10_COLOR_WRITE_ENABLE_BLUE = 0x4,
-    D3D10_COLOR_WRITE_ENABLE_ALPHA = 0x8,
-    D3D10_COLOR_WRITE_ENABLE_ALL = ((D3D10_COLOR_WRITE_ENABLE_RED | D3D10_COLOR_WRITE_ENABLE_GREEN) | D3D10_COLOR_WRITE_ENABLE_BLUE) | D3D10_COLOR_WRITE_ENABLE_ALPHA
-} D3D10_COLOR_WRITE_ENABLE;
-typedef enum D3D10_TEXTURECUBE_FACE {
-    D3D10_TEXTURECUBE_FACE_POSITIVE_X = 0,
-    D3D10_TEXTURECUBE_FACE_NEGATIVE_X = 1,
-    D3D10_TEXTURECUBE_FACE_POSITIVE_Y = 2,
-    D3D10_TEXTURECUBE_FACE_NEGATIVE_Y = 3,
-    D3D10_TEXTURECUBE_FACE_POSITIVE_Z = 4,
-    D3D10_TEXTURECUBE_FACE_NEGATIVE_Z = 5
-} D3D10_TEXTURECUBE_FACE;
-typedef enum D3D10_ASYNC_GETDATA_FLAG {
-    D3D10_ASYNC_GETDATA_DONOTFLUSH = 0x1
-} D3D10_ASYNC_GETDATA_FLAG;
-typedef enum D3D10_FILTER_TYPE {
-    D3D10_FILTER_TYPE_POINT = 0,
-    D3D10_FILTER_TYPE_LINEAR = 1
-} D3D10_FILTER_TYPE;
-typedef enum D3D10_QUERY_MISC_FLAG {
-    D3D10_QUERY_MISC_PREDICATEHINT = 0x1
-} D3D10_QUERY_MISC_FLAG;
-typedef struct D3D10_QUERY_DATA_TIMESTAMP_DISJOINT {
-    UINT64 Frequency;
-    BOOL Disjoint;
-} D3D10_QUERY_DATA_TIMESTAMP_DISJOINT;
-typedef struct D3D10_QUERY_DATA_PIPELINE_STATISTICS {
-    UINT64 IAVertices;
-    UINT64 IAPrimitives;
-    UINT64 VSInvocations;
-    UINT64 GSInvocations;
-    UINT64 GSPrimitives;
-    UINT64 CInvocations;
-    UINT64 CPrimitives;
-    UINT64 PSInvocations;
-} D3D10_QUERY_DATA_PIPELINE_STATISTICS;
-typedef struct D3D10_QUERY_DATA_SO_STATISTICS {
-    UINT64 NumPrimitivesWritten;
-    UINT64 PrimitivesStorageNeeded;
-} D3D10_QUERY_DATA_SO_STATISTICS;
-typedef enum D3D10_CREATE_DEVICE_FLAG {
-    D3D10_CREATE_DEVICE_SINGLETHREADED = 0x1,
-    D3D10_CREATE_DEVICE_DEBUG = 0x2,
-    D3D10_CREATE_DEVICE_SWITCH_TO_REF = 0x4,
-    D3D10_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x8
-} D3D10_CREATE_DEVICE_FLAG;
-#ifndef __ID3D10Device_FWD_DEFINED__
-#define __ID3D10Device_FWD_DEFINED__
-typedef interface ID3D10Device ID3D10Device;
-#endif
-
-/*****************************************************************************
- * ID3D10DeviceChild interface
- */
-#ifndef __ID3D10DeviceChild_INTERFACE_DEFINED__
-#define __ID3D10DeviceChild_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10DeviceChild, 0x9b7e4c00, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10DeviceChild : public IUnknown
-{
-    virtual void STDMETHODCALLTYPE GetDevice(
-        ID3D10Device **ppDevice) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
-        REFGUID guid,
-        const IUnknown *pData) = 0;
-
-};
-#else
-typedef struct ID3D10DeviceChildVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10DeviceChild* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10DeviceChild* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10DeviceChild* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10DeviceChild* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10DeviceChild* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10DeviceChild* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10DeviceChild* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    END_INTERFACE
-} ID3D10DeviceChildVtbl;
-interface ID3D10DeviceChild {
-    CONST_VTBL ID3D10DeviceChildVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10DeviceChild_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10DeviceChild_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10DeviceChild_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10DeviceChild_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10DeviceChild_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10DeviceChild_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10DeviceChild_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10DeviceChild_GetDevice_Proxy(
-    ID3D10DeviceChild* This,
-    ID3D10Device **ppDevice);
-void __RPC_STUB ID3D10DeviceChild_GetDevice_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10DeviceChild_GetPrivateData_Proxy(
-    ID3D10DeviceChild* This,
-    REFGUID guid,
-    UINT *pDataSize,
-    void *pData);
-void __RPC_STUB ID3D10DeviceChild_GetPrivateData_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10DeviceChild_SetPrivateData_Proxy(
-    ID3D10DeviceChild* This,
-    REFGUID guid,
-    UINT DataSize,
-    const void *pData);
-void __RPC_STUB ID3D10DeviceChild_SetPrivateData_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10DeviceChild_SetPrivateDataInterface_Proxy(
-    ID3D10DeviceChild* This,
-    REFGUID guid,
-    const IUnknown *pData);
-void __RPC_STUB ID3D10DeviceChild_SetPrivateDataInterface_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10DeviceChild_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10Resource interface
- */
-#ifndef __ID3D10Resource_INTERFACE_DEFINED__
-#define __ID3D10Resource_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10Resource, 0x9b7e4c01, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10Resource : public ID3D10DeviceChild
-{
-    virtual void STDMETHODCALLTYPE GetType(
-        D3D10_RESOURCE_DIMENSION *rType) = 0;
-
-    virtual void STDMETHODCALLTYPE SetEvictionPriority(
-        UINT EvictionPriority) = 0;
-
-    virtual UINT STDMETHODCALLTYPE GetEvictionPriority(
-        ) = 0;
-
-};
-#else
-typedef struct ID3D10ResourceVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10Resource* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10Resource* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10Resource* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10Resource* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10Resource* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10Resource* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10Resource* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10Resource methods ***/
-    void (STDMETHODCALLTYPE *GetType)(
-        ID3D10Resource* This,
-        D3D10_RESOURCE_DIMENSION *rType);
-
-    void (STDMETHODCALLTYPE *SetEvictionPriority)(
-        ID3D10Resource* This,
-        UINT EvictionPriority);
-
-    UINT (STDMETHODCALLTYPE *GetEvictionPriority)(
-        ID3D10Resource* This);
-
-    END_INTERFACE
-} ID3D10ResourceVtbl;
-interface ID3D10Resource {
-    CONST_VTBL ID3D10ResourceVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10Resource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10Resource_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10Resource_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10Resource_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10Resource_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10Resource_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10Resource_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10Resource methods ***/
-#define ID3D10Resource_GetType(This,rType) (This)->lpVtbl->GetType(This,rType)
-#define ID3D10Resource_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
-#define ID3D10Resource_GetEvictionPriority(This) (This)->lpVtbl->GetEvictionPriority(This)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10Resource_GetType_Proxy(
-    ID3D10Resource* This,
-    D3D10_RESOURCE_DIMENSION *rType);
-void __RPC_STUB ID3D10Resource_GetType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Resource_SetEvictionPriority_Proxy(
-    ID3D10Resource* This,
-    UINT EvictionPriority);
-void __RPC_STUB ID3D10Resource_SetEvictionPriority_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-UINT STDMETHODCALLTYPE ID3D10Resource_GetEvictionPriority_Proxy(
-    ID3D10Resource* This);
-void __RPC_STUB ID3D10Resource_GetEvictionPriority_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10Resource_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10Buffer interface
- */
-#ifndef __ID3D10Buffer_INTERFACE_DEFINED__
-#define __ID3D10Buffer_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10Buffer, 0x9b7e4c02, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10Buffer : public ID3D10Resource
-{
-    virtual HRESULT STDMETHODCALLTYPE Map(
-        D3D10_MAP MapType,
-        UINT MapFlags,
-        void **ppData) = 0;
-
-    virtual void STDMETHODCALLTYPE Unmap(
-        ) = 0;
-
-    virtual void STDMETHODCALLTYPE GetDesc(
-        D3D10_BUFFER_DESC *pDesc) = 0;
-
-};
-#else
-typedef struct ID3D10BufferVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10Buffer* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10Buffer* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10Buffer* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10Buffer* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10Buffer* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10Buffer* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10Buffer* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10Resource methods ***/
-    void (STDMETHODCALLTYPE *GetType)(
-        ID3D10Buffer* This,
-        D3D10_RESOURCE_DIMENSION *rType);
-
-    void (STDMETHODCALLTYPE *SetEvictionPriority)(
-        ID3D10Buffer* This,
-        UINT EvictionPriority);
-
-    UINT (STDMETHODCALLTYPE *GetEvictionPriority)(
-        ID3D10Buffer* This);
-
-    /*** ID3D10Buffer methods ***/
-    HRESULT (STDMETHODCALLTYPE *Map)(
-        ID3D10Buffer* This,
-        D3D10_MAP MapType,
-        UINT MapFlags,
-        void **ppData);
-
-    void (STDMETHODCALLTYPE *Unmap)(
-        ID3D10Buffer* This);
-
-    void (STDMETHODCALLTYPE *GetDesc)(
-        ID3D10Buffer* This,
-        D3D10_BUFFER_DESC *pDesc);
-
-    END_INTERFACE
-} ID3D10BufferVtbl;
-interface ID3D10Buffer {
-    CONST_VTBL ID3D10BufferVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10Buffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10Buffer_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10Buffer_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10Buffer_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10Buffer_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10Buffer_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10Buffer_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10Resource methods ***/
-#define ID3D10Buffer_GetType(This,rType) (This)->lpVtbl->GetType(This,rType)
-#define ID3D10Buffer_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
-#define ID3D10Buffer_GetEvictionPriority(This) (This)->lpVtbl->GetEvictionPriority(This)
-/*** ID3D10Buffer methods ***/
-#define ID3D10Buffer_Map(This,MapType,MapFlags,ppData) (This)->lpVtbl->Map(This,MapType,MapFlags,ppData)
-#define ID3D10Buffer_Unmap(This) (This)->lpVtbl->Unmap(This)
-#define ID3D10Buffer_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
-#endif
-
-#endif
-
-HRESULT STDMETHODCALLTYPE ID3D10Buffer_Map_Proxy(
-    ID3D10Buffer* This,
-    D3D10_MAP MapType,
-    UINT MapFlags,
-    void **ppData);
-void __RPC_STUB ID3D10Buffer_Map_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Buffer_Unmap_Proxy(
-    ID3D10Buffer* This);
-void __RPC_STUB ID3D10Buffer_Unmap_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Buffer_GetDesc_Proxy(
-    ID3D10Buffer* This,
-    D3D10_BUFFER_DESC *pDesc);
-void __RPC_STUB ID3D10Buffer_GetDesc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10Buffer_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10Texture1D interface
- */
-#ifndef __ID3D10Texture1D_INTERFACE_DEFINED__
-#define __ID3D10Texture1D_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10Texture1D, 0x9b7e4c03, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10Texture1D : public ID3D10Resource
-{
-    virtual HRESULT STDMETHODCALLTYPE Map(
-        UINT Subresource,
-        D3D10_MAP MapType,
-        UINT MapFlags,
-        void **ppData) = 0;
-
-    virtual void STDMETHODCALLTYPE Unmap(
-        UINT Subresource) = 0;
-
-    virtual void STDMETHODCALLTYPE GetDesc(
-        D3D10_TEXTURE1D_DESC *pDesc) = 0;
-
-};
-#else
-typedef struct ID3D10Texture1DVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10Texture1D* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10Texture1D* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10Texture1D* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10Texture1D* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10Texture1D* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10Texture1D* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10Texture1D* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10Resource methods ***/
-    void (STDMETHODCALLTYPE *GetType)(
-        ID3D10Texture1D* This,
-        D3D10_RESOURCE_DIMENSION *rType);
-
-    void (STDMETHODCALLTYPE *SetEvictionPriority)(
-        ID3D10Texture1D* This,
-        UINT EvictionPriority);
-
-    UINT (STDMETHODCALLTYPE *GetEvictionPriority)(
-        ID3D10Texture1D* This);
-
-    /*** ID3D10Texture1D methods ***/
-    HRESULT (STDMETHODCALLTYPE *Map)(
-        ID3D10Texture1D* This,
-        UINT Subresource,
-        D3D10_MAP MapType,
-        UINT MapFlags,
-        void **ppData);
-
-    void (STDMETHODCALLTYPE *Unmap)(
-        ID3D10Texture1D* This,
-        UINT Subresource);
-
-    void (STDMETHODCALLTYPE *GetDesc)(
-        ID3D10Texture1D* This,
-        D3D10_TEXTURE1D_DESC *pDesc);
-
-    END_INTERFACE
-} ID3D10Texture1DVtbl;
-interface ID3D10Texture1D {
-    CONST_VTBL ID3D10Texture1DVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10Texture1D_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10Texture1D_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10Texture1D_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10Texture1D_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10Texture1D_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10Texture1D_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10Texture1D_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10Resource methods ***/
-#define ID3D10Texture1D_GetType(This,rType) (This)->lpVtbl->GetType(This,rType)
-#define ID3D10Texture1D_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
-#define ID3D10Texture1D_GetEvictionPriority(This) (This)->lpVtbl->GetEvictionPriority(This)
-/*** ID3D10Texture1D methods ***/
-#define ID3D10Texture1D_Map(This,Subresource,MapType,MapFlags,ppData) (This)->lpVtbl->Map(This,Subresource,MapType,MapFlags,ppData)
-#define ID3D10Texture1D_Unmap(This,Subresource) (This)->lpVtbl->Unmap(This,Subresource)
-#define ID3D10Texture1D_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
-#endif
-
-#endif
-
-HRESULT STDMETHODCALLTYPE ID3D10Texture1D_Map_Proxy(
-    ID3D10Texture1D* This,
-    UINT Subresource,
-    D3D10_MAP MapType,
-    UINT MapFlags,
-    void **ppData);
-void __RPC_STUB ID3D10Texture1D_Map_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Texture1D_Unmap_Proxy(
-    ID3D10Texture1D* This,
-    UINT Subresource);
-void __RPC_STUB ID3D10Texture1D_Unmap_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Texture1D_GetDesc_Proxy(
-    ID3D10Texture1D* This,
-    D3D10_TEXTURE1D_DESC *pDesc);
-void __RPC_STUB ID3D10Texture1D_GetDesc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10Texture1D_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10Texture2D interface
- */
-#ifndef __ID3D10Texture2D_INTERFACE_DEFINED__
-#define __ID3D10Texture2D_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10Texture2D, 0x9b7e4c04, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10Texture2D : public ID3D10Resource
-{
-    virtual HRESULT STDMETHODCALLTYPE Map(
-        UINT Subresource,
-        D3D10_MAP MapType,
-        UINT MapFlags,
-        D3D10_MAPPED_TEXTURE2D *pMappedTex2D) = 0;
-
-    virtual void STDMETHODCALLTYPE Unmap(
-        UINT Subresource) = 0;
-
-    virtual void STDMETHODCALLTYPE GetDesc(
-        D3D10_TEXTURE2D_DESC *pDesc) = 0;
-
-};
-#else
-typedef struct ID3D10Texture2DVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10Texture2D* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10Texture2D* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10Texture2D* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10Texture2D* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10Texture2D* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10Texture2D* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10Texture2D* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10Resource methods ***/
-    void (STDMETHODCALLTYPE *GetType)(
-        ID3D10Texture2D* This,
-        D3D10_RESOURCE_DIMENSION *rType);
-
-    void (STDMETHODCALLTYPE *SetEvictionPriority)(
-        ID3D10Texture2D* This,
-        UINT EvictionPriority);
-
-    UINT (STDMETHODCALLTYPE *GetEvictionPriority)(
-        ID3D10Texture2D* This);
-
-    /*** ID3D10Texture2D methods ***/
-    HRESULT (STDMETHODCALLTYPE *Map)(
-        ID3D10Texture2D* This,
-        UINT Subresource,
-        D3D10_MAP MapType,
-        UINT MapFlags,
-        D3D10_MAPPED_TEXTURE2D *pMappedTex2D);
-
-    void (STDMETHODCALLTYPE *Unmap)(
-        ID3D10Texture2D* This,
-        UINT Subresource);
-
-    void (STDMETHODCALLTYPE *GetDesc)(
-        ID3D10Texture2D* This,
-        D3D10_TEXTURE2D_DESC *pDesc);
-
-    END_INTERFACE
-} ID3D10Texture2DVtbl;
-interface ID3D10Texture2D {
-    CONST_VTBL ID3D10Texture2DVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10Texture2D_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10Texture2D_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10Texture2D_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10Texture2D_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10Texture2D_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10Texture2D_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10Texture2D_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10Resource methods ***/
-#define ID3D10Texture2D_GetType(This,rType) (This)->lpVtbl->GetType(This,rType)
-#define ID3D10Texture2D_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
-#define ID3D10Texture2D_GetEvictionPriority(This) (This)->lpVtbl->GetEvictionPriority(This)
-/*** ID3D10Texture2D methods ***/
-#define ID3D10Texture2D_Map(This,Subresource,MapType,MapFlags,pMappedTex2D) (This)->lpVtbl->Map(This,Subresource,MapType,MapFlags,pMappedTex2D)
-#define ID3D10Texture2D_Unmap(This,Subresource) (This)->lpVtbl->Unmap(This,Subresource)
-#define ID3D10Texture2D_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
-#endif
-
-#endif
-
-HRESULT STDMETHODCALLTYPE ID3D10Texture2D_Map_Proxy(
-    ID3D10Texture2D* This,
-    UINT Subresource,
-    D3D10_MAP MapType,
-    UINT MapFlags,
-    D3D10_MAPPED_TEXTURE2D *pMappedTex2D);
-void __RPC_STUB ID3D10Texture2D_Map_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Texture2D_Unmap_Proxy(
-    ID3D10Texture2D* This,
-    UINT Subresource);
-void __RPC_STUB ID3D10Texture2D_Unmap_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Texture2D_GetDesc_Proxy(
-    ID3D10Texture2D* This,
-    D3D10_TEXTURE2D_DESC *pDesc);
-void __RPC_STUB ID3D10Texture2D_GetDesc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10Texture2D_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10Texture3D interface
- */
-#ifndef __ID3D10Texture3D_INTERFACE_DEFINED__
-#define __ID3D10Texture3D_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10Texture3D, 0x9b7e4c05, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10Texture3D : public ID3D10Resource
-{
-    virtual HRESULT STDMETHODCALLTYPE Map(
-        UINT Subresource,
-        D3D10_MAP MapType,
-        UINT MapFlags,
-        D3D10_MAPPED_TEXTURE3D *pMappedTex3D) = 0;
-
-    virtual void STDMETHODCALLTYPE Unmap(
-        UINT Subresource) = 0;
-
-    virtual void STDMETHODCALLTYPE GetDesc(
-        D3D10_TEXTURE3D_DESC *pDesc) = 0;
-
-};
-#else
-typedef struct ID3D10Texture3DVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10Texture3D* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10Texture3D* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10Texture3D* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10Texture3D* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10Texture3D* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10Texture3D* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10Texture3D* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10Resource methods ***/
-    void (STDMETHODCALLTYPE *GetType)(
-        ID3D10Texture3D* This,
-        D3D10_RESOURCE_DIMENSION *rType);
-
-    void (STDMETHODCALLTYPE *SetEvictionPriority)(
-        ID3D10Texture3D* This,
-        UINT EvictionPriority);
-
-    UINT (STDMETHODCALLTYPE *GetEvictionPriority)(
-        ID3D10Texture3D* This);
-
-    /*** ID3D10Texture3D methods ***/
-    HRESULT (STDMETHODCALLTYPE *Map)(
-        ID3D10Texture3D* This,
-        UINT Subresource,
-        D3D10_MAP MapType,
-        UINT MapFlags,
-        D3D10_MAPPED_TEXTURE3D *pMappedTex3D);
-
-    void (STDMETHODCALLTYPE *Unmap)(
-        ID3D10Texture3D* This,
-        UINT Subresource);
-
-    void (STDMETHODCALLTYPE *GetDesc)(
-        ID3D10Texture3D* This,
-        D3D10_TEXTURE3D_DESC *pDesc);
-
-    END_INTERFACE
-} ID3D10Texture3DVtbl;
-interface ID3D10Texture3D {
-    CONST_VTBL ID3D10Texture3DVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10Texture3D_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10Texture3D_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10Texture3D_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10Texture3D_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10Texture3D_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10Texture3D_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10Texture3D_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10Resource methods ***/
-#define ID3D10Texture3D_GetType(This,rType) (This)->lpVtbl->GetType(This,rType)
-#define ID3D10Texture3D_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
-#define ID3D10Texture3D_GetEvictionPriority(This) (This)->lpVtbl->GetEvictionPriority(This)
-/*** ID3D10Texture3D methods ***/
-#define ID3D10Texture3D_Map(This,Subresource,MapType,MapFlags,pMappedTex3D) (This)->lpVtbl->Map(This,Subresource,MapType,MapFlags,pMappedTex3D)
-#define ID3D10Texture3D_Unmap(This,Subresource) (This)->lpVtbl->Unmap(This,Subresource)
-#define ID3D10Texture3D_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
-#endif
-
-#endif
-
-HRESULT STDMETHODCALLTYPE ID3D10Texture3D_Map_Proxy(
-    ID3D10Texture3D* This,
-    UINT Subresource,
-    D3D10_MAP MapType,
-    UINT MapFlags,
-    D3D10_MAPPED_TEXTURE3D *pMappedTex3D);
-void __RPC_STUB ID3D10Texture3D_Map_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Texture3D_Unmap_Proxy(
-    ID3D10Texture3D* This,
-    UINT Subresource);
-void __RPC_STUB ID3D10Texture3D_Unmap_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Texture3D_GetDesc_Proxy(
-    ID3D10Texture3D* This,
-    D3D10_TEXTURE3D_DESC *pDesc);
-void __RPC_STUB ID3D10Texture3D_GetDesc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10Texture3D_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10View interface
- */
-#ifndef __ID3D10View_INTERFACE_DEFINED__
-#define __ID3D10View_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10View, 0xc902b03f, 0x60a7, 0x49ba, 0x99,0x36, 0x2a,0x3a,0xb3,0x7a,0x7e,0x33);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10View : public ID3D10DeviceChild
-{
-    virtual void STDMETHODCALLTYPE GetResource(
-        ID3D10Resource **ppResource) = 0;
-
-};
-#else
-typedef struct ID3D10ViewVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10View* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10View* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10View* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10View* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10View* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10View* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10View* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10View methods ***/
-    void (STDMETHODCALLTYPE *GetResource)(
-        ID3D10View* This,
-        ID3D10Resource **ppResource);
-
-    END_INTERFACE
-} ID3D10ViewVtbl;
-interface ID3D10View {
-    CONST_VTBL ID3D10ViewVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10View_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10View_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10View_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10View_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10View_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10View_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10View_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10View methods ***/
-#define ID3D10View_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10View_GetResource_Proxy(
-    ID3D10View* This,
-    ID3D10Resource **ppResource);
-void __RPC_STUB ID3D10View_GetResource_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10View_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10DepthStencilView interface
- */
-#ifndef __ID3D10DepthStencilView_INTERFACE_DEFINED__
-#define __ID3D10DepthStencilView_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10DepthStencilView, 0x9b7e4c09, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10DepthStencilView : public ID3D10View
-{
-    virtual void STDMETHODCALLTYPE GetDesc(
-        D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc) = 0;
-
-};
-#else
-typedef struct ID3D10DepthStencilViewVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10DepthStencilView* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10DepthStencilView* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10DepthStencilView* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10DepthStencilView* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10DepthStencilView* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10DepthStencilView* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10DepthStencilView* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10View methods ***/
-    void (STDMETHODCALLTYPE *GetResource)(
-        ID3D10DepthStencilView* This,
-        ID3D10Resource **ppResource);
-
-    /*** ID3D10DepthStencilView methods ***/
-    void (STDMETHODCALLTYPE *GetDesc)(
-        ID3D10DepthStencilView* This,
-        D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc);
-
-    END_INTERFACE
-} ID3D10DepthStencilViewVtbl;
-interface ID3D10DepthStencilView {
-    CONST_VTBL ID3D10DepthStencilViewVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10DepthStencilView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10DepthStencilView_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10DepthStencilView_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10DepthStencilView_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10DepthStencilView_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10DepthStencilView_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10DepthStencilView_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10View methods ***/
-#define ID3D10DepthStencilView_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
-/*** ID3D10DepthStencilView methods ***/
-#define ID3D10DepthStencilView_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10DepthStencilView_GetDesc_Proxy(
-    ID3D10DepthStencilView* This,
-    D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc);
-void __RPC_STUB ID3D10DepthStencilView_GetDesc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10DepthStencilView_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10RenderTargetView interface
- */
-#ifndef __ID3D10RenderTargetView_INTERFACE_DEFINED__
-#define __ID3D10RenderTargetView_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10RenderTargetView, 0x9b7e4c08, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10RenderTargetView : public ID3D10View
-{
-    virtual void STDMETHODCALLTYPE GetDesc(
-        D3D10_RENDER_TARGET_VIEW_DESC *pDesc) = 0;
-
-};
-#else
-typedef struct ID3D10RenderTargetViewVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10RenderTargetView* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10RenderTargetView* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10RenderTargetView* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10RenderTargetView* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10RenderTargetView* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10RenderTargetView* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10RenderTargetView* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10View methods ***/
-    void (STDMETHODCALLTYPE *GetResource)(
-        ID3D10RenderTargetView* This,
-        ID3D10Resource **ppResource);
-
-    /*** ID3D10RenderTargetView methods ***/
-    void (STDMETHODCALLTYPE *GetDesc)(
-        ID3D10RenderTargetView* This,
-        D3D10_RENDER_TARGET_VIEW_DESC *pDesc);
-
-    END_INTERFACE
-} ID3D10RenderTargetViewVtbl;
-interface ID3D10RenderTargetView {
-    CONST_VTBL ID3D10RenderTargetViewVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10RenderTargetView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10RenderTargetView_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10RenderTargetView_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10RenderTargetView_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10RenderTargetView_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10RenderTargetView_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10RenderTargetView_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10View methods ***/
-#define ID3D10RenderTargetView_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
-/*** ID3D10RenderTargetView methods ***/
-#define ID3D10RenderTargetView_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10RenderTargetView_GetDesc_Proxy(
-    ID3D10RenderTargetView* This,
-    D3D10_RENDER_TARGET_VIEW_DESC *pDesc);
-void __RPC_STUB ID3D10RenderTargetView_GetDesc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10RenderTargetView_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10ShaderResourceView interface
- */
-#ifndef __ID3D10ShaderResourceView_INTERFACE_DEFINED__
-#define __ID3D10ShaderResourceView_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10ShaderResourceView, 0x9b7e4c07, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10ShaderResourceView : public ID3D10View
-{
-    virtual void STDMETHODCALLTYPE GetDesc(
-        D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc) = 0;
-
-};
-#else
-typedef struct ID3D10ShaderResourceViewVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10ShaderResourceView* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10ShaderResourceView* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10ShaderResourceView* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10ShaderResourceView* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10ShaderResourceView* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10ShaderResourceView* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10ShaderResourceView* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10View methods ***/
-    void (STDMETHODCALLTYPE *GetResource)(
-        ID3D10ShaderResourceView* This,
-        ID3D10Resource **ppResource);
-
-    /*** ID3D10ShaderResourceView methods ***/
-    void (STDMETHODCALLTYPE *GetDesc)(
-        ID3D10ShaderResourceView* This,
-        D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc);
-
-    END_INTERFACE
-} ID3D10ShaderResourceViewVtbl;
-interface ID3D10ShaderResourceView {
-    CONST_VTBL ID3D10ShaderResourceViewVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10ShaderResourceView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10ShaderResourceView_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10ShaderResourceView_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10ShaderResourceView_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10ShaderResourceView_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10ShaderResourceView_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10ShaderResourceView_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10View methods ***/
-#define ID3D10ShaderResourceView_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
-/*** ID3D10ShaderResourceView methods ***/
-#define ID3D10ShaderResourceView_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10ShaderResourceView_GetDesc_Proxy(
-    ID3D10ShaderResourceView* This,
-    D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc);
-void __RPC_STUB ID3D10ShaderResourceView_GetDesc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10ShaderResourceView_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10BlendState interface
- */
-#ifndef __ID3D10BlendState_INTERFACE_DEFINED__
-#define __ID3D10BlendState_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10BlendState, 0xedad8d19, 0x8a35, 0x4d6d, 0x85,0x66, 0x2e,0xa2,0x76,0xcd,0xe1,0x61);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10BlendState : public ID3D10DeviceChild
-{
-    virtual void STDMETHODCALLTYPE GetDesc(
-        D3D10_BLEND_DESC *pDesc) = 0;
-
-};
-#else
-typedef struct ID3D10BlendStateVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10BlendState* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10BlendState* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10BlendState* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10BlendState* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10BlendState* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10BlendState* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10BlendState* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10BlendState methods ***/
-    void (STDMETHODCALLTYPE *GetDesc)(
-        ID3D10BlendState* This,
-        D3D10_BLEND_DESC *pDesc);
-
-    END_INTERFACE
-} ID3D10BlendStateVtbl;
-interface ID3D10BlendState {
-    CONST_VTBL ID3D10BlendStateVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10BlendState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10BlendState_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10BlendState_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10BlendState_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10BlendState_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10BlendState_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10BlendState_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10BlendState methods ***/
-#define ID3D10BlendState_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10BlendState_GetDesc_Proxy(
-    ID3D10BlendState* This,
-    D3D10_BLEND_DESC *pDesc);
-void __RPC_STUB ID3D10BlendState_GetDesc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10BlendState_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10DepthStencilState interface
- */
-#ifndef __ID3D10DepthStencilState_INTERFACE_DEFINED__
-#define __ID3D10DepthStencilState_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10DepthStencilState, 0x2b4b1cc8, 0xa4ad, 0x41f8, 0x83,0x22, 0xca,0x86,0xfc,0x3e,0xc6,0x75);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10DepthStencilState : public ID3D10DeviceChild
-{
-    virtual void STDMETHODCALLTYPE GetDesc(
-        D3D10_DEPTH_STENCIL_DESC *pDesc) = 0;
-
-};
-#else
-typedef struct ID3D10DepthStencilStateVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10DepthStencilState* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10DepthStencilState* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10DepthStencilState* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10DepthStencilState* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10DepthStencilState* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10DepthStencilState* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10DepthStencilState* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10DepthStencilState methods ***/
-    void (STDMETHODCALLTYPE *GetDesc)(
-        ID3D10DepthStencilState* This,
-        D3D10_DEPTH_STENCIL_DESC *pDesc);
-
-    END_INTERFACE
-} ID3D10DepthStencilStateVtbl;
-interface ID3D10DepthStencilState {
-    CONST_VTBL ID3D10DepthStencilStateVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10DepthStencilState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10DepthStencilState_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10DepthStencilState_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10DepthStencilState_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10DepthStencilState_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10DepthStencilState_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10DepthStencilState_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10DepthStencilState methods ***/
-#define ID3D10DepthStencilState_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10DepthStencilState_GetDesc_Proxy(
-    ID3D10DepthStencilState* This,
-    D3D10_DEPTH_STENCIL_DESC *pDesc);
-void __RPC_STUB ID3D10DepthStencilState_GetDesc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10DepthStencilState_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10GeometryShader interface
- */
-#ifndef __ID3D10GeometryShader_INTERFACE_DEFINED__
-#define __ID3D10GeometryShader_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10GeometryShader, 0x6316be88, 0x54cd, 0x4040, 0xab,0x44, 0x20,0x46,0x1b,0xc8,0x1f,0x68);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10GeometryShader : public ID3D10DeviceChild
-{
-};
-#else
-typedef struct ID3D10GeometryShaderVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10GeometryShader* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10GeometryShader* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10GeometryShader* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10GeometryShader* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10GeometryShader* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10GeometryShader* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10GeometryShader* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    END_INTERFACE
-} ID3D10GeometryShaderVtbl;
-interface ID3D10GeometryShader {
-    CONST_VTBL ID3D10GeometryShaderVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10GeometryShader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10GeometryShader_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10GeometryShader_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10GeometryShader_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10GeometryShader_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10GeometryShader_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10GeometryShader_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-#endif
-
-#endif
-
-
-#endif  /* __ID3D10GeometryShader_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10InputLayout interface
- */
-#ifndef __ID3D10InputLayout_INTERFACE_DEFINED__
-#define __ID3D10InputLayout_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10InputLayout, 0x9b7e4c0b, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10InputLayout : public ID3D10DeviceChild
-{
-};
-#else
-typedef struct ID3D10InputLayoutVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10InputLayout* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10InputLayout* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10InputLayout* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10InputLayout* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10InputLayout* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10InputLayout* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10InputLayout* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    END_INTERFACE
-} ID3D10InputLayoutVtbl;
-interface ID3D10InputLayout {
-    CONST_VTBL ID3D10InputLayoutVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10InputLayout_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10InputLayout_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10InputLayout_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10InputLayout_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10InputLayout_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10InputLayout_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10InputLayout_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-#endif
-
-#endif
-
-
-#endif  /* __ID3D10InputLayout_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10PixelShader interface
- */
-#ifndef __ID3D10PixelShader_INTERFACE_DEFINED__
-#define __ID3D10PixelShader_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10PixelShader, 0x4968b601, 0x9d00, 0x4cde, 0x83,0x46, 0x8e,0x7f,0x67,0x58,0x19,0xb6);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10PixelShader : public ID3D10DeviceChild
-{
-};
-#else
-typedef struct ID3D10PixelShaderVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10PixelShader* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10PixelShader* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10PixelShader* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10PixelShader* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10PixelShader* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10PixelShader* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10PixelShader* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    END_INTERFACE
-} ID3D10PixelShaderVtbl;
-interface ID3D10PixelShader {
-    CONST_VTBL ID3D10PixelShaderVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10PixelShader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10PixelShader_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10PixelShader_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10PixelShader_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10PixelShader_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10PixelShader_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10PixelShader_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-#endif
-
-#endif
-
-
-#endif  /* __ID3D10PixelShader_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10RasterizerState interface
- */
-#ifndef __ID3D10RasterizerState_INTERFACE_DEFINED__
-#define __ID3D10RasterizerState_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10RasterizerState, 0xa2a07292, 0x89af, 0x4345, 0xbe,0x2e, 0xc5,0x3d,0x9f,0xbb,0x6e,0x9f);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10RasterizerState : public ID3D10DeviceChild
-{
-    virtual void STDMETHODCALLTYPE GetDesc(
-        D3D10_RASTERIZER_DESC *pDesc) = 0;
-
-};
-#else
-typedef struct ID3D10RasterizerStateVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10RasterizerState* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10RasterizerState* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10RasterizerState* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10RasterizerState* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10RasterizerState* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10RasterizerState* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10RasterizerState* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10RasterizerState methods ***/
-    void (STDMETHODCALLTYPE *GetDesc)(
-        ID3D10RasterizerState* This,
-        D3D10_RASTERIZER_DESC *pDesc);
-
-    END_INTERFACE
-} ID3D10RasterizerStateVtbl;
-interface ID3D10RasterizerState {
-    CONST_VTBL ID3D10RasterizerStateVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10RasterizerState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10RasterizerState_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10RasterizerState_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10RasterizerState_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10RasterizerState_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10RasterizerState_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10RasterizerState_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10RasterizerState methods ***/
-#define ID3D10RasterizerState_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10RasterizerState_GetDesc_Proxy(
-    ID3D10RasterizerState* This,
-    D3D10_RASTERIZER_DESC *pDesc);
-void __RPC_STUB ID3D10RasterizerState_GetDesc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10RasterizerState_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10SamplerState interface
- */
-#ifndef __ID3D10SamplerState_INTERFACE_DEFINED__
-#define __ID3D10SamplerState_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10SamplerState, 0x9b7e4c0c, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10SamplerState : public ID3D10DeviceChild
-{
-    virtual void STDMETHODCALLTYPE GetDesc(
-        D3D10_SAMPLER_DESC *pDesc) = 0;
-
-};
-#else
-typedef struct ID3D10SamplerStateVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10SamplerState* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10SamplerState* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10SamplerState* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10SamplerState* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10SamplerState* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10SamplerState* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10SamplerState* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10SamplerState methods ***/
-    void (STDMETHODCALLTYPE *GetDesc)(
-        ID3D10SamplerState* This,
-        D3D10_SAMPLER_DESC *pDesc);
-
-    END_INTERFACE
-} ID3D10SamplerStateVtbl;
-interface ID3D10SamplerState {
-    CONST_VTBL ID3D10SamplerStateVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10SamplerState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10SamplerState_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10SamplerState_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10SamplerState_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10SamplerState_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10SamplerState_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10SamplerState_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10SamplerState methods ***/
-#define ID3D10SamplerState_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10SamplerState_GetDesc_Proxy(
-    ID3D10SamplerState* This,
-    D3D10_SAMPLER_DESC *pDesc);
-void __RPC_STUB ID3D10SamplerState_GetDesc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10SamplerState_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10VertexShader interface
- */
-#ifndef __ID3D10VertexShader_INTERFACE_DEFINED__
-#define __ID3D10VertexShader_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10VertexShader, 0x9b7e4c0a, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10VertexShader : public ID3D10DeviceChild
-{
-};
-#else
-typedef struct ID3D10VertexShaderVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10VertexShader* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10VertexShader* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10VertexShader* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10VertexShader* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10VertexShader* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10VertexShader* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10VertexShader* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    END_INTERFACE
-} ID3D10VertexShaderVtbl;
-interface ID3D10VertexShader {
-    CONST_VTBL ID3D10VertexShaderVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10VertexShader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10VertexShader_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10VertexShader_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10VertexShader_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10VertexShader_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10VertexShader_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10VertexShader_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-#endif
-
-#endif
-
-
-#endif  /* __ID3D10VertexShader_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10Asynchronous interface
- */
-#ifndef __ID3D10Asynchronous_INTERFACE_DEFINED__
-#define __ID3D10Asynchronous_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10Asynchronous, 0x9b7e4c0d, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10Asynchronous : public ID3D10DeviceChild
-{
-    virtual void STDMETHODCALLTYPE Begin(
-        ) = 0;
-
-    virtual void STDMETHODCALLTYPE End(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetData(
-        void *pData,
-        UINT DataSize,
-        UINT GetDataFlags) = 0;
-
-    virtual UINT STDMETHODCALLTYPE GetDataSize(
-        ) = 0;
-
-};
-#else
-typedef struct ID3D10AsynchronousVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10Asynchronous* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10Asynchronous* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10Asynchronous* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10Asynchronous* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10Asynchronous* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10Asynchronous* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10Asynchronous* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10Asynchronous methods ***/
-    void (STDMETHODCALLTYPE *Begin)(
-        ID3D10Asynchronous* This);
-
-    void (STDMETHODCALLTYPE *End)(
-        ID3D10Asynchronous* This);
-
-    HRESULT (STDMETHODCALLTYPE *GetData)(
-        ID3D10Asynchronous* This,
-        void *pData,
-        UINT DataSize,
-        UINT GetDataFlags);
-
-    UINT (STDMETHODCALLTYPE *GetDataSize)(
-        ID3D10Asynchronous* This);
-
-    END_INTERFACE
-} ID3D10AsynchronousVtbl;
-interface ID3D10Asynchronous {
-    CONST_VTBL ID3D10AsynchronousVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10Asynchronous_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10Asynchronous_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10Asynchronous_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10Asynchronous_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10Asynchronous_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10Asynchronous_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10Asynchronous_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10Asynchronous methods ***/
-#define ID3D10Asynchronous_Begin(This) (This)->lpVtbl->Begin(This)
-#define ID3D10Asynchronous_End(This) (This)->lpVtbl->End(This)
-#define ID3D10Asynchronous_GetData(This,pData,DataSize,GetDataFlags) (This)->lpVtbl->GetData(This,pData,DataSize,GetDataFlags)
-#define ID3D10Asynchronous_GetDataSize(This) (This)->lpVtbl->GetDataSize(This)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10Asynchronous_Begin_Proxy(
-    ID3D10Asynchronous* This);
-void __RPC_STUB ID3D10Asynchronous_Begin_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Asynchronous_End_Proxy(
-    ID3D10Asynchronous* This);
-void __RPC_STUB ID3D10Asynchronous_End_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Asynchronous_GetData_Proxy(
-    ID3D10Asynchronous* This,
-    void *pData,
-    UINT DataSize,
-    UINT GetDataFlags);
-void __RPC_STUB ID3D10Asynchronous_GetData_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-UINT STDMETHODCALLTYPE ID3D10Asynchronous_GetDataSize_Proxy(
-    ID3D10Asynchronous* This);
-void __RPC_STUB ID3D10Asynchronous_GetDataSize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10Asynchronous_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10Counter interface
- */
-#ifndef __ID3D10Counter_INTERFACE_DEFINED__
-#define __ID3D10Counter_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10Counter, 0x9b7e4c11, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10Counter : public ID3D10Asynchronous
-{
-    virtual void STDMETHODCALLTYPE GetDesc(
-        D3D10_COUNTER_DESC *pDesc) = 0;
-
-};
-#else
-typedef struct ID3D10CounterVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10Counter* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10Counter* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10Counter* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10Counter* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10Counter* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10Counter* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10Counter* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10Asynchronous methods ***/
-    void (STDMETHODCALLTYPE *Begin)(
-        ID3D10Counter* This);
-
-    void (STDMETHODCALLTYPE *End)(
-        ID3D10Counter* This);
-
-    HRESULT (STDMETHODCALLTYPE *GetData)(
-        ID3D10Counter* This,
-        void *pData,
-        UINT DataSize,
-        UINT GetDataFlags);
-
-    UINT (STDMETHODCALLTYPE *GetDataSize)(
-        ID3D10Counter* This);
-
-    /*** ID3D10Counter methods ***/
-    void (STDMETHODCALLTYPE *GetDesc)(
-        ID3D10Counter* This,
-        D3D10_COUNTER_DESC *pDesc);
-
-    END_INTERFACE
-} ID3D10CounterVtbl;
-interface ID3D10Counter {
-    CONST_VTBL ID3D10CounterVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10Counter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10Counter_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10Counter_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10Counter_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10Counter_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10Counter_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10Counter_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10Asynchronous methods ***/
-#define ID3D10Counter_Begin(This) (This)->lpVtbl->Begin(This)
-#define ID3D10Counter_End(This) (This)->lpVtbl->End(This)
-#define ID3D10Counter_GetData(This,pData,DataSize,GetDataFlags) (This)->lpVtbl->GetData(This,pData,DataSize,GetDataFlags)
-#define ID3D10Counter_GetDataSize(This) (This)->lpVtbl->GetDataSize(This)
-/*** ID3D10Counter methods ***/
-#define ID3D10Counter_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10Counter_GetDesc_Proxy(
-    ID3D10Counter* This,
-    D3D10_COUNTER_DESC *pDesc);
-void __RPC_STUB ID3D10Counter_GetDesc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10Counter_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10Query interface
- */
-#ifndef __ID3D10Query_INTERFACE_DEFINED__
-#define __ID3D10Query_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10Query, 0x9b7e4c0e, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10Query : public ID3D10Asynchronous
-{
-    virtual void STDMETHODCALLTYPE GetDesc(
-        D3D10_QUERY_DESC *pDesc) = 0;
-
-};
-#else
-typedef struct ID3D10QueryVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10Query* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10Query* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10Query* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10Query* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10Query* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10Query* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10Query* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10Asynchronous methods ***/
-    void (STDMETHODCALLTYPE *Begin)(
-        ID3D10Query* This);
-
-    void (STDMETHODCALLTYPE *End)(
-        ID3D10Query* This);
-
-    HRESULT (STDMETHODCALLTYPE *GetData)(
-        ID3D10Query* This,
-        void *pData,
-        UINT DataSize,
-        UINT GetDataFlags);
-
-    UINT (STDMETHODCALLTYPE *GetDataSize)(
-        ID3D10Query* This);
-
-    /*** ID3D10Query methods ***/
-    void (STDMETHODCALLTYPE *GetDesc)(
-        ID3D10Query* This,
-        D3D10_QUERY_DESC *pDesc);
-
-    END_INTERFACE
-} ID3D10QueryVtbl;
-interface ID3D10Query {
-    CONST_VTBL ID3D10QueryVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10Query_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10Query_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10Query_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10Query_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10Query_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10Query_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10Query_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10Asynchronous methods ***/
-#define ID3D10Query_Begin(This) (This)->lpVtbl->Begin(This)
-#define ID3D10Query_End(This) (This)->lpVtbl->End(This)
-#define ID3D10Query_GetData(This,pData,DataSize,GetDataFlags) (This)->lpVtbl->GetData(This,pData,DataSize,GetDataFlags)
-#define ID3D10Query_GetDataSize(This) (This)->lpVtbl->GetDataSize(This)
-/*** ID3D10Query methods ***/
-#define ID3D10Query_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10Query_GetDesc_Proxy(
-    ID3D10Query* This,
-    D3D10_QUERY_DESC *pDesc);
-void __RPC_STUB ID3D10Query_GetDesc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10Query_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10Predicate interface
- */
-#ifndef __ID3D10Predicate_INTERFACE_DEFINED__
-#define __ID3D10Predicate_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10Predicate, 0x9b7e4c10, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10Predicate : public ID3D10Query
-{
-};
-#else
-typedef struct ID3D10PredicateVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10Predicate* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10Predicate* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10Predicate* This);
-
-    /*** ID3D10DeviceChild methods ***/
-    void (STDMETHODCALLTYPE *GetDevice)(
-        ID3D10Predicate* This,
-        ID3D10Device **ppDevice);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10Predicate* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10Predicate* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10Predicate* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    /*** ID3D10Asynchronous methods ***/
-    void (STDMETHODCALLTYPE *Begin)(
-        ID3D10Predicate* This);
-
-    void (STDMETHODCALLTYPE *End)(
-        ID3D10Predicate* This);
-
-    HRESULT (STDMETHODCALLTYPE *GetData)(
-        ID3D10Predicate* This,
-        void *pData,
-        UINT DataSize,
-        UINT GetDataFlags);
-
-    UINT (STDMETHODCALLTYPE *GetDataSize)(
-        ID3D10Predicate* This);
-
-    /*** ID3D10Query methods ***/
-    void (STDMETHODCALLTYPE *GetDesc)(
-        ID3D10Predicate* This,
-        D3D10_QUERY_DESC *pDesc);
-
-    END_INTERFACE
-} ID3D10PredicateVtbl;
-interface ID3D10Predicate {
-    CONST_VTBL ID3D10PredicateVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10Predicate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10Predicate_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10Predicate_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10DeviceChild methods ***/
-#define ID3D10Predicate_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
-#define ID3D10Predicate_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10Predicate_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10Predicate_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-/*** ID3D10Asynchronous methods ***/
-#define ID3D10Predicate_Begin(This) (This)->lpVtbl->Begin(This)
-#define ID3D10Predicate_End(This) (This)->lpVtbl->End(This)
-#define ID3D10Predicate_GetData(This,pData,DataSize,GetDataFlags) (This)->lpVtbl->GetData(This,pData,DataSize,GetDataFlags)
-#define ID3D10Predicate_GetDataSize(This) (This)->lpVtbl->GetDataSize(This)
-/*** ID3D10Query methods ***/
-#define ID3D10Predicate_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
-#endif
-
-#endif
-
-
-#endif  /* __ID3D10Predicate_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10Device interface
- */
-#ifndef __ID3D10Device_INTERFACE_DEFINED__
-#define __ID3D10Device_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10Device, 0x9b7e4c0f, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10Device : public IUnknown
-{
-    virtual void STDMETHODCALLTYPE VSSetConstantBuffers(
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer *const *ppConstantBuffers) = 0;
-
-    virtual void STDMETHODCALLTYPE PSSetShaderResources(
-        UINT StartSlot,
-        UINT NumViews,
-        ID3D10ShaderResourceView *const *ppShaderResourceViews) = 0;
-
-    virtual void STDMETHODCALLTYPE PSSetShader(
-        ID3D10PixelShader *pPixelShader) = 0;
-
-    virtual void STDMETHODCALLTYPE PSSetSamplers(
-        UINT StartSlot,
-        UINT NumSamplers,
-        ID3D10SamplerState *const *ppSamplers) = 0;
-
-    virtual void STDMETHODCALLTYPE VSSetShader(
-        ID3D10VertexShader *pVertexShader) = 0;
-
-    virtual void STDMETHODCALLTYPE DrawIndexed(
-        UINT IndexCount,
-        UINT StartIndexLocation,
-        INT BaseVertexLocation) = 0;
-
-    virtual void STDMETHODCALLTYPE Draw(
-        UINT VertexCount,
-        UINT StartVertexLocation) = 0;
-
-    virtual void STDMETHODCALLTYPE PSSetConstantBuffers(
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer *const *ppConstantBuffers) = 0;
-
-    virtual void STDMETHODCALLTYPE IASetInputLayout(
-        ID3D10InputLayout *pInputLayout) = 0;
-
-    virtual void STDMETHODCALLTYPE IASetVertexBuffers(
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer *const *ppVertexBuffers,
-        const UINT *pStrides,
-        const UINT *pOffsets) = 0;
-
-    virtual void STDMETHODCALLTYPE IASetIndexBuffer(
-        ID3D10Buffer *pIndexBuffer,
-        DXGI_FORMAT Format,
-        UINT Offset) = 0;
-
-    virtual void STDMETHODCALLTYPE DrawIndexedInstanced(
-        UINT IndexCountPerInstance,
-        UINT InstanceCount,
-        UINT StartIndexLocation,
-        INT BaseVertexLocation,
-        UINT StartInstanceLocation) = 0;
-
-    virtual void STDMETHODCALLTYPE DrawInstanced(
-        UINT VertexCountPerInstance,
-        UINT InstanceCount,
-        UINT StartVertexLocation,
-        UINT StartInstanceLocation) = 0;
-
-    virtual void STDMETHODCALLTYPE GSSetConstantBuffers(
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer *const *ppConstantBuffers) = 0;
-
-    virtual void STDMETHODCALLTYPE GSSetShader(
-        ID3D10GeometryShader *pShader) = 0;
-
-    virtual void STDMETHODCALLTYPE IASetPrimitiveTopology(
-        D3D10_PRIMITIVE_TOPOLOGY Topology) = 0;
-
-    virtual void STDMETHODCALLTYPE VSSetShaderResources(
-        UINT StartSlot,
-        UINT NumViews,
-        ID3D10ShaderResourceView *const *ppShaderResourceViews) = 0;
-
-    virtual void STDMETHODCALLTYPE VSSetSamplers(
-        UINT StartSlot,
-        UINT NumSamplers,
-        ID3D10SamplerState *const *ppSamplers) = 0;
-
-    virtual void STDMETHODCALLTYPE SetPredication(
-        ID3D10Predicate *pPredicate,
-        BOOL PredicateValue) = 0;
-
-    virtual void STDMETHODCALLTYPE GSSetShaderResources(
-        UINT StartSlot,
-        UINT NumViews,
-        ID3D10ShaderResourceView *const *ppShaderResourceViews) = 0;
-
-    virtual void STDMETHODCALLTYPE GSSetSamplers(
-        UINT StartSlot,
-        UINT NumSamplers,
-        ID3D10SamplerState *const *ppSamplers) = 0;
-
-    virtual void STDMETHODCALLTYPE OMSetRenderTargets(
-        UINT NumViews,
-        ID3D10RenderTargetView *const *ppRenderTargetViews,
-        ID3D10DepthStencilView *pDepthStencilView) = 0;
-
-    virtual void STDMETHODCALLTYPE OMSetBlendState(
-        ID3D10BlendState *pBlendState,
-        const FLOAT BlendFactor[4],
-        UINT SampleMask) = 0;
-
-    virtual void STDMETHODCALLTYPE OMSetDepthStencilState(
-        ID3D10DepthStencilState *pDepthStencilState,
-        UINT StencilRef) = 0;
-
-    virtual void STDMETHODCALLTYPE SOSetTargets(
-        UINT NumBuffers,
-        ID3D10Buffer *const *ppSOTargets,
-        const UINT *pOffsets) = 0;
-
-    virtual void STDMETHODCALLTYPE DrawAuto(
-        ) = 0;
-
-    virtual void STDMETHODCALLTYPE RSSetState(
-        ID3D10RasterizerState *pRasterizerState) = 0;
-
-    virtual void STDMETHODCALLTYPE RSSetViewports(
-        UINT NumViewports,
-        const D3D10_VIEWPORT *pViewports) = 0;
-
-    virtual void STDMETHODCALLTYPE RSSetScissorRects(
-        UINT NumRects,
-        const D3D10_RECT *pRects) = 0;
-
-    virtual void STDMETHODCALLTYPE CopySubresourceRegion(
-        ID3D10Resource *pDstResource,
-        UINT DstSubresource,
-        UINT DstX,
-        UINT DstY,
-        UINT DstZ,
-        ID3D10Resource *pSrcResource,
-        UINT SrcSubresource,
-        const D3D10_BOX *pSrcBox) = 0;
-
-    virtual void STDMETHODCALLTYPE CopyResource(
-        ID3D10Resource *pDstResource,
-        ID3D10Resource *pSrcResource) = 0;
-
-    virtual void STDMETHODCALLTYPE UpdateSubresource(
-        ID3D10Resource *pDstResource,
-        UINT DstSubresource,
-        const D3D10_BOX *pDstBox,
-        const void *pSrcData,
-        UINT SrcRowPitch,
-        UINT SrcDepthPitch) = 0;
-
-    virtual void STDMETHODCALLTYPE ClearRenderTargetView(
-        ID3D10RenderTargetView *pRenderTargetView,
-        const FLOAT ColorRGBA[4]) = 0;
-
-    virtual void STDMETHODCALLTYPE ClearDepthStencilView(
-        ID3D10DepthStencilView *pDepthStencilView,
-        UINT ClearFlags,
-        FLOAT Depth,
-        UINT8 Stencil) = 0;
-
-    virtual void STDMETHODCALLTYPE GenerateMips(
-        ID3D10ShaderResourceView *pShaderResourceView) = 0;
-
-    virtual void STDMETHODCALLTYPE ResolveSubresource(
-        ID3D10Resource *pDstResource,
-        UINT DstSubresource,
-        ID3D10Resource *pSrcResource,
-        UINT SrcSubresource,
-        DXGI_FORMAT Format) = 0;
-
-    virtual void STDMETHODCALLTYPE VSGetConstantBuffers(
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer **ppConstantBuffers) = 0;
-
-    virtual void STDMETHODCALLTYPE PSGetShaderResources(
-        UINT StartSlot,
-        UINT NumViews,
-        ID3D10ShaderResourceView **ppShaderResourceViews) = 0;
-
-    virtual void STDMETHODCALLTYPE PSGetShader(
-        ID3D10PixelShader **ppPixelShader) = 0;
-
-    virtual void STDMETHODCALLTYPE PSGetSamplers(
-        UINT StartSlot,
-        UINT NumSamplers,
-        ID3D10SamplerState **ppSamplers) = 0;
-
-    virtual void STDMETHODCALLTYPE VSGetShader(
-        ID3D10VertexShader **ppVertexShader) = 0;
-
-    virtual void STDMETHODCALLTYPE PSGetConstantBuffers(
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer **ppConstantBuffers) = 0;
-
-    virtual void STDMETHODCALLTYPE IAGetInputLayout(
-        ID3D10InputLayout **ppInputLayout) = 0;
-
-    virtual void STDMETHODCALLTYPE IAGetVertexBuffers(
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer **ppVertexBuffers,
-        UINT *pStrides,
-        UINT *pOffsets) = 0;
-
-    virtual void STDMETHODCALLTYPE IAGetIndexBuffer(
-        ID3D10Buffer **pIndexBuffer,
-        DXGI_FORMAT *Format,
-        UINT *Offset) = 0;
-
-    virtual void STDMETHODCALLTYPE GSGetConstantBuffers(
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer **ppConstantBuffers) = 0;
-
-    virtual void STDMETHODCALLTYPE GSGetShader(
-        ID3D10GeometryShader **ppGeometryShader) = 0;
-
-    virtual void STDMETHODCALLTYPE IAGetPrimitiveTopology(
-        D3D10_PRIMITIVE_TOPOLOGY *pTopology) = 0;
-
-    virtual void STDMETHODCALLTYPE VSGetShaderResources(
-        UINT StartSlot,
-        UINT NumViews,
-        ID3D10ShaderResourceView **ppShaderResourceViews) = 0;
-
-    virtual void STDMETHODCALLTYPE VSGetSamplers(
-        UINT StartSlot,
-        UINT NumSamplers,
-        ID3D10SamplerState **ppSamplers) = 0;
-
-    virtual void STDMETHODCALLTYPE GetPredication(
-        ID3D10Predicate **ppPredicate,
-        BOOL *pPredicateValue) = 0;
-
-    virtual void STDMETHODCALLTYPE GSGetShaderResources(
-        UINT StartSlot,
-        UINT NumViews,
-        ID3D10ShaderResourceView **ppShaderResourceViews) = 0;
-
-    virtual void STDMETHODCALLTYPE GSGetSamplers(
-        UINT StartSlot,
-        UINT NumSamplers,
-        ID3D10SamplerState **ppSamplers) = 0;
-
-    virtual void STDMETHODCALLTYPE OMGetRenderTargets(
-        UINT NumViews,
-        ID3D10RenderTargetView **ppRenderTargetViews,
-        ID3D10DepthStencilView **ppDepthStencilView) = 0;
-
-    virtual void STDMETHODCALLTYPE OMGetBlendState(
-        ID3D10BlendState **ppBlendState,
-        FLOAT BlendFactor[4],
-        UINT *pSampleMask) = 0;
-
-    virtual void STDMETHODCALLTYPE OMGetDepthStencilState(
-        ID3D10DepthStencilState **ppDepthStencilState,
-        UINT *pStencilRef) = 0;
-
-    virtual void STDMETHODCALLTYPE SOGetTargets(
-        UINT NumBuffers,
-        ID3D10Buffer **ppSOTargets,
-        UINT *pOffsets) = 0;
-
-    virtual void STDMETHODCALLTYPE RSGetState(
-        ID3D10RasterizerState **ppRasterizerState) = 0;
-
-    virtual void STDMETHODCALLTYPE RSGetViewports(
-        UINT *NumViewports,
-        D3D10_VIEWPORT *pViewports) = 0;
-
-    virtual void STDMETHODCALLTYPE RSGetScissorRects(
-        UINT *NumRects,
-        D3D10_RECT *pRects) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE SetExceptionMode(
-        UINT RaiseFlags) = 0;
-
-    virtual UINT STDMETHODCALLTYPE GetExceptionMode(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
-        REFGUID guid,
-        const IUnknown *pData) = 0;
-
-    virtual void STDMETHODCALLTYPE ClearState(
-        ) = 0;
-
-    virtual void STDMETHODCALLTYPE Flush(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateBuffer(
-        const D3D10_BUFFER_DESC *pDesc,
-        const D3D10_SUBRESOURCE_DATA *pInitialData,
-        ID3D10Buffer **ppBuffer) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateTexture1D(
-        const D3D10_TEXTURE1D_DESC *pDesc,
-        const D3D10_SUBRESOURCE_DATA *pInitialData,
-        ID3D10Texture1D **ppTexture1D) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateTexture2D(
-        const D3D10_TEXTURE2D_DESC *pDesc,
-        const D3D10_SUBRESOURCE_DATA *pInitialData,
-        ID3D10Texture2D **ppTexture2D) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateTexture3D(
-        const D3D10_TEXTURE3D_DESC *pDesc,
-        const D3D10_SUBRESOURCE_DATA *pInitialData,
-        ID3D10Texture3D **ppTexture3D) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateShaderResourceView(
-        ID3D10Resource *pResource,
-        const D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc,
-        ID3D10ShaderResourceView **ppSRView) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateRenderTargetView(
-        ID3D10Resource *pResource,
-        const D3D10_RENDER_TARGET_VIEW_DESC *pDesc,
-        ID3D10RenderTargetView **ppRTView) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateDepthStencilView(
-        ID3D10Resource *pResource,
-        const D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc,
-        ID3D10DepthStencilView **ppDepthStencilView) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateInputLayout(
-        const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs,
-        UINT NumElements,
-        const void *pShaderBytecodeWithInputSignature,
-        SIZE_T BytecodeLength,
-        ID3D10InputLayout **ppInputLayout) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateVertexShader(
-        const void *pShaderBytecode,
-        SIZE_T BytecodeLength,
-        ID3D10VertexShader **ppVertexShader) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateGeometryShader(
-        const void *pShaderBytecode,
-        SIZE_T BytecodeLength,
-        ID3D10GeometryShader **ppGeometryShader) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateGeometryShaderWithStreamOutput(
-        const void *pShaderBytecode,
-        SIZE_T BytecodeLength,
-        const D3D10_SO_DECLARATION_ENTRY *pSODeclaration,
-        UINT NumEntries,
-        UINT OutputStreamStride,
-        ID3D10GeometryShader **ppGeometryShader) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreatePixelShader(
-        const void *pShaderBytecode,
-        SIZE_T BytecodeLength,
-        ID3D10PixelShader **ppPixelShader) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateBlendState(
-        const D3D10_BLEND_DESC *pBlendStateDesc,
-        ID3D10BlendState **ppBlendState) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateDepthStencilState(
-        const D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc,
-        ID3D10DepthStencilState **ppDepthStencilState) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateRasterizerState(
-        const D3D10_RASTERIZER_DESC *pRasterizerDesc,
-        ID3D10RasterizerState **ppRasterizerState) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateSamplerState(
-        const D3D10_SAMPLER_DESC *pSamplerDesc,
-        ID3D10SamplerState **ppSamplerState) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateQuery(
-        const D3D10_QUERY_DESC *pQueryDesc,
-        ID3D10Query **ppQuery) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreatePredicate(
-        const D3D10_QUERY_DESC *pPredicateDesc,
-        ID3D10Predicate **ppPredicate) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateCounter(
-        const D3D10_COUNTER_DESC *pCounterDesc,
-        ID3D10Counter **ppCounter) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CheckFormatSupport(
-        DXGI_FORMAT Format,
-        UINT *pFormatSupport) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CheckMultisampleQualityLevels(
-        DXGI_FORMAT Format,
-        UINT SampleCount,
-        UINT *pNumQualityLevels) = 0;
-
-    virtual void STDMETHODCALLTYPE CheckCounterInfo(
-        D3D10_COUNTER_INFO *pCounterInfo) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CheckCounter(
-        const D3D10_COUNTER_DESC *pDesc,
-        D3D10_COUNTER_TYPE *pType,
-        UINT *pActiveCounters,
-        LPSTR szName,
-        UINT *pNameLength,
-        LPSTR szUnits,
-        UINT *pUnitsLength,
-        LPSTR szDescription,
-        UINT *pDescriptionLength) = 0;
-
-    virtual UINT STDMETHODCALLTYPE GetCreationFlags(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE OpenSharedResource(
-        HANDLE hResource,
-        REFIID ReturnedInterface,
-        void **ppResource) = 0;
-
-    virtual void STDMETHODCALLTYPE SetTextFilterSize(
-        UINT Width,
-        UINT Height) = 0;
-
-    virtual void STDMETHODCALLTYPE GetTextFilterSize(
-        UINT *pWidth,
-        UINT *pHeight) = 0;
-
-};
-#else
-typedef struct ID3D10DeviceVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10Device* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10Device* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10Device* This);
-
-    /*** ID3D10Device methods ***/
-    void (STDMETHODCALLTYPE *VSSetConstantBuffers)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer *const *ppConstantBuffers);
-
-    void (STDMETHODCALLTYPE *PSSetShaderResources)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumViews,
-        ID3D10ShaderResourceView *const *ppShaderResourceViews);
-
-    void (STDMETHODCALLTYPE *PSSetShader)(
-        ID3D10Device* This,
-        ID3D10PixelShader *pPixelShader);
-
-    void (STDMETHODCALLTYPE *PSSetSamplers)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumSamplers,
-        ID3D10SamplerState *const *ppSamplers);
-
-    void (STDMETHODCALLTYPE *VSSetShader)(
-        ID3D10Device* This,
-        ID3D10VertexShader *pVertexShader);
-
-    void (STDMETHODCALLTYPE *DrawIndexed)(
-        ID3D10Device* This,
-        UINT IndexCount,
-        UINT StartIndexLocation,
-        INT BaseVertexLocation);
-
-    void (STDMETHODCALLTYPE *Draw)(
-        ID3D10Device* This,
-        UINT VertexCount,
-        UINT StartVertexLocation);
-
-    void (STDMETHODCALLTYPE *PSSetConstantBuffers)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer *const *ppConstantBuffers);
-
-    void (STDMETHODCALLTYPE *IASetInputLayout)(
-        ID3D10Device* This,
-        ID3D10InputLayout *pInputLayout);
-
-    void (STDMETHODCALLTYPE *IASetVertexBuffers)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer *const *ppVertexBuffers,
-        const UINT *pStrides,
-        const UINT *pOffsets);
-
-    void (STDMETHODCALLTYPE *IASetIndexBuffer)(
-        ID3D10Device* This,
-        ID3D10Buffer *pIndexBuffer,
-        DXGI_FORMAT Format,
-        UINT Offset);
-
-    void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
-        ID3D10Device* This,
-        UINT IndexCountPerInstance,
-        UINT InstanceCount,
-        UINT StartIndexLocation,
-        INT BaseVertexLocation,
-        UINT StartInstanceLocation);
-
-    void (STDMETHODCALLTYPE *DrawInstanced)(
-        ID3D10Device* This,
-        UINT VertexCountPerInstance,
-        UINT InstanceCount,
-        UINT StartVertexLocation,
-        UINT StartInstanceLocation);
-
-    void (STDMETHODCALLTYPE *GSSetConstantBuffers)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer *const *ppConstantBuffers);
-
-    void (STDMETHODCALLTYPE *GSSetShader)(
-        ID3D10Device* This,
-        ID3D10GeometryShader *pShader);
-
-    void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
-        ID3D10Device* This,
-        D3D10_PRIMITIVE_TOPOLOGY Topology);
-
-    void (STDMETHODCALLTYPE *VSSetShaderResources)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumViews,
-        ID3D10ShaderResourceView *const *ppShaderResourceViews);
-
-    void (STDMETHODCALLTYPE *VSSetSamplers)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumSamplers,
-        ID3D10SamplerState *const *ppSamplers);
-
-    void (STDMETHODCALLTYPE *SetPredication)(
-        ID3D10Device* This,
-        ID3D10Predicate *pPredicate,
-        BOOL PredicateValue);
-
-    void (STDMETHODCALLTYPE *GSSetShaderResources)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumViews,
-        ID3D10ShaderResourceView *const *ppShaderResourceViews);
-
-    void (STDMETHODCALLTYPE *GSSetSamplers)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumSamplers,
-        ID3D10SamplerState *const *ppSamplers);
-
-    void (STDMETHODCALLTYPE *OMSetRenderTargets)(
-        ID3D10Device* This,
-        UINT NumViews,
-        ID3D10RenderTargetView *const *ppRenderTargetViews,
-        ID3D10DepthStencilView *pDepthStencilView);
-
-    void (STDMETHODCALLTYPE *OMSetBlendState)(
-        ID3D10Device* This,
-        ID3D10BlendState *pBlendState,
-        const FLOAT BlendFactor[4],
-        UINT SampleMask);
-
-    void (STDMETHODCALLTYPE *OMSetDepthStencilState)(
-        ID3D10Device* This,
-        ID3D10DepthStencilState *pDepthStencilState,
-        UINT StencilRef);
-
-    void (STDMETHODCALLTYPE *SOSetTargets)(
-        ID3D10Device* This,
-        UINT NumBuffers,
-        ID3D10Buffer *const *ppSOTargets,
-        const UINT *pOffsets);
-
-    void (STDMETHODCALLTYPE *DrawAuto)(
-        ID3D10Device* This);
-
-    void (STDMETHODCALLTYPE *RSSetState)(
-        ID3D10Device* This,
-        ID3D10RasterizerState *pRasterizerState);
-
-    void (STDMETHODCALLTYPE *RSSetViewports)(
-        ID3D10Device* This,
-        UINT NumViewports,
-        const D3D10_VIEWPORT *pViewports);
-
-    void (STDMETHODCALLTYPE *RSSetScissorRects)(
-        ID3D10Device* This,
-        UINT NumRects,
-        const D3D10_RECT *pRects);
-
-    void (STDMETHODCALLTYPE *CopySubresourceRegion)(
-        ID3D10Device* This,
-        ID3D10Resource *pDstResource,
-        UINT DstSubresource,
-        UINT DstX,
-        UINT DstY,
-        UINT DstZ,
-        ID3D10Resource *pSrcResource,
-        UINT SrcSubresource,
-        const D3D10_BOX *pSrcBox);
-
-    void (STDMETHODCALLTYPE *CopyResource)(
-        ID3D10Device* This,
-        ID3D10Resource *pDstResource,
-        ID3D10Resource *pSrcResource);
-
-    void (STDMETHODCALLTYPE *UpdateSubresource)(
-        ID3D10Device* This,
-        ID3D10Resource *pDstResource,
-        UINT DstSubresource,
-        const D3D10_BOX *pDstBox,
-        const void *pSrcData,
-        UINT SrcRowPitch,
-        UINT SrcDepthPitch);
-
-    void (STDMETHODCALLTYPE *ClearRenderTargetView)(
-        ID3D10Device* This,
-        ID3D10RenderTargetView *pRenderTargetView,
-        const FLOAT ColorRGBA[4]);
-
-    void (STDMETHODCALLTYPE *ClearDepthStencilView)(
-        ID3D10Device* This,
-        ID3D10DepthStencilView *pDepthStencilView,
-        UINT ClearFlags,
-        FLOAT Depth,
-        UINT8 Stencil);
-
-    void (STDMETHODCALLTYPE *GenerateMips)(
-        ID3D10Device* This,
-        ID3D10ShaderResourceView *pShaderResourceView);
-
-    void (STDMETHODCALLTYPE *ResolveSubresource)(
-        ID3D10Device* This,
-        ID3D10Resource *pDstResource,
-        UINT DstSubresource,
-        ID3D10Resource *pSrcResource,
-        UINT SrcSubresource,
-        DXGI_FORMAT Format);
-
-    void (STDMETHODCALLTYPE *VSGetConstantBuffers)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer **ppConstantBuffers);
-
-    void (STDMETHODCALLTYPE *PSGetShaderResources)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumViews,
-        ID3D10ShaderResourceView **ppShaderResourceViews);
-
-    void (STDMETHODCALLTYPE *PSGetShader)(
-        ID3D10Device* This,
-        ID3D10PixelShader **ppPixelShader);
-
-    void (STDMETHODCALLTYPE *PSGetSamplers)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumSamplers,
-        ID3D10SamplerState **ppSamplers);
-
-    void (STDMETHODCALLTYPE *VSGetShader)(
-        ID3D10Device* This,
-        ID3D10VertexShader **ppVertexShader);
-
-    void (STDMETHODCALLTYPE *PSGetConstantBuffers)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer **ppConstantBuffers);
-
-    void (STDMETHODCALLTYPE *IAGetInputLayout)(
-        ID3D10Device* This,
-        ID3D10InputLayout **ppInputLayout);
-
-    void (STDMETHODCALLTYPE *IAGetVertexBuffers)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer **ppVertexBuffers,
-        UINT *pStrides,
-        UINT *pOffsets);
-
-    void (STDMETHODCALLTYPE *IAGetIndexBuffer)(
-        ID3D10Device* This,
-        ID3D10Buffer **pIndexBuffer,
-        DXGI_FORMAT *Format,
-        UINT *Offset);
-
-    void (STDMETHODCALLTYPE *GSGetConstantBuffers)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumBuffers,
-        ID3D10Buffer **ppConstantBuffers);
-
-    void (STDMETHODCALLTYPE *GSGetShader)(
-        ID3D10Device* This,
-        ID3D10GeometryShader **ppGeometryShader);
-
-    void (STDMETHODCALLTYPE *IAGetPrimitiveTopology)(
-        ID3D10Device* This,
-        D3D10_PRIMITIVE_TOPOLOGY *pTopology);
-
-    void (STDMETHODCALLTYPE *VSGetShaderResources)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumViews,
-        ID3D10ShaderResourceView **ppShaderResourceViews);
-
-    void (STDMETHODCALLTYPE *VSGetSamplers)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumSamplers,
-        ID3D10SamplerState **ppSamplers);
-
-    void (STDMETHODCALLTYPE *GetPredication)(
-        ID3D10Device* This,
-        ID3D10Predicate **ppPredicate,
-        BOOL *pPredicateValue);
-
-    void (STDMETHODCALLTYPE *GSGetShaderResources)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumViews,
-        ID3D10ShaderResourceView **ppShaderResourceViews);
-
-    void (STDMETHODCALLTYPE *GSGetSamplers)(
-        ID3D10Device* This,
-        UINT StartSlot,
-        UINT NumSamplers,
-        ID3D10SamplerState **ppSamplers);
-
-    void (STDMETHODCALLTYPE *OMGetRenderTargets)(
-        ID3D10Device* This,
-        UINT NumViews,
-        ID3D10RenderTargetView **ppRenderTargetViews,
-        ID3D10DepthStencilView **ppDepthStencilView);
-
-    void (STDMETHODCALLTYPE *OMGetBlendState)(
-        ID3D10Device* This,
-        ID3D10BlendState **ppBlendState,
-        FLOAT BlendFactor[4],
-        UINT *pSampleMask);
-
-    void (STDMETHODCALLTYPE *OMGetDepthStencilState)(
-        ID3D10Device* This,
-        ID3D10DepthStencilState **ppDepthStencilState,
-        UINT *pStencilRef);
-
-    void (STDMETHODCALLTYPE *SOGetTargets)(
-        ID3D10Device* This,
-        UINT NumBuffers,
-        ID3D10Buffer **ppSOTargets,
-        UINT *pOffsets);
-
-    void (STDMETHODCALLTYPE *RSGetState)(
-        ID3D10Device* This,
-        ID3D10RasterizerState **ppRasterizerState);
-
-    void (STDMETHODCALLTYPE *RSGetViewports)(
-        ID3D10Device* This,
-        UINT *NumViewports,
-        D3D10_VIEWPORT *pViewports);
-
-    void (STDMETHODCALLTYPE *RSGetScissorRects)(
-        ID3D10Device* This,
-        UINT *NumRects,
-        D3D10_RECT *pRects);
-
-    HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
-        ID3D10Device* This);
-
-    HRESULT (STDMETHODCALLTYPE *SetExceptionMode)(
-        ID3D10Device* This,
-        UINT RaiseFlags);
-
-    UINT (STDMETHODCALLTYPE *GetExceptionMode)(
-        ID3D10Device* This);
-
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D10Device* This,
-        REFGUID guid,
-        UINT *pDataSize,
-        void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D10Device* This,
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D10Device* This,
-        REFGUID guid,
-        const IUnknown *pData);
-
-    void (STDMETHODCALLTYPE *ClearState)(
-        ID3D10Device* This);
-
-    void (STDMETHODCALLTYPE *Flush)(
-        ID3D10Device* This);
-
-    HRESULT (STDMETHODCALLTYPE *CreateBuffer)(
-        ID3D10Device* This,
-        const D3D10_BUFFER_DESC *pDesc,
-        const D3D10_SUBRESOURCE_DATA *pInitialData,
-        ID3D10Buffer **ppBuffer);
-
-    HRESULT (STDMETHODCALLTYPE *CreateTexture1D)(
-        ID3D10Device* This,
-        const D3D10_TEXTURE1D_DESC *pDesc,
-        const D3D10_SUBRESOURCE_DATA *pInitialData,
-        ID3D10Texture1D **ppTexture1D);
-
-    HRESULT (STDMETHODCALLTYPE *CreateTexture2D)(
-        ID3D10Device* This,
-        const D3D10_TEXTURE2D_DESC *pDesc,
-        const D3D10_SUBRESOURCE_DATA *pInitialData,
-        ID3D10Texture2D **ppTexture2D);
-
-    HRESULT (STDMETHODCALLTYPE *CreateTexture3D)(
-        ID3D10Device* This,
-        const D3D10_TEXTURE3D_DESC *pDesc,
-        const D3D10_SUBRESOURCE_DATA *pInitialData,
-        ID3D10Texture3D **ppTexture3D);
-
-    HRESULT (STDMETHODCALLTYPE *CreateShaderResourceView)(
-        ID3D10Device* This,
-        ID3D10Resource *pResource,
-        const D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc,
-        ID3D10ShaderResourceView **ppSRView);
-
-    HRESULT (STDMETHODCALLTYPE *CreateRenderTargetView)(
-        ID3D10Device* This,
-        ID3D10Resource *pResource,
-        const D3D10_RENDER_TARGET_VIEW_DESC *pDesc,
-        ID3D10RenderTargetView **ppRTView);
-
-    HRESULT (STDMETHODCALLTYPE *CreateDepthStencilView)(
-        ID3D10Device* This,
-        ID3D10Resource *pResource,
-        const D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc,
-        ID3D10DepthStencilView **ppDepthStencilView);
-
-    HRESULT (STDMETHODCALLTYPE *CreateInputLayout)(
-        ID3D10Device* This,
-        const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs,
-        UINT NumElements,
-        const void *pShaderBytecodeWithInputSignature,
-        SIZE_T BytecodeLength,
-        ID3D10InputLayout **ppInputLayout);
-
-    HRESULT (STDMETHODCALLTYPE *CreateVertexShader)(
-        ID3D10Device* This,
-        const void *pShaderBytecode,
-        SIZE_T BytecodeLength,
-        ID3D10VertexShader **ppVertexShader);
-
-    HRESULT (STDMETHODCALLTYPE *CreateGeometryShader)(
-        ID3D10Device* This,
-        const void *pShaderBytecode,
-        SIZE_T BytecodeLength,
-        ID3D10GeometryShader **ppGeometryShader);
-
-    HRESULT (STDMETHODCALLTYPE *CreateGeometryShaderWithStreamOutput)(
-        ID3D10Device* This,
-        const void *pShaderBytecode,
-        SIZE_T BytecodeLength,
-        const D3D10_SO_DECLARATION_ENTRY *pSODeclaration,
-        UINT NumEntries,
-        UINT OutputStreamStride,
-        ID3D10GeometryShader **ppGeometryShader);
-
-    HRESULT (STDMETHODCALLTYPE *CreatePixelShader)(
-        ID3D10Device* This,
-        const void *pShaderBytecode,
-        SIZE_T BytecodeLength,
-        ID3D10PixelShader **ppPixelShader);
-
-    HRESULT (STDMETHODCALLTYPE *CreateBlendState)(
-        ID3D10Device* This,
-        const D3D10_BLEND_DESC *pBlendStateDesc,
-        ID3D10BlendState **ppBlendState);
-
-    HRESULT (STDMETHODCALLTYPE *CreateDepthStencilState)(
-        ID3D10Device* This,
-        const D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc,
-        ID3D10DepthStencilState **ppDepthStencilState);
-
-    HRESULT (STDMETHODCALLTYPE *CreateRasterizerState)(
-        ID3D10Device* This,
-        const D3D10_RASTERIZER_DESC *pRasterizerDesc,
-        ID3D10RasterizerState **ppRasterizerState);
-
-    HRESULT (STDMETHODCALLTYPE *CreateSamplerState)(
-        ID3D10Device* This,
-        const D3D10_SAMPLER_DESC *pSamplerDesc,
-        ID3D10SamplerState **ppSamplerState);
-
-    HRESULT (STDMETHODCALLTYPE *CreateQuery)(
-        ID3D10Device* This,
-        const D3D10_QUERY_DESC *pQueryDesc,
-        ID3D10Query **ppQuery);
-
-    HRESULT (STDMETHODCALLTYPE *CreatePredicate)(
-        ID3D10Device* This,
-        const D3D10_QUERY_DESC *pPredicateDesc,
-        ID3D10Predicate **ppPredicate);
-
-    HRESULT (STDMETHODCALLTYPE *CreateCounter)(
-        ID3D10Device* This,
-        const D3D10_COUNTER_DESC *pCounterDesc,
-        ID3D10Counter **ppCounter);
-
-    HRESULT (STDMETHODCALLTYPE *CheckFormatSupport)(
-        ID3D10Device* This,
-        DXGI_FORMAT Format,
-        UINT *pFormatSupport);
-
-    HRESULT (STDMETHODCALLTYPE *CheckMultisampleQualityLevels)(
-        ID3D10Device* This,
-        DXGI_FORMAT Format,
-        UINT SampleCount,
-        UINT *pNumQualityLevels);
-
-    void (STDMETHODCALLTYPE *CheckCounterInfo)(
-        ID3D10Device* This,
-        D3D10_COUNTER_INFO *pCounterInfo);
-
-    HRESULT (STDMETHODCALLTYPE *CheckCounter)(
-        ID3D10Device* This,
-        const D3D10_COUNTER_DESC *pDesc,
-        D3D10_COUNTER_TYPE *pType,
-        UINT *pActiveCounters,
-        LPSTR szName,
-        UINT *pNameLength,
-        LPSTR szUnits,
-        UINT *pUnitsLength,
-        LPSTR szDescription,
-        UINT *pDescriptionLength);
-
-    UINT (STDMETHODCALLTYPE *GetCreationFlags)(
-        ID3D10Device* This);
-
-    HRESULT (STDMETHODCALLTYPE *OpenSharedResource)(
-        ID3D10Device* This,
-        HANDLE hResource,
-        REFIID ReturnedInterface,
-        void **ppResource);
-
-    void (STDMETHODCALLTYPE *SetTextFilterSize)(
-        ID3D10Device* This,
-        UINT Width,
-        UINT Height);
-
-    void (STDMETHODCALLTYPE *GetTextFilterSize)(
-        ID3D10Device* This,
-        UINT *pWidth,
-        UINT *pHeight);
-
-    END_INTERFACE
-} ID3D10DeviceVtbl;
-interface ID3D10Device {
-    CONST_VTBL ID3D10DeviceVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10Device_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10Device_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10Device_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10Device methods ***/
-#define ID3D10Device_VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
-#define ID3D10Device_PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
-#define ID3D10Device_PSSetShader(This,pPixelShader) (This)->lpVtbl->PSSetShader(This,pPixelShader)
-#define ID3D10Device_PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
-#define ID3D10Device_VSSetShader(This,pVertexShader) (This)->lpVtbl->VSSetShader(This,pVertexShader)
-#define ID3D10Device_DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) (This)->lpVtbl->DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation)
-#define ID3D10Device_Draw(This,VertexCount,StartVertexLocation) (This)->lpVtbl->Draw(This,VertexCount,StartVertexLocation)
-#define ID3D10Device_PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
-#define ID3D10Device_IASetInputLayout(This,pInputLayout) (This)->lpVtbl->IASetInputLayout(This,pInputLayout)
-#define ID3D10Device_IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) (This)->lpVtbl->IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)
-#define ID3D10Device_IASetIndexBuffer(This,pIndexBuffer,Format,Offset) (This)->lpVtbl->IASetIndexBuffer(This,pIndexBuffer,Format,Offset)
-#define ID3D10Device_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) (This)->lpVtbl->DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation)
-#define ID3D10Device_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) (This)->lpVtbl->DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation)
-#define ID3D10Device_GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
-#define ID3D10Device_GSSetShader(This,pShader) (This)->lpVtbl->GSSetShader(This,pShader)
-#define ID3D10Device_IASetPrimitiveTopology(This,Topology) (This)->lpVtbl->IASetPrimitiveTopology(This,Topology)
-#define ID3D10Device_VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
-#define ID3D10Device_VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
-#define ID3D10Device_SetPredication(This,pPredicate,PredicateValue) (This)->lpVtbl->SetPredication(This,pPredicate,PredicateValue)
-#define ID3D10Device_GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
-#define ID3D10Device_GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
-#define ID3D10Device_OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) (This)->lpVtbl->OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView)
-#define ID3D10Device_OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) (This)->lpVtbl->OMSetBlendState(This,pBlendState,BlendFactor,SampleMask)
-#define ID3D10Device_OMSetDepthStencilState(This,pDepthStencilState,StencilRef) (This)->lpVtbl->OMSetDepthStencilState(This,pDepthStencilState,StencilRef)
-#define ID3D10Device_SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) (This)->lpVtbl->SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets)
-#define ID3D10Device_DrawAuto(This) (This)->lpVtbl->DrawAuto(This)
-#define ID3D10Device_RSSetState(This,pRasterizerState) (This)->lpVtbl->RSSetState(This,pRasterizerState)
-#define ID3D10Device_RSSetViewports(This,NumViewports,pViewports) (This)->lpVtbl->RSSetViewports(This,NumViewports,pViewports)
-#define ID3D10Device_RSSetScissorRects(This,NumRects,pRects) (This)->lpVtbl->RSSetScissorRects(This,NumRects,pRects)
-#define ID3D10Device_CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) (This)->lpVtbl->CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox)
-#define ID3D10Device_CopyResource(This,pDstResource,pSrcResource) (This)->lpVtbl->CopyResource(This,pDstResource,pSrcResource)
-#define ID3D10Device_UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) (This)->lpVtbl->UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch)
-#define ID3D10Device_ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) (This)->lpVtbl->ClearRenderTargetView(This,pRenderTargetView,ColorRGBA)
-#define ID3D10Device_ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) (This)->lpVtbl->ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil)
-#define ID3D10Device_GenerateMips(This,pShaderResourceView) (This)->lpVtbl->GenerateMips(This,pShaderResourceView)
-#define ID3D10Device_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) (This)->lpVtbl->ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format)
-#define ID3D10Device_VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
-#define ID3D10Device_PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
-#define ID3D10Device_PSGetShader(This,ppPixelShader) (This)->lpVtbl->PSGetShader(This,ppPixelShader)
-#define ID3D10Device_PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
-#define ID3D10Device_VSGetShader(This,ppVertexShader) (This)->lpVtbl->VSGetShader(This,ppVertexShader)
-#define ID3D10Device_PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
-#define ID3D10Device_IAGetInputLayout(This,ppInputLayout) (This)->lpVtbl->IAGetInputLayout(This,ppInputLayout)
-#define ID3D10Device_IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) (This)->lpVtbl->IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)
-#define ID3D10Device_IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) (This)->lpVtbl->IAGetIndexBuffer(This,pIndexBuffer,Format,Offset)
-#define ID3D10Device_GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
-#define ID3D10Device_GSGetShader(This,ppGeometryShader) (This)->lpVtbl->GSGetShader(This,ppGeometryShader)
-#define ID3D10Device_IAGetPrimitiveTopology(This,pTopology) (This)->lpVtbl->IAGetPrimitiveTopology(This,pTopology)
-#define ID3D10Device_VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
-#define ID3D10Device_VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
-#define ID3D10Device_GetPredication(This,ppPredicate,pPredicateValue) (This)->lpVtbl->GetPredication(This,ppPredicate,pPredicateValue)
-#define ID3D10Device_GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
-#define ID3D10Device_GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
-#define ID3D10Device_OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) (This)->lpVtbl->OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView)
-#define ID3D10Device_OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) (This)->lpVtbl->OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask)
-#define ID3D10Device_OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) (This)->lpVtbl->OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef)
-#define ID3D10Device_SOGetTargets(This,NumBuffers,ppSOTargets,pOffsets) (This)->lpVtbl->SOGetTargets(This,NumBuffers,ppSOTargets,pOffsets)
-#define ID3D10Device_RSGetState(This,ppRasterizerState) (This)->lpVtbl->RSGetState(This,ppRasterizerState)
-#define ID3D10Device_RSGetViewports(This,NumViewports,pViewports) (This)->lpVtbl->RSGetViewports(This,NumViewports,pViewports)
-#define ID3D10Device_RSGetScissorRects(This,NumRects,pRects) (This)->lpVtbl->RSGetScissorRects(This,NumRects,pRects)
-#define ID3D10Device_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
-#define ID3D10Device_SetExceptionMode(This,RaiseFlags) (This)->lpVtbl->SetExceptionMode(This,RaiseFlags)
-#define ID3D10Device_GetExceptionMode(This) (This)->lpVtbl->GetExceptionMode(This)
-#define ID3D10Device_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
-#define ID3D10Device_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
-#define ID3D10Device_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
-#define ID3D10Device_ClearState(This) (This)->lpVtbl->ClearState(This)
-#define ID3D10Device_Flush(This) (This)->lpVtbl->Flush(This)
-#define ID3D10Device_CreateBuffer(This,pDesc,pInitialData,ppBuffer) (This)->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer)
-#define ID3D10Device_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) (This)->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D)
-#define ID3D10Device_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) (This)->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D)
-#define ID3D10Device_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) (This)->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D)
-#define ID3D10Device_CreateShaderResourceView(This,pResource,pDesc,ppSRView) (This)->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView)
-#define ID3D10Device_CreateRenderTargetView(This,pResource,pDesc,ppRTView) (This)->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView)
-#define ID3D10Device_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) (This)->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView)
-#define ID3D10Device_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) (This)->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout)
-#define ID3D10Device_CreateVertexShader(This,pShaderBytecode,BytecodeLength,ppVertexShader) (This)->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,ppVertexShader)
-#define ID3D10Device_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,ppGeometryShader) (This)->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,ppGeometryShader)
-#define ID3D10Device_CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,OutputStreamStride,ppGeometryShader) (This)->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,OutputStreamStride,ppGeometryShader)
-#define ID3D10Device_CreatePixelShader(This,pShaderBytecode,BytecodeLength,ppPixelShader) (This)->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,ppPixelShader)
-#define ID3D10Device_CreateBlendState(This,pBlendStateDesc,ppBlendState) (This)->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState)
-#define ID3D10Device_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) (This)->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState)
-#define ID3D10Device_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) (This)->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState)
-#define ID3D10Device_CreateSamplerState(This,pSamplerDesc,ppSamplerState) (This)->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState)
-#define ID3D10Device_CreateQuery(This,pQueryDesc,ppQuery) (This)->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery)
-#define ID3D10Device_CreatePredicate(This,pPredicateDesc,ppPredicate) (This)->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate)
-#define ID3D10Device_CreateCounter(This,pCounterDesc,ppCounter) (This)->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter)
-#define ID3D10Device_CheckFormatSupport(This,Format,pFormatSupport) (This)->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport)
-#define ID3D10Device_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) (This)->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels)
-#define ID3D10Device_CheckCounterInfo(This,pCounterInfo) (This)->lpVtbl->CheckCounterInfo(This,pCounterInfo)
-#define ID3D10Device_CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) (This)->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength)
-#define ID3D10Device_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
-#define ID3D10Device_OpenSharedResource(This,hResource,ReturnedInterface,ppResource) (This)->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource)
-#define ID3D10Device_SetTextFilterSize(This,Width,Height) (This)->lpVtbl->SetTextFilterSize(This,Width,Height)
-#define ID3D10Device_GetTextFilterSize(This,pWidth,pHeight) (This)->lpVtbl->GetTextFilterSize(This,pWidth,pHeight)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10Device_VSSetConstantBuffers_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumBuffers,
-    ID3D10Buffer *const *ppConstantBuffers);
-void __RPC_STUB ID3D10Device_VSSetConstantBuffers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_PSSetShaderResources_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumViews,
-    ID3D10ShaderResourceView *const *ppShaderResourceViews);
-void __RPC_STUB ID3D10Device_PSSetShaderResources_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_PSSetShader_Proxy(
-    ID3D10Device* This,
-    ID3D10PixelShader *pPixelShader);
-void __RPC_STUB ID3D10Device_PSSetShader_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_PSSetSamplers_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumSamplers,
-    ID3D10SamplerState *const *ppSamplers);
-void __RPC_STUB ID3D10Device_PSSetSamplers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_VSSetShader_Proxy(
-    ID3D10Device* This,
-    ID3D10VertexShader *pVertexShader);
-void __RPC_STUB ID3D10Device_VSSetShader_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_DrawIndexed_Proxy(
-    ID3D10Device* This,
-    UINT IndexCount,
-    UINT StartIndexLocation,
-    INT BaseVertexLocation);
-void __RPC_STUB ID3D10Device_DrawIndexed_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_Draw_Proxy(
-    ID3D10Device* This,
-    UINT VertexCount,
-    UINT StartVertexLocation);
-void __RPC_STUB ID3D10Device_Draw_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_PSSetConstantBuffers_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumBuffers,
-    ID3D10Buffer *const *ppConstantBuffers);
-void __RPC_STUB ID3D10Device_PSSetConstantBuffers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_IASetInputLayout_Proxy(
-    ID3D10Device* This,
-    ID3D10InputLayout *pInputLayout);
-void __RPC_STUB ID3D10Device_IASetInputLayout_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_IASetVertexBuffers_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumBuffers,
-    ID3D10Buffer *const *ppVertexBuffers,
-    const UINT *pStrides,
-    const UINT *pOffsets);
-void __RPC_STUB ID3D10Device_IASetVertexBuffers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_IASetIndexBuffer_Proxy(
-    ID3D10Device* This,
-    ID3D10Buffer *pIndexBuffer,
-    DXGI_FORMAT Format,
-    UINT Offset);
-void __RPC_STUB ID3D10Device_IASetIndexBuffer_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_DrawIndexedInstanced_Proxy(
-    ID3D10Device* This,
-    UINT IndexCountPerInstance,
-    UINT InstanceCount,
-    UINT StartIndexLocation,
-    INT BaseVertexLocation,
-    UINT StartInstanceLocation);
-void __RPC_STUB ID3D10Device_DrawIndexedInstanced_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_DrawInstanced_Proxy(
-    ID3D10Device* This,
-    UINT VertexCountPerInstance,
-    UINT InstanceCount,
-    UINT StartVertexLocation,
-    UINT StartInstanceLocation);
-void __RPC_STUB ID3D10Device_DrawInstanced_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_GSSetConstantBuffers_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumBuffers,
-    ID3D10Buffer *const *ppConstantBuffers);
-void __RPC_STUB ID3D10Device_GSSetConstantBuffers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_GSSetShader_Proxy(
-    ID3D10Device* This,
-    ID3D10GeometryShader *pShader);
-void __RPC_STUB ID3D10Device_GSSetShader_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_IASetPrimitiveTopology_Proxy(
-    ID3D10Device* This,
-    D3D10_PRIMITIVE_TOPOLOGY Topology);
-void __RPC_STUB ID3D10Device_IASetPrimitiveTopology_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_VSSetShaderResources_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumViews,
-    ID3D10ShaderResourceView *const *ppShaderResourceViews);
-void __RPC_STUB ID3D10Device_VSSetShaderResources_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_VSSetSamplers_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumSamplers,
-    ID3D10SamplerState *const *ppSamplers);
-void __RPC_STUB ID3D10Device_VSSetSamplers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_SetPredication_Proxy(
-    ID3D10Device* This,
-    ID3D10Predicate *pPredicate,
-    BOOL PredicateValue);
-void __RPC_STUB ID3D10Device_SetPredication_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_GSSetShaderResources_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumViews,
-    ID3D10ShaderResourceView *const *ppShaderResourceViews);
-void __RPC_STUB ID3D10Device_GSSetShaderResources_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_GSSetSamplers_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumSamplers,
-    ID3D10SamplerState *const *ppSamplers);
-void __RPC_STUB ID3D10Device_GSSetSamplers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_OMSetRenderTargets_Proxy(
-    ID3D10Device* This,
-    UINT NumViews,
-    ID3D10RenderTargetView *const *ppRenderTargetViews,
-    ID3D10DepthStencilView *pDepthStencilView);
-void __RPC_STUB ID3D10Device_OMSetRenderTargets_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_OMSetBlendState_Proxy(
-    ID3D10Device* This,
-    ID3D10BlendState *pBlendState,
-    const FLOAT BlendFactor[4],
-    UINT SampleMask);
-void __RPC_STUB ID3D10Device_OMSetBlendState_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_OMSetDepthStencilState_Proxy(
-    ID3D10Device* This,
-    ID3D10DepthStencilState *pDepthStencilState,
-    UINT StencilRef);
-void __RPC_STUB ID3D10Device_OMSetDepthStencilState_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_SOSetTargets_Proxy(
-    ID3D10Device* This,
-    UINT NumBuffers,
-    ID3D10Buffer *const *ppSOTargets,
-    const UINT *pOffsets);
-void __RPC_STUB ID3D10Device_SOSetTargets_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_DrawAuto_Proxy(
-    ID3D10Device* This);
-void __RPC_STUB ID3D10Device_DrawAuto_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_RSSetState_Proxy(
-    ID3D10Device* This,
-    ID3D10RasterizerState *pRasterizerState);
-void __RPC_STUB ID3D10Device_RSSetState_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_RSSetViewports_Proxy(
-    ID3D10Device* This,
-    UINT NumViewports,
-    const D3D10_VIEWPORT *pViewports);
-void __RPC_STUB ID3D10Device_RSSetViewports_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_RSSetScissorRects_Proxy(
-    ID3D10Device* This,
-    UINT NumRects,
-    const D3D10_RECT *pRects);
-void __RPC_STUB ID3D10Device_RSSetScissorRects_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_CopySubresourceRegion_Proxy(
-    ID3D10Device* This,
-    ID3D10Resource *pDstResource,
-    UINT DstSubresource,
-    UINT DstX,
-    UINT DstY,
-    UINT DstZ,
-    ID3D10Resource *pSrcResource,
-    UINT SrcSubresource,
-    const D3D10_BOX *pSrcBox);
-void __RPC_STUB ID3D10Device_CopySubresourceRegion_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_CopyResource_Proxy(
-    ID3D10Device* This,
-    ID3D10Resource *pDstResource,
-    ID3D10Resource *pSrcResource);
-void __RPC_STUB ID3D10Device_CopyResource_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_UpdateSubresource_Proxy(
-    ID3D10Device* This,
-    ID3D10Resource *pDstResource,
-    UINT DstSubresource,
-    const D3D10_BOX *pDstBox,
-    const void *pSrcData,
-    UINT SrcRowPitch,
-    UINT SrcDepthPitch);
-void __RPC_STUB ID3D10Device_UpdateSubresource_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_ClearRenderTargetView_Proxy(
-    ID3D10Device* This,
-    ID3D10RenderTargetView *pRenderTargetView,
-    const FLOAT ColorRGBA[4]);
-void __RPC_STUB ID3D10Device_ClearRenderTargetView_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_ClearDepthStencilView_Proxy(
-    ID3D10Device* This,
-    ID3D10DepthStencilView *pDepthStencilView,
-    UINT ClearFlags,
-    FLOAT Depth,
-    UINT8 Stencil);
-void __RPC_STUB ID3D10Device_ClearDepthStencilView_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_GenerateMips_Proxy(
-    ID3D10Device* This,
-    ID3D10ShaderResourceView *pShaderResourceView);
-void __RPC_STUB ID3D10Device_GenerateMips_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_ResolveSubresource_Proxy(
-    ID3D10Device* This,
-    ID3D10Resource *pDstResource,
-    UINT DstSubresource,
-    ID3D10Resource *pSrcResource,
-    UINT SrcSubresource,
-    DXGI_FORMAT Format);
-void __RPC_STUB ID3D10Device_ResolveSubresource_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_VSGetConstantBuffers_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumBuffers,
-    ID3D10Buffer **ppConstantBuffers);
-void __RPC_STUB ID3D10Device_VSGetConstantBuffers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_PSGetShaderResources_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumViews,
-    ID3D10ShaderResourceView **ppShaderResourceViews);
-void __RPC_STUB ID3D10Device_PSGetShaderResources_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_PSGetShader_Proxy(
-    ID3D10Device* This,
-    ID3D10PixelShader **ppPixelShader);
-void __RPC_STUB ID3D10Device_PSGetShader_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_PSGetSamplers_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumSamplers,
-    ID3D10SamplerState **ppSamplers);
-void __RPC_STUB ID3D10Device_PSGetSamplers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_VSGetShader_Proxy(
-    ID3D10Device* This,
-    ID3D10VertexShader **ppVertexShader);
-void __RPC_STUB ID3D10Device_VSGetShader_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_PSGetConstantBuffers_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumBuffers,
-    ID3D10Buffer **ppConstantBuffers);
-void __RPC_STUB ID3D10Device_PSGetConstantBuffers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_IAGetInputLayout_Proxy(
-    ID3D10Device* This,
-    ID3D10InputLayout **ppInputLayout);
-void __RPC_STUB ID3D10Device_IAGetInputLayout_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_IAGetVertexBuffers_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumBuffers,
-    ID3D10Buffer **ppVertexBuffers,
-    UINT *pStrides,
-    UINT *pOffsets);
-void __RPC_STUB ID3D10Device_IAGetVertexBuffers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_IAGetIndexBuffer_Proxy(
-    ID3D10Device* This,
-    ID3D10Buffer **pIndexBuffer,
-    DXGI_FORMAT *Format,
-    UINT *Offset);
-void __RPC_STUB ID3D10Device_IAGetIndexBuffer_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_GSGetConstantBuffers_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumBuffers,
-    ID3D10Buffer **ppConstantBuffers);
-void __RPC_STUB ID3D10Device_GSGetConstantBuffers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_GSGetShader_Proxy(
-    ID3D10Device* This,
-    ID3D10GeometryShader **ppGeometryShader);
-void __RPC_STUB ID3D10Device_GSGetShader_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_IAGetPrimitiveTopology_Proxy(
-    ID3D10Device* This,
-    D3D10_PRIMITIVE_TOPOLOGY *pTopology);
-void __RPC_STUB ID3D10Device_IAGetPrimitiveTopology_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_VSGetShaderResources_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumViews,
-    ID3D10ShaderResourceView **ppShaderResourceViews);
-void __RPC_STUB ID3D10Device_VSGetShaderResources_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_VSGetSamplers_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumSamplers,
-    ID3D10SamplerState **ppSamplers);
-void __RPC_STUB ID3D10Device_VSGetSamplers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_GetPredication_Proxy(
-    ID3D10Device* This,
-    ID3D10Predicate **ppPredicate,
-    BOOL *pPredicateValue);
-void __RPC_STUB ID3D10Device_GetPredication_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_GSGetShaderResources_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumViews,
-    ID3D10ShaderResourceView **ppShaderResourceViews);
-void __RPC_STUB ID3D10Device_GSGetShaderResources_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_GSGetSamplers_Proxy(
-    ID3D10Device* This,
-    UINT StartSlot,
-    UINT NumSamplers,
-    ID3D10SamplerState **ppSamplers);
-void __RPC_STUB ID3D10Device_GSGetSamplers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_OMGetRenderTargets_Proxy(
-    ID3D10Device* This,
-    UINT NumViews,
-    ID3D10RenderTargetView **ppRenderTargetViews,
-    ID3D10DepthStencilView **ppDepthStencilView);
-void __RPC_STUB ID3D10Device_OMGetRenderTargets_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_OMGetBlendState_Proxy(
-    ID3D10Device* This,
-    ID3D10BlendState **ppBlendState,
-    FLOAT BlendFactor[4],
-    UINT *pSampleMask);
-void __RPC_STUB ID3D10Device_OMGetBlendState_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_OMGetDepthStencilState_Proxy(
-    ID3D10Device* This,
-    ID3D10DepthStencilState **ppDepthStencilState,
-    UINT *pStencilRef);
-void __RPC_STUB ID3D10Device_OMGetDepthStencilState_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_SOGetTargets_Proxy(
-    ID3D10Device* This,
-    UINT NumBuffers,
-    ID3D10Buffer **ppSOTargets,
-    UINT *pOffsets);
-void __RPC_STUB ID3D10Device_SOGetTargets_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_RSGetState_Proxy(
-    ID3D10Device* This,
-    ID3D10RasterizerState **ppRasterizerState);
-void __RPC_STUB ID3D10Device_RSGetState_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_RSGetViewports_Proxy(
-    ID3D10Device* This,
-    UINT *NumViewports,
-    D3D10_VIEWPORT *pViewports);
-void __RPC_STUB ID3D10Device_RSGetViewports_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_RSGetScissorRects_Proxy(
-    ID3D10Device* This,
-    UINT *NumRects,
-    D3D10_RECT *pRects);
-void __RPC_STUB ID3D10Device_RSGetScissorRects_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_GetDeviceRemovedReason_Proxy(
-    ID3D10Device* This);
-void __RPC_STUB ID3D10Device_GetDeviceRemovedReason_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_SetExceptionMode_Proxy(
-    ID3D10Device* This,
-    UINT RaiseFlags);
-void __RPC_STUB ID3D10Device_SetExceptionMode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-UINT STDMETHODCALLTYPE ID3D10Device_GetExceptionMode_Proxy(
-    ID3D10Device* This);
-void __RPC_STUB ID3D10Device_GetExceptionMode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_GetPrivateData_Proxy(
-    ID3D10Device* This,
-    REFGUID guid,
-    UINT *pDataSize,
-    void *pData);
-void __RPC_STUB ID3D10Device_GetPrivateData_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_SetPrivateData_Proxy(
-    ID3D10Device* This,
-    REFGUID guid,
-    UINT DataSize,
-    const void *pData);
-void __RPC_STUB ID3D10Device_SetPrivateData_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_SetPrivateDataInterface_Proxy(
-    ID3D10Device* This,
-    REFGUID guid,
-    const IUnknown *pData);
-void __RPC_STUB ID3D10Device_SetPrivateDataInterface_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_ClearState_Proxy(
-    ID3D10Device* This);
-void __RPC_STUB ID3D10Device_ClearState_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_Flush_Proxy(
-    ID3D10Device* This);
-void __RPC_STUB ID3D10Device_Flush_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateBuffer_Proxy(
-    ID3D10Device* This,
-    const D3D10_BUFFER_DESC *pDesc,
-    const D3D10_SUBRESOURCE_DATA *pInitialData,
-    ID3D10Buffer **ppBuffer);
-void __RPC_STUB ID3D10Device_CreateBuffer_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateTexture1D_Proxy(
-    ID3D10Device* This,
-    const D3D10_TEXTURE1D_DESC *pDesc,
-    const D3D10_SUBRESOURCE_DATA *pInitialData,
-    ID3D10Texture1D **ppTexture1D);
-void __RPC_STUB ID3D10Device_CreateTexture1D_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateTexture2D_Proxy(
-    ID3D10Device* This,
-    const D3D10_TEXTURE2D_DESC *pDesc,
-    const D3D10_SUBRESOURCE_DATA *pInitialData,
-    ID3D10Texture2D **ppTexture2D);
-void __RPC_STUB ID3D10Device_CreateTexture2D_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateTexture3D_Proxy(
-    ID3D10Device* This,
-    const D3D10_TEXTURE3D_DESC *pDesc,
-    const D3D10_SUBRESOURCE_DATA *pInitialData,
-    ID3D10Texture3D **ppTexture3D);
-void __RPC_STUB ID3D10Device_CreateTexture3D_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateShaderResourceView_Proxy(
-    ID3D10Device* This,
-    ID3D10Resource *pResource,
-    const D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc,
-    ID3D10ShaderResourceView **ppSRView);
-void __RPC_STUB ID3D10Device_CreateShaderResourceView_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateRenderTargetView_Proxy(
-    ID3D10Device* This,
-    ID3D10Resource *pResource,
-    const D3D10_RENDER_TARGET_VIEW_DESC *pDesc,
-    ID3D10RenderTargetView **ppRTView);
-void __RPC_STUB ID3D10Device_CreateRenderTargetView_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateDepthStencilView_Proxy(
-    ID3D10Device* This,
-    ID3D10Resource *pResource,
-    const D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc,
-    ID3D10DepthStencilView **ppDepthStencilView);
-void __RPC_STUB ID3D10Device_CreateDepthStencilView_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateInputLayout_Proxy(
-    ID3D10Device* This,
-    const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs,
-    UINT NumElements,
-    const void *pShaderBytecodeWithInputSignature,
-    SIZE_T BytecodeLength,
-    ID3D10InputLayout **ppInputLayout);
-void __RPC_STUB ID3D10Device_CreateInputLayout_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateVertexShader_Proxy(
-    ID3D10Device* This,
-    const void *pShaderBytecode,
-    SIZE_T BytecodeLength,
-    ID3D10VertexShader **ppVertexShader);
-void __RPC_STUB ID3D10Device_CreateVertexShader_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateGeometryShader_Proxy(
-    ID3D10Device* This,
-    const void *pShaderBytecode,
-    SIZE_T BytecodeLength,
-    ID3D10GeometryShader **ppGeometryShader);
-void __RPC_STUB ID3D10Device_CreateGeometryShader_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateGeometryShaderWithStreamOutput_Proxy(
-    ID3D10Device* This,
-    const void *pShaderBytecode,
-    SIZE_T BytecodeLength,
-    const D3D10_SO_DECLARATION_ENTRY *pSODeclaration,
-    UINT NumEntries,
-    UINT OutputStreamStride,
-    ID3D10GeometryShader **ppGeometryShader);
-void __RPC_STUB ID3D10Device_CreateGeometryShaderWithStreamOutput_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreatePixelShader_Proxy(
-    ID3D10Device* This,
-    const void *pShaderBytecode,
-    SIZE_T BytecodeLength,
-    ID3D10PixelShader **ppPixelShader);
-void __RPC_STUB ID3D10Device_CreatePixelShader_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateBlendState_Proxy(
-    ID3D10Device* This,
-    const D3D10_BLEND_DESC *pBlendStateDesc,
-    ID3D10BlendState **ppBlendState);
-void __RPC_STUB ID3D10Device_CreateBlendState_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateDepthStencilState_Proxy(
-    ID3D10Device* This,
-    const D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc,
-    ID3D10DepthStencilState **ppDepthStencilState);
-void __RPC_STUB ID3D10Device_CreateDepthStencilState_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateRasterizerState_Proxy(
-    ID3D10Device* This,
-    const D3D10_RASTERIZER_DESC *pRasterizerDesc,
-    ID3D10RasterizerState **ppRasterizerState);
-void __RPC_STUB ID3D10Device_CreateRasterizerState_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateSamplerState_Proxy(
-    ID3D10Device* This,
-    const D3D10_SAMPLER_DESC *pSamplerDesc,
-    ID3D10SamplerState **ppSamplerState);
-void __RPC_STUB ID3D10Device_CreateSamplerState_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateQuery_Proxy(
-    ID3D10Device* This,
-    const D3D10_QUERY_DESC *pQueryDesc,
-    ID3D10Query **ppQuery);
-void __RPC_STUB ID3D10Device_CreateQuery_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreatePredicate_Proxy(
-    ID3D10Device* This,
-    const D3D10_QUERY_DESC *pPredicateDesc,
-    ID3D10Predicate **ppPredicate);
-void __RPC_STUB ID3D10Device_CreatePredicate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CreateCounter_Proxy(
-    ID3D10Device* This,
-    const D3D10_COUNTER_DESC *pCounterDesc,
-    ID3D10Counter **ppCounter);
-void __RPC_STUB ID3D10Device_CreateCounter_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CheckFormatSupport_Proxy(
-    ID3D10Device* This,
-    DXGI_FORMAT Format,
-    UINT *pFormatSupport);
-void __RPC_STUB ID3D10Device_CheckFormatSupport_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CheckMultisampleQualityLevels_Proxy(
-    ID3D10Device* This,
-    DXGI_FORMAT Format,
-    UINT SampleCount,
-    UINT *pNumQualityLevels);
-void __RPC_STUB ID3D10Device_CheckMultisampleQualityLevels_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_CheckCounterInfo_Proxy(
-    ID3D10Device* This,
-    D3D10_COUNTER_INFO *pCounterInfo);
-void __RPC_STUB ID3D10Device_CheckCounterInfo_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_CheckCounter_Proxy(
-    ID3D10Device* This,
-    const D3D10_COUNTER_DESC *pDesc,
-    D3D10_COUNTER_TYPE *pType,
-    UINT *pActiveCounters,
-    LPSTR szName,
-    UINT *pNameLength,
-    LPSTR szUnits,
-    UINT *pUnitsLength,
-    LPSTR szDescription,
-    UINT *pDescriptionLength);
-void __RPC_STUB ID3D10Device_CheckCounter_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-UINT STDMETHODCALLTYPE ID3D10Device_GetCreationFlags_Proxy(
-    ID3D10Device* This);
-void __RPC_STUB ID3D10Device_GetCreationFlags_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ID3D10Device_OpenSharedResource_Proxy(
-    ID3D10Device* This,
-    HANDLE hResource,
-    REFIID ReturnedInterface,
-    void **ppResource);
-void __RPC_STUB ID3D10Device_OpenSharedResource_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_SetTextFilterSize_Proxy(
-    ID3D10Device* This,
-    UINT Width,
-    UINT Height);
-void __RPC_STUB ID3D10Device_SetTextFilterSize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Device_GetTextFilterSize_Proxy(
-    ID3D10Device* This,
-    UINT *pWidth,
-    UINT *pHeight);
-void __RPC_STUB ID3D10Device_GetTextFilterSize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10Device_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D10Multithread interface
- */
-#ifndef __ID3D10Multithread_INTERFACE_DEFINED__
-#define __ID3D10Multithread_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D10Multithread, 0x9b7e4e00, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface ID3D10Multithread : public IUnknown
-{
-    virtual void STDMETHODCALLTYPE Enter(
-        ) = 0;
-
-    virtual void STDMETHODCALLTYPE Leave(
-        ) = 0;
-
-    virtual BOOL STDMETHODCALLTYPE SetMultithreadProtected(
-        BOOL bMTProtect) = 0;
-
-    virtual BOOL STDMETHODCALLTYPE GetMultithreadProtected(
-        ) = 0;
-
-};
-#else
-typedef struct ID3D10MultithreadVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D10Multithread* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D10Multithread* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D10Multithread* This);
-
-    /*** ID3D10Multithread methods ***/
-    void (STDMETHODCALLTYPE *Enter)(
-        ID3D10Multithread* This);
-
-    void (STDMETHODCALLTYPE *Leave)(
-        ID3D10Multithread* This);
-
-    BOOL (STDMETHODCALLTYPE *SetMultithreadProtected)(
-        ID3D10Multithread* This,
-        BOOL bMTProtect);
-
-    BOOL (STDMETHODCALLTYPE *GetMultithreadProtected)(
-        ID3D10Multithread* This);
-
-    END_INTERFACE
-} ID3D10MultithreadVtbl;
-interface ID3D10Multithread {
-    CONST_VTBL ID3D10MultithreadVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define ID3D10Multithread_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D10Multithread_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D10Multithread_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D10Multithread methods ***/
-#define ID3D10Multithread_Enter(This) (This)->lpVtbl->Enter(This)
-#define ID3D10Multithread_Leave(This) (This)->lpVtbl->Leave(This)
-#define ID3D10Multithread_SetMultithreadProtected(This,bMTProtect) (This)->lpVtbl->SetMultithreadProtected(This,bMTProtect)
-#define ID3D10Multithread_GetMultithreadProtected(This) (This)->lpVtbl->GetMultithreadProtected(This)
-#endif
-
-#endif
-
-void STDMETHODCALLTYPE ID3D10Multithread_Enter_Proxy(
-    ID3D10Multithread* This);
-void __RPC_STUB ID3D10Multithread_Enter_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE ID3D10Multithread_Leave_Proxy(
-    ID3D10Multithread* This);
-void __RPC_STUB ID3D10Multithread_Leave_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-BOOL STDMETHODCALLTYPE ID3D10Multithread_SetMultithreadProtected_Proxy(
-    ID3D10Multithread* This,
-    BOOL bMTProtect);
-void __RPC_STUB ID3D10Multithread_SetMultithreadProtected_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-BOOL STDMETHODCALLTYPE ID3D10Multithread_GetMultithreadProtected_Proxy(
-    ID3D10Multithread* This);
-void __RPC_STUB ID3D10Multithread_GetMultithreadProtected_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ID3D10Multithread_INTERFACE_DEFINED__ */
-
-#include "d3d10misc.h"
-#include "d3d10shader.h"
-#include "d3d10effect.h"
-/* Begin additional prototypes for all interfaces */
-
-
-/* End additional prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __WIDL_D3D10_H */
diff --git a/misc/builddeps/win64/dx/include/d3d10.idl b/misc/builddeps/win64/dx/include/d3d10.idl
deleted file mode 100644 (file)
index 6205917..0000000
+++ /dev/null
@@ -1,1539 +0,0 @@
-/*
- * Copyright 2007 Andras Kovacs
- *
- * 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 "oaidl.idl";
-import "ocidl.idl";
-import "dxgi.idl";
-
-cpp_quote("#ifndef _D3D10_CONSTANTS")
-cpp_quote("#define _D3D10_CONSTANTS")
-const float D3D10_DEFAULT_BLEND_FACTOR_ALPHA                                            = 1.0;
-const float D3D10_DEFAULT_BLEND_FACTOR_BLUE                                             = 1.0;
-const float D3D10_DEFAULT_BLEND_FACTOR_GREEN                                            = 1.0;
-const float D3D10_DEFAULT_BLEND_FACTOR_RED                                              = 1.0;
-const float D3D10_DEFAULT_BORDER_COLOR_COMPONENT                                        = 0.0;
-const float D3D10_DEFAULT_SLOPE_SCALED_DEPTH_BIAS                                       = 0.0;
-const float D3D10_DEFAULT_DEPTH_BIAS_CLAMP                                              = 0.0;
-const float D3D10_DEFAULT_MAX_ANISOTROPY                                                = 16.0;
-const float D3D10_DEFAULT_MIP_LOD_BIAS                                                  = 0.0;
-const float D3D10_DEFAULT_VIEWPORT_MAX_DEPTH                                            = 0.0;
-const float D3D10_DEFAULT_VIEWPORT_MIN_DEPTH                                            = 0.0;
-const float D3D10_FLOAT16_FUSED_TOLERANCE_IN_ULP                                        = 0.6;
-const float D3D10_FLOAT32_MAX                                                           = 3.402823466e+38;
-const float D3D10_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP                                   = 0.6;
-const float D3D10_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR                                    = 2.4;
-const float D3D10_FLOAT_TO_SRGB_EXPONENT_NUMERATOR                                      = 1.0;
-const float D3D10_FLOAT_TO_SRGB_OFFSET                                                  = 0.055;
-const float D3D10_FLOAT_TO_SRGB_SCALE_1                                                 = 12.92;
-const float D3D10_FLOAT_TO_SRGB_SCALE_2                                                 = 1.055;
-const float D3D10_FLOAT_TO_SRGB_THRESHOLD                                               = 0.0031308;
-const float D3D10_FTOI_INSTRUCTION_MAX_INPUT                                            = 2147483647.999;
-const float D3D10_FTOI_INSTRUCTION_MIN_INPUT                                            = -2147483648.999;
-const float D3D10_FTOU_INSTRUCTION_MAX_INPUT                                            = 4294967295.999;
-const float D3D10_FTOU_INSTRUCTION_MIN_INPUT                                            = 0.0;
-const float D3D10_LINEAR_GAMMA                                                          = 1.0;
-const float D3D10_MAX_BORDER_COLOR_COMPONENT                                            = 1.0;
-const float D3D10_MAX_DEPTH                                                             = 1.0;
-const float D3D10_MAX_POSITION_VALUE                                                    = 3.402823466e+34;
-const float D3D10_MIN_BORDER_COLOR_COMPONENT                                            = 0.0;
-const float D3D10_MIN_DEPTH                                                             = 0.0;
-const float D3D10_MIP_LOD_BIAS_MAX                                                      = 15.99;
-const float D3D10_MIP_LOD_BIAS_MIN                                                      = -16.0;
-const float D3D10_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT                                  = 0.5;
-const float D3D10_MULTISAMPLE_ANTIALIAS_LINE_WIDTH                                      = 1.4;
-const float D3D10_SRGB_GAMMA                                                            = 2.2;
-const float D3D10_SRGB_TO_FLOAT_DENOMINATOR_1                                           = 12.92;
-const float D3D10_SRGB_TO_FLOAT_DENOMINATOR_2                                           = 1.055;
-const float D3D10_SRGB_TO_FLOAT_EXPONENT                                                = 2.4;
-const float D3D10_SRGB_TO_FLOAT_OFFSET                                                  = 0.055;
-const float D3D10_SRGB_TO_FLOAT_THRESHOLD                                               = 0.04045;
-const float D3D10_SRGB_TO_FLOAT_TOLERANCE_IN_ULP                                        = 0.5;
-const float D3D10_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT                           = 0.0;
-const float D3D_SPEC_VERSION                                                            = 1.050005;
-const unsigned int D3D10_16BIT_INDEX_STRIP_CUT_VALUE                                    = 0xffff;
-const unsigned int D3D10_32BIT_INDEX_STRIP_CUT_VALUE                                    = 0xffffffff;
-const unsigned int D3D10_8BIT_INDEX_STRIP_CUT_VALUE                                     = 0xff;
-const unsigned int D3D10_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT                             = 9;
-const unsigned int D3D10_CLIP_OR_CULL_DISTANCE_COUNT                                    = 8;
-const unsigned int D3D10_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT                            = 2;
-const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT                    = 14;
-const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS                        = 4;
-const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT               = 32;
-const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT                     = 15;
-const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS               = 4;
-const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT                    = 15;
-const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST           = 1;
-const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS               = 1;
-const unsigned int D3D10_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT                         = 64;
-const unsigned int D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS     = 4;
-const unsigned int D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT          = 1;
-const unsigned int D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1;
-const unsigned int D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS     = 1;
-const unsigned int D3D10_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT               = 32;
-const unsigned int D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS                = 1;
-const unsigned int D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT                     = 128;
-const unsigned int D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST            = 1;
-const unsigned int D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS                = 1;
-const unsigned int D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT                         = 128;
-const unsigned int D3D10_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS                       = 1;
-const unsigned int D3D10_COMMONSHADER_SAMPLER_REGISTER_COUNT                            = 16;
-const unsigned int D3D10_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST                   = 1;
-const unsigned int D3D10_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS                       = 1;
-const unsigned int D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT                                = 16;
-const unsigned int D3D10_COMMONSHADER_SUBROUTINE_NESTING_LIMIT                          = 32;
-const unsigned int D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENTS                          = 4;
-const unsigned int D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT                 = 32;
-const unsigned int D3D10_COMMONSHADER_TEMP_REGISTER_COUNT                               = 4096;
-const unsigned int D3D10_COMMONSHADER_TEMP_REGISTER_READS_PER_INST                      = 3;
-const unsigned int D3D10_COMMONSHADER_TEMP_REGISTER_READ_PORTS                          = 3;
-const unsigned int D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX                      = 10;
-const int D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN                               = -10;
-const int D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE                                  = -8;
-const unsigned int D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE                         = 7;
-const unsigned int D3D10_DEFAULT_DEPTH_BIAS                                             = 0;
-const unsigned int D3D10_DEFAULT_RENDER_TARGET_ARRAY_INDEX                              = 0;
-const unsigned int D3D10_DEFAULT_SAMPLE_MASK                                            = 0xffffffff;
-const unsigned int D3D10_DEFAULT_SCISSOR_ENDX                                           = 0;
-const unsigned int D3D10_DEFAULT_SCISSOR_ENDY                                           = 0;
-const unsigned int D3D10_DEFAULT_SCISSOR_STARTX                                         = 0;
-const unsigned int D3D10_DEFAULT_SCISSOR_STARTY                                         = 0;
-const unsigned int D3D10_DEFAULT_STENCIL_READ_MASK                                      = 0xff;
-const unsigned int D3D10_DEFAULT_STENCIL_REFERENCE                                      = 0;
-const unsigned int D3D10_DEFAULT_STENCIL_WRITE_MASK                                     = 0xff;
-const unsigned int D3D10_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX                         = 0;
-const unsigned int D3D10_DEFAULT_VIEWPORT_HEIGHT                                        = 0;
-const unsigned int D3D10_DEFAULT_VIEWPORT_TOPLEFTX                                      = 0;
-const unsigned int D3D10_DEFAULT_VIEWPORT_TOPLEFTY                                      = 0;
-const unsigned int D3D10_DEFAULT_VIEWPORT_WIDTH                                         = 0;
-const unsigned int D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS                        = 1;
-const unsigned int D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT               = 32;
-const unsigned int D3D10_GS_INPUT_PRIM_CONST_REGISTER_COUNT                             = 1;
-const unsigned int D3D10_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST                    = 2;
-const unsigned int D3D10_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS                        = 1;
-const unsigned int D3D10_GS_INPUT_REGISTER_COMPONENTS                                   = 4;
-const unsigned int D3D10_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT                          =32;
-const unsigned int D3D10_GS_INPUT_REGISTER_COUNT                                        = 16;
-const unsigned int D3D10_GS_INPUT_REGISTER_READS_PER_INST                               = 2;
-const unsigned int D3D10_GS_INPUT_REGISTER_READ_PORTS                                   = 1;
-const unsigned int D3D10_GS_INPUT_REGISTER_VERTICES                                     = 6;
-const unsigned int D3D10_GS_OUTPUT_ELEMENTS                                             = 32;
-const unsigned int D3D10_GS_OUTPUT_REGISTER_COMPONENTS                                  = 4;
-const unsigned int D3D10_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT                         = 32;
-const unsigned int D3D10_GS_OUTPUT_REGISTER_COUNT                                       = 32;
-const unsigned int D3D10_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES                        = 0;
-const unsigned int D3D10_IA_DEFAULT_PRIMITIVE_TOPOLOGY                                  = 0;
-const unsigned int D3D10_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES                       = 0;
-const unsigned int D3D10_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT                             = 1;
-const unsigned int D3D10_IA_INSTANCE_ID_BIT_COUNT                                       = 32;
-const unsigned int D3D10_IA_INTEGER_ARITHMETIC_BIT_COUNT                                = 32;
-const unsigned int D3D10_IA_PRIMITIVE_ID_BIT_COUNT                                      = 32;
-const unsigned int D3D10_IA_VERTEX_ID_BIT_COUNT                                         = 32;
-const unsigned int D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT                            = 16;
-const unsigned int D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS                  = 64;
-const unsigned int D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT                        = 16;
-const unsigned int D3D10_INTEGER_DIVIDE_BY_ZERO_QUOTIENT                                = 0xffffffff;
-const unsigned int D3D10_INTEGER_DIVIDE_BY_ZERO_REMAINDER                               = 0xffffffff;
-const unsigned int D3D10_MAX_MAXANISOTROPY                                              = 16;
-const unsigned int D3D10_MAX_MULTISAMPLE_SAMPLE_COUNT                                   = 32;
-const unsigned int D3D10_MAX_TEXTURE_DIMENSION_2_TO_EXP                                 = 17;
-const unsigned int D3D10_MIN_MAXANISOTROPY                                              = 0;
-const unsigned int D3D10_MIP_LOD_FRACTIONAL_BIT_COUNT                                   = 6;
-const unsigned int D3D10_MIP_LOD_RANGE_BIT_COUNT                                        = 8;
-const unsigned int D3D10_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT                     = 0;
-const unsigned int D3D10_PIXEL_ADDRESS_RANGE_BIT_COUNT                                  = 13;
-const unsigned int D3D10_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT                      = 15;
-const unsigned int D3D10_PS_FRONTFACING_DEFAULT_VALUE                                   = 0xffffffff;
-const unsigned int D3D10_PS_FRONTFACING_FALSE_VALUE                                     = 0;
-const unsigned int D3D10_PS_FRONTFACING_TRUE_VALUE                                      = 0xffffffff;
-const unsigned int D3D10_PS_INPUT_REGISTER_COMPONENTS                                   = 4;
-const unsigned int D3D10_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT                          = 32;
-const unsigned int D3D10_PS_INPUT_REGISTER_COUNT                                        = 32;
-const unsigned int D3D10_PS_INPUT_REGISTER_READS_PER_INST                               = 2;
-const unsigned int D3D10_PS_INPUT_REGISTER_READ_PORTS                                   = 1;
-const unsigned int D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS                            = 1;
-const unsigned int D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT                   = 32;
-const unsigned int D3D10_PS_OUTPUT_DEPTH_REGISTER_COUNT                                 = 1;
-const unsigned int D3D10_PS_OUTPUT_REGISTER_COMPONENTS                                  = 4;
-const unsigned int D3D10_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT                         = 32;
-const unsigned int D3D10_PS_OUTPUT_REGISTER_COUNT                                       = 8;
-const unsigned int D3D10_REQ_BLEND_OBJECT_COUNT_PER_CONTEXT                             = 4096;
-const unsigned int D3D10_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP                       = 27;
-const unsigned int D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT                              = 4096;
-const unsigned int D3D10_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_CONTEXT                     = 4096;
-const unsigned int D3D10_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP                           = 32;
-const unsigned int D3D10_REQ_DRAW_VERTEX_COUNT_2_TO_EXP                                 = 32;
-const unsigned int D3D10_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION                = 8192;
-const unsigned int D3D10_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT                 = 1024;
-const unsigned int D3D10_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT                    = 4096;
-const unsigned int D3D10_REQ_MAXANISOTROPY                                              = 16;
-const unsigned int D3D10_REQ_MIP_LEVELS                                                 = 14;
-const unsigned int D3D10_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES                      = 2048;
-const unsigned int D3D10_REQ_RASTERIZER_OBJECT_COUNT_PER_CONTEXT                        = 4096;
-const unsigned int D3D10_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH                              = 8192;
-const unsigned int D3D10_REQ_RESOURCE_SIZE_IN_MEGABYTES                                 = 128;
-const unsigned int D3D10_REQ_RESOURCE_VIEW_COUNT_PER_CONTEXT_2_TO_EXP                   = 20;
-const unsigned int D3D10_REQ_SAMPLER_OBJECT_COUNT_PER_CONTEXT                           = 4096;
-const unsigned int D3D10_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION                             = 512;
-const unsigned int D3D10_REQ_TEXTURE1D_U_DIMENSION                                      = 8192;
-const unsigned int D3D10_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION                             = 512;
-const unsigned int D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION                                 = 8192;
-const unsigned int D3D10_REQ_TEXTURE3D_U_V_OR_W_DIMENSION                               = 2048;
-const unsigned int D3D10_REQ_TEXTURECUBE_DIMENSION                                      = 8192;
-const unsigned int D3D10_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL                   = 0;
-const unsigned int D3D10_SHADER_MAJOR_VERSION                                           = 4;
-const unsigned int D3D10_SHADER_MINOR_VERSION                                           = 0;
-const unsigned int D3D10_SHIFT_INSTRUCTION_PAD_VALUE                                    = 0;
-const unsigned int D3D10_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT                        = 5;
-const unsigned int D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT                               = 8;
-const unsigned int D3D10_SO_BUFFER_MAX_STRIDE_IN_BYTES                                  = 2048;
-const unsigned int D3D10_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES                            = 256;
-const unsigned int D3D10_SO_BUFFER_SLOT_COUNT                                           = 4;
-const unsigned int D3D10_SO_DDI_REGISTER_INDEX_DENOTING_GAP                             = 0xffffffff;
-const unsigned int D3D10_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER                         = 1;
-const unsigned int D3D10_SO_SINGLE_BUFFER_COMPONENT_LIMIT                               = 64;
-const unsigned int D3D10_STANDARD_COMPONENT_BIT_COUNT                                   = 32;
-const unsigned int D3D10_STANDARD_COMPONENT_BIT_COUNT_DOUBLED                           = 64;
-const unsigned int D3D10_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE               = 4;
-const unsigned int D3D10_STANDARD_PIXEL_COMPONENT_COUNT                                 = 128;
-const unsigned int D3D10_STANDARD_PIXEL_ELEMENT_COUNT                                   = 32;
-const unsigned int D3D10_STANDARD_VECTOR_SIZE                                           = 4;
-const unsigned int D3D10_STANDARD_VERTEX_ELEMENT_COUNT                                  = 16;
-const unsigned int D3D10_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT                          = 64;
-const unsigned int D3D10_SUBPIXEL_FRACTIONAL_BIT_COUNT                                  = 8;
-const unsigned int D3D10_SUBTEXEL_FRACTIONAL_BIT_COUNT                                  = 6;
-const unsigned int D3D10_TEXEL_ADDRESS_RANGE_BIT_COUNT                                  = 18;
-const unsigned int D3D10_UNBOUND_MEMORY_ACCESS_RESULT                                   = 0;
-const unsigned int D3D10_VIEWPORT_AND_SCISSORRECT_MAX_INDEX                             = 15;
-const unsigned int D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE             = 16;
-const unsigned int D3D10_VIEWPORT_BOUNDS_MAX                                            = 16383;
-const int D3D10_VIEWPORT_BOUNDS_MIN                                                     = -16384;
-const unsigned int D3D10_VS_INPUT_REGISTER_COMPONENTS                                   = 4;
-const unsigned int D3D10_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT                          = 32;
-const unsigned int D3D10_VS_INPUT_REGISTER_COUNT                                        = 16;
-const unsigned int D3D10_VS_INPUT_REGISTER_READS_PER_INST                               = 2;
-const unsigned int D3D10_VS_INPUT_REGISTER_READ_PORTS                                   = 1;
-const unsigned int D3D10_VS_OUTPUT_REGISTER_COMPONENTS                                  = 4;
-const unsigned int D3D10_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT                         = 32;
-const unsigned int D3D10_VS_OUTPUT_REGISTER_COUNT                                       = 16;
-const unsigned int D3D10_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT                          = 10;
-const unsigned int D3D10_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP                          = 25;
-const unsigned int D3D10_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP                                = 25;
-const unsigned int D3D_MAJOR_VERSION                                                    = 10;
-const unsigned int D3D_MINOR_VERSION                                                    = 0;
-const unsigned int D3D_SPEC_DATE_DAY                                                    = 8;
-const unsigned int D3D_SPEC_DATE_MONTH                                                  = 8;
-const unsigned int D3D_SPEC_DATE_YEAR                                                   = 2006;
-cpp_quote("#endif")
-
-const unsigned int D3D10_APPEND_ALIGNED_ELEMENT                                         = 0xffffffff;
-const unsigned int _FACD3D10                                                            = 0x87;
-const unsigned int _FACD3D10DEBUG                                                       = _FACD3D10 + 1;
-const unsigned int D3D10_FILTER_TYPE_MASK                                               = 0x3;
-const unsigned int D3D10_SDK_VERSION                                                    = 29;
-
-cpp_quote("#define MAKE_D3D10_HRESULT(code)                   MAKE_HRESULT( 1, _FACD3D10, code)")
-cpp_quote("#define MAKE_D3D10_STATUS(code)                    MAKE_HRESULT( 0, _FACD3D10, code)")
-cpp_quote("#define D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS  MAKE_D3D10_HRESULT(1)")
-cpp_quote("#define D3D10_ERROR_FILE_NOT_FOUND                 MAKE_D3D10_HRESULT(2)")
-
-typedef enum D3D10_BLEND {
-    D3D10_BLEND_ZERO             = 1,
-    D3D10_BLEND_ONE              = 2,
-    D3D10_BLEND_SRC_COLOR        = 3,
-    D3D10_BLEND_INV_SRC_COLOR    = 4,
-    D3D10_BLEND_SRC_ALPHA        = 5,
-    D3D10_BLEND_INV_SRC_ALPHA    = 6,
-    D3D10_BLEND_DEST_ALPHA       = 7,
-    D3D10_BLEND_INV_DEST_ALPHA   = 8,
-    D3D10_BLEND_DEST_COLOR       = 9,
-    D3D10_BLEND_INV_DEST_COLOR   = 10,
-    D3D10_BLEND_SRC_ALPHA_SAT    = 11,
-    D3D10_BLEND_BLEND_FACTOR     = 14,
-    D3D10_BLEND_INV_BLEND_FACTOR = 15,
-    D3D10_BLEND_SRC1_COLOR       = 16,
-    D3D10_BLEND_INV_SRC1_COLOR   = 17,
-    D3D10_BLEND_SRC1_ALPHA       = 18,
-    D3D10_BLEND_INV_SRC1_ALPHA   = 19
-} D3D10_BLEND;
-
-typedef enum D3D10_BLEND_OP {
-    D3D10_BLEND_OP_ADD = 1,
-    D3D10_BLEND_OP_SUBTRACT,
-    D3D10_BLEND_OP_REV_SUBTRACT,
-    D3D10_BLEND_OP_MIN,
-    D3D10_BLEND_OP_MAX,
-} D3D10_BLEND_OP;
-
-typedef struct D3D10_BLEND_DESC {
-    BOOL AlphaToCoverageEnable;
-    BOOL BlendEnable[8];
-    D3D10_BLEND SrcBlend;
-    D3D10_BLEND DestBlend;
-    D3D10_BLEND_OP BlendOp;
-    D3D10_BLEND SrcBlendAlpha;
-    D3D10_BLEND DestBlendAlpha;
-    D3D10_BLEND_OP BlendOpAlpha;
-    UINT8 RenderTargetWriteMask[8];
-} D3D10_BLEND_DESC;
-
-typedef enum D3D10_DEPTH_WRITE_MASK {
-    D3D10_DEPTH_WRITE_MASK_ZERO,
-    D3D10_DEPTH_WRITE_MASK_ALL,
-} D3D10_DEPTH_WRITE_MASK;
-
-typedef enum D3D10_COMPARISON_FUNC {
-    D3D10_COMPARISON_NEVER = 1,
-    D3D10_COMPARISON_LESS,
-    D3D10_COMPARISON_EQUAL,
-    D3D10_COMPARISON_LESS_EQUAL,
-    D3D10_COMPARISON_GREATER,
-    D3D10_COMPARISON_NOT_EQUAL,
-    D3D10_COMPARISON_GREATER_EQUAL,
-    D3D10_COMPARISON_ALWAYS,
-} D3D10_COMPARISON_FUNC;
-
-typedef enum D3D10_STENCIL_OP {
-    D3D10_STENCIL_OP_KEEP = 1,
-    D3D10_STENCIL_OP_ZERO,
-    D3D10_STENCIL_OP_REPLACE,
-    D3D10_STENCIL_OP_INCR_SAT,
-    D3D10_STENCIL_OP_DECR_SAT,
-    D3D10_STENCIL_OP_INVERT,
-    D3D10_STENCIL_OP_INCR,
-    D3D10_STENCIL_OP_DECR,
-} D3D10_STENCIL_OP;
-
-typedef struct D3D10_DEPTH_STENCILOP_DESC {
-    D3D10_STENCIL_OP StencilFailOp;
-    D3D10_STENCIL_OP StencilDepthFailOp;
-    D3D10_STENCIL_OP StencilPassOp;
-    D3D10_COMPARISON_FUNC StencilFunc;
-} D3D10_DEPTH_STENCILOP_DESC;
-
-typedef struct D3D10_DEPTH_STENCIL_DESC {
-    BOOL DepthEnable;
-    D3D10_DEPTH_WRITE_MASK DepthWriteMask;
-    D3D10_COMPARISON_FUNC DepthFunc;
-    BOOL StencilEnable;
-    UINT8 StencilReadMask;
-    UINT8 StencilWriteMask;
-    D3D10_DEPTH_STENCILOP_DESC FrontFace;
-    D3D10_DEPTH_STENCILOP_DESC BackFace;
-} D3D10_DEPTH_STENCIL_DESC;
-
-typedef enum D3D10_FILL_MODE {
-    D3D10_FILL_WIREFRAME = 2,
-    D3D10_FILL_SOLID,
-} D3D10_FILL_MODE;
-
-typedef enum D3D10_CULL_MODE {
-    D3D10_CULL_NONE = 1,
-    D3D10_CULL_FRONT,
-    D3D10_CULL_BACK,
-} D3D10_CULL_MODE;
-
-typedef struct D3D10_RASTERIZER_DESC {
-    D3D10_FILL_MODE FillMode;
-    D3D10_CULL_MODE CullMode;
-    BOOL FrontCounterClockwise;
-    INT DepthBias;
-    FLOAT DepthBiasClamp;
-    FLOAT SlopeScaledDepthBias;
-    BOOL DepthClipEnable;
-    BOOL ScissorEnable;
-    BOOL MultisampleEnable;
-    BOOL AntialiasedLineEnable;
-} D3D10_RASTERIZER_DESC;
-
-typedef enum D3D10_FILTER {
-    D3D10_FILTER_MIN_MAG_MIP_POINT                          = 0,
-    D3D10_FILTER_MIN_MAG_POINT_MIP_LINEAR                   = 0x1,
-    D3D10_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT             = 0x4,
-    D3D10_FILTER_MIN_POINT_MAG_MIP_LINEAR                   = 0x5,
-    D3D10_FILTER_MIN_LINEAR_MAG_MIP_POINT                   = 0x10,
-    D3D10_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR            = 0x11,
-    D3D10_FILTER_MIN_MAG_LINEAR_MIP_POINT                   = 0x14,
-    D3D10_FILTER_MIN_MAG_MIP_LINEAR                         = 0x15,
-    D3D10_FILTER_ANISOTROPIC                                = 0x55,
-    D3D10_FILTER_COMPARISON_MIN_MAG_MIP_POINT               = 0x80,
-    D3D10_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR        = 0x81,
-    D3D10_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT  = 0x84,
-    D3D10_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR        = 0x85,
-    D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT        = 0x90,
-    D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
-    D3D10_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT        = 0x94,
-    D3D10_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR              = 0x95,
-    D3D10_FILTER_COMPARISON_ANISOTROPIC                     = 0xd5,
-    D3D10_FILTER_TEXT_1BIT                                  = 0x80000000
-} D3D10_FILTER;
-
-typedef enum D3D10_TEXTURE_ADDRESS_MODE {
-    D3D10_TEXTURE_ADDRESS_WRAP = 1,
-    D3D10_TEXTURE_ADDRESS_MIRROR,
-    D3D10_TEXTURE_ADDRESS_CLAMP,
-    D3D10_TEXTURE_ADDRESS_BORDER,
-    D3D10_TEXTURE_ADDRESS_MIRROR_ONCE,
-} D3D10_TEXTURE_ADDRESS_MODE;
-
-typedef struct D3D10_SAMPLER_DESC {
-    D3D10_FILTER Filter;
-    D3D10_TEXTURE_ADDRESS_MODE AddressU;
-    D3D10_TEXTURE_ADDRESS_MODE AddressV;
-    D3D10_TEXTURE_ADDRESS_MODE AddressW;
-    FLOAT MipLODBias;
-    UINT MaxAnisotropy;
-    D3D10_COMPARISON_FUNC ComparisonFunc;
-    FLOAT BorderColor[4];
-    FLOAT MinLOD;
-    FLOAT MaxLOD;
-} D3D10_SAMPLER_DESC;
-
-typedef enum D3D10_COUNTER {
-    D3D10_COUNTER_GPU_IDLE,
-    D3D10_COUNTER_VERTEX_PROCESSING,
-    D3D10_COUNTER_GEOMETRY_PROCESSING,
-    D3D10_COUNTER_PIXEL_PROCESSING,
-    D3D10_COUNTER_OTHER_GPU_PROCESSING,
-    D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION,
-    D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION,
-    D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION,
-    D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION,
-    D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION,
-    D3D10_COUNTER_VS_MEMORY_LIMITED,
-    D3D10_COUNTER_VS_COMPUTATION_LIMITED,
-    D3D10_COUNTER_GS_MEMORY_LIMITED,
-    D3D10_COUNTER_GS_COMPUTATION_LIMITED,
-    D3D10_COUNTER_PS_MEMORY_LIMITED,
-    D3D10_COUNTER_PS_COMPUTATION_LIMITED,
-    D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE,
-    D3D10_COUNTER_TEXTURE_CACHE_HIT_RATE,
-    D3D10_COUNTER_DEVICE_DEPENDENT_0 = 0x40000000
-} D3D10_COUNTER;
-
-typedef struct D3D10_COUNTER_DESC {
-    D3D10_COUNTER Counter;
-    UINT MiscFlags;
-} D3D10_COUNTER_DESC;
-
-typedef enum D3D10_COUNTER_TYPE {
-    D3D10_COUNTER_TYPE_FLOAT32,
-    D3D10_COUNTER_TYPE_UINT16,
-    D3D10_COUNTER_TYPE_UINT32,
-    D3D10_COUNTER_TYPE_UINT64,
-} D3D10_COUNTER_TYPE;
-
-typedef struct D3D10_COUNTER_INFO {
-    D3D10_COUNTER LastDeviceDependentCounter;
-    UINT NumSimultaneousCounters;
-    UINT8 NumDetectableParallelUnits;
-} D3D10_COUNTER_INFO;
-
-typedef enum D3D10_RESOURCE_DIMENSION {
-    D3D10_RESOURCE_DIMENSION_UNKNOWN,
-    D3D10_RESOURCE_DIMENSION_BUFFER,
-    D3D10_RESOURCE_DIMENSION_TEXTURE1D,
-    D3D10_RESOURCE_DIMENSION_TEXTURE2D,
-    D3D10_RESOURCE_DIMENSION_TEXTURE3D,
-} D3D10_RESOURCE_DIMENSION;
-
-typedef enum D3D10_USAGE {
-    D3D10_USAGE_DEFAULT,
-    D3D10_USAGE_IMMUTABLE,
-    D3D10_USAGE_DYNAMIC,
-    D3D10_USAGE_STAGING,
-} D3D10_USAGE;
-
-typedef struct D3D10_BUFFER_DESC {
-    UINT ByteWidth;
-    D3D10_USAGE Usage;
-    UINT BindFlags;
-    UINT CPUAccessFlags;
-    UINT MiscFlags;
-} D3D10_BUFFER_DESC;
-
-typedef enum D3D10_MAP {
-    D3D10_MAP_READ = 1,
-    D3D10_MAP_WRITE,
-    D3D10_MAP_READ_WRITE,
-    D3D10_MAP_WRITE_DISCARD,
-    D3D10_MAP_WRITE_NO_OVERWRITE,
-} D3D10_MAP;
-
-typedef struct D3D10_TEXTURE1D_DESC {
-    UINT Width;
-    UINT MipLevels;
-    UINT ArraySize;
-    DXGI_FORMAT Format;
-    D3D10_USAGE Usage;
-    UINT BindFlags;
-    UINT CPUAccessFlags;
-    UINT MiscFlags;
-} D3D10_TEXTURE1D_DESC;
-
-typedef struct D3D10_TEXTURE2D_DESC {
-    UINT Width;
-    UINT Height;
-    UINT MipLevels;
-    UINT ArraySize;
-    DXGI_FORMAT Format;
-    DXGI_SAMPLE_DESC SampleDesc;
-    D3D10_USAGE Usage;
-    UINT BindFlags;
-    UINT CPUAccessFlags;
-    UINT MiscFlags;
-} D3D10_TEXTURE2D_DESC;
-
-typedef struct D3D10_TEXTURE3D_DESC {
-    UINT Width;
-    UINT Height;
-    UINT Depth;
-    UINT MipLevels;
-    DXGI_FORMAT Format;
-    D3D10_USAGE Usage;
-    UINT BindFlags;
-    UINT CPUAccessFlags;
-    UINT MiscFlags;
-} D3D10_TEXTURE3D_DESC;
-
-typedef enum D3D10_DSV_DIMENSION
-{
-    D3D10_DSV_DIMENSION_UNKNOWN,
-    D3D10_DSV_DIMENSION_TEXTURE1D,
-    D3D10_DSV_DIMENSION_TEXTURE1DARRAY,
-    D3D10_DSV_DIMENSION_TEXTURE2D,
-    D3D10_DSV_DIMENSION_TEXTURE2DARRAY,
-    D3D10_DSV_DIMENSION_TEXTURE2DMS,
-    D3D10_DSV_DIMENSION_TEXTURE2DMSARRAY,
-} D3D10_DSV_DIMENSION;
-
-typedef struct D3D10_TEX1D_DSV {
-    UINT MipSlice;
-} D3D10_TEX1D_DSV;
-
-typedef struct D3D10_TEX1D_ARRAY_DSV {
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX1D_ARRAY_DSV;
-
-typedef struct D3D10_TEX2D_DSV {
-    UINT MipSlice;
-} D3D10_TEX2D_DSV;
-
-typedef struct D3D10_TEX2D_ARRAY_DSV {
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2D_ARRAY_DSV;
-
-typedef struct D3D10_TEX2DMS_DSV {
-    UINT UnusedField_NothingToDefine;
-} D3D10_TEX2DMS_DSV;
-
-typedef struct D3D10_TEX2DMS_ARRAY_DSV {
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2DMS_ARRAY_DSV;
-
-typedef struct D3D10_DEPTH_STENCIL_VIEW_DESC {
-    DXGI_FORMAT Format;
-    D3D10_DSV_DIMENSION ViewDimension;
-    union {
-        D3D10_TEX1D_DSV Texture1D;
-        D3D10_TEX1D_ARRAY_DSV Texture1DArray;
-        D3D10_TEX2D_DSV Texture2D;
-        D3D10_TEX2D_ARRAY_DSV Texture2DArray;
-        D3D10_TEX2DMS_DSV Texture2DMS;
-        D3D10_TEX2DMS_ARRAY_DSV Texture2DMSArray;
-    } DUMMYUNIONNAME;
-} D3D10_DEPTH_STENCIL_VIEW_DESC;
-
-typedef enum D3D10_RTV_DIMENSION {
-    D3D10_RTV_DIMENSION_UNKNOWN,
-    D3D10_RTV_DIMENSION_BUFFER,
-    D3D10_RTV_DIMENSION_TEXTURE1D,
-    D3D10_RTV_DIMENSION_TEXTURE1DARRAY,
-    D3D10_RTV_DIMENSION_TEXTURE2D,
-    D3D10_RTV_DIMENSION_TEXTURE2DARRAY,
-    D3D10_RTV_DIMENSION_TEXTURE2DMS,
-    D3D10_RTV_DIMENSION_TEXTURE2DMSARRAY,
-    D3D10_RTV_DIMENSION_TEXTURE3D,
-} D3D10_RTV_DIMENSION;
-
-typedef struct D3D10_BUFFER_RTV {
-    UINT ElementOffset;
-    UINT ElementWidth;
-} D3D10_BUFFER_RTV;
-
-typedef struct D3D10_TEX1D_RTV {
-    UINT MipSlice;
-} D3D10_TEX1D_RTV;
-
-typedef struct D3D10_TEX1D_ARRAY_RTV {
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX1D_ARRAY_RTV;
-
-typedef struct D3D10_TEX2D_RTV {
-    UINT MipSlice;
-} D3D10_TEX2D_RTV;
-
-typedef struct D3D10_TEX2D_ARRAY_RTV {
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2D_ARRAY_RTV;
-
-typedef struct D3D10_TEX2DMS_RTV {
-    UINT UnusedField_NothingToDefine;
-} D3D10_TEX2DMS_RTV;
-
-typedef struct D3D10_TEX2DMS_ARRAY_RTV {
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2DMS_ARRAY_RTV;
-
-typedef struct D3D10_TEX3D_RTV {
-    UINT MipSlice;
-    UINT FirstWSlice;
-    UINT WSize;
-} D3D10_TEX3D_RTV;
-
-typedef struct D3D10_RENDER_TARGET_VIEW_DESC {
-    DXGI_FORMAT Format;
-    D3D10_RTV_DIMENSION ViewDimension;
-    union {
-        D3D10_BUFFER_RTV Buffer;
-        D3D10_TEX1D_RTV Texture1D;
-        D3D10_TEX1D_ARRAY_RTV Texture1DArray;
-        D3D10_TEX2D_RTV Texture2D;
-        D3D10_TEX2D_ARRAY_RTV Texture2DArray;
-        D3D10_TEX2DMS_RTV Texture2DMS;
-        D3D10_TEX2DMS_ARRAY_RTV Texture2DMSArray;
-        D3D10_TEX3D_RTV Texture3D;
-    } DUMMYUNIONNAME;
-} D3D10_RENDER_TARGET_VIEW_DESC;
-
-typedef enum D3D10_SRV_DIMENSION {
-    D3D10_SRV_DIMENSION_UNKNOWN,
-    D3D10_SRV_DIMENSION_BUFFER,
-    D3D10_SRV_DIMENSION_TEXTURE1D,
-    D3D10_SRV_DIMENSION_TEXTURE1DARRAY,
-    D3D10_SRV_DIMENSION_TEXTURE2D,
-    D3D10_SRV_DIMENSION_TEXTURE2DARRAY,
-    D3D10_SRV_DIMENSION_TEXTURE2DMS,
-    D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY,
-    D3D10_SRV_DIMENSION_TEXTURE3D,
-    D3D10_SRV_DIMENSION_TEXTURECUBE,
-} D3D10_SRV_DIMENSION;
-
-typedef struct D3D10_BUFFER_SRV {
-    UINT ElementOffset;
-    UINT ElementWidth;
-} D3D10_BUFFER_SRV;
-
-typedef struct D3D10_TEX1D_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-} D3D10_TEX1D_SRV;
-
-typedef struct D3D10_TEX1D_ARRAY_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX1D_ARRAY_SRV;
-
-typedef struct D3D10_TEX2D_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-} D3D10_TEX2D_SRV;
-
-typedef struct D3D10_TEX2D_ARRAY_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2D_ARRAY_SRV;
-
-typedef struct D3D10_TEX2DMS_SRV {
-    UINT UnusedField_NothingToDefine;
-} D3D10_TEX2DMS_SRV;
-
-typedef struct D3D10_TEX2DMS_ARRAY_SRV {
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2DMS_ARRAY_SRV;
-
-typedef struct D3D10_TEX3D_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-} D3D10_TEX3D_SRV;
-
-typedef struct D3D10_TEXCUBE_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-} D3D10_TEXCUBE_SRV;
-
-typedef struct D3D10_SHADER_RESOURCE_VIEW_DESC {
-    DXGI_FORMAT Format;
-    D3D10_SRV_DIMENSION ViewDimension;
-    union {
-        D3D10_BUFFER_SRV Buffer;
-        D3D10_TEX1D_SRV Texture1D;
-        D3D10_TEX1D_ARRAY_SRV Texture1DArray;
-        D3D10_TEX2D_SRV Texture2D;
-        D3D10_TEX2D_ARRAY_SRV Texture2DArray;
-        D3D10_TEX2DMS_SRV Texture2DMS;
-        D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray;
-        D3D10_TEX3D_SRV Texture3D;
-        D3D10_TEXCUBE_SRV TextureCube;
-    } DUMMYUNIONNAME;
-} D3D10_SHADER_RESOURCE_VIEW_DESC;
-
-typedef struct D3D10_BOX {
-    UINT left;
-    UINT top;
-    UINT front;
-    UINT right;
-    UINT bottom;
-    UINT back;
-} D3D10_BOX;
-
-typedef struct D3D10_SUBRESOURCE_DATA {
-    const void *pSysMem;
-    UINT SysMemPitch;
-    UINT SysMemSlicePitch;
-} D3D10_SUBRESOURCE_DATA;
-
-typedef struct D3D10_SO_DECLARATION_ENTRY {
-    LPCSTR SemanticName;
-    UINT SemanticIndex;
-    BYTE StartComponent;
-    BYTE ComponentCount;
-    BYTE OutputSlot;
-} D3D10_SO_DECLARATION_ENTRY;
-
-typedef enum D3D10_INPUT_CLASSIFICATION {
-    D3D10_INPUT_PER_VERTEX_DATA,
-    D3D10_INPUT_PER_INSTANCE_DATA,
-} D3D10_INPUT_CLASSIFICATION;
-
-typedef struct D3D10_INPUT_ELEMENT_DESC {
-    LPCSTR SemanticName;
-    UINT SemanticIndex;
-    DXGI_FORMAT Format;
-    UINT InputSlot;
-    UINT AlignedByteOffset;
-    D3D10_INPUT_CLASSIFICATION InputSlotClass;
-    UINT InstanceDataStepRate;
-} D3D10_INPUT_ELEMENT_DESC;
-
-typedef enum D3D10_QUERY {
-    D3D10_QUERY_EVENT,
-    D3D10_QUERY_OCCLUSION,
-    D3D10_QUERY_TIMESTAMP,
-    D3D10_QUERY_TIMESTAMP_DISJOINT,
-    D3D10_QUERY_PIPELINE_STATISTICS,
-    D3D10_QUERY_OCCLUSION_PREDICATE,
-    D3D10_QUERY_SO_STATISTICS,
-    D3D10_QUERY_SO_OVERFLOW_PREDICATE,
-} D3D10_QUERY;
-
-typedef struct D3D10_QUERY_DESC {
-    D3D10_QUERY Query;
-    UINT MiscFlags;
-} D3D10_QUERY_DESC;
-
-typedef enum D3D10_PRIMITIVE_TOPOLOGY {
-    D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED         = 0,
-    D3D10_PRIMITIVE_TOPOLOGY_POINTLIST         = 1,
-    D3D10_PRIMITIVE_TOPOLOGY_LINELIST          = 2,
-    D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP         = 3,
-    D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST      = 4,
-    D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP     = 5,
-    D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ      = 10,
-    D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ     = 11,
-    D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ  = 12,
-    D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13
-} D3D10_PRIMITIVE_TOPOLOGY;
-
-typedef RECT D3D10_RECT;
-
-typedef struct D3D10_VIEWPORT {
-    INT TopLeftX;
-    INT TopLeftY;
-    UINT Width;
-    UINT Height;
-    FLOAT MinDepth;
-    FLOAT MaxDepth;
-} D3D10_VIEWPORT;
-
-typedef struct D3D10_MAPPED_TEXTURE2D {
-    void *pData;
-    UINT RowPitch;
-} D3D10_MAPPED_TEXTURE2D;
-
-typedef struct D3D10_MAPPED_TEXTURE3D {
-    void *pData;
-    UINT RowPitch;
-    UINT DepthPitch;
-} D3D10_MAPPED_TEXTURE3D;
-
-typedef enum D3D10_BIND_FLAG {
-    D3D10_BIND_VERTEX_BUFFER   = 0x1,
-    D3D10_BIND_INDEX_BUFFER    = 0x2,
-    D3D10_BIND_CONSTANT_BUFFER = 0x4,
-    D3D10_BIND_SHADER_RESOURCE = 0x8,
-    D3D10_BIND_STREAM_OUTPUT   = 0x10,
-    D3D10_BIND_RENDER_TARGET   = 0x20,
-    D3D10_BIND_DEPTH_STENCIL   = 0x40
-} D3D10_BIND_FLAG;
-
-typedef enum D3D10_CPU_ACCESS_FLAG {
-    D3D10_CPU_ACCESS_WRITE = 0x10000,
-    D3D10_CPU_ACCESS_READ  = 0x20000
-} D3D10_CPU_ACCESS_FLAG;
-
-typedef enum D3D10_RESOURCE_MISC_FLAG {
-    D3D10_RESOURCE_MISC_GENERATE_MIPS = 0x1,
-    D3D10_RESOURCE_MISC_SHARED        = 0x2,
-    D3D10_RESOURCE_MISC_TEXTURECUBE   = 0x4
-} D3D10_RESOURCE_MISC_FLAG;
-
-typedef enum D3D10_MAP_FLAG {
-    D3D10_MAP_FLAG_DO_NOT_WAIT = 0x100000,
-} D3D10_MAP_FLAG;
-
-typedef enum D3D10_CLEAR_FLAG {
-    D3D10_CLEAR_DEPTH   = 0x1,
-    D3D10_CLEAR_STENCIL = 0x2
-} D3D10_CLEAR_FLAG;
-
-typedef enum D3D10_COLOR_WRITE_ENABLE {
-    D3D10_COLOR_WRITE_ENABLE_RED   = 0x1,
-    D3D10_COLOR_WRITE_ENABLE_GREEN = 0x2,
-    D3D10_COLOR_WRITE_ENABLE_BLUE  = 0x4,
-    D3D10_COLOR_WRITE_ENABLE_ALPHA = 0x8,
-    D3D10_COLOR_WRITE_ENABLE_ALL   = (D3D10_COLOR_WRITE_ENABLE_RED  | D3D10_COLOR_WRITE_ENABLE_GREEN |
-                                      D3D10_COLOR_WRITE_ENABLE_BLUE | D3D10_COLOR_WRITE_ENABLE_ALPHA)
-} D3D10_COLOR_WRITE_ENABLE;
-
-typedef enum D3D10_TEXTURECUBE_FACE {
-    D3D10_TEXTURECUBE_FACE_POSITIVE_X,
-    D3D10_TEXTURECUBE_FACE_NEGATIVE_X,
-    D3D10_TEXTURECUBE_FACE_POSITIVE_Y,
-    D3D10_TEXTURECUBE_FACE_NEGATIVE_Y,
-    D3D10_TEXTURECUBE_FACE_POSITIVE_Z,
-    D3D10_TEXTURECUBE_FACE_NEGATIVE_Z,
-} D3D10_TEXTURECUBE_FACE;
-
-typedef enum D3D10_ASYNC_GETDATA_FLAG {
-    D3D10_ASYNC_GETDATA_DONOTFLUSH = 0x1,
-} D3D10_ASYNC_GETDATA_FLAG;
-
-typedef enum D3D10_FILTER_TYPE {
-    D3D10_FILTER_TYPE_POINT,
-    D3D10_FILTER_TYPE_LINEAR
-} D3D10_FILTER_TYPE;
-
-typedef enum D3D10_QUERY_MISC_FLAG {
-    D3D10_QUERY_MISC_PREDICATEHINT = 0x1
-} D3D10_QUERY_MISC_FLAG;
-
-typedef struct D3D10_QUERY_DATA_TIMESTAMP_DISJOINT {
-    UINT64 Frequency;
-    BOOL Disjoint;
-} D3D10_QUERY_DATA_TIMESTAMP_DISJOINT;
-
-typedef struct D3D10_QUERY_DATA_PIPELINE_STATISTICS {
-    UINT64 IAVertices;
-    UINT64 IAPrimitives;
-    UINT64 VSInvocations;
-    UINT64 GSInvocations;
-    UINT64 GSPrimitives;
-    UINT64 CInvocations;
-    UINT64 CPrimitives;
-    UINT64 PSInvocations;
-} D3D10_QUERY_DATA_PIPELINE_STATISTICS;
-
-typedef struct D3D10_QUERY_DATA_SO_STATISTICS {
-    UINT64 NumPrimitivesWritten;
-    UINT64 PrimitivesStorageNeeded;
-} D3D10_QUERY_DATA_SO_STATISTICS;
-
-typedef enum D3D10_CREATE_DEVICE_FLAG {
-    D3D10_CREATE_DEVICE_SINGLETHREADED                           = 0x1,
-    D3D10_CREATE_DEVICE_DEBUG                                    = 0x2,
-    D3D10_CREATE_DEVICE_SWITCH_TO_REF                            = 0x4,
-    D3D10_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x8
-} D3D10_CREATE_DEVICE_FLAG;
-
-/* Core */
-
-interface ID3D10Device;
-
-[
-    object,
-    local,
-    uuid(9b7e4c00-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10DeviceChild : IUnknown
-{
-        void GetDevice(
-            [out] ID3D10Device **ppDevice);
-        HRESULT GetPrivateData(
-            [in] REFGUID guid,
-            [in, out] UINT *pDataSize,
-            [out] void *pData);
-        HRESULT SetPrivateData(
-            [in] REFGUID guid,
-            [in] UINT DataSize,
-            [in] const void *pData);
-        HRESULT SetPrivateDataInterface(
-            [in] REFGUID guid,
-            [in] const IUnknown *pData);
-}
-
-/* Resource */
-
-[
-    object,
-    local,
-    uuid(9b7e4c01-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10Resource : ID3D10DeviceChild
-{
-        void GetType(
-            [out] D3D10_RESOURCE_DIMENSION *rType);
-        void SetEvictionPriority(
-            [in] UINT EvictionPriority);
-        UINT GetEvictionPriority();
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c02-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10Buffer : ID3D10Resource
-{
-        HRESULT Map(
-            [in] D3D10_MAP MapType,
-            [in] UINT MapFlags,
-            [out] void **ppData);
-        void Unmap();
-        void GetDesc(
-            [out] D3D10_BUFFER_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c03-342c-4106-a19f-4f2704f689F0)
-]
-interface ID3D10Texture1D : ID3D10Resource
-{
-        HRESULT Map(
-            [in] UINT Subresource,
-            [in] D3D10_MAP MapType,
-            [in] UINT MapFlags,
-            [out] void **ppData);
-        void Unmap(
-            [in] UINT Subresource);
-        void GetDesc(
-            [out] D3D10_TEXTURE1D_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c04-342c-4106-a19f-4f2704f689F0)
-]
-interface ID3D10Texture2D : ID3D10Resource
-{
-        HRESULT Map(
-            [in] UINT Subresource,
-            [in] D3D10_MAP MapType,
-            [in] UINT MapFlags,
-            [out] D3D10_MAPPED_TEXTURE2D *pMappedTex2D);
-        void Unmap(
-            [in] UINT Subresource);
-        void GetDesc(
-            [out] D3D10_TEXTURE2D_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c05-342c-4106-a19f-4f2704f689F0)
-]
-interface ID3D10Texture3D : ID3D10Resource
-{
-        HRESULT Map(
-            [in] UINT Subresource,
-            [in] D3D10_MAP MapType,
-            [in] UINT MapFlags,
-            [out] D3D10_MAPPED_TEXTURE3D *pMappedTex3D);
-        void Unmap(
-            [in] UINT Subresource);
-        void GetDesc(
-            [out] D3D10_TEXTURE3D_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(c902b03f-60a7-49ba-9936-2a3ab37a7e33)
-]
-interface ID3D10View : ID3D10DeviceChild
-{
-        void GetResource(
-            [out] ID3D10Resource **ppResource);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c09-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10DepthStencilView : ID3D10View
-{
-        void GetDesc(
-            [out] D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc);
-}
-
-
-[
-    object,
-    local,
-    uuid(9b7e4c08-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10RenderTargetView : ID3D10View
-{
-        void GetDesc(
-            [out] D3D10_RENDER_TARGET_VIEW_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c07-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10ShaderResourceView  : ID3D10View
-{
-        void GetDesc(
-            [out] D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc);
-}
-
-/* Resource End */
-
-[
-    object,
-    local,
-    uuid(edad8d19-8a35-4d6d-8566-2ea276cde161)
-]
-interface ID3D10BlendState : ID3D10DeviceChild
-{
-    void GetDesc(
-            [out] D3D10_BLEND_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(2b4b1cc8-a4ad-41f8-8322-ca86fc3ec675)
-]
-interface ID3D10DepthStencilState : ID3D10DeviceChild
-{
-    void GetDesc(
-            [out] D3D10_DEPTH_STENCIL_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(6316be88-54cd-4040-ab44-20461bc81f68)
-]
-interface ID3D10GeometryShader  : ID3D10DeviceChild
-{
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c0b-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10InputLayout  : ID3D10DeviceChild
-{
-}
-
-[
-    object,
-    local,
-    uuid(4968b601-9d00-4cde-8346-8e7f675819b6)
-]
-interface ID3D10PixelShader  : ID3D10DeviceChild
-{
-}
-
-[
-    object,
-    local,
-    uuid(a2a07292-89af-4345-be2e-c53d9fbb6e9f)
-]
-interface ID3D10RasterizerState  : ID3D10DeviceChild
-{
-    void GetDesc(
-            [out] D3D10_RASTERIZER_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c0c-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10SamplerState  : ID3D10DeviceChild
-{
-    void GetDesc(
-            [out] D3D10_SAMPLER_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c0a-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10VertexShader  : ID3D10DeviceChild
-{
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c0d-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10Asynchronous  : ID3D10DeviceChild
-{
-    void Begin();
-    void End();
-    HRESULT GetData(
-            [out] void *pData,
-            [in] UINT DataSize,
-            [in] UINT GetDataFlags);
-    UINT GetDataSize();
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c11-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10Counter  : ID3D10Asynchronous
-{
-    void GetDesc(
-            [out] D3D10_COUNTER_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4C0e-342C-4106-a19f-4f2704f689f0)
-]
-interface ID3D10Query : ID3D10Asynchronous
-{
-    void GetDesc(
-            [out] D3D10_QUERY_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c10-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10Predicate : ID3D10Query
-{
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c0f-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10Device : IUnknown
-{
-        void VSSetConstantBuffers(
-            [in] UINT StartSlot,
-            [in] UINT NumBuffers,
-            [in] ID3D10Buffer *const *ppConstantBuffers);
-        void PSSetShaderResources(
-            [in] UINT StartSlot,
-            [in] UINT NumViews,
-            [in] ID3D10ShaderResourceView *const *ppShaderResourceViews);
-        void PSSetShader(
-            [in] ID3D10PixelShader *pPixelShader);
-        void PSSetSamplers(
-            [in] UINT StartSlot,
-            [in] UINT NumSamplers,
-            [in]ID3D10SamplerState *const *ppSamplers);
-        void VSSetShader(
-            [in] ID3D10VertexShader *pVertexShader);
-        void DrawIndexed(
-            [in] UINT IndexCount,
-            [in] UINT StartIndexLocation,
-            [in] INT BaseVertexLocation);
-        void Draw(
-            [in] UINT VertexCount,
-            [in] UINT StartVertexLocation);
-        void PSSetConstantBuffers(
-            [in] UINT StartSlot,
-            [in] UINT NumBuffers,
-            [in] ID3D10Buffer *const *ppConstantBuffers);
-        void IASetInputLayout(
-            [in] ID3D10InputLayout *pInputLayout);
-        void IASetVertexBuffers(
-            [in] UINT StartSlot,
-            [in] UINT NumBuffers,
-            [in] ID3D10Buffer *const *ppVertexBuffers,
-            [in] const UINT *pStrides,
-            [in] const UINT *pOffsets);
-        void IASetIndexBuffer(
-            [in] ID3D10Buffer *pIndexBuffer,
-            [in] DXGI_FORMAT Format,
-            [in] UINT Offset);
-        void DrawIndexedInstanced(
-            [in] UINT IndexCountPerInstance,
-            [in] UINT InstanceCount,
-            [in] UINT StartIndexLocation,
-            [in] INT BaseVertexLocation,
-            [in] UINT StartInstanceLocation);
-        void DrawInstanced(
-            [in] UINT VertexCountPerInstance,
-            [in] UINT InstanceCount,
-            [in] UINT StartVertexLocation,
-            [in] UINT StartInstanceLocation);
-        void GSSetConstantBuffers(
-            [in] UINT StartSlot,
-            [in] UINT NumBuffers,
-            [in] ID3D10Buffer *const *ppConstantBuffers);
-        void GSSetShader(
-            [in] ID3D10GeometryShader *pShader);
-        void IASetPrimitiveTopology(
-            [in] D3D10_PRIMITIVE_TOPOLOGY Topology);
-        void VSSetShaderResources(
-            [in] UINT StartSlot,
-            [in] UINT NumViews,
-            [in] ID3D10ShaderResourceView *const *ppShaderResourceViews);
-        void VSSetSamplers(
-            [in] UINT StartSlot,
-            [in] UINT NumSamplers,
-            [in] ID3D10SamplerState *const *ppSamplers);
-        void SetPredication(
-            [in] ID3D10Predicate *pPredicate,
-            [in] BOOL PredicateValue);
-        void GSSetShaderResources(
-            [in] UINT StartSlot,
-            [in] UINT NumViews,
-            [in] ID3D10ShaderResourceView * const *ppShaderResourceViews);
-        void GSSetSamplers(
-            [in] UINT StartSlot,
-            [in] UINT NumSamplers,
-            [in] ID3D10SamplerState *const *ppSamplers);
-        void OMSetRenderTargets(
-            [in] UINT NumViews,
-            [in] ID3D10RenderTargetView *const *ppRenderTargetViews,
-            [in] ID3D10DepthStencilView *pDepthStencilView);
-        void OMSetBlendState(
-            [in] ID3D10BlendState *pBlendState,
-            [in] const FLOAT BlendFactor[4],
-            [in] UINT SampleMask);
-        void OMSetDepthStencilState(
-            [in] ID3D10DepthStencilState *pDepthStencilState,
-            [in] UINT StencilRef);
-        void SOSetTargets(
-            [in] UINT NumBuffers,
-            [in] ID3D10Buffer *const *ppSOTargets,
-            [in] const UINT *pOffsets);
-        void DrawAuto();
-        void RSSetState(
-            [in] ID3D10RasterizerState *pRasterizerState);
-        void RSSetViewports(
-            [in] UINT NumViewports,
-            [in] const D3D10_VIEWPORT *pViewports);
-        void RSSetScissorRects(
-            [in] UINT NumRects,
-            [in] const D3D10_RECT *pRects);
-        void CopySubresourceRegion(
-            [in] ID3D10Resource *pDstResource,
-            [in] UINT DstSubresource,
-            [in] UINT DstX,
-            [in] UINT DstY,
-            [in] UINT DstZ,
-            [in] ID3D10Resource *pSrcResource,
-            [in] UINT SrcSubresource,
-            [in] const D3D10_BOX *pSrcBox);
-        void CopyResource(
-            [in] ID3D10Resource *pDstResource,
-            [in] ID3D10Resource *pSrcResource);
-        void UpdateSubresource(
-            [in] ID3D10Resource *pDstResource,
-            [in] UINT DstSubresource,
-            [in] const D3D10_BOX *pDstBox,
-            [in] const void *pSrcData,
-            [in] UINT SrcRowPitch,
-            [in] UINT SrcDepthPitch);
-        void ClearRenderTargetView(
-            [in] ID3D10RenderTargetView *pRenderTargetView,
-            [in] const FLOAT ColorRGBA[4]);
-        void ClearDepthStencilView(
-            [in] ID3D10DepthStencilView *pDepthStencilView,
-            [in] UINT ClearFlags,
-            [in] FLOAT Depth,
-            [in] UINT8 Stencil);
-        void GenerateMips(
-            [in] ID3D10ShaderResourceView *pShaderResourceView);
-        void ResolveSubresource(
-            [in] ID3D10Resource *pDstResource,
-            [in] UINT DstSubresource,
-            [in] ID3D10Resource *pSrcResource,
-            [in] UINT SrcSubresource,
-            [in] DXGI_FORMAT Format);
-        void VSGetConstantBuffers(
-            [in] UINT StartSlot,
-            [in] UINT NumBuffers,
-            [out] ID3D10Buffer **ppConstantBuffers);
-        void PSGetShaderResources(
-            [in] UINT StartSlot,
-            [in] UINT NumViews,
-            [out] ID3D10ShaderResourceView **ppShaderResourceViews);
-        void PSGetShader(
-            [out] ID3D10PixelShader **ppPixelShader);
-        void PSGetSamplers(
-            [in] UINT StartSlot,
-            [in] UINT NumSamplers,
-            [out] ID3D10SamplerState **ppSamplers);
-        void VSGetShader(
-            [out] ID3D10VertexShader **ppVertexShader);
-        void PSGetConstantBuffers(
-            [in] UINT StartSlot,
-            [in] UINT NumBuffers,
-            [out] ID3D10Buffer **ppConstantBuffers);
-        void IAGetInputLayout(
-            [out] ID3D10InputLayout **ppInputLayout);
-        void IAGetVertexBuffers(
-            [in] UINT StartSlot,
-            [in] UINT NumBuffers,
-            [out] ID3D10Buffer **ppVertexBuffers,
-            [out] UINT *pStrides,
-            [out] UINT *pOffsets);
-        void IAGetIndexBuffer(
-            [out] ID3D10Buffer **pIndexBuffer,
-            [out] DXGI_FORMAT *Format,
-            [out] UINT *Offset);
-        void GSGetConstantBuffers(
-            [in] UINT StartSlot,
-            [in] UINT NumBuffers,
-            [out] ID3D10Buffer **ppConstantBuffers);
-        void GSGetShader(
-            [out] ID3D10GeometryShader **ppGeometryShader);
-        void IAGetPrimitiveTopology(
-            [out] D3D10_PRIMITIVE_TOPOLOGY *pTopology);
-        void VSGetShaderResources(
-            [in] UINT StartSlot,
-            [in] UINT NumViews,
-            [out] ID3D10ShaderResourceView **ppShaderResourceViews);
-        void VSGetSamplers(
-            [in] UINT StartSlot,
-            [in] UINT NumSamplers,
-            [out] ID3D10SamplerState **ppSamplers);
-        void GetPredication(
-            [out] ID3D10Predicate **ppPredicate,
-            [out] BOOL *pPredicateValue);
-        void GSGetShaderResources(
-            [in] UINT StartSlot,
-            [in] UINT NumViews,
-            [out] ID3D10ShaderResourceView **ppShaderResourceViews);
-        void GSGetSamplers(
-            [in] UINT StartSlot,
-            [in] UINT NumSamplers,
-            [out] ID3D10SamplerState **ppSamplers);
-        void OMGetRenderTargets(
-            [in] UINT NumViews,
-            [out] ID3D10RenderTargetView **ppRenderTargetViews,
-            [out] ID3D10DepthStencilView **ppDepthStencilView);
-        void OMGetBlendState(
-            [out] ID3D10BlendState **ppBlendState,
-            [out] FLOAT BlendFactor[4],
-            [out] UINT *pSampleMask);
-        void OMGetDepthStencilState(
-            [out] ID3D10DepthStencilState **ppDepthStencilState,
-            [out] UINT *pStencilRef);
-        void SOGetTargets(
-            [in] UINT NumBuffers,
-            [out] ID3D10Buffer **ppSOTargets,
-            [out] UINT *pOffsets);
-        void RSGetState(
-            [out] ID3D10RasterizerState **ppRasterizerState);
-        void RSGetViewports(
-            [in, out] UINT *NumViewports,
-            [out] D3D10_VIEWPORT *pViewports);
-        void RSGetScissorRects(
-            [in, out] UINT *NumRects,
-            [out] D3D10_RECT *pRects);
-        HRESULT GetDeviceRemovedReason();
-        HRESULT SetExceptionMode(
-            [in] UINT RaiseFlags);
-        UINT GetExceptionMode();
-        HRESULT GetPrivateData(
-            [in] REFGUID guid,
-            [in, out] UINT *pDataSize,
-            [out] void *pData);
-        HRESULT SetPrivateData(
-            [in] REFGUID guid,
-            [in] UINT DataSize,
-            [in] const void *pData);
-        HRESULT SetPrivateDataInterface(
-            [in] REFGUID guid,
-            [in] const IUnknown *pData);
-        void ClearState();
-        void Flush();
-        HRESULT CreateBuffer(
-            [in] const D3D10_BUFFER_DESC *pDesc,
-            [in] const D3D10_SUBRESOURCE_DATA *pInitialData,
-            [out] ID3D10Buffer **ppBuffer);
-        HRESULT CreateTexture1D(
-            [in] const D3D10_TEXTURE1D_DESC *pDesc,
-            [in] const D3D10_SUBRESOURCE_DATA *pInitialData,
-            [out] ID3D10Texture1D **ppTexture1D);
-        HRESULT CreateTexture2D(
-            [in] const D3D10_TEXTURE2D_DESC *pDesc,
-            [in] const D3D10_SUBRESOURCE_DATA *pInitialData,
-            [out] ID3D10Texture2D **ppTexture2D);
-        HRESULT CreateTexture3D(
-            [in] const D3D10_TEXTURE3D_DESC *pDesc,
-            [in] const D3D10_SUBRESOURCE_DATA *pInitialData,
-            [out] ID3D10Texture3D **ppTexture3D);
-        HRESULT CreateShaderResourceView(
-            [in] ID3D10Resource *pResource,
-            [in] const D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc,
-            [out] ID3D10ShaderResourceView **ppSRView);
-        HRESULT CreateRenderTargetView(
-            [in] ID3D10Resource *pResource,
-            [in] const D3D10_RENDER_TARGET_VIEW_DESC *pDesc,
-            [out] ID3D10RenderTargetView **ppRTView);
-        HRESULT CreateDepthStencilView(
-            [in] ID3D10Resource *pResource,
-            [in] const D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc,
-            [out] ID3D10DepthStencilView **ppDepthStencilView);
-        HRESULT CreateInputLayout(
-            [in] const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs,
-            [in] UINT NumElements,
-            [in] const void *pShaderBytecodeWithInputSignature,
-            [in] SIZE_T BytecodeLength,
-            [out] ID3D10InputLayout **ppInputLayout);
-        HRESULT CreateVertexShader(
-            [in] const void *pShaderBytecode,
-            [in] SIZE_T BytecodeLength,
-            [out] ID3D10VertexShader **ppVertexShader);
-        HRESULT CreateGeometryShader(
-            [in] const void *pShaderBytecode,
-            [in] SIZE_T BytecodeLength,
-            [out] ID3D10GeometryShader **ppGeometryShader);
-        HRESULT CreateGeometryShaderWithStreamOutput(
-            [in] const void *pShaderBytecode,
-            [in] SIZE_T BytecodeLength,
-            [in] const D3D10_SO_DECLARATION_ENTRY *pSODeclaration,
-            [in] UINT NumEntries,
-            [in] UINT OutputStreamStride,
-            [out] ID3D10GeometryShader **ppGeometryShader);
-        HRESULT CreatePixelShader(
-            [in] const void *pShaderBytecode,
-            [in] SIZE_T BytecodeLength,
-            [out] ID3D10PixelShader **ppPixelShader);
-        HRESULT CreateBlendState(
-            [in] const D3D10_BLEND_DESC *pBlendStateDesc,
-            [out] ID3D10BlendState **ppBlendState);
-        HRESULT CreateDepthStencilState(
-            [in] const D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc,
-            [out] ID3D10DepthStencilState **ppDepthStencilState);
-        HRESULT CreateRasterizerState(
-            [in] const D3D10_RASTERIZER_DESC *pRasterizerDesc,
-            [out] ID3D10RasterizerState **ppRasterizerState);
-        HRESULT CreateSamplerState(
-            [in] const D3D10_SAMPLER_DESC *pSamplerDesc,
-            [out] ID3D10SamplerState **ppSamplerState);
-        HRESULT CreateQuery(
-            [in] const D3D10_QUERY_DESC *pQueryDesc,
-            [out] ID3D10Query **ppQuery);
-        HRESULT CreatePredicate(
-            [in] const D3D10_QUERY_DESC *pPredicateDesc,
-            [out] ID3D10Predicate **ppPredicate);
-        HRESULT CreateCounter(
-            [in] const D3D10_COUNTER_DESC *pCounterDesc,
-            [out] ID3D10Counter **ppCounter);
-        HRESULT CheckFormatSupport(
-            [in] DXGI_FORMAT Format,
-            [out] UINT *pFormatSupport);
-        HRESULT CheckMultisampleQualityLevels(
-            [in] DXGI_FORMAT Format,
-            [in] UINT SampleCount,
-            [out] UINT *pNumQualityLevels);
-        void CheckCounterInfo(
-            [out] D3D10_COUNTER_INFO *pCounterInfo);
-        HRESULT CheckCounter(
-            [in] const D3D10_COUNTER_DESC *pDesc,
-            [out] D3D10_COUNTER_TYPE *pType,
-            [out] UINT *pActiveCounters,
-            [out] LPSTR szName,
-            [in, out] UINT *pNameLength,
-            [out] LPSTR szUnits,
-            [in, out] UINT *pUnitsLength,
-            [out] LPSTR szDescription,
-            [in, out] UINT *pDescriptionLength);
-        UINT GetCreationFlags();
-        HRESULT OpenSharedResource(
-            [in] HANDLE hResource,
-            [in] REFIID ReturnedInterface,
-            [out] void **ppResource);
-        void SetTextFilterSize(
-            [in] UINT Width,
-            [in] UINT Height);
-        void GetTextFilterSize(
-            [out] UINT *pWidth,
-            [out] UINT *pHeight);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4e00-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10Multithread : IUnknown
-{
-        void Enter();
-        void Leave();
-        BOOL SetMultithreadProtected(
-            [in] BOOL bMTProtect);
-        BOOL GetMultithreadProtected();
-}
-
-cpp_quote("#include \"d3d10misc.h\"")
-cpp_quote("#include \"d3d10shader.h\"")
-cpp_quote("#include \"d3d10effect.h\"")
-/* TODO: Include "d310sdklayers.h" as soon as it exists */
diff --git a/misc/builddeps/win64/dx/include/d3d10effect.h b/misc/builddeps/win64/dx/include/d3d10effect.h
deleted file mode 100644 (file)
index e020583..0000000
+++ /dev/null
@@ -1,788 +0,0 @@
-/*
- * Copyright 2009 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
- *
- */
-
-#ifndef __WINE_D3D10EFFECT_H
-#define __WINE_D3D10EFFECT_H
-
-#include "d3d10.h"
-
-#define D3D10_EFFECT_VARIABLE_POOLED                0x1
-#define D3D10_EFFECT_VARIABLE_ANNOTATION            0x2
-#define D3D10_EFFECT_VARIABLE_EXPLICIT_BIND_POINT   0x4
-
-#ifndef D3D10_BYTES_FROM_BITS
-#define D3D10_BYTES_FROM_BITS(x) (((x) + 7) >> 3)
-#endif
-
-typedef struct _D3D10_EFFECT_TYPE_DESC
-{
-    LPCSTR TypeName;
-    D3D10_SHADER_VARIABLE_CLASS Class;
-    D3D10_SHADER_VARIABLE_TYPE Type;
-    UINT Elements;
-    UINT Members;
-    UINT Rows;
-    UINT Columns;
-    UINT PackedSize;
-    UINT UnpackedSize;
-    UINT Stride;
-} D3D10_EFFECT_TYPE_DESC;
-
-typedef struct _D3D10_EFFECT_VARIABLE_DESC
-{
-    LPCSTR Name;
-    LPCSTR Semantic;
-    UINT Flags;
-    UINT Annotations;
-    UINT BufferOffset;
-    UINT ExplicitBindPoint;
-} D3D10_EFFECT_VARIABLE_DESC;
-
-typedef struct _D3D10_TECHNIQUE_DESC
-{
-    LPCSTR Name;
-    UINT Passes;
-    UINT Annotations;
-} D3D10_TECHNIQUE_DESC;
-
-typedef struct _D3D10_STATE_BLOCK_MASK
-{
-    BYTE VS;
-    BYTE VSSamplers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT)];
-    BYTE VSShaderResources[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)];
-    BYTE VSConstantBuffers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)];
-    BYTE GS;
-    BYTE GSSamplers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT)];
-    BYTE GSShaderResources[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)];
-    BYTE GSConstantBuffers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)];
-    BYTE PS;
-    BYTE PSSamplers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT)];
-    BYTE PSShaderResources[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)];
-    BYTE PSConstantBuffers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)];
-    BYTE IAVertexBuffers[D3D10_BYTES_FROM_BITS(D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT)];
-    BYTE IAIndexBuffer;
-    BYTE IAInputLayout;
-    BYTE IAPrimitiveTopology;
-    BYTE OMRenderTargets;
-    BYTE OMDepthStencilState;
-    BYTE OMBlendState;
-    BYTE RSViewports;
-    BYTE RSScissorRects;
-    BYTE RSRasterizerState;
-    BYTE SOBuffers;
-    BYTE Predication;
-} D3D10_STATE_BLOCK_MASK;
-
-typedef struct _D3D10_EFFECT_DESC
-{
-    BOOL IsChildEffect;
-    UINT ConstantBuffers;
-    UINT SharedConstantBuffers;
-    UINT GlobalVariables;
-    UINT SharedGlobalVariables;
-    UINT Techniques;
-} D3D10_EFFECT_DESC;
-
-typedef struct _D3D10_EFFECT_SHADER_DESC
-{
-    const BYTE *pInputSignature;
-    BOOL IsInline;
-    const BYTE *pBytecode;
-    UINT BytecodeLength;
-    LPCSTR SODecl;
-    UINT NumInputSignatureEntries;
-    UINT NumOutputSignatureEntries;
-} D3D10_EFFECT_SHADER_DESC;
-
-typedef struct _D3D10_PASS_DESC
-{
-    LPCSTR Name;
-    UINT Annotations;
-    BYTE *pIAInputSignature;
-    SIZE_T IAInputSignatureSize;
-    UINT StencilRef;
-    UINT SampleMask;
-    FLOAT BlendFactor[4];
-} D3D10_PASS_DESC;
-
-typedef struct _D3D10_PASS_SHADER_DESC
-{
-    struct ID3D10EffectShaderVariable *pShaderVariable;
-    UINT ShaderIndex;
-} D3D10_PASS_SHADER_DESC;
-
-DEFINE_GUID(IID_ID3D10EffectType, 0x4e9e1ddc, 0xcd9d, 0x4772, 0xa8, 0x37, 0x00, 0x18, 0x0b, 0x9b, 0x88, 0xfd);
-
-#define INTERFACE ID3D10EffectType
-DECLARE_INTERFACE(ID3D10EffectType)
-{
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_TYPE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetMemberTypeByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetMemberTypeByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetMemberTypeBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(LPCSTR, GetMemberName)(THIS_ UINT index) PURE;
-    STDMETHOD_(LPCSTR, GetMemberSemantic)(THIS_ UINT index) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectVariable, 0xae897105, 0x00e6, 0x45bf, 0xbb, 0x8e, 0x28, 0x1d, 0xd6, 0xdb, 0x8e, 0x1b);
-
-#define INTERFACE ID3D10EffectVariable
-DECLARE_INTERFACE(ID3D10EffectVariable)
-{
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
-    STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectConstantBuffer, 0x56648f4d, 0xcc8b, 0x4444, 0xa5, 0xad, 0xb5, 0xa3, 0xd7, 0x6e, 0x91, 0xb3);
-
-#define INTERFACE ID3D10EffectConstantBuffer
-DECLARE_INTERFACE_(ID3D10EffectConstantBuffer, ID3D10EffectVariable)
-{
-    /* ID3D10EffectVariable methods */
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
-    STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    /* ID3D10EffectConstantBuffer methods */
-    STDMETHOD(SetConstantBuffer)(THIS_ ID3D10Buffer *buffer) PURE;
-    STDMETHOD(GetConstantBuffer)(THIS_ ID3D10Buffer **buffer) PURE;
-    STDMETHOD(SetTextureBuffer)(THIS_ ID3D10ShaderResourceView *view) PURE;
-    STDMETHOD(GetTextureBuffer)(THIS_ ID3D10ShaderResourceView **view) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectScalarVariable, 0x00e48f7b, 0xd2c8, 0x49e8, 0xa8, 0x6c, 0x02, 0x2d, 0xee, 0x53, 0x43, 0x1f);
-
-#define INTERFACE ID3D10EffectScalarVariable
-DECLARE_INTERFACE_(ID3D10EffectScalarVariable, ID3D10EffectVariable)
-{
-    /* ID3D10EffectVariable methods */
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
-    STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    /* ID3D10EffectScalarVariable methods */
-    STDMETHOD(SetFloat)(THIS_ float value) PURE;
-    STDMETHOD(GetFloat)(THIS_ float *value) PURE;
-    STDMETHOD(SetFloatArray)(THIS_ float *values, UINT offset, UINT count) PURE;
-    STDMETHOD(GetFloatArray)(THIS_ float *values, UINT offset, UINT count) PURE;
-    STDMETHOD(SetInt)(THIS_ int value) PURE;
-    STDMETHOD(GetInt)(THIS_ int *value) PURE;
-    STDMETHOD(SetIntArray)(THIS_ int *values, UINT offset, UINT count) PURE;
-    STDMETHOD(GetIntArray)(THIS_ int *values, UINT offset, UINT count) PURE;
-    STDMETHOD(SetBool)(THIS_ BOOL value) PURE;
-    STDMETHOD(GetBool)(THIS_ BOOL *value) PURE;
-    STDMETHOD(SetBoolArray)(THIS_ BOOL *values, UINT offset, UINT count) PURE;
-    STDMETHOD(GetBoolArray)(THIS_ BOOL *values, UINT offset, UINT count) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectVectorVariable, 0x62b98c44, 0x1f82, 0x4c67, 0xbc, 0xd0, 0x72, 0xcf, 0x8f, 0x21, 0x7e, 0x81);
-
-#define INTERFACE ID3D10EffectVectorVariable
-DECLARE_INTERFACE_(ID3D10EffectVectorVariable, ID3D10EffectVariable)
-{
-    /* ID3D10EffectVariable methods */
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
-    STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    /* ID3D10EffectVectorVariable methods */
-    STDMETHOD(SetBoolVector)(THIS_ BOOL *value) PURE;
-    STDMETHOD(SetIntVector)(THIS_ int *value) PURE;
-    STDMETHOD(SetFloatVector)(THIS_ float *value) PURE;
-    STDMETHOD(GetBoolVector)(THIS_ BOOL *value) PURE;
-    STDMETHOD(GetIntVector)(THIS_ int *value) PURE;
-    STDMETHOD(GetFloatVector)(THIS_ float *value) PURE;
-    STDMETHOD(SetBoolVectorArray)(THIS_ BOOL *values, UINT offset, UINT count) PURE;
-    STDMETHOD(SetIntVectorArray)(THIS_ int *values, UINT offset, UINT count) PURE;
-    STDMETHOD(SetFloatVectorArray)(THIS_ float *values, UINT offset, UINT count) PURE;
-    STDMETHOD(GetBoolVectorArray)(THIS_ BOOL *values, UINT offset, UINT count) PURE;
-    STDMETHOD(GetIntVectorArray)(THIS_ int *values, UINT offset, UINT count) PURE;
-    STDMETHOD(GetFloatVectorArray)(THIS_ float *values, UINT offset, UINT count) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectMatrixVariable, 0x50666c24, 0xb82f, 0x4eed, 0xa1, 0x72, 0x5b, 0x6e, 0x7e, 0x85, 0x22, 0xe0);
-
-#define INTERFACE ID3D10EffectMatrixVariable
-DECLARE_INTERFACE_(ID3D10EffectMatrixVariable, ID3D10EffectVariable)
-{
-    /* ID3D10EffectVariable methods */
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
-    STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    /* ID3D10EffectMatrixVariable methods */
-    STDMETHOD(SetMatrix)(THIS_ float *data) PURE;
-    STDMETHOD(GetMatrix)(THIS_ float *data) PURE;
-    STDMETHOD(SetMatrixArray)(THIS_ float *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetMatrixArray)(THIS_ float *data, UINT offset, UINT count) PURE;
-    STDMETHOD(SetMatrixTranspose)(THIS_ float *data) PURE;
-    STDMETHOD(GetMatrixTranspose)(THIS_ float *data) PURE;
-    STDMETHOD(SetMatrixTransposeArray)(THIS_ float *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetMatrixTransposeArray)(THIS_ float *data, UINT offset, UINT count) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectStringVariable, 0x71417501, 0x8df9, 0x4e0a, 0xa7, 0x8a, 0x25, 0x5f, 0x97, 0x56, 0xba, 0xff);
-
-#define INTERFACE ID3D10EffectStringVariable
-DECLARE_INTERFACE_(ID3D10EffectStringVariable, ID3D10EffectVariable)
-{
-    /* ID3D10EffectVariable methods */
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
-    STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    /* ID3D10EffectStringVariable methods */
-    STDMETHOD(GetString)(THIS_ LPCSTR *str) PURE;
-    STDMETHOD(GetStringArray)(THIS_ LPCSTR *strs, UINT offset, UINT count) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectShaderResourceVariable,
-        0xc0a7157b, 0xd872, 0x4b1d, 0x80, 0x73, 0xef, 0xc2, 0xac, 0xd4, 0xb1, 0xfc);
-
-#define INTERFACE ID3D10EffectShaderResourceVariable
-DECLARE_INTERFACE_(ID3D10EffectShaderResourceVariable, ID3D10EffectVariable)
-{
-    /* ID3D10EffectVariable methods */
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
-    STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    /* ID3D10EffectShaderResourceVariable methods */
-    STDMETHOD(SetResource)(THIS_ ID3D10ShaderResourceView *resource) PURE;
-    STDMETHOD(GetResource)(THIS_ ID3D10ShaderResourceView **resource) PURE;
-    STDMETHOD(SetResourceArray)(THIS_ ID3D10ShaderResourceView **resources, UINT offset, UINT count) PURE;
-    STDMETHOD(GetResourceArray)(THIS_ ID3D10ShaderResourceView **resources, UINT offset, UINT count) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectRenderTargetViewVariable,
-        0x28ca0cc3, 0xc2c9, 0x40bb, 0xb5, 0x7f, 0x67, 0xb7, 0x37, 0x12, 0x2b, 0x17);
-
-#define INTERFACE ID3D10EffectRenderTargetViewVariable
-DECLARE_INTERFACE_(ID3D10EffectRenderTargetViewVariable, ID3D10EffectVariable)
-{
-    /* ID3D10EffectVariable methods */
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
-    STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    /* ID3D10EffectRenderTargetViewVariable methods */
-    STDMETHOD(SetRenderTarget)(THIS_ ID3D10RenderTargetView *view) PURE;
-    STDMETHOD(GetRenderTarget)(THIS_ ID3D10RenderTargetView **view) PURE;
-    STDMETHOD(SetRenderTargetArray)(THIS_ ID3D10RenderTargetView **views, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRenderTargetArray)(THIS_ ID3D10RenderTargetView **views, UINT offset, UINT count) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectDepthStencilViewVariable,
-        0x3e02c918, 0xcc79, 0x4985, 0xb6, 0x22, 0x2d, 0x92, 0xad, 0x70, 0x16, 0x23);
-
-#define INTERFACE ID3D10EffectDepthStencilViewVariable
-DECLARE_INTERFACE_(ID3D10EffectDepthStencilViewVariable, ID3D10EffectVariable)
-{
-    /* ID3D10EffectVariable methods */
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
-    STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    /* ID3D10EffectDepthStencilViewVariable methods */
-    STDMETHOD(SetDepthStencil)(THIS_ ID3D10DepthStencilView *view) PURE;
-    STDMETHOD(GetDepthStencil)(THIS_ ID3D10DepthStencilView **view) PURE;
-    STDMETHOD(SetDepthStencilArray)(THIS_ ID3D10DepthStencilView **views, UINT offset, UINT count) PURE;
-    STDMETHOD(GetDepthStencilArray)(THIS_ ID3D10DepthStencilView **views, UINT offset, UINT count) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectShaderVariable, 0x80849279, 0xc799, 0x4797, 0x8c, 0x33, 0x04, 0x07, 0xa0, 0x7d, 0x9e, 0x06);
-
-#define INTERFACE ID3D10EffectShaderVariable
-DECLARE_INTERFACE_(ID3D10EffectShaderVariable, ID3D10EffectVariable)
-{
-    /* ID3D10EffectVariable methods */
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
-    STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    /* ID3D10EffectShaderVariable methods */
-    STDMETHOD(GetShaderDesc)(THIS_ UINT index, D3D10_EFFECT_SHADER_DESC *desc) PURE;
-    STDMETHOD(GetVertexShader)(THIS_ UINT index, ID3D10VertexShader **shader) PURE;
-    STDMETHOD(GetGeometryShader)(THIS_ UINT index, ID3D10GeometryShader **shader) PURE;
-    STDMETHOD(GetPixelShader)(THIS_ UINT index, ID3D10PixelShader **shader) PURE;
-    STDMETHOD(GetInputSignatureElementDesc)(THIS_ UINT shader_index, UINT element_index,
-            D3D10_SIGNATURE_PARAMETER_DESC *desc) PURE;
-    STDMETHOD(GetOutputSignatureElementDesc)(THIS_ UINT shader_index, UINT element_index,
-            D3D10_SIGNATURE_PARAMETER_DESC *desc) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectBlendVariable, 0x1fcd2294, 0xdf6d, 0x4eae, 0x86, 0xb3, 0x0e, 0x91, 0x60, 0xcf, 0xb0, 0x7b);
-
-#define INTERFACE ID3D10EffectBlendVariable
-DECLARE_INTERFACE_(ID3D10EffectBlendVariable, ID3D10EffectVariable)
-{
-    /* ID3D10EffectVariable methods */
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
-    STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    /* ID3D10EffectBlendVariable methods */
-    STDMETHOD(GetBlendState)(THIS_ UINT index, ID3D10BlendState **blend_state) PURE;
-    STDMETHOD(GetBackingStore)(THIS_ UINT index, D3D10_BLEND_DESC *desc) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectDepthStencilVariable,
-        0xaf482368, 0x330a, 0x46a5, 0x9a, 0x5c, 0x01, 0xc7, 0x1a, 0xf2, 0x4c, 0x8d);
-
-#define INTERFACE ID3D10EffectDepthStencilVariable
-DECLARE_INTERFACE_(ID3D10EffectDepthStencilVariable, ID3D10EffectVariable)
-{
-    /* ID3D10EffectVariable methods */
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
-    STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    /* ID3D10EffectDepthStencilVariable methods */
-    STDMETHOD(GetDepthStencilState)(THIS_ UINT index, ID3D10DepthStencilState **depth_stencil_state) PURE;
-    STDMETHOD(GetBackingStore)(THIS_ UINT index, D3D10_DEPTH_STENCIL_DESC *desc) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectRasterizerVariable,
-        0x21af9f0e, 0x4d94, 0x4ea9, 0x97, 0x85, 0x2c, 0xb7, 0x6b, 0x8c, 0x0b, 0x34);
-
-#define INTERFACE ID3D10EffectRasterizerVariable
-DECLARE_INTERFACE_(ID3D10EffectRasterizerVariable, ID3D10EffectVariable)
-{
-    /* ID3D10EffectVariable methods */
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
-    STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    /* ID3D10EffectRasterizerVariable methods */
-    STDMETHOD(GetRasterizerState)(THIS_ UINT index, ID3D10RasterizerState **rasterizer_state) PURE;
-    STDMETHOD(GetBackingStore)(THIS_ UINT index, D3D10_RASTERIZER_DESC *desc) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectSamplerVariable,
-        0x6530d5c7, 0x07e9, 0x4271, 0xa4, 0x18, 0xe7, 0xce, 0x4b, 0xd1, 0xe4, 0x80);
-
-#define INTERFACE ID3D10EffectSamplerVariable
-DECLARE_INTERFACE_(ID3D10EffectSamplerVariable, ID3D10EffectVariable)
-{
-    /* ID3D10EffectVariable methods */
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
-    STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
-    STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
-    /* ID3D10EffectSamplerVariable methods */
-    STDMETHOD(GetSampler)(THIS_ UINT index, ID3D10SamplerState **sampler) PURE;
-    STDMETHOD(GetBackingStore)(THIS_ UINT index, D3D10_SAMPLER_DESC *desc) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectTechnique, 0xdb122ce8, 0xd1c9, 0x4292, 0xb2, 0x37, 0x24, 0xed, 0x3d, 0xe8, 0xb1, 0x75);
-
-#define INTERFACE ID3D10EffectTechnique
-DECLARE_INTERFACE(ID3D10EffectTechnique)
-{
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_TECHNIQUE_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectPass *, GetPassByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectPass *, GetPassByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD(ComputeStateBlockMask)(THIS_ D3D10_STATE_BLOCK_MASK *mask) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10Effect, 0x51b0ca8b, 0xec0b, 0x4519, 0x87, 0x0d, 0x8e, 0xe1, 0xcb, 0x50, 0x17, 0xc7);
-
-#define INTERFACE ID3D10Effect
-DECLARE_INTERFACE_(ID3D10Effect, IUnknown)
-{
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-    /* ID3D10Effect methods */
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD_(BOOL, IsPool)(THIS) PURE;
-    STDMETHOD(GetDevice)(THIS_ ID3D10Device **device) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetConstantBufferByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetConstantBufferByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetVariableByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetVariableByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetVariableBySemantic)(THIS_ LPCSTR semantic) PURE;
-    STDMETHOD_(struct ID3D10EffectTechnique *, GetTechniqueByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectTechnique *, GetTechniqueByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD(Optimize)(THIS) PURE;
-    STDMETHOD_(BOOL, IsOptimized)(THIS) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectPool, 0x9537ab04, 0x3250, 0x412e, 0x82, 0x13, 0xfc, 0xd2, 0xf8, 0x67, 0x79, 0x33);
-
-#define INTERFACE ID3D10EffectPool
-DECLARE_INTERFACE_(ID3D10EffectPool, IUnknown)
-{
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-    /* ID3D10EffectPool methods */
-    STDMETHOD_(struct ID3D10Effect *, AsEffect)(THIS) PURE;
-};
-#undef INTERFACE
-
-DEFINE_GUID(IID_ID3D10EffectPass, 0x5cfbeb89, 0x1a06, 0x46e0, 0xb2, 0x82, 0xe3, 0xf9, 0xbf, 0xa3, 0x6a, 0x54);
-
-#define INTERFACE ID3D10EffectPass
-DECLARE_INTERFACE(ID3D10EffectPass)
-{
-    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3D10_PASS_DESC *desc) PURE;
-    STDMETHOD(GetVertexShaderDesc)(THIS_ D3D10_PASS_SHADER_DESC *desc) PURE;
-    STDMETHOD(GetGeometryShaderDesc)(THIS_ D3D10_PASS_SHADER_DESC *desc) PURE;
-    STDMETHOD(GetPixelShaderDesc)(THIS_ D3D10_PASS_SHADER_DESC *desc) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD(Apply)(THIS_ UINT flags) PURE;
-    STDMETHOD(ComputeStateBlockMask)(THIS_ D3D10_STATE_BLOCK_MASK *mask) PURE;
-};
-#undef INTERFACE
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-HRESULT WINAPI D3D10CreateEffectFromMemory(void *data, SIZE_T data_size, UINT flags,
-        ID3D10Device *device, ID3D10EffectPool *effect_pool, ID3D10Effect **effect);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __WINE_D3D10EFFECT_H */
diff --git a/misc/builddeps/win64/dx/include/d3d10misc.h b/misc/builddeps/win64/dx/include/d3d10misc.h
deleted file mode 100644 (file)
index 58a6d26..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * 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
- */
-
-#ifndef __D3D10MISC_H__
-#define __D3D10MISC_H__
-
-#include "d3d10.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef enum D3D10_DRIVER_TYPE {
-    D3D10_DRIVER_TYPE_HARDWARE  = 0,
-    D3D10_DRIVER_TYPE_REFERENCE = 1,
-    D3D10_DRIVER_TYPE_NULL      = 2,
-    D3D10_DRIVER_TYPE_SOFTWARE  = 3,
-} D3D10_DRIVER_TYPE;
-
-HRESULT WINAPI D3D10CreateDevice(IDXGIAdapter *adapter, D3D10_DRIVER_TYPE driver_type,
-        HMODULE swrast, UINT flags, UINT sdk_version, ID3D10Device **device);
-
-HRESULT WINAPI D3D10CreateDeviceAndSwapChain(IDXGIAdapter *adapter, D3D10_DRIVER_TYPE driver_type,
-        HMODULE swrast, UINT flags, UINT sdk_version, DXGI_SWAP_CHAIN_DESC *swapchain_desc,
-        IDXGISwapChain **swapchain, ID3D10Device **device);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __D3D10MISC_H__ */
diff --git a/misc/builddeps/win64/dx/include/d3d10shader.h b/misc/builddeps/win64/dx/include/d3d10shader.h
deleted file mode 100644 (file)
index 99b123c..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright 2009 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
- *
- */
-
-#ifndef __WINE_D3D10SHADER_H
-#define __WINE_D3D10SHADER_H
-
-#include "d3d10.h"
-
-#define D3D10_SHADER_DEBUG                          0x0001
-#define D3D10_SHADER_SKIP_VALIDATION                0x0002
-#define D3D10_SHADER_SKIP_OPTIMIZATION              0x0004
-#define D3D10_SHADER_PACK_MATRIX_ROW_MAJOR          0x0008
-#define D3D10_SHADER_PACK_MATRIX_COLUMN_MAJOR       0x0010
-#define D3D10_SHADER_PARTIAL_PRECISION              0x0020
-#define D3D10_SHADER_FORCE_VS_SOFTWARE_NO_OPT       0x0040
-#define D3D10_SHADER_FORCE_PS_SOFTWARE_NO_OPT       0x0080
-#define D3D10_SHADER_NO_PRESHADER                   0x0100
-#define D3D10_SHADER_AVOID_FLOW_CONTROL             0x0200
-#define D3D10_SHADER_PREFER_FLOW_CONTROL            0x0400
-#define D3D10_SHADER_ENABLE_STRICTNESS              0x0800
-#define D3D10_SHADER_ENABLE_BACKWARDS_COMPATIBILITY 0x1000
-#define D3D10_SHADER_IEEE_STRICTNESS                0x2000
-
-typedef enum _D3D10_SHADER_VARIABLE_CLASS
-{
-    D3D10_SVC_SCALAR,
-    D3D10_SVC_VECTOR,
-    D3D10_SVC_MATRIX_ROWS,
-    D3D10_SVC_MATRIX_COLUMNS,
-    D3D10_SVC_OBJECT,
-    D3D10_SVC_STRUCT,
-    D3D10_SVC_FORCE_DWORD = 0x7fffffff
-} D3D10_SHADER_VARIABLE_CLASS, *LPD3D10_SHADER_VARIABLE_CLASS;
-
-typedef enum _D3D10_SHADER_VARIABLE_TYPE
-{
-    D3D10_SVT_VOID = 0,
-    D3D10_SVT_BOOL = 1,
-    D3D10_SVT_INT = 2,
-    D3D10_SVT_FLOAT = 3,
-    D3D10_SVT_STRING = 4,
-    D3D10_SVT_TEXTURE = 5,
-    D3D10_SVT_TEXTURE1D = 6,
-    D3D10_SVT_TEXTURE2D = 7,
-    D3D10_SVT_TEXTURE3D = 8,
-    D3D10_SVT_TEXTURECUBE = 9,
-    D3D10_SVT_SAMPLER = 10,
-    D3D10_SVT_PIXELSHADER = 15,
-    D3D10_SVT_VERTEXSHADER = 16,
-    D3D10_SVT_UINT = 19,
-    D3D10_SVT_UINT8 = 20,
-    D3D10_SVT_GEOMETRYSHADER = 21,
-    D3D10_SVT_RASTERIZER = 22,
-    D3D10_SVT_DEPTHSTENCIL = 23,
-    D3D10_SVT_BLEND = 24,
-    D3D10_SVT_BUFFER = 25,
-    D3D10_SVT_CBUFFER = 26,
-    D3D10_SVT_TBUFFER = 27,
-    D3D10_SVT_TEXTURE1DARRAY = 28,
-    D3D10_SVT_TEXTURE2DARRAY = 29,
-    D3D10_SVT_RENDERTARGETVIEW = 30,
-    D3D10_SVT_DEPTHSTENCILVIEW = 31,
-    D3D10_SVT_TEXTURE2DMS = 32,
-    D3D10_SVT_TEXTURE2DMSARRAY = 33,
-    D3D10_SVT_TEXTURECUBEARRAY = 34,
-    D3D10_SVT_FORCE_DWORD = 0x7fffffff
-} D3D10_SHADER_VARIABLE_TYPE, *LPD3D10_SHADER_VARIABLE_TYPE;
-
-typedef enum D3D10_CBUFFER_TYPE
-{
-    D3D10_CT_CBUFFER = 0,
-    D3D10_CT_TBUFFER = 1
-} D3D10_CBUFFER_TYPE, *LPD3D10_CBUFFER_TYPE;
-
-typedef enum D3D10_NAME
-{
-    D3D10_NAME_UNDEFINED = 0,
-    D3D10_NAME_POSITION = 1,
-    D3D10_NAME_CLIP_DISTANCE = 2,
-    D3D10_NAME_CULL_DISTANCE = 3,
-    D3D10_NAME_RENDER_TARGET_ARRAY_INDEX = 4,
-    D3D10_NAME_VIEWPORT_ARRAY_INDEX = 5,
-    D3D10_NAME_VERTEX_ID = 6,
-    D3D10_NAME_PRIMITIVE_ID = 7,
-    D3D10_NAME_INSTANCE_ID = 8,
-    D3D10_NAME_IS_FRONT_FACE = 9,
-    D3D10_NAME_SAMPLE_INDEX = 10,
-    D3D10_NAME_TARGET = 64,
-    D3D10_NAME_DEPTH = 65,
-} D3D10_NAME;
-
-typedef enum D3D10_REGISTER_COMPONENT_TYPE
-{
-    D3D10_REGISTER_COMPONENT_UNKNOWN = 0,
-    D3D10_REGISTER_COMPONENT_UINT32 = 1,
-    D3D10_REGISTER_COMPONENT_SINT32 = 2,
-    D3D10_REGISTER_COMPONENT_FLOAT32 = 3,
-} D3D10_REGISTER_COMPONENT_TYPE;
-
-typedef struct _D3D10_SHADER_MACRO
-{
-    LPCSTR Name;
-    LPCSTR Definition;
-} D3D10_SHADER_MACRO, *LPD3D10_SHADER_MACRO;
-
-typedef struct _D3D10_SIGNATURE_PARAMETER_DESC
-{
-    LPCSTR SemanticName;
-    UINT SemanticIndex;
-    UINT Register;
-    D3D10_NAME SystemValueType;
-    D3D10_REGISTER_COMPONENT_TYPE ComponentType;
-    BYTE Mask;
-    BYTE ReadWriteMask;
-} D3D10_SIGNATURE_PARAMETER_DESC;
-
-LPCSTR WINAPI D3D10GetVertexShaderProfile(ID3D10Device *device);
-LPCSTR WINAPI D3D10GetGeometryShaderProfile(ID3D10Device *device);
-LPCSTR WINAPI D3D10GetPixelShaderProfile(ID3D10Device *device);
-
-#endif /* __WINE_D3D10SHADER_H */
diff --git a/misc/builddeps/win64/dx/include/d3d8.h b/misc/builddeps/win64/dx/include/d3d8.h
deleted file mode 100644 (file)
index 46e0812..0000000
+++ /dev/null
@@ -1,1145 +0,0 @@
-/*
- * Copyright (C) 2002 Jason Edmeades
- *
- * 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_D3D8_H
-#define __WINE_D3D8_H
-
-#ifndef DIRECT3D_VERSION
-#define DIRECT3D_VERSION  0x0800
-#endif
-
-#include <stdlib.h>
-
-#define COM_NO_WINDOWS_H
-#include <objbase.h>
-
-#ifndef __WINESRC__
-# include <windows.h>
-#endif
-
-#include <d3d8types.h>
-#include <d3d8caps.h>
-
-/*****************************************************************************
- * Behavior Flags for IDirect3D8::CreateDevice
- */
-#define D3DCREATE_FPU_PRESERVE                  0x00000002L
-#define D3DCREATE_MULTITHREADED                 0x00000004L
-#define D3DCREATE_PUREDEVICE                    0x00000010L
-#define D3DCREATE_SOFTWARE_VERTEXPROCESSING     0x00000020L
-#define D3DCREATE_HARDWARE_VERTEXPROCESSING     0x00000040L
-#define D3DCREATE_MIXED_VERTEXPROCESSING        0x00000080L
-
-/*****************************************************************************
- * Flags for SetPrivateData
- */
-#define D3DSPD_IUNKNOWN                         0x00000001L
-
-/*****************************************************************************
- * #defines and error codes
- */
-#define D3D_SDK_VERSION              220
-#define D3DADAPTER_DEFAULT           0
-#define D3DENUM_NO_WHQL_LEVEL        2
-
-#define _FACD3D  0x876
-#define MAKE_D3DHRESULT( code )  MAKE_HRESULT( 1, _FACD3D, code )
-
-/*
- * Direct3D Errors
- */
-#define D3D_OK                                  S_OK
-#define D3DERR_WRONGTEXTUREFORMAT               MAKE_D3DHRESULT(2072)
-#define D3DERR_UNSUPPORTEDCOLOROPERATION        MAKE_D3DHRESULT(2073)
-#define D3DERR_UNSUPPORTEDCOLORARG              MAKE_D3DHRESULT(2074)
-#define D3DERR_UNSUPPORTEDALPHAOPERATION        MAKE_D3DHRESULT(2075)
-#define D3DERR_UNSUPPORTEDALPHAARG              MAKE_D3DHRESULT(2076)
-#define D3DERR_TOOMANYOPERATIONS                MAKE_D3DHRESULT(2077)
-#define D3DERR_CONFLICTINGTEXTUREFILTER         MAKE_D3DHRESULT(2078)
-#define D3DERR_UNSUPPORTEDFACTORVALUE           MAKE_D3DHRESULT(2079)
-#define D3DERR_CONFLICTINGRENDERSTATE           MAKE_D3DHRESULT(2081)
-#define D3DERR_UNSUPPORTEDTEXTUREFILTER         MAKE_D3DHRESULT(2082)
-#define D3DERR_CONFLICTINGTEXTUREPALETTE        MAKE_D3DHRESULT(2086)
-#define D3DERR_DRIVERINTERNALERROR              MAKE_D3DHRESULT(2087)
-
-#define D3DERR_NOTFOUND                         MAKE_D3DHRESULT(2150)
-#define D3DERR_MOREDATA                         MAKE_D3DHRESULT(2151)
-#define D3DERR_DEVICELOST                       MAKE_D3DHRESULT(2152)
-#define D3DERR_DEVICENOTRESET                   MAKE_D3DHRESULT(2153)
-#define D3DERR_NOTAVAILABLE                     MAKE_D3DHRESULT(2154)
-#define D3DERR_OUTOFVIDEOMEMORY                 MAKE_D3DHRESULT(380)
-#define D3DERR_INVALIDDEVICE                    MAKE_D3DHRESULT(2155)
-#define D3DERR_INVALIDCALL                      MAKE_D3DHRESULT(2156)
-#define D3DERR_DRIVERINVALIDCALL                MAKE_D3DHRESULT(2157)
-
-/*****************************************************************************
- * Predeclare the interfaces
- */
-DEFINE_GUID(IID_IDirect3D8,              0x1DD9E8DA,0x1C77,0x4D40,0xB0,0xCF,0x98,0xFE,0xFD,0xFF,0x95,0x12);
-typedef struct IDirect3D8 *LPDIRECT3D8;
-
-DEFINE_GUID(IID_IDirect3DDevice8,        0x7385E5DF,0x8FE8,0x41D5,0x86,0xB6,0xD7,0xB4,0x85,0x47,0xB6,0xCF);
-typedef struct IDirect3DDevice8 *LPDIRECT3DDEVICE8;
-
-DEFINE_GUID(IID_IDirect3DResource8,      0x1B36BB7B,0x09B7,0x410A,0xB4,0x45,0x7D,0x14,0x30,0xD7,0xB3,0x3F);
-typedef struct IDirect3DResource8 *LPDIRECT3DRESOURCE8, *PDIRECT3DRESOURCE8;
-
-DEFINE_GUID(IID_IDirect3DVertexBuffer8,  0x8AEEEAC7,0x05F9,0x44D4,0xB5,0x91,0x00,0x0B,0x0D,0xF1,0xCB,0x95);
-typedef struct IDirect3DVertexBuffer8 *LPDIRECT3DVERTEXBUFFER8, *PDIRECT3DVERTEXBUFFER8;
-
-DEFINE_GUID(IID_IDirect3DVolume8,        0xBD7349F5,0x14F1,0x42E4,0x9C,0x79,0x97,0x23,0x80,0xDB,0x40,0xC0);
-typedef struct IDirect3DVolume8 *LPDIRECT3DVOLUME8, *PDIRECT3DVOLUME8;
-
-DEFINE_GUID(IID_IDirect3DSwapChain8,     0x928C088B,0x76B9,0x4C6B,0xA5,0x36,0xA5,0x90,0x85,0x38,0x76,0xCD);
-typedef struct IDirect3DSwapChain8 *LPDIRECT3DSWAPCHAIN8, *PDIRECT3DSWAPCHAIN8;
-
-DEFINE_GUID(IID_IDirect3DSurface8,       0xB96EEBCA,0xB326,0x4EA5,0x88,0x2F,0x2F,0xF5,0xBA,0xE0,0x21,0xDD);
-typedef struct IDirect3DSurface8 *LPDIRECT3DSURFACE8, *PDIRECT3DSURFACE8;
-
-DEFINE_GUID(IID_IDirect3DIndexBuffer8,   0x0E689C9A,0x053D,0x44A0,0x9D,0x92,0xDB,0x0E,0x3D,0x75,0x0F,0x86);
-typedef struct IDirect3DIndexBuffer8 *LPDIRECT3DINDEXBUFFER8, *PDIRECT3DINDEXBUFFER8;
-
-DEFINE_GUID(IID_IDirect3DBaseTexture8,   0xB4211CFA,0x51B9,0x4A9F,0xAB,0x78,0xDB,0x99,0xB2,0xBB,0x67,0x8E);
-typedef struct IDirect3DBaseTexture8 *LPDIRECT3DBASETEXTURE8, *PDIRECT3DBASETEXTURE8;
-
-DEFINE_GUID(IID_IDirect3DTexture8,       0xE4CDD575,0x2866,0x4F01,0xB1,0x2E,0x7E,0xEC,0xE1,0xEC,0x93,0x58);
-typedef struct IDirect3DTexture8 *LPDIRECT3DTEXTURE8, *PDIRECT3DTEXTURE8;
-
-DEFINE_GUID(IID_IDirect3DCubeTexture8,   0x3EE5B968,0x2ACA,0x4C34,0x8B,0xB5,0x7E,0x0C,0x3D,0x19,0xB7,0x50);
-typedef struct IDirect3DCubeTexture8 *LPDIRECT3DCUBETEXTURE8, *PDIRECT3DCUBETEXTURE8;
-
-DEFINE_GUID(IID_IDirect3DVolumeTexture8, 0x4B8AAAFA,0x140F,0x42BA,0x91,0x31,0x59,0x7E,0xAF,0xAA,0x2E,0xAD);
-typedef struct IDirect3DVolumeTexture8 *LPDIRECT3DVOLUMETEXTURE8, *PDIRECT3DVOLUMETEXTURE8;
-
-/*****************************************************************************
- * IDirect3D8 interface
- */
-#define INTERFACE IDirect3D8
-DECLARE_INTERFACE_(IDirect3D8,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3D8 methods ***/
-    STDMETHOD(RegisterSoftwareDevice)(THIS_ void * pInitializeFunction) PURE;
-    STDMETHOD_(UINT,GetAdapterCount             )(THIS) PURE;
-    STDMETHOD(GetAdapterIdentifier)(THIS_ UINT  Adapter, DWORD  Flags, D3DADAPTER_IDENTIFIER8 * pIdentifier) PURE;
-    STDMETHOD_(UINT,GetAdapterModeCount)(THIS_ UINT  Adapter) PURE;
-    STDMETHOD(EnumAdapterModes)(THIS_ UINT  Adapter, UINT  Mode, D3DDISPLAYMODE * pMode) PURE;
-    STDMETHOD(GetAdapterDisplayMode)(THIS_ UINT  Adapter, D3DDISPLAYMODE * pMode) PURE;
-    STDMETHOD(CheckDeviceType)(THIS_ UINT  Adapter, D3DDEVTYPE  CheckType, D3DFORMAT  DisplayFormat, D3DFORMAT  BackBufferFormat, BOOL  Windowed) PURE;
-    STDMETHOD(CheckDeviceFormat)(THIS_ UINT  Adapter, D3DDEVTYPE  DeviceType, D3DFORMAT  AdapterFormat, DWORD  Usage, D3DRESOURCETYPE  RType, D3DFORMAT  CheckFormat) PURE;
-    STDMETHOD(CheckDeviceMultiSampleType)(THIS_ UINT  Adapter, D3DDEVTYPE  DeviceType, D3DFORMAT  SurfaceFormat, BOOL  Windowed, D3DMULTISAMPLE_TYPE  MultiSampleType) PURE;
-    STDMETHOD(CheckDepthStencilMatch)(THIS_ UINT  Adapter, D3DDEVTYPE  DeviceType, D3DFORMAT  AdapterFormat, D3DFORMAT  RenderTargetFormat, D3DFORMAT  DepthStencilFormat) PURE;
-    STDMETHOD(GetDeviceCaps)(THIS_ UINT  Adapter, D3DDEVTYPE  DeviceType, D3DCAPS8 * pCaps) PURE;
-    STDMETHOD_(HMONITOR,GetAdapterMonitor)(THIS_ UINT  Adapter) PURE;
-    STDMETHOD(CreateDevice)(THIS_ UINT  Adapter, D3DDEVTYPE  DeviceType,HWND  hFocusWindow, DWORD  BehaviorFlags, D3DPRESENT_PARAMETERS * pPresentationParameters, struct IDirect3DDevice8 ** ppReturnedDeviceInterface) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3D8_QueryInterface(p,a,b)                    (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3D8_AddRef(p)                                (p)->lpVtbl->AddRef(p)
-#define IDirect3D8_Release(p)                               (p)->lpVtbl->Release(p)
-/*** IDirect3D8 methods ***/
-#define IDirect3D8_RegisterSoftwareDevice(p,a)              (p)->lpVtbl->RegisterSoftwareDevice(p,a)
-#define IDirect3D8_GetAdapterCount(p)                       (p)->lpVtbl->GetAdapterCount(p)
-#define IDirect3D8_GetAdapterIdentifier(p,a,b,c)            (p)->lpVtbl->GetAdapterIdentifier(p,a,b,c)
-#define IDirect3D8_GetAdapterModeCount(p,a)                 (p)->lpVtbl->GetAdapterModeCount(p,a)
-#define IDirect3D8_EnumAdapterModes(p,a,b,c)                (p)->lpVtbl->EnumAdapterModes(p,a,b,c)
-#define IDirect3D8_GetAdapterDisplayMode(p,a,b)             (p)->lpVtbl->GetAdapterDisplayMode(p,a,b)
-#define IDirect3D8_CheckDeviceType(p,a,b,c,d,e)             (p)->lpVtbl->CheckDeviceType(p,a,b,c,d,e)
-#define IDirect3D8_CheckDeviceFormat(p,a,b,c,d,e,f)         (p)->lpVtbl->CheckDeviceFormat(p,a,b,c,d,e,f)
-#define IDirect3D8_CheckDeviceMultiSampleType(p,a,b,c,d,e)  (p)->lpVtbl->CheckDeviceMultiSampleType(p,a,b,c,d,e)
-#define IDirect3D8_CheckDepthStencilMatch(p,a,b,c,d,e)      (p)->lpVtbl->CheckDepthStencilMatch(p,a,b,c,d,e)
-#define IDirect3D8_GetDeviceCaps(p,a,b,c)                   (p)->lpVtbl->GetDeviceCaps(p,a,b,c)
-#define IDirect3D8_GetAdapterMonitor(p,a)                   (p)->lpVtbl->GetAdapterMonitor(p,a)
-#define IDirect3D8_CreateDevice(p,a,b,c,d,e,f)              (p)->lpVtbl->CreateDevice(p,a,b,c,d,e,f)
-#else
-/*** IUnknown methods ***/
-#define IDirect3D8_QueryInterface(p,a,b)                    (p)->QueryInterface(a,b)
-#define IDirect3D8_AddRef(p)                                (p)->AddRef()
-#define IDirect3D8_Release(p)                               (p)->Release()
-/*** IDirect3D8 methods ***/
-#define IDirect3D8_RegisterSoftwareDevice(p,a)              (p)->RegisterSoftwareDevice(a)
-#define IDirect3D8_GetAdapterCount(p)                       (p)->GetAdapterCount()
-#define IDirect3D8_GetAdapterIdentifier(p,a,b,c)            (p)->GetAdapterIdentifier(a,b,c)
-#define IDirect3D8_GetAdapterModeCount(p,a)                 (p)->GetAdapterModeCount(a)
-#define IDirect3D8_EnumAdapterModes(p,a,b,c)                (p)->EnumAdapterModes(a,b,c)
-#define IDirect3D8_GetAdapterDisplayMode(p,a,b)             (p)->GetAdapterDisplayMode(a,b)
-#define IDirect3D8_CheckDeviceType(p,a,b,c,d,e)             (p)->CheckDeviceType(a,b,c,d,e)
-#define IDirect3D8_CheckDeviceFormat(p,a,b,c,d,e,f)         (p)->CheckDeviceFormat(a,b,c,d,e,f)
-#define IDirect3D8_CheckDeviceMultiSampleType(p,a,b,c,d,e)  (p)->CheckDeviceMultiSampleType(a,b,c,d,e)
-#define IDirect3D8_CheckDepthStencilMatch(p,a,b,c,d,e)      (p)->CheckDepthStencilMatch(a,b,c,d,e)
-#define IDirect3D8_GetDeviceCaps(p,a,b,c)                   (p)->GetDeviceCaps(a,b,c)
-#define IDirect3D8_GetAdapterMonitor(p,a)                   (p)->GetAdapterMonitor(a)
-#define IDirect3D8_CreateDevice(p,a,b,c,d,e,f)              (p)->CreateDevice(a,b,c,d,e,f)
-#endif
-
-/*****************************************************************************
- * IDirect3DVolume8 interface
- */
-#define INTERFACE IDirect3DVolume8
-DECLARE_INTERFACE_(IDirect3DVolume8,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DVolume8 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** 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(GetContainer)(THIS_ REFIID  riid, void ** ppContainer) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3DVOLUME_DESC * pDesc) PURE;
-    STDMETHOD(LockBox)(THIS_ D3DLOCKED_BOX * pLockedVolume,CONST D3DBOX * pBox, DWORD  Flags) PURE;
-    STDMETHOD(UnlockBox)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DVolume8_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DVolume8_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DVolume8_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DVolume8 methods ***/
-#define IDirect3DVolume8_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DVolume8_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DVolume8_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DVolume8_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DVolume8_GetContainer(p,a,b)          (p)->lpVtbl->GetContainer(p,a,b)
-#define IDirect3DVolume8_GetDesc(p,a)                 (p)->lpVtbl->GetDesc(p,a)
-#define IDirect3DVolume8_LockBox(p,a,b,c)             (p)->lpVtbl->LockBox(p,a,b,c)
-#define IDirect3DVolume8_UnlockBox(p)                 (p)->lpVtbl->UnlockBox(p)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DVolume8_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DVolume8_AddRef(p)                    (p)->AddRef()
-#define IDirect3DVolume8_Release(p)                   (p)->Release()
-/*** IDirect3DVolume8 methods ***/
-#define IDirect3DVolume8_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DVolume8_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DVolume8_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
-#define IDirect3DVolume8_FreePrivateData(p,a)         (p)->FreePrivateData(a)
-#define IDirect3DVolume8_GetContainer(p,a,b)          (p)->GetContainer(a,b)
-#define IDirect3DVolume8_GetDesc(p,a)                 (p)->GetDesc(a)
-#define IDirect3DVolume8_LockBox(p,a,b,c)             (p)->LockBox(a,b,c)
-#define IDirect3DVolume8_UnlockBox(p)                 (p)->UnlockBox()
-#endif
-
-/*****************************************************************************
- * IDirect3DSwapChain8 interface
- */
-#define INTERFACE IDirect3DSwapChain8
-DECLARE_INTERFACE_(IDirect3DSwapChain8,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DSwapChain8 methods ***/
-    STDMETHOD(Present)(THIS_ CONST RECT * pSourceRect, CONST RECT * pDestRect, HWND  hDestWindowOverride,CONST RGNDATA * pDirtyRegion) PURE;
-    STDMETHOD(GetBackBuffer)(THIS_ UINT  BackBuffer, D3DBACKBUFFER_TYPE  Type, struct IDirect3DSurface8 ** ppBackBuffer) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DSwapChain8_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DSwapChain8_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DSwapChain8_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DSwapChain8 methods ***/
-#define IDirect3DSwapChain8_Present(p,a,b,c)             (p)->lpVtbl->Present(p,a,b,c)
-#define IDirect3DSwapChain8_GetBackBuffer(p,a,b,c)       (p)->lpVtbl->GetBackBuffer(p,a,b,c)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DSwapChain8_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DSwapChain8_AddRef(p)                    (p)->AddRef()
-#define IDirect3DSwapChain8_Release(p)                   (p)->Release()
-/*** IDirect3DSwapChain8 methods ***/
-#define IDirect3DSwapChain8_Present(p,a,b,c)             (p)->Present(a,b,c)
-#define IDirect3DSwapChain8_GetBackBuffer(p,a,b,c)       (p)->GetBackBuffer(a,b,c)
-#endif
-
-/*****************************************************************************
- * IDirect3DSurface8 interface
- */
-#define INTERFACE IDirect3DSurface8
-DECLARE_INTERFACE_(IDirect3DSurface8,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DSurface8 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** 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(GetContainer)(THIS_ REFIID  riid, void ** ppContainer) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3DSURFACE_DESC * pDesc) PURE;
-    STDMETHOD(LockRect)(THIS_ D3DLOCKED_RECT * pLockedRect, CONST RECT * pRect,DWORD  Flags) PURE;
-    STDMETHOD(UnlockRect)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DSurface8_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DSurface8_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DSurface8_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DSurface8 methods ***/
-#define IDirect3DSurface8_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DSurface8_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DSurface8_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DSurface8_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DSurface8_GetContainer(p,a,b)          (p)->lpVtbl->GetContainer(p,a,b)
-#define IDirect3DSurface8_GetDesc(p,a)                 (p)->lpVtbl->GetDesc(p,a)
-#define IDirect3DSurface8_LockRect(p,a,b,c)            (p)->lpVtbl->LockRect(p,a,b,c)
-#define IDirect3DSurface8_UnlockRect(p)                (p)->lpVtbl->UnlockRect(p)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DSurface8_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DSurface8_AddRef(p)                    (p)->AddRef()
-#define IDirect3DSurface8_Release(p)                   (p)->Release()
-/*** IDirect3DSurface8 methods ***/
-#define IDirect3DSurface8_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DSurface8_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DSurface8_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
-#define IDirect3DSurface8_FreePrivateData(p,a)         (p)->FreePrivateData(a)
-#define IDirect3DSurface8_GetContainer(p,a,b)          (p)->GetContainer(a,b)
-#define IDirect3DSurface8_GetDesc(p,a)                 (p)->GetDesc(a)
-#define IDirect3DSurface8_LockRect(p,a,b,c)            (p)->LockRect(a,b,c)
-#define IDirect3DSurface8_UnlockRect(p)                (p)->UnlockRect()
-#endif
-
-/*****************************************************************************
- * IDirect3DResource8 interface
- */
-#define INTERFACE IDirect3DResource8
-DECLARE_INTERFACE_(IDirect3DResource8,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource8 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** 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_(D3DRESOURCETYPE,GetType)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DResource8_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DResource8_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DResource8_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DResource8 methods ***/
-#define IDirect3DResource8_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DResource8_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DResource8_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DResource8_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DResource8_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DResource8_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
-#define IDirect3DResource8_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
-#define IDirect3DResource8_GetType(p)                   (p)->lpVtbl->GetType(p)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DResource8_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DResource8_AddRef(p)                    (p)->AddRef()
-#define IDirect3DResource8_Release(p)                   (p)->Release()
-/*** IDirect3DResource8 methods ***/
-#define IDirect3DResource8_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DResource8_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DResource8_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
-#define IDirect3DResource8_FreePrivateData(p,a)         (p)->FreePrivateData(a)
-#define IDirect3DResource8_SetPriority(p,a)             (p)->SetPriority(a)
-#define IDirect3DResource8_GetPriority(p)               (p)->GetPriority()
-#define IDirect3DResource8_PreLoad(p)                   (p)->PreLoad()
-#define IDirect3DResource8_GetType(p)                   (p)->GetType()
-#endif
-
-/*****************************************************************************
- * IDirect3DVertexBuffer8 interface
- */
-#define INTERFACE IDirect3DVertexBuffer8
-DECLARE_INTERFACE_(IDirect3DVertexBuffer8,IDirect3DResource8)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource8 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** 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_(D3DRESOURCETYPE,GetType)(THIS) PURE;
-    /*** IDirect3DVertexBuffer8 methods ***/
-    STDMETHOD(Lock)(THIS_ UINT  OffsetToLock, UINT  SizeToLock, BYTE ** ppbData, DWORD  Flags) PURE;
-    STDMETHOD(Unlock)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3DVERTEXBUFFER_DESC  * pDesc) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DVertexBuffer8_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DVertexBuffer8_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DVertexBuffer8_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DVertexBuffer8 methods: IDirect3DResource8 ***/
-#define IDirect3DVertexBuffer8_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DVertexBuffer8_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DVertexBuffer8_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DVertexBuffer8_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DVertexBuffer8_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DVertexBuffer8_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
-#define IDirect3DVertexBuffer8_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
-#define IDirect3DVertexBuffer8_GetType(p)                   (p)->lpVtbl->GetType(p)
-/*** IDirect3DVertexBuffer8 methods ***/
-#define IDirect3DVertexBuffer8_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
-#define IDirect3DVertexBuffer8_Unlock(p)                    (p)->lpVtbl->Unlock(p)
-#define IDirect3DVertexBuffer8_GetDesc(p,a)                 (p)->lpVtbl->GetDesc(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DVertexBuffer8_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DVertexBuffer8_AddRef(p)                    (p)->AddRef()
-#define IDirect3DVertexBuffer8_Release(p)                   (p)->Release()
-/*** IDirect3DVertexBuffer8 methods: IDirect3DResource8 ***/
-#define IDirect3DVertexBuffer8_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DVertexBuffer8_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DVertexBuffer8_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
-#define IDirect3DVertexBuffer8_FreePrivateData(p,a)         (p)->FreePrivateData(a)
-#define IDirect3DVertexBuffer8_SetPriority(p,a)             (p)->SetPriority(a)
-#define IDirect3DVertexBuffer8_GetPriority(p)               (p)->GetPriority()
-#define IDirect3DVertexBuffer8_PreLoad(p)                   (p)->PreLoad()
-#define IDirect3DVertexBuffer8_GetType(p)                   (p)->GetType()
-/*** IDirect3DVertexBuffer8 methods ***/
-#define IDirect3DVertexBuffer8_Lock(p,a,b,c,d)              (p)->Lock(a,b,c,d)
-#define IDirect3DVertexBuffer8_Unlock(p)                    (p)->Unlock()
-#define IDirect3DVertexBuffer8_GetDesc(p,a)                 (p)->GetDesc(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DIndexBuffer8 interface
- */
-#define INTERFACE IDirect3DIndexBuffer8
-DECLARE_INTERFACE_(IDirect3DIndexBuffer8,IDirect3DResource8)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource8 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** 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_(D3DRESOURCETYPE,GetType)(THIS) PURE;
-    /*** IDirect3DIndexBuffer8 methods ***/
-    STDMETHOD(Lock)(THIS_ UINT  OffsetToLock, UINT  SizeToLock, BYTE ** ppbData, DWORD  Flags) PURE;
-    STDMETHOD(Unlock)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3DINDEXBUFFER_DESC * pDesc) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DIndexBuffer8_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DIndexBuffer8_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DIndexBuffer8_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DIndexBuffer8 methods: IDirect3DResource8 ***/
-#define IDirect3DIndexBuffer8_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DIndexBuffer8_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DIndexBuffer8_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DIndexBuffer8_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DIndexBuffer8_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DIndexBuffer8_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
-#define IDirect3DIndexBuffer8_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
-#define IDirect3DIndexBuffer8_GetType(p)                   (p)->lpVtbl->GetType(p)
-/*** IDirect3DIndexBuffer8 methods ***/
-#define IDirect3DIndexBuffer8_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
-#define IDirect3DIndexBuffer8_Unlock(p)                    (p)->lpVtbl->Unlock(p)
-#define IDirect3DIndexBuffer8_GetDesc(p,a)                 (p)->lpVtbl->GetDesc(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DIndexBuffer8_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DIndexBuffer8_AddRef(p)                    (p)->AddRef()
-#define IDirect3DIndexBuffer8_Release(p)                   (p)->Release()
-/*** IDirect3DIndexBuffer8 methods: IDirect3DResource8 ***/
-#define IDirect3DIndexBuffer8_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DIndexBuffer8_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DIndexBuffer8_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
-#define IDirect3DIndexBuffer8_FreePrivateData(p,a)         (p)->FreePrivateData(a)
-#define IDirect3DIndexBuffer8_SetPriority(p,a)             (p)->SetPriority(a)
-#define IDirect3DIndexBuffer8_GetPriority(p)               (p)->GetPriority()
-#define IDirect3DIndexBuffer8_PreLoad(p)                   (p)->PreLoad()
-#define IDirect3DIndexBuffer8_GetType(p)                   (p)->GetType()
-/*** IDirect3DIndexBuffer8 methods ***/
-#define IDirect3DIndexBuffer8_Lock(p,a,b,c,d)              (p)->Lock(a,b,c,d)
-#define IDirect3DIndexBuffer8_Unlock(p)                    (p)->Unlock()
-#define IDirect3DIndexBuffer8_GetDesc(p,a)                 (p)->GetDesc(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DBaseTexture8 interface
- */
-#define INTERFACE IDirect3DBaseTexture8
-DECLARE_INTERFACE_(IDirect3DBaseTexture8,IDirect3DResource8)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource8 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** 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_(D3DRESOURCETYPE,GetType)(THIS) PURE;
-    /*** IDirect3DBaseTexture8 methods ***/
-    STDMETHOD_(DWORD,SetLOD)(THIS_ DWORD  LODNew) PURE;
-    STDMETHOD_(DWORD,GetLOD)(THIS) PURE;
-    STDMETHOD_(DWORD,GetLevelCount)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DBaseTexture8_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DBaseTexture8_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DBaseTexture8_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DBaseTexture8 methods: IDirect3DResource8 ***/
-#define IDirect3DBaseTexture8_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DBaseTexture8_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DBaseTexture8_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DBaseTexture8_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DBaseTexture8_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DBaseTexture8_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
-#define IDirect3DBaseTexture8_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
-#define IDirect3DBaseTexture8_GetType(p)                   (p)->lpVtbl->GetType(p)
-/*** IDirect3DBaseTexture8 methods ***/
-#define IDirect3DBaseTexture8_SetLOD(p,a)                  (p)->lpVtbl->SetLOD(p,a)
-#define IDirect3DBaseTexture8_GetLOD(p)                    (p)->lpVtbl->GetLOD(p)
-#define IDirect3DBaseTexture8_GetLevelCount(p)             (p)->lpVtbl->GetLevelCount(p)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DBaseTexture8_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DBaseTexture8_AddRef(p)                    (p)->AddRef()
-#define IDirect3DBaseTexture8_Release(p)                   (p)->Release()
-/*** IDirect3DBaseTexture8 methods: IDirect3DResource8 ***/
-#define IDirect3DBaseTexture8_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DBaseTexture8_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DBaseTexture8_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
-#define IDirect3DBaseTexture8_FreePrivateData(p,a)         (p)->FreePrivateData(a)
-#define IDirect3DBaseTexture8_SetPriority(p,a)             (p)->SetPriority(a)
-#define IDirect3DBaseTexture8_GetPriority(p)               (p)->GetPriority()
-#define IDirect3DBaseTexture8_PreLoad(p)                   (p)->PreLoad()
-#define IDirect3DBaseTexture8_GetType(p)                   (p)->GetType()
-/*** IDirect3DBaseTexture8 methods ***/
-#define IDirect3DBaseTexture8_SetLOD(p,a)                  (p)->SetLOD(a)
-#define IDirect3DBaseTexture8_GetLOD(p)                    (p)->GetLOD()
-#define IDirect3DBaseTexture8_GetLevelCount(p)             (p)->GetLevelCount()
-#endif
-
-/*****************************************************************************
- * IDirect3DCubeTexture8 interface
- */
-#define INTERFACE IDirect3DCubeTexture8
-DECLARE_INTERFACE_(IDirect3DCubeTexture8,IDirect3DBaseTexture8)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource8 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** 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_(D3DRESOURCETYPE,GetType)(THIS) PURE;
-    /*** IDirect3DBaseTexture8 methods ***/
-    STDMETHOD_(DWORD,SetLOD)(THIS_ DWORD  LODNew) PURE;
-    STDMETHOD_(DWORD,GetLOD)(THIS) PURE;
-    STDMETHOD_(DWORD,GetLevelCount)(THIS) PURE;
-    /*** IDirect3DCubeTexture8 methods ***/
-    STDMETHOD(GetLevelDesc)(THIS_ UINT  Level,D3DSURFACE_DESC * pDesc) PURE;
-    STDMETHOD(GetCubeMapSurface)(THIS_ D3DCUBEMAP_FACES  FaceType,UINT  Level,IDirect3DSurface8 ** ppCubeMapSurface) PURE;
-    STDMETHOD(LockRect)(THIS_ D3DCUBEMAP_FACES  FaceType,UINT  Level,D3DLOCKED_RECT * pLockedRect,CONST RECT * pRect,DWORD  Flags) PURE;
-    STDMETHOD(UnlockRect)(THIS_ D3DCUBEMAP_FACES  FaceType,UINT  Level) PURE;
-    STDMETHOD(AddDirtyRect)(THIS_ D3DCUBEMAP_FACES  FaceType,CONST RECT * pDirtyRect) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DCubeTexture8_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DCubeTexture8_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DCubeTexture8_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DCubeTexture8 methods: IDirect3DResource8 ***/
-#define IDirect3DCubeTexture8_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DCubeTexture8_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DCubeTexture8_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DCubeTexture8_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DCubeTexture8_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DCubeTexture8_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
-#define IDirect3DCubeTexture8_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
-#define IDirect3DCubeTexture8_GetType(p)                   (p)->lpVtbl->GetType(p)
-/*** IDirect3DCubeTexture8 methods: IDirect3DBaseTexture8 ***/
-#define IDirect3DCubeTexture8_SetLOD(p,a)                  (p)->lpVtbl->SetLOD(p,a)
-#define IDirect3DCubeTexture8_GetLOD(p)                    (p)->lpVtbl->GetLOD(p)
-#define IDirect3DCubeTexture8_GetLevelCount(p)             (p)->lpVtbl->GetLevelCount(p)
-/*** IDirect3DCubeTexture8 methods ***/
-#define IDirect3DCubeTexture8_GetLevelDesc(p,a,b)          (p)->lpVtbl->GetLevelDesc(p,a,b)
-#define IDirect3DCubeTexture8_GetCubeMapSurface(p,a,b,c)   (p)->lpVtbl->GetCubeMapSurface(p,a,b,c)
-#define IDirect3DCubeTexture8_LockRect(p,a,b,c,d,e)        (p)->lpVtbl->LockRect(p,a,b,c,d,e)
-#define IDirect3DCubeTexture8_UnlockRect(p,a,b)            (p)->lpVtbl->UnlockRect(p,a,b)
-#define IDirect3DCubeTexture8_AddDirtyRect(p,a,b)          (p)->lpVtbl->AddDirtyRect(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DCubeTexture8_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DCubeTexture8_AddRef(p)                    (p)->AddRef()
-#define IDirect3DCubeTexture8_Release(p)                   (p)->Release()
-/*** IDirect3DCubeTexture8 methods: IDirect3DResource8 ***/
-#define IDirect3DCubeTexture8_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DCubeTexture8_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DCubeTexture8_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
-#define IDirect3DCubeTexture8_FreePrivateData(p,a)         (p)->FreePrivateData(a)
-#define IDirect3DCubeTexture8_SetPriority(p,a)             (p)->SetPriority(a)
-#define IDirect3DCubeTexture8_GetPriority(p)               (p)->GetPriority()
-#define IDirect3DCubeTexture8_PreLoad(p)                   (p)->PreLoad()
-#define IDirect3DCubeTexture8_GetType(p)                   (p)->GetType()
-/*** IDirect3DCubeTexture8 methods: IDirect3DBaseTexture8 ***/
-#define IDirect3DCubeTexture8_SetLOD(p,a)                  (p)->SetLOD(a)
-#define IDirect3DCubeTexture8_GetLOD(p)                    (p)->GetLOD()
-#define IDirect3DCubeTexture8_GetLevelCount(p)             (p)->GetLevelCount()
-/*** IDirect3DCubeTexture8 methods ***/
-#define IDirect3DCubeTexture8_GetLevelDesc(p,a,b)          (p)->GetLevelDesc(a,b)
-#define IDirect3DCubeTexture8_GetCubeMapSurface(p,a,b,c)   (p)->GetCubeMapSurface(a,b,c)
-#define IDirect3DCubeTexture8_LockRect(p,a,b,c,d,e)        (p)->LockRect(a,b,c,d,e)
-#define IDirect3DCubeTexture8_UnlockRect(p,a,b)            (p)->UnlockRect(a,b)
-#define IDirect3DCubeTexture8_AddDirtyRect(p,a,b)          (p)->AddDirtyRect(a,b)
-#endif
-
-/*****************************************************************************
- * IDirect3DTexture8 interface
- */
-#define INTERFACE IDirect3DTexture8
-DECLARE_INTERFACE_(IDirect3DTexture8,IDirect3DBaseTexture8)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource8 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** 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_(D3DRESOURCETYPE,GetType)(THIS) PURE;
-    /*** IDirect3DBaseTexture8 methods ***/
-    STDMETHOD_(DWORD,SetLOD)(THIS_ DWORD  LODNew) PURE;
-    STDMETHOD_(DWORD,GetLOD)(THIS) PURE;
-    STDMETHOD_(DWORD,GetLevelCount)(THIS) PURE;
-    /*** IDirect3DTexture8 methods ***/
-    STDMETHOD(GetLevelDesc)(THIS_ UINT  Level,D3DSURFACE_DESC * pDesc) PURE;
-    STDMETHOD(GetSurfaceLevel)(THIS_ UINT  Level,IDirect3DSurface8 ** ppSurfaceLevel) PURE;
-    STDMETHOD(LockRect)(THIS_ UINT  Level,D3DLOCKED_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 IDirect3DTexture8_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DTexture8_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DTexture8_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DTexture8 methods: IDirect3DResource8 ***/
-#define IDirect3DTexture8_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DTexture8_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DTexture8_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DTexture8_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DTexture8_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DTexture8_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
-#define IDirect3DTexture8_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
-#define IDirect3DTexture8_GetType(p)                   (p)->lpVtbl->GetType(p)
-/*** IDirect3DTexture8 methods: IDirect3DBaseTexture8 ***/
-#define IDirect3DTexture8_SetLOD(p,a)                  (p)->lpVtbl->SetLOD(p,a)
-#define IDirect3DTexture8_GetLOD(p)                    (p)->lpVtbl->GetLOD(p)
-#define IDirect3DTexture8_GetLevelCount(p)             (p)->lpVtbl->GetLevelCount(p)
-/*** IDirect3DTexture8 methods ***/
-#define IDirect3DTexture8_GetLevelDesc(p,a,b)          (p)->lpVtbl->GetLevelDesc(p,a,b)
-#define IDirect3DTexture8_GetSurfaceLevel(p,a,b)       (p)->lpVtbl->GetSurfaceLevel(p,a,b)
-#define IDirect3DTexture8_LockRect(p,a,b,c,d)          (p)->lpVtbl->LockRect(p,a,b,c,d)
-#define IDirect3DTexture8_UnlockRect(p,a)              (p)->lpVtbl->UnlockRect(p,a)
-#define IDirect3DTexture8_AddDirtyRect(p,a)            (p)->lpVtbl->AddDirtyRect(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DTexture8_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DTexture8_AddRef(p)                    (p)->AddRef()
-#define IDirect3DTexture8_Release(p)                   (p)->Release()
-/*** IDirect3DTexture8 methods: IDirect3DResource8 ***/
-#define IDirect3DTexture8_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DTexture8_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DTexture8_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
-#define IDirect3DTexture8_FreePrivateData(p,a)         (p)->FreePrivateData(a)
-#define IDirect3DTexture8_SetPriority(p,a)             (p)->SetPriority(a)
-#define IDirect3DTexture8_GetPriority(p)               (p)->GetPriority()
-#define IDirect3DTexture8_PreLoad(p)                   (p)->PreLoad()
-#define IDirect3DTexture8_GetType(p)                   (p)->GetType()
-/*** IDirect3DTexture8 methods: IDirect3DBaseTexture8 ***/
-#define IDirect3DTexture8_SetLOD(p,a)                  (p)->SetLOD(a)
-#define IDirect3DTexture8_GetLOD(p)                    (p)->GetLOD()
-#define IDirect3DTexture8_GetLevelCount(p)             (p)->GetLevelCount()
-/*** IDirect3DTexture8 methods ***/
-#define IDirect3DTexture8_GetLevelDesc(p,a,b)          (p)->GetLevelDesc(a,b)
-#define IDirect3DTexture8_GetSurfaceLevel(p,a,b)       (p)->GetSurfaceLevel(a,b)
-#define IDirect3DTexture8_LockRect(p,a,b,c,d)          (p)->LockRect(a,b,c,d)
-#define IDirect3DTexture8_UnlockRect(p,a)              (p)->UnlockRect(a)
-#define IDirect3DTexture8_AddDirtyRect(p,a)            (p)->AddDirtyRect(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DVolumeTexture8 interface
- */
-#define INTERFACE IDirect3DVolumeTexture8
-DECLARE_INTERFACE_(IDirect3DVolumeTexture8,IDirect3DBaseTexture8)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource8 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** 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_(D3DRESOURCETYPE,GetType)(THIS) PURE;
-    /*** IDirect3DBaseTexture8 methods ***/
-    STDMETHOD_(DWORD,SetLOD)(THIS_ DWORD  LODNew) PURE;
-    STDMETHOD_(DWORD,GetLOD)(THIS) PURE;
-    STDMETHOD_(DWORD,GetLevelCount)(THIS) PURE;
-    /*** IDirect3DVolumeTexture8 methods ***/
-    STDMETHOD(GetLevelDesc)(THIS_ UINT  Level,D3DVOLUME_DESC * pDesc) PURE;
-    STDMETHOD(GetVolumeLevel)(THIS_ UINT  Level,IDirect3DVolume8 ** ppVolumeLevel) PURE;
-    STDMETHOD(LockBox)(THIS_ UINT  Level,D3DLOCKED_BOX * pLockedVolume,CONST D3DBOX * pBox,DWORD  Flags) PURE;
-    STDMETHOD(UnlockBox)(THIS_ UINT  Level) PURE;
-    STDMETHOD(AddDirtyBox)(THIS_ CONST D3DBOX * pDirtyBox) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DVolumeTexture8_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DVolumeTexture8_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DVolumeTexture8_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DVolumeTexture8 methods: IDirect3DResource8 ***/
-#define IDirect3DVolumeTexture8_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DVolumeTexture8_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DVolumeTexture8_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DVolumeTexture8_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DVolumeTexture8_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DVolumeTexture8_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
-#define IDirect3DVolumeTexture8_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
-#define IDirect3DVolumeTexture8_GetType(p)                   (p)->lpVtbl->GetType(p)
-/*** IDirect3DVolumeTexture8 methods: IDirect3DBaseTexture8 ***/
-#define IDirect3DVolumeTexture8_SetLOD(p,a)                  (p)->lpVtbl->SetLOD(p,a)
-#define IDirect3DVolumeTexture8_GetLOD(p)                    (p)->lpVtbl->GetLOD(p)
-#define IDirect3DVolumeTexture8_GetLevelCount(p)             (p)->lpVtbl->GetLevelCount(p)
-/*** IDirect3DVolumeTexture8 methods ***/
-#define IDirect3DVolumeTexture8_GetLevelDesc(p,a,b)          (p)->lpVtbl->GetLevelDesc(p,a,b)
-#define IDirect3DVolumeTexture8_GetVolumeLevel(p,a,b)        (p)->lpVtbl->GetVolumeLevel(p,a,b)
-#define IDirect3DVolumeTexture8_LockBox(p,a,b,c,d)           (p)->lpVtbl->LockBox(p,a,b,c,d)
-#define IDirect3DVolumeTexture8_UnlockBox(p,a)               (p)->lpVtbl->UnlockBox(p,a)
-#define IDirect3DVolumeTexture8_AddDirtyBox(p,a)             (p)->lpVtbl->AddDirtyBox(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DVolumeTexture8_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DVolumeTexture8_AddRef(p)                    (p)->AddRef()
-#define IDirect3DVolumeTexture8_Release(p)                   (p)->Release()
-/*** IDirect3DVolumeTexture8 methods: IDirect3DResource8 ***/
-#define IDirect3DVolumeTexture8_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DVolumeTexture8_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DVolumeTexture8_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
-#define IDirect3DVolumeTexture8_FreePrivateData(p,a)         (p)->FreePrivateData(a)
-#define IDirect3DVolumeTexture8_SetPriority(p,a)             (p)->SetPriority(a)
-#define IDirect3DVolumeTexture8_GetPriority(p)               (p)->GetPriority()
-#define IDirect3DVolumeTexture8_PreLoad(p)                   (p)->PreLoad()
-#define IDirect3DVolumeTexture8_GetType(p)                   (p)->GetType()
-/*** IDirect3DVolumeTexture8 methods: IDirect3DBaseTexture8 ***/
-#define IDirect3DVolumeTexture8_SetLOD(p,a)                  (p)->SetLOD(a)
-#define IDirect3DVolumeTexture8_GetLOD(p)                    (p)->GetLOD()
-#define IDirect3DVolumeTexture8_GetLevelCount(p)             (p)->GetLevelCount()
-/*** IDirect3DVolumeTexture8 methods ***/
-#define IDirect3DVolumeTexture8_GetLevelDesc(p,a,b)          (p)->GetLevelDesc(a,b)
-#define IDirect3DVolumeTexture8_GetVolumeLevel(p,a,b)        (p)->GetVolumeLevel(a,b)
-#define IDirect3DVolumeTexture8_LockBox(p,a,b,c,d)           (p)->LockBox(a,b,c,d)
-#define IDirect3DVolumeTexture8_UnlockBox(p,a)               (p)->UnlockBox(a)
-#define IDirect3DVolumeTexture8_AddDirtyBox(p,a)             (p)->AddDirtyBox(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DDevice8 interface
- */
-#define INTERFACE IDirect3DDevice8
-DECLARE_INTERFACE_(IDirect3DDevice8,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DDevice8 methods ***/
-    STDMETHOD(TestCooperativeLevel)(THIS) PURE;
-    STDMETHOD_(UINT,GetAvailableTextureMem)(THIS) PURE;
-    STDMETHOD(ResourceManagerDiscardBytes)(THIS_ DWORD  Bytes) PURE;
-    STDMETHOD(GetDirect3D)(THIS_ IDirect3D8 ** ppD3D8) PURE;
-    STDMETHOD(GetDeviceCaps)(THIS_ D3DCAPS8 * pCaps) PURE;
-    STDMETHOD(GetDisplayMode)(THIS_ D3DDISPLAYMODE * pMode) PURE;
-    STDMETHOD(GetCreationParameters)(THIS_ D3DDEVICE_CREATION_PARAMETERS  * pParameters) PURE;
-    STDMETHOD(SetCursorProperties)(THIS_ UINT  XHotSpot, UINT  YHotSpot, IDirect3DSurface8 * pCursorBitmap) PURE;
-    STDMETHOD_(void,SetCursorPosition)(THIS_ UINT  XScreenSpace, UINT  YScreenSpace,DWORD  Flags) PURE;
-    STDMETHOD_(BOOL,ShowCursor)(THIS_ BOOL  bShow) PURE;
-    STDMETHOD(CreateAdditionalSwapChain)(THIS_ D3DPRESENT_PARAMETERS * pPresentationParameters, IDirect3DSwapChain8 ** pSwapChain) PURE;
-    STDMETHOD(Reset)(THIS_ D3DPRESENT_PARAMETERS * pPresentationParameters) PURE;
-    STDMETHOD(Present)(THIS_ CONST RECT * pSourceRect,CONST RECT * pDestRect,HWND  hDestWindowOverride,CONST RGNDATA * pDirtyRegion) PURE;
-    STDMETHOD(GetBackBuffer)(THIS_ UINT  BackBuffer,D3DBACKBUFFER_TYPE  Type,IDirect3DSurface8 ** ppBackBuffer) PURE;
-    STDMETHOD(GetRasterStatus)(THIS_ D3DRASTER_STATUS * pRasterStatus) PURE;
-    STDMETHOD_(void,SetGammaRamp)(THIS_ DWORD  Flags,CONST D3DGAMMARAMP * pRamp) PURE;
-    STDMETHOD_(void,GetGammaRamp)(THIS_ D3DGAMMARAMP * pRamp) PURE;
-    STDMETHOD(CreateTexture)(THIS_ UINT  Width,UINT  Height,UINT  Levels,DWORD  Usage,D3DFORMAT  Format,D3DPOOL  Pool,IDirect3DTexture8 ** ppTexture) PURE;
-    STDMETHOD(CreateVolumeTexture)(THIS_ UINT  Width,UINT  Height,UINT  Depth,UINT  Levels,DWORD  Usage,D3DFORMAT  Format,D3DPOOL  Pool,IDirect3DVolumeTexture8 ** ppVolumeTexture) PURE;
-    STDMETHOD(CreateCubeTexture)(THIS_ UINT  EdgeLength,UINT  Levels,DWORD  Usage,D3DFORMAT  Format,D3DPOOL  Pool,IDirect3DCubeTexture8 ** ppCubeTexture) PURE;
-    STDMETHOD(CreateVertexBuffer)(THIS_ UINT  Length,DWORD  Usage,DWORD  FVF,D3DPOOL  Pool,IDirect3DVertexBuffer8 ** ppVertexBuffer) PURE;
-    STDMETHOD(CreateIndexBuffer)(THIS_ UINT  Length,DWORD  Usage,D3DFORMAT  Format,D3DPOOL  Pool,IDirect3DIndexBuffer8 ** ppIndexBuffer) PURE;
-    STDMETHOD(CreateRenderTarget)(THIS_ UINT  Width,UINT  Height,D3DFORMAT  Format,D3DMULTISAMPLE_TYPE  MultiSample,BOOL  Lockable,IDirect3DSurface8 ** ppSurface) PURE;
-    STDMETHOD(CreateDepthStencilSurface)(THIS_ UINT  Width,UINT  Height,D3DFORMAT  Format,D3DMULTISAMPLE_TYPE  MultiSample,IDirect3DSurface8 ** ppSurface) PURE;
-    STDMETHOD(CreateImageSurface)(THIS_ UINT  Width,UINT  Height,D3DFORMAT  Format,IDirect3DSurface8 ** ppSurface) PURE;
-    STDMETHOD(CopyRects)(THIS_ IDirect3DSurface8 * pSourceSurface,CONST RECT * pSourceRectsArray,UINT  cRects,IDirect3DSurface8 * pDestinationSurface,CONST POINT * pDestPointsArray) PURE;
-    STDMETHOD(UpdateTexture)(THIS_ IDirect3DBaseTexture8 * pSourceTexture,IDirect3DBaseTexture8 * pDestinationTexture) PURE;
-    STDMETHOD(GetFrontBuffer)(THIS_ IDirect3DSurface8 * pDestSurface) PURE;
-    STDMETHOD(SetRenderTarget)(THIS_ IDirect3DSurface8 * pRenderTarget,IDirect3DSurface8 * pNewZStencil) PURE;
-    STDMETHOD(GetRenderTarget)(THIS_ IDirect3DSurface8 ** ppRenderTarget) PURE;
-    STDMETHOD(GetDepthStencilSurface)(THIS_ IDirect3DSurface8 ** ppZStencilSurface) PURE;
-    STDMETHOD(BeginScene)(THIS) PURE;
-    STDMETHOD(EndScene)(THIS) PURE;
-    STDMETHOD(Clear)(THIS_ DWORD  Count,CONST D3DRECT * pRects,DWORD  Flags,D3DCOLOR  Color,float  Z,DWORD  Stencil) PURE;
-    STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE  State,CONST D3DMATRIX * pMatrix) PURE;
-    STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE  State,D3DMATRIX * pMatrix) PURE;
-    STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE  State, CONST D3DMATRIX * pMatrix) PURE;
-    STDMETHOD(SetViewport)(THIS_ CONST D3DVIEWPORT8 * pViewport) PURE;
-    STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT8 * pViewport) PURE;
-    STDMETHOD(SetMaterial)(THIS_ CONST D3DMATERIAL8 * pMaterial) PURE;
-    STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL8 *pMaterial) PURE;
-    STDMETHOD(SetLight)(THIS_ DWORD  Index,CONST D3DLIGHT8 * pLight) PURE;
-    STDMETHOD(GetLight)(THIS_ DWORD  Index,D3DLIGHT8 * pLight) PURE;
-    STDMETHOD(LightEnable)(THIS_ DWORD  Index,BOOL  Enable) PURE;
-    STDMETHOD(GetLightEnable)(THIS_ DWORD  Index,BOOL * pEnable) PURE;
-    STDMETHOD(SetClipPlane)(THIS_ DWORD  Index,CONST float * pPlane) PURE;
-    STDMETHOD(GetClipPlane)(THIS_ DWORD  Index,float * pPlane) PURE;
-    STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE  State,DWORD  Value) PURE;
-    STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE  State,DWORD * pValue) PURE;
-    STDMETHOD(BeginStateBlock)(THIS) PURE;
-    STDMETHOD(EndStateBlock)(THIS_ DWORD * pToken) PURE;
-    STDMETHOD(ApplyStateBlock)(THIS_ DWORD  Token) PURE;
-    STDMETHOD(CaptureStateBlock)(THIS_ DWORD  Token) PURE;
-    STDMETHOD(DeleteStateBlock)(THIS_ DWORD  Token) PURE;
-    STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE  Type,DWORD * pToken) PURE;
-    STDMETHOD(SetClipStatus)(THIS_ CONST D3DCLIPSTATUS8 * pClipStatus) PURE;
-    STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS8 * pClipStatus) PURE;
-    STDMETHOD(GetTexture)(THIS_ DWORD  Stage,IDirect3DBaseTexture8 ** ppTexture) PURE;
-    STDMETHOD(SetTexture)(THIS_ DWORD  Stage,IDirect3DBaseTexture8 * pTexture) PURE;
-    STDMETHOD(GetTextureStageState)(THIS_ DWORD  Stage,D3DTEXTURESTAGESTATETYPE  Type,DWORD * pValue) PURE;
-    STDMETHOD(SetTextureStageState)(THIS_ DWORD  Stage,D3DTEXTURESTAGESTATETYPE  Type,DWORD  Value) PURE;
-    STDMETHOD(ValidateDevice)(THIS_ DWORD * pNumPasses) PURE;
-    STDMETHOD(GetInfo)(THIS_ DWORD  DevInfoID,void * pDevInfoStruct,DWORD  DevInfoStructSize) PURE;
-    STDMETHOD(SetPaletteEntries)(THIS_ UINT  PaletteNumber,CONST PALETTEENTRY * pEntries) PURE;
-    STDMETHOD(GetPaletteEntries)(THIS_ UINT  PaletteNumber,PALETTEENTRY * pEntries) PURE;
-    STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT  PaletteNumber) PURE;
-    STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT  * PaletteNumber) PURE;
-    STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE  PrimitiveType,UINT  StartVertex,UINT  PrimitiveCount) PURE;
-    STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE  PrimitiveType,UINT  minIndex,UINT  NumVertices,UINT  startIndex,UINT  primCount) PURE;
-    STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE  PrimitiveType,UINT  PrimitiveCount,CONST void * pVertexStreamZeroData,UINT  VertexStreamZeroStride) PURE;
-    STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE  PrimitiveType,UINT  MinVertexIndex,UINT  NumVertexIndices,UINT  PrimitiveCount,CONST void * pIndexData,D3DFORMAT  IndexDataFormat,CONST void * pVertexStreamZeroData,UINT  VertexStreamZeroStride) PURE;
-    STDMETHOD(ProcessVertices)(THIS_ UINT  SrcStartIndex,UINT  DestIndex,UINT  VertexCount,IDirect3DVertexBuffer8 * pDestBuffer,DWORD  Flags) PURE;
-    STDMETHOD(CreateVertexShader)(THIS_ CONST DWORD * pDeclaration,CONST DWORD * pFunction,DWORD * pHandle,DWORD  Usage) PURE;
-    STDMETHOD(SetVertexShader)(THIS_ DWORD  Handle) PURE;
-    STDMETHOD(GetVertexShader)(THIS_ DWORD * pHandle) PURE;
-    STDMETHOD(DeleteVertexShader)(THIS_ DWORD  Handle) PURE;
-    STDMETHOD(SetVertexShaderConstant)(THIS_ DWORD  Register,CONST void * pConstantData,DWORD  ConstantCount) PURE;
-    STDMETHOD(GetVertexShaderConstant)(THIS_ DWORD  Register,void * pConstantData,DWORD  ConstantCount) PURE;
-    STDMETHOD(GetVertexShaderDeclaration)(THIS_ DWORD  Handle,void * pData,DWORD * pSizeOfData) PURE;
-    STDMETHOD(GetVertexShaderFunction)(THIS_ DWORD  Handle,void * pData,DWORD * pSizeOfData) PURE;
-    STDMETHOD(SetStreamSource)(THIS_ UINT  StreamNumber,IDirect3DVertexBuffer8 * pStreamData,UINT  Stride) PURE;
-    STDMETHOD(GetStreamSource)(THIS_ UINT  StreamNumber,IDirect3DVertexBuffer8 ** ppStreamData,UINT * pStride) PURE;
-    STDMETHOD(SetIndices)(THIS_ IDirect3DIndexBuffer8 * pIndexData,UINT  BaseVertexIndex) PURE;
-    STDMETHOD(GetIndices)(THIS_ IDirect3DIndexBuffer8 ** ppIndexData,UINT * pBaseVertexIndex) PURE;
-    STDMETHOD(CreatePixelShader)(THIS_ CONST DWORD * pFunction,DWORD * pHandle) PURE;
-    STDMETHOD(SetPixelShader)(THIS_ DWORD  Handle) PURE;
-    STDMETHOD(GetPixelShader)(THIS_ DWORD * pHandle) PURE;
-    STDMETHOD(DeletePixelShader)(THIS_ DWORD  Handle) PURE;
-    STDMETHOD(SetPixelShaderConstant)(THIS_ DWORD  Register,CONST void * pConstantData,DWORD  ConstantCount) PURE;
-    STDMETHOD(GetPixelShaderConstant)(THIS_ DWORD  Register,void * pConstantData,DWORD  ConstantCount) PURE;
-    STDMETHOD(GetPixelShaderFunction)(THIS_ DWORD  Handle,void * pData,DWORD * pSizeOfData) PURE;
-    STDMETHOD(DrawRectPatch)(THIS_ UINT  Handle,CONST float * pNumSegs,CONST D3DRECTPATCH_INFO * pRectPatchInfo) PURE;
-    STDMETHOD(DrawTriPatch)(THIS_ UINT  Handle,CONST float * pNumSegs,CONST D3DTRIPATCH_INFO * pTriPatchInfo) PURE;
-    STDMETHOD(DeletePatch)(THIS_ UINT  Handle) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DDevice8_QueryInterface(p,a,b)                     (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DDevice8_AddRef(p)                                 (p)->lpVtbl->AddRef(p)
-#define IDirect3DDevice8_Release(p)                                (p)->lpVtbl->Release(p)
-/*** IDirect3DDevice8 methods ***/
-#define IDirect3DDevice8_TestCooperativeLevel(p)                   (p)->lpVtbl->TestCooperativeLevel(p)
-#define IDirect3DDevice8_GetAvailableTextureMem(p)                 (p)->lpVtbl->GetAvailableTextureMem(p)
-#define IDirect3DDevice8_ResourceManagerDiscardBytes(p,a)          (p)->lpVtbl->ResourceManagerDiscardBytes(p,a)
-#define IDirect3DDevice8_GetDirect3D(p,a)                          (p)->lpVtbl->GetDirect3D(p,a)
-#define IDirect3DDevice8_GetDeviceCaps(p,a)                        (p)->lpVtbl->GetDeviceCaps(p,a)
-#define IDirect3DDevice8_GetDisplayMode(p,a)                       (p)->lpVtbl->GetDisplayMode(p,a)
-#define IDirect3DDevice8_GetCreationParameters(p,a)                (p)->lpVtbl->GetCreationParameters(p,a)
-#define IDirect3DDevice8_SetCursorProperties(p,a,b,c)              (p)->lpVtbl->SetCursorProperties(p,a,b,c)
-#define IDirect3DDevice8_SetCursorPosition(p,a,b,c)                (p)->lpVtbl->SetCursorPosition(p,a,b,c)
-#define IDirect3DDevice8_ShowCursor(p,a)                           (p)->lpVtbl->ShowCursor(p,a)
-#define IDirect3DDevice8_CreateAdditionalSwapChain(p,a,b)          (p)->lpVtbl->CreateAdditionalSwapChain(p,a,b)
-#define IDirect3DDevice8_Reset(p,a)                                (p)->lpVtbl->Reset(p,a)
-#define IDirect3DDevice8_Present(p,a,b,c,d)                        (p)->lpVtbl->Present(p,a,b,c,d)
-#define IDirect3DDevice8_GetBackBuffer(p,a,b,c)                    (p)->lpVtbl->GetBackBuffer(p,a,b,c)
-#define IDirect3DDevice8_GetRasterStatus(p,a)                      (p)->lpVtbl->GetRasterStatus(p,a)
-#define IDirect3DDevice8_SetGammaRamp(p,a,b)                       (p)->lpVtbl->SetGammaRamp(p,a,b)
-#define IDirect3DDevice8_GetGammaRamp(p,a)                         (p)->lpVtbl->GetGammaRamp(p,a)
-#define IDirect3DDevice8_CreateTexture(p,a,b,c,d,e,f,g)            (p)->lpVtbl->CreateTexture(p,a,b,c,d,e,f,g)
-#define IDirect3DDevice8_CreateVolumeTexture(p,a,b,c,d,e,f,g,h)    (p)->lpVtbl->CreateVolumeTexture(p,a,b,c,d,e,f,g,h)
-#define IDirect3DDevice8_CreateCubeTexture(p,a,b,c,d,e,f)          (p)->lpVtbl->CreateCubeTexture(p,a,b,c,d,e,f)
-#define IDirect3DDevice8_CreateVertexBuffer(p,a,b,c,d,e)           (p)->lpVtbl->CreateVertexBuffer(p,a,b,c,d,e)
-#define IDirect3DDevice8_CreateIndexBuffer(p,a,b,c,d,e)            (p)->lpVtbl->CreateIndexBuffer(p,a,b,c,d,e)
-#define IDirect3DDevice8_CreateRenderTarget(p,a,b,c,d,e,f)         (p)->lpVtbl->CreateRenderTarget(p,a,b,c,d,e,f)
-#define IDirect3DDevice8_CreateDepthStencilSurface(p,a,b,c,d,e)    (p)->lpVtbl->CreateDepthStencilSurface(p,a,b,c,d,e)
-#define IDirect3DDevice8_CreateImageSurface(p,a,b,c,d)             (p)->lpVtbl->CreateImageSurface(p,a,b,c,d)
-#define IDirect3DDevice8_CopyRects(p,a,b,c,d,e)                    (p)->lpVtbl->CopyRects(p,a,b,c,d,e)
-#define IDirect3DDevice8_UpdateTexture(p,a,b)                      (p)->lpVtbl->UpdateTexture(p,a,b)
-#define IDirect3DDevice8_GetFrontBuffer(p,a)                       (p)->lpVtbl->GetFrontBuffer(p,a)
-#define IDirect3DDevice8_SetRenderTarget(p,a,b)                    (p)->lpVtbl->SetRenderTarget(p,a,b)
-#define IDirect3DDevice8_GetRenderTarget(p,a)                      (p)->lpVtbl->GetRenderTarget(p,a)
-#define IDirect3DDevice8_GetDepthStencilSurface(p,a)               (p)->lpVtbl->GetDepthStencilSurface(p,a)
-#define IDirect3DDevice8_BeginScene(p)                             (p)->lpVtbl->BeginScene(p)
-#define IDirect3DDevice8_EndScene(p)                               (p)->lpVtbl->EndScene(p)
-#define IDirect3DDevice8_Clear(p,a,b,c,d,e,f)                      (p)->lpVtbl->Clear(p,a,b,c,d,e,f)
-#define IDirect3DDevice8_SetTransform(p,a,b)                       (p)->lpVtbl->SetTransform(p,a,b)
-#define IDirect3DDevice8_GetTransform(p,a,b)                       (p)->lpVtbl->GetTransform(p,a,b)
-#define IDirect3DDevice8_MultiplyTransform(p,a,b)                  (p)->lpVtbl->MultiplyTransform(p,a,b)
-#define IDirect3DDevice8_SetViewport(p,a)                          (p)->lpVtbl->SetViewport(p,a)
-#define IDirect3DDevice8_GetViewport(p,a)                          (p)->lpVtbl->GetViewport(p,a)
-#define IDirect3DDevice8_SetMaterial(p,a)                          (p)->lpVtbl->SetMaterial(p,a)
-#define IDirect3DDevice8_GetMaterial(p,a)                          (p)->lpVtbl->GetMaterial(p,a)
-#define IDirect3DDevice8_SetLight(p,a,b)                           (p)->lpVtbl->SetLight(p,a,b)
-#define IDirect3DDevice8_GetLight(p,a,b)                           (p)->lpVtbl->GetLight(p,a,b)
-#define IDirect3DDevice8_LightEnable(p,a,b)                        (p)->lpVtbl->LightEnable(p,a,b)
-#define IDirect3DDevice8_GetLightEnable(p,a,b)                     (p)->lpVtbl->GetLightEnable(p,a,b)
-#define IDirect3DDevice8_SetClipPlane(p,a,b)                       (p)->lpVtbl->SetClipPlane(p,a,b)
-#define IDirect3DDevice8_GetClipPlane(p,a,b)                       (p)->lpVtbl->GetClipPlane(p,a,b)
-#define IDirect3DDevice8_SetRenderState(p,a,b)                     (p)->lpVtbl->SetRenderState(p,a,b)
-#define IDirect3DDevice8_GetRenderState(p,a,b)                     (p)->lpVtbl->GetRenderState(p,a,b)
-#define IDirect3DDevice8_BeginStateBlock(p)                        (p)->lpVtbl->BeginStateBlock(p)
-#define IDirect3DDevice8_EndStateBlock(p,a)                        (p)->lpVtbl->EndStateBlock(p,a)
-#define IDirect3DDevice8_ApplyStateBlock(p,a)                      (p)->lpVtbl->ApplyStateBlock(p,a)
-#define IDirect3DDevice8_CaptureStateBlock(p,a)                    (p)->lpVtbl->CaptureStateBlock(p,a)
-#define IDirect3DDevice8_DeleteStateBlock(p,a)                     (p)->lpVtbl->DeleteStateBlock(p,a)
-#define IDirect3DDevice8_CreateStateBlock(p,a,b)                   (p)->lpVtbl->CreateStateBlock(p,a,b)
-#define IDirect3DDevice8_SetClipStatus(p,a)                        (p)->lpVtbl->SetClipStatus(p,a)
-#define IDirect3DDevice8_GetClipStatus(p,a)                        (p)->lpVtbl->GetClipStatus(p,a)
-#define IDirect3DDevice8_GetTexture(p,a,b)                         (p)->lpVtbl->GetTexture(p,a,b)
-#define IDirect3DDevice8_SetTexture(p,a,b)                         (p)->lpVtbl->SetTexture(p,a,b)
-#define IDirect3DDevice8_GetTextureStageState(p,a,b,c)             (p)->lpVtbl->GetTextureStageState(p,a,b,c)
-#define IDirect3DDevice8_SetTextureStageState(p,a,b,c)             (p)->lpVtbl->SetTextureStageState(p,a,b,c)
-#define IDirect3DDevice8_ValidateDevice(p,a)                       (p)->lpVtbl->ValidateDevice(p,a)
-#define IDirect3DDevice8_GetInfo(p,a,b,c)                          (p)->lpVtbl->GetInfo(p,a,b,c)
-#define IDirect3DDevice8_SetPaletteEntries(p,a,b)                  (p)->lpVtbl->SetPaletteEntries(p,a,b)
-#define IDirect3DDevice8_GetPaletteEntries(p,a,b)                  (p)->lpVtbl->GetPaletteEntries(p,a,b)
-#define IDirect3DDevice8_SetCurrentTexturePalette(p,a)             (p)->lpVtbl->SetCurrentTexturePalette(p,a)
-#define IDirect3DDevice8_GetCurrentTexturePalette(p,a)             (p)->lpVtbl->GetCurrentTexturePalette(p,a)
-#define IDirect3DDevice8_DrawPrimitive(p,a,b,c)                    (p)->lpVtbl->DrawPrimitive(p,a,b,c)
-#define IDirect3DDevice8_DrawIndexedPrimitive(p,a,b,c,d,e)         (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e)
-#define IDirect3DDevice8_DrawPrimitiveUP(p,a,b,c,d)                (p)->lpVtbl->DrawPrimitiveUP(p,a,b,c,d)
-#define IDirect3DDevice8_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h)
-#define IDirect3DDevice8_ProcessVertices(p,a,b,c,d,e)              (p)->lpVtbl->processVertices(p,a,b,c,d,e)
-#define IDirect3DDevice8_CreateVertexShader(p,a,b,c,d)             (p)->lpVtbl->CreateVertexShader(p,a,b,c,d)
-#define IDirect3DDevice8_SetVertexShader(p,a)                      (p)->lpVtbl->SetVertexShader(p,a)
-#define IDirect3DDevice8_GetVertexShader(p,a)                      (p)->lpVtbl->GetVertexShader(p,a)
-#define IDirect3DDevice8_DeleteVertexShader(p,a)                   (p)->lpVtbl->DeleteVertexShader(p,a)
-#define IDirect3DDevice8_SetVertexShaderConstant(p,a,b,c)          (p)->lpVtbl->SetVertexShaderConstant(p,a,b,c)
-#define IDirect3DDevice8_GetVertexShaderConstant(p,a,b,c)          (p)->lpVtbl->GetVertexShaderConstant(p,a,b,c)
-#define IDirect3DDevice8_GetVertexShaderDeclaration(p,a,b,c)       (p)->lpVtbl->GetVertexShaderDeclaration(p,a,b,c)
-#define IDirect3DDevice8_GetVertexShaderFunction(p,a,b,c)          (p)->lpVtbl->GetVertexShaderFunction(p,a,b,c)
-#define IDirect3DDevice8_SetStreamSource(p,a,b,c)                  (p)->lpVtbl->SetStreamSource(p,a,b,c)
-#define IDirect3DDevice8_GetStreamSource(p,a,b,c)                  (p)->lpVtbl->GetStreamSource(p,a,b,c)
-#define IDirect3DDevice8_SetIndices(p,a,b)                         (p)->lpVtbl->SetIndices(p,a,b)
-#define IDirect3DDevice8_GetIndices(p,a,b)                         (p)->lpVtbl->GetIndices(p,a,b)
-#define IDirect3DDevice8_CreatePixelShader(p,a,b)                  (p)->lpVtbl->CreatePixelShader(p,a,b)
-#define IDirect3DDevice8_SetPixelShader(p,a)                       (p)->lpVtbl->SetPixelShader(p,a)
-#define IDirect3DDevice8_GetPixelShader(p,a)                       (p)->lpVtbl->GetPixelShader(p,a)
-#define IDirect3DDevice8_DeletePixelShader(p,a)                    (p)->lpVtbl->DeletePixelShader(p,a)
-#define IDirect3DDevice8_SetPixelShaderConstant(p,a,b,c)           (p)->lpVtbl->SetPixelShaderConstant(p,a,b,c)
-#define IDirect3DDevice8_GetPixelShaderConstant(p,a,b,c)           (p)->lpVtbl->GetPixelShaderConstant(p,a,b,c)
-#define IDirect3DDevice8_GetPixelShaderFunction(p,a,b,c)           (p)->lpVtbl->GetPixelShaderFunction(p,a,b,c)
-#define IDirect3DDevice8_DrawRectPatch(p,a,b,c)                    (p)->lpVtbl->DrawRectPatch(p,a,b,c)
-#define IDirect3DDevice8_DrawTriPatch(p,a,b,c)                     (p)->lpVtbl->DrawTriPatch(p,a,b,c)
-#define IDirect3DDevice8_DeletePatch(p,a)                          (p)->lpVtbl->DeletePatch(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DDevice8_QueryInterface(p,a,b)                     (p)->QueryInterface(a,b)
-#define IDirect3DDevice8_AddRef(p)                                 (p)->AddRef()
-#define IDirect3DDevice8_Release(p)                                (p)->Release()
-/*** IDirect3DDevice8 methods ***/
-#define IDirect3DDevice8_TestCooperativeLevel(p)                   (p)->TestCooperativeLevel()
-#define IDirect3DDevice8_GetAvailableTextureMem(p)                 (p)->GetAvailableTextureMem()
-#define IDirect3DDevice8_ResourceManagerDiscardBytes(p,a)          (p)->ResourceManagerDiscardBytes(a)
-#define IDirect3DDevice8_GetDirect3D(p,a)                          (p)->GetDirect3D(a)
-#define IDirect3DDevice8_GetDeviceCaps(p,a)                        (p)->GetDeviceCaps(a)
-#define IDirect3DDevice8_GetDisplayMode(p,a)                       (p)->GetDisplayMode(a)
-#define IDirect3DDevice8_GetCreationParameters(p,a)                (p)->GetCreationParameters(a)
-#define IDirect3DDevice8_SetCursorProperties(p,a,b,c)              (p)->SetCursorProperties(a,b,c)
-#define IDirect3DDevice8_SetCursorPosition(p,a,b,c)                (p)->SetCursorPosition(a,b,c)
-#define IDirect3DDevice8_ShowCursor(p,a)                           (p)->ShowCursor(a)
-#define IDirect3DDevice8_CreateAdditionalSwapChain(p,a,b)          (p)->CreateAdditionalSwapChain(a,b)
-#define IDirect3DDevice8_Reset(p,a)                                (p)->Reset(a)
-#define IDirect3DDevice8_Present(p,a,b,c,d)                        (p)->Present(a,b,c,d)
-#define IDirect3DDevice8_GetBackBuffer(p,a,b,c)                    (p)->GetBackBuffer(a,b,c)
-#define IDirect3DDevice8_GetRasterStatus(p,a)                      (p)->GetRasterStatus(a)
-#define IDirect3DDevice8_SetGammaRamp(p,a,b)                       (p)->SetGammaRamp(a,b)
-#define IDirect3DDevice8_GetGammaRamp(p,a)                         (p)->GetGammaRamp(a)
-#define IDirect3DDevice8_CreateTexture(p,a,b,c,d,e,f,g)            (p)->CreateTexture(a,b,c,d,e,f,g)
-#define IDirect3DDevice8_CreateVolumeTexture(p,a,b,c,d,e,f,g,h)    (p)->CreateVolumeTexture(a,b,c,d,e,f,g,h)
-#define IDirect3DDevice8_CreateCubeTexture(p,a,b,c,d,e,f)          (p)->CreateCubeTexture(a,b,c,d,e,f)
-#define IDirect3DDevice8_CreateVertexBuffer(p,a,b,c,d,e)           (p)->CreateVertexBuffer(a,b,c,d,e)
-#define IDirect3DDevice8_CreateIndexBuffer(p,a,b,c,d,e)            (p)->CreateIndexBuffer(a,b,c,d,e)
-#define IDirect3DDevice8_CreateRenderTarget(p,a,b,c,d,e,f)         (p)->CreateRenderTarget(a,b,c,d,e,f)
-#define IDirect3DDevice8_CreateDepthStencilSurface(p,a,b,c,d,e)    (p)->CreateDepthStencilSurface(a,b,c,d,e)
-#define IDirect3DDevice8_CreateImageSurface(p,a,b,c,d)             (p)->CreateImageSurface(a,b,c,d)
-#define IDirect3DDevice8_CopyRects(p,a,b,c,d,e)                    (p)->CopyRects(a,b,c,d,e)
-#define IDirect3DDevice8_UpdateTexture(p,a,b)                      (p)->UpdateTexture(a,b)
-#define IDirect3DDevice8_GetFrontBuffer(p,a)                       (p)->GetFrontBuffer(a)
-#define IDirect3DDevice8_SetRenderTarget(p,a,b)                    (p)->SetRenderTarget(a,b)
-#define IDirect3DDevice8_GetRenderTarget(p,a)                      (p)->GetRenderTarget(a)
-#define IDirect3DDevice8_GetDepthStencilSurface(p,a)               (p)->GetDepthStencilSurface(a)
-#define IDirect3DDevice8_BeginScene(p)                             (p)->BeginScene()
-#define IDirect3DDevice8_EndScene(p)                               (p)->EndScene()
-#define IDirect3DDevice8_Clear(p,a,b,c,d,e,f)                      (p)->Clear(a,b,c,d,e,f)
-#define IDirect3DDevice8_SetTransform(p,a,b)                       (p)->SetTransform(a,b)
-#define IDirect3DDevice8_GetTransform(p,a,b)                       (p)->GetTransform(a,b)
-#define IDirect3DDevice8_MultiplyTransform(p,a,b)                  (p)->MultiplyTransform(a,b)
-#define IDirect3DDevice8_SetViewport(p,a)                          (p)->SetViewport(a)
-#define IDirect3DDevice8_GetViewport(p,a)                          (p)->GetViewport(a)
-#define IDirect3DDevice8_SetMaterial(p,a)                          (p)->SetMaterial(a)
-#define IDirect3DDevice8_GetMaterial(p,a)                          (p)->GetMaterial(a)
-#define IDirect3DDevice8_SetLight(p,a,b)                           (p)->SetLight(a,b)
-#define IDirect3DDevice8_GetLight(p,a,b)                           (p)->GetLight(a,b)
-#define IDirect3DDevice8_LightEnable(p,a,b)                        (p)->LightEnable(a,b)
-#define IDirect3DDevice8_GetLightEnable(p,a,b)                     (p)->GetLightEnable(a,b)
-#define IDirect3DDevice8_SetClipPlane(p,a,b)                       (p)->SetClipPlane(a,b)
-#define IDirect3DDevice8_GetClipPlane(p,a,b)                       (p)->GetClipPlane(a,b)
-#define IDirect3DDevice8_SetRenderState(p,a,b)                     (p)->SetRenderState(a,b)
-#define IDirect3DDevice8_GetRenderState(p,a,b)                     (p)->GetRenderState(a,b)
-#define IDirect3DDevice8_BeginStateBlock(p)                        (p)->BeginStateBlock()
-#define IDirect3DDevice8_EndStateBlock(p,a)                        (p)->EndStateBlock(a)
-#define IDirect3DDevice8_ApplyStateBlock(p,a)                      (p)->ApplyStateBlock(a)
-#define IDirect3DDevice8_CaptureStateBlock(p,a)                    (p)->CaptureStateBlock(a)
-#define IDirect3DDevice8_DeleteStateBlock(p,a)                     (p)->DeleteStateBlock(a)
-#define IDirect3DDevice8_CreateStateBlock(p,a,b)                   (p)->CreateStateBlock(a,b)
-#define IDirect3DDevice8_SetClipStatus(p,a)                        (p)->SetClipStatus(a)
-#define IDirect3DDevice8_GetClipStatus(p,a)                        (p)->GetClipStatus(a)
-#define IDirect3DDevice8_GetTexture(p,a,b)                         (p)->GetTexture(a,b)
-#define IDirect3DDevice8_SetTexture(p,a,b)                         (p)->SetTexture(a,b)
-#define IDirect3DDevice8_GetTextureStageState(p,a,b,c)             (p)->GetTextureStageState(a,b,c)
-#define IDirect3DDevice8_SetTextureStageState(p,a,b,c)             (p)->SetTextureStageState(a,b,c)
-#define IDirect3DDevice8_ValidateDevice(p,a)                       (p)->ValidateDevice(a)
-#define IDirect3DDevice8_GetInfo(p,a,b,c)                          (p)->GetInfo(a,b,c)
-#define IDirect3DDevice8_SetPaletteEntries(p,a,b)                  (p)->SetPaletteEntries(a,b)
-#define IDirect3DDevice8_GetPaletteEntries(p,a,b)                  (p)->GetPaletteEntries(a,b)
-#define IDirect3DDevice8_SetCurrentTexturePalette(p,a)             (p)->SetCurrentTexturePalette(a)
-#define IDirect3DDevice8_GetCurrentTexturePalette(p,a)             (p)->GetCurrentTexturePalette(a)
-#define IDirect3DDevice8_DrawPrimitive(p,a,b,c)                    (p)->DrawPrimitive(a,b,c)
-#define IDirect3DDevice8_DrawIndexedPrimitive(p,a,b,c,d,e)         (p)->DrawIndexedPrimitive(a,b,c,d,e)
-#define IDirect3DDevice8_DrawPrimitiveUP(p,a,b,c,d)                (p)->DrawPrimitiveUP(a,b,c,d)
-#define IDirect3DDevice8_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->DrawIndexedPrimitiveUP(a,b,c,d,e,f,g,h)
-#define IDirect3DDevice8_ProcessVertices(p,a,b,c,d,e)              (p)->processVertices(a,b,c,d,e)
-#define IDirect3DDevice8_CreateVertexShader(p,a,b,c,d)             (p)->CreateVertexShader(a,b,c,d)
-#define IDirect3DDevice8_SetVertexShader(p,a)                      (p)->SetVertexShader(a)
-#define IDirect3DDevice8_GetVertexShader(p,a)                      (p)->GetVertexShader(a)
-#define IDirect3DDevice8_DeleteVertexShader(p,a)                   (p)->DeleteVertexShader(a)
-#define IDirect3DDevice8_SetVertexShaderConstant(p,a,b,c)          (p)->SetVertexShaderConstant(a,b,c)
-#define IDirect3DDevice8_GetVertexShaderConstant(p,a,b,c)          (p)->GetVertexShaderConstant(a,b,c)
-#define IDirect3DDevice8_GetVertexShaderDeclaration(p,a,b,c)       (p)->GetVertexShaderDeclaration(a,b,c)
-#define IDirect3DDevice8_GetVertexShaderFunction(p,a,b,c)          (p)->GetVertexShaderFunction(a,b,c)
-#define IDirect3DDevice8_SetStreamSource(p,a,b,c)                  (p)->SetStreamSource(a,b,c)
-#define IDirect3DDevice8_GetStreamSource(p,a,b,c)                  (p)->GetStreamSource(a,b,c)
-#define IDirect3DDevice8_SetIndices(p,a,b)                         (p)->SetIndices(a,b)
-#define IDirect3DDevice8_GetIndices(p,a,b)                         (p)->GetIndices(a,b)
-#define IDirect3DDevice8_CreatePixelShader(p,a,b)                  (p)->CreatePixelShader(a,b)
-#define IDirect3DDevice8_SetPixelShader(p,a)                       (p)->SetPixelShader(a)
-#define IDirect3DDevice8_GetPixelShader(p,a)                       (p)->GetPixelShader(a)
-#define IDirect3DDevice8_DeletePixelShader(p,a)                    (p)->DeletePixelShader(a)
-#define IDirect3DDevice8_SetPixelShaderConstant(p,a,b,c)           (p)->SetPixelShaderConstant(a,b,c)
-#define IDirect3DDevice8_GetPixelShaderConstant(p,a,b,c)           (p)->GetPixelShaderConstant(a,b,c)
-#define IDirect3DDevice8_GetPixelShaderFunction(p,a,b,c)           (p)->GetPixelShaderFunction(a,b,c)
-#define IDirect3DDevice8_DrawRectPatch(p,a,b,c)                    (p)->DrawRectPatch(a,b,c)
-#define IDirect3DDevice8_DrawTriPatch(p,a,b,c)                     (p)->DrawTriPatch(a,b,c)
-#define IDirect3DDevice8_DeletePatch(p,a)                          (p)->DeletePatch(a)
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif  /* defined(__cplusplus) */
-
-/* Define the main entrypoint as well */
-IDirect3D8* WINAPI Direct3DCreate8(UINT SDKVersion);
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif /* defined(__cplusplus) */
-
-#endif /* __WINE_D3D8_H */
diff --git a/misc/builddeps/win64/dx/include/d3d8caps.h b/misc/builddeps/win64/dx/include/d3d8caps.h
deleted file mode 100644 (file)
index 019d346..0000000
+++ /dev/null
@@ -1,286 +0,0 @@
-/*
- * Copyright (C) 2002 Jason Edmeades
- *
- * 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_D3D8CAPS_H
-#define __WINE_D3D8CAPS_H
-
-/*
- * Definitions
- */
-
-#define D3DCAPS_READ_SCANLINE 0x20000
-
-#define D3DCURSORCAPS_COLOR   1
-#define D3DCURSORCAPS_LOWRES  2
-
-#define D3DDEVCAPS_EXECUTESYSTEMMEMORY     0x0000010
-#define D3DDEVCAPS_EXECUTEVIDEOMEMORY      0x0000020
-#define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY    0x0000040
-#define D3DDEVCAPS_TLVERTEXVIDEOMEMORY     0x0000080
-#define D3DDEVCAPS_TEXTURESYSTEMMEMORY     0x0000100
-#define D3DDEVCAPS_TEXTUREVIDEOMEMORY      0x0000200
-#define D3DDEVCAPS_DRAWPRIMTLVERTEX        0x0000400
-#define D3DDEVCAPS_CANRENDERAFTERFLIP      0x0000800
-#define D3DDEVCAPS_TEXTURENONLOCALVIDMEM   0x0001000
-#define D3DDEVCAPS_DRAWPRIMITIVES2         0x0002000
-#define D3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x0004000
-#define D3DDEVCAPS_DRAWPRIMITIVES2EX       0x0008000
-#define D3DDEVCAPS_HWTRANSFORMANDLIGHT     0x0010000
-#define D3DDEVCAPS_CANBLTSYSTONONLOCAL     0x0020000
-#define D3DDEVCAPS_HWRASTERIZATION         0x0080000
-#define D3DDEVCAPS_PUREDEVICE              0x0100000
-#define D3DDEVCAPS_QUINTICRTPATCHES        0x0200000
-#define D3DDEVCAPS_RTPATCHES               0x0400000
-#define D3DDEVCAPS_RTPATCHHANDLEZERO       0x0800000
-#define D3DDEVCAPS_NPATCHES                0x1000000
-
-#define D3DFVFCAPS_TEXCOORDCOUNTMASK  0x00FFFF
-#define D3DFVFCAPS_DONOTSTRIPELEMENTS 0x080000
-#define D3DFVFCAPS_PSIZE              0x100000
-
-#define D3DLINECAPS_TEXTURE           0x01
-#define D3DLINECAPS_ZTEST             0x02
-#define D3DLINECAPS_BLEND             0x04
-#define D3DLINECAPS_ALPHACMP          0x08
-#define D3DLINECAPS_FOG               0x10
-
-#define D3DPBLENDCAPS_ZERO            0x0001
-#define D3DPBLENDCAPS_ONE             0x0002
-#define D3DPBLENDCAPS_SRCCOLOR        0x0004
-#define D3DPBLENDCAPS_INVSRCCOLOR     0x0008
-#define D3DPBLENDCAPS_SRCALPHA        0x0010
-#define D3DPBLENDCAPS_INVSRCALPHA     0x0020
-#define D3DPBLENDCAPS_DESTALPHA       0x0040
-#define D3DPBLENDCAPS_INVDESTALPHA    0x0080
-#define D3DPBLENDCAPS_DESTCOLOR       0x0100
-#define D3DPBLENDCAPS_INVDESTCOLOR    0x0200
-#define D3DPBLENDCAPS_SRCALPHASAT     0x0400
-#define D3DPBLENDCAPS_BOTHSRCALPHA    0x0800
-#define D3DPBLENDCAPS_BOTHINVSRCALPHA 0x1000
-
-#define D3DPCMPCAPS_NEVER        0x01
-#define D3DPCMPCAPS_LESS         0x02
-#define D3DPCMPCAPS_EQUAL        0x04
-#define D3DPCMPCAPS_LESSEQUAL    0x08
-#define D3DPCMPCAPS_GREATER      0x10
-#define D3DPCMPCAPS_NOTEQUAL     0x20
-#define D3DPCMPCAPS_GREATEREQUAL 0x40
-#define D3DPCMPCAPS_ALWAYS       0x80
-
-#define D3DPMISCCAPS_MASKZ                 0x0002
-#define D3DPMISCCAPS_LINEPATTERNREP        0x0004
-#define D3DPMISCCAPS_CULLNONE              0x0010
-#define D3DPMISCCAPS_CULLCW                0x0020
-#define D3DPMISCCAPS_CULLCCW               0x0040
-#define D3DPMISCCAPS_COLORWRITEENABLE      0x0080
-#define D3DPMISCCAPS_CLIPPLANESCALEDPOINTS 0x0100
-#define D3DPMISCCAPS_CLIPTLVERTS           0x0200
-#define D3DPMISCCAPS_TSSARGTEMP            0x0400
-#define D3DPMISCCAPS_BLENDOP               0x0800
-
-#define D3DPRASTERCAPS_DITHER                     0x00000001
-#define D3DPRASTERCAPS_PAT                        0x00000008
-#define D3DPRASTERCAPS_ZTEST                      0x00000010
-#define D3DPRASTERCAPS_FOGVERTEX                  0x00000080
-#define D3DPRASTERCAPS_FOGTABLE                   0x00000100
-#define D3DPRASTERCAPS_ANTIALIASEDGES             0x00001000
-#define D3DPRASTERCAPS_MIPMAPLODBIAS              0x00002000
-#define D3DPRASTERCAPS_ZBIAS                      0x00004000
-#define D3DPRASTERCAPS_ZBUFFERLESSHSR             0x00008000
-#define D3DPRASTERCAPS_FOGRANGE                   0x00010000
-#define D3DPRASTERCAPS_ANISOTROPY                 0x00020000
-#define D3DPRASTERCAPS_WBUFFER                    0x00040000
-#define D3DPRASTERCAPS_WFOG                       0x00100000
-#define D3DPRASTERCAPS_ZFOG                       0x00200000
-#define D3DPRASTERCAPS_COLORPERSPECTIVE           0x00400000
-#define D3DPRASTERCAPS_STRETCHBLTMULTISAMPLE      0x00800000
-
-#define D3DPRESENT_INTERVAL_DEFAULT               0x00000000
-#define D3DPRESENT_INTERVAL_ONE                   0x00000001
-#define D3DPRESENT_INTERVAL_TWO                   0x00000002
-#define D3DPRESENT_INTERVAL_THREE                 0x00000004
-#define D3DPRESENT_INTERVAL_FOUR                  0x00000008
-#define D3DPRESENT_INTERVAL_IMMEDIATE             0x80000000
-
-#define D3DPSHADECAPS_COLORGOURAUDRGB             0x00008
-#define D3DPSHADECAPS_SPECULARGOURAUDRGB          0x00200
-#define D3DPSHADECAPS_ALPHAGOURAUDBLEND           0x04000
-#define D3DPSHADECAPS_FOGGOURAUD                  0x80000
-
-#define D3DPTADDRESSCAPS_WRAP                     0x01
-#define D3DPTADDRESSCAPS_MIRROR                   0x02
-#define D3DPTADDRESSCAPS_CLAMP                    0x04
-#define D3DPTADDRESSCAPS_BORDER                   0x08
-#define D3DPTADDRESSCAPS_INDEPENDENTUV            0x10
-#define D3DPTADDRESSCAPS_MIRRORONCE               0x20
-
-#define D3DPTEXTURECAPS_PERSPECTIVE              0x00001
-#define D3DPTEXTURECAPS_POW2                     0x00002
-#define D3DPTEXTURECAPS_ALPHA                    0x00004
-#define D3DPTEXTURECAPS_SQUAREONLY               0x00020
-#define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 0x00040
-#define D3DPTEXTURECAPS_ALPHAPALETTE             0x00080
-#define D3DPTEXTURECAPS_NONPOW2CONDITIONAL       0x00100
-#define D3DPTEXTURECAPS_PROJECTED                0x00400
-#define D3DPTEXTURECAPS_CUBEMAP                  0x00800
-#define D3DPTEXTURECAPS_VOLUMEMAP                0x02000
-#define D3DPTEXTURECAPS_MIPMAP                   0x04000
-#define D3DPTEXTURECAPS_MIPVOLUMEMAP             0x08000
-#define D3DPTEXTURECAPS_MIPCUBEMAP               0x10000
-#define D3DPTEXTURECAPS_CUBEMAP_POW2             0x20000
-#define D3DPTEXTURECAPS_VOLUMEMAP_POW2           0x40000
-
-#define D3DPTFILTERCAPS_MINFPOINT                0x00000100
-#define D3DPTFILTERCAPS_MINFLINEAR               0x00000200
-#define D3DPTFILTERCAPS_MINFANISOTROPIC          0x00000400
-#define D3DPTFILTERCAPS_MIPFPOINT                0x00010000
-#define D3DPTFILTERCAPS_MIPFLINEAR               0x00020000
-#define D3DPTFILTERCAPS_MAGFPOINT                0x01000000
-#define D3DPTFILTERCAPS_MAGFLINEAR               0x02000000
-#define D3DPTFILTERCAPS_MAGFANISOTROPIC          0x04000000
-#define D3DPTFILTERCAPS_MAGFAFLATCUBIC           0x08000000
-#define D3DPTFILTERCAPS_MAGFGAUSSIANCUBIC        0x10000000
-
-#define D3DSTENCILCAPS_KEEP                      0x01
-#define D3DSTENCILCAPS_ZERO                      0x02
-#define D3DSTENCILCAPS_REPLACE                   0x04
-#define D3DSTENCILCAPS_INCRSAT                   0x08
-#define D3DSTENCILCAPS_DECRSAT                   0x10
-#define D3DSTENCILCAPS_INVERT                    0x20
-#define D3DSTENCILCAPS_INCR                      0x40
-#define D3DSTENCILCAPS_DECR                      0x80
-
-#define D3DTEXOPCAPS_DISABLE                     0x0000001
-#define D3DTEXOPCAPS_SELECTARG1                  0x0000002
-#define D3DTEXOPCAPS_SELECTARG2                  0x0000004
-#define D3DTEXOPCAPS_MODULATE                    0x0000008
-#define D3DTEXOPCAPS_MODULATE2X                  0x0000010
-#define D3DTEXOPCAPS_MODULATE4X                  0x0000020
-#define D3DTEXOPCAPS_ADD                         0x0000040
-#define D3DTEXOPCAPS_ADDSIGNED                   0x0000080
-#define D3DTEXOPCAPS_ADDSIGNED2X                 0x0000100
-#define D3DTEXOPCAPS_SUBTRACT                    0x0000200
-#define D3DTEXOPCAPS_ADDSMOOTH                   0x0000400
-#define D3DTEXOPCAPS_BLENDDIFFUSEALPHA           0x0000800
-#define D3DTEXOPCAPS_BLENDTEXTUREALPHA           0x0001000
-#define D3DTEXOPCAPS_BLENDFACTORALPHA            0x0002000
-#define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM         0x0004000
-#define D3DTEXOPCAPS_BLENDCURRENTALPHA           0x0008000
-#define D3DTEXOPCAPS_PREMODULATE                 0x0010000
-#define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR      0x0020000
-#define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA      0x0040000
-#define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR   0x0080000
-#define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA   0x0100000
-#define D3DTEXOPCAPS_BUMPENVMAP                  0x0200000
-#define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE         0x0400000
-#define D3DTEXOPCAPS_DOTPRODUCT3                 0x0800000
-#define D3DTEXOPCAPS_MULTIPLYADD                 0x1000000
-#define D3DTEXOPCAPS_LERP                        0x2000000
-
-#define D3DVTXPCAPS_TEXGEN                       0x01
-#define D3DVTXPCAPS_MATERIALSOURCE7              0x02
-#define D3DVTXPCAPS_DIRECTIONALLIGHTS            0x08
-#define D3DVTXPCAPS_POSITIONALLIGHTS             0x10
-#define D3DVTXPCAPS_LOCALVIEWER                  0x20
-#define D3DVTXPCAPS_TWEENING                     0x40
-
-#define D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD  0x00000020
-#define D3DCAPS3_RESERVED                          0x8000001f
-
-#define D3DCAPS2_CANCALIBRATEGAMMA                 0x0100000
-#define D3DCAPS2_CANRENDERWINDOWED                 0x0080000
-#define D3DCAPS2_CANMANAGERESOURCE                 0x10000000
-#define D3DCAPS2_DYNAMICTEXTURES                   0x20000000
-#define D3DCAPS2_FULLSCREENGAMMA                   0x0020000
-#define D3DCAPS2_NO2DDURING3DSCENE                 0x0000002
-#define D3DCAPS2_RESERVED                          0x2000000
-
-/*
- * The d3dcaps8 structure
- */
-typedef struct _D3DCAPS8 {
-    D3DDEVTYPE          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, 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               MaxPixelShaderValue;
-} D3DCAPS8;
-
-#endif  /* __WINE_D3D8CAPS_H */
diff --git a/misc/builddeps/win64/dx/include/d3d8types.h b/misc/builddeps/win64/dx/include/d3d8types.h
deleted file mode 100644 (file)
index 7c24b73..0000000
+++ /dev/null
@@ -1,1221 +0,0 @@
-/*
- * Copyright (C) 2002 Jason Edmeades
- *
- * 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_D3D8TYPES_H
-#define __WINE_D3D8TYPES_H
-
-#include <_mingw_dxhelper.h>
-
-/*****************************************************************************
- * Direct 3D v8 #defines
- */
-
-#ifndef D3DCLEAR_TARGET
-#define D3DCLEAR_TARGET   1
-#endif
-#ifndef D3DCLEAR_ZBUFFER
-#define D3DCLEAR_ZBUFFER  2
-#endif
-#ifndef D3DCLEAR_STENCIL
-#define D3DCLEAR_STENCIL  4
-#endif
-
-#define D3DCLIPPLANE0 (1 << 0)
-#define D3DCLIPPLANE1 (1 << 1)
-#define D3DCLIPPLANE2 (1 << 2)
-#define D3DCLIPPLANE3 (1 << 3)
-#define D3DCLIPPLANE4 (1 << 4)
-#define D3DCLIPPLANE5 (1 << 5)
-
-#define D3DCOLOR_ARGB(a,r,g,b)        ((D3DCOLOR)((((a)&0xff)<<24)|(((r)&0xff)<<16)|(((g)&0xff)<<8)|((b)&0xff)))
-#define D3DCOLOR_COLORVALUE(r,g,b,a)  D3DCOLOR_RGBA((DWORD)((r)*255.f),(DWORD)((g)*255.f),(DWORD)((b)*255.f),(DWORD)((a)*255.f))
-#define D3DCOLOR_RGBA(r,g,b,a)        D3DCOLOR_ARGB(a,r,g,b)
-#define D3DCOLOR_XRGB(r,g,b)          D3DCOLOR_ARGB(0xff,r,g,b)
-
-#define D3DCS_LEFT                 0x001
-#define D3DCS_RIGHT                0x002
-#define D3DCS_TOP                  0x004
-#define D3DCS_BOTTOM               0x008
-#define D3DCS_FRONT                0x010
-#define D3DCS_BACK                 0x020
-#define D3DCS_PLANE0               0x040
-#define D3DCS_PLANE1               0x080
-#define D3DCS_PLANE2               0x100
-#define D3DCS_PLANE3               0x200
-#define D3DCS_PLANE4               0x400
-#define D3DCS_PLANE5               0x800
-#define D3DCS_ALL                  0xFFF
-
-#define D3DFVF_TEXTUREFORMAT1 3
-#define D3DFVF_TEXTUREFORMAT2 0
-#define D3DFVF_TEXTUREFORMAT3 1
-#define D3DFVF_TEXTUREFORMAT4 2
-#define D3DFVF_TEXCOORDSIZE1(CoordIndex) (D3DFVF_TEXTUREFORMAT1 << (CoordIndex*2 + 16))
-#define D3DFVF_TEXCOORDSIZE2(CoordIndex) (D3DFVF_TEXTUREFORMAT2)
-#define D3DFVF_TEXCOORDSIZE3(CoordIndex) (D3DFVF_TEXTUREFORMAT3 << (CoordIndex*2 + 16))
-#define D3DFVF_TEXCOORDSIZE4(CoordIndex) (D3DFVF_TEXTUREFORMAT4 << (CoordIndex*2 + 16))
-
-#define D3DLOCK_READONLY           0x0010
-#define D3DLOCK_NOSYSLOCK          0x0800
-#define D3DLOCK_NOOVERWRITE        0x1000
-#define D3DLOCK_DISCARD            0x2000
-#define D3DLOCK_NO_DIRTY_UPDATE    0x8000
-
-#define D3DMAXUSERCLIPPLANES       32
-
-#define D3DRENDERSTATE_WRAPBIAS    0x80
-
-#define D3DTSS_TCI_PASSTHRU                       0x00000
-#define D3DTSS_TCI_CAMERASPACENORMAL              0x10000
-#define D3DTSS_TCI_CAMERASPACEPOSITION            0x20000
-#define D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR    0x30000
-
-
-#define D3DTS_WORLD  D3DTS_WORLDMATRIX(0)
-#define D3DTS_WORLD1 D3DTS_WORLDMATRIX(1)
-#define D3DTS_WORLD2 D3DTS_WORLDMATRIX(2)
-#define D3DTS_WORLD3 D3DTS_WORLDMATRIX(3)
-#define D3DTS_WORLDMATRIX(index) (D3DTRANSFORMSTATETYPE)(index + 256)
-
-#define D3DUSAGE_RENDERTARGET       0x01
-#define D3DUSAGE_DEPTHSTENCIL       0x02
-#define D3DUSAGE_WRITEONLY          0x08
-#define D3DUSAGE_SOFTWAREPROCESSING 0x10
-#define D3DUSAGE_DONOTCLIP          0x20
-#define D3DUSAGE_POINTS             0x40
-#define D3DUSAGE_RTPATCHES          0x80
-#define D3DUSAGE_NPATCHES           0x100
-#define D3DUSAGE_DYNAMIC            0x200
-
-#define D3DWRAP_U        1
-#define D3DWRAP_V        2
-#define D3DWRAP_W        4
-#define D3DWRAPCOORD_0   1
-#define D3DWRAPCOORD_1   2
-#define D3DWRAPCOORD_2   4
-#define D3DWRAPCOORD_3   8
-
-#define MAX_DEVICE_IDENTIFIER_STRING        512
-
-#define D3DFVF_RESERVED0           0x0001
-#define D3DFVF_POSITION_MASK       0x000E
-#define D3DFVF_XYZ                 0x0002
-#define D3DFVF_XYZRHW              0x0004
-#define D3DFVF_XYZB1               0x0006
-#define D3DFVF_XYZB2               0x0008
-#define D3DFVF_XYZB3               0x000a
-#define D3DFVF_XYZB4               0x000c
-#define D3DFVF_XYZB5               0x000e
-#define D3DFVF_NORMAL              0x0010
-#define D3DFVF_PSIZE               0x0020
-#define D3DFVF_DIFFUSE             0x0040
-#define D3DFVF_SPECULAR            0x0080
-#define D3DFVF_TEXCOUNT_MASK       0x0f00
-#define D3DFVF_TEXCOUNT_SHIFT           8
-#define D3DFVF_TEX0                0x0000
-#define D3DFVF_TEX1                0x0100
-#define D3DFVF_TEX2                0x0200
-#define D3DFVF_TEX3                0x0300
-#define D3DFVF_TEX4                0x0400
-#define D3DFVF_TEX5                0x0500
-#define D3DFVF_TEX6                0x0600
-#define D3DFVF_TEX7                0x0700
-#define D3DFVF_TEX8                0x0800
-#define D3DFVF_LASTBETA_UBYTE4     0x1000
-#define D3DFVF_RESERVED2           0xE000
-
-#define D3DTA_SELECTMASK        0x0000000f
-#define D3DTA_DIFFUSE           0x00000000
-#define D3DTA_CURRENT           0x00000001
-#define D3DTA_TEXTURE           0x00000002
-#define D3DTA_TFACTOR           0x00000003
-#define D3DTA_SPECULAR          0x00000004
-#define D3DTA_COMPLEMENT        0x00000010
-#define D3DTA_ALPHAREPLICATE    0x00000020
-#define D3DTA_TEMP              0x00000005
-
-#define D3DCOLORWRITEENABLE_RED   (1L<<0)   
-#define D3DCOLORWRITEENABLE_GREEN (1L<<1)
-#define D3DCOLORWRITEENABLE_BLUE  (1L<<2)
-#define D3DCOLORWRITEENABLE_ALPHA (1L<<3)
-
-
-#ifndef MAKEFOURCC
-#define MAKEFOURCC(ch0, ch1, ch2, ch3)  \
-    ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) |  \
-    ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 ))
-#endif /* MAKEFOURCC */
-
-
-/**************************** 
- * Vertex Shaders Declaration
- */
-
-typedef enum _D3DVSD_TOKENTYPE {
-  D3DVSD_TOKEN_NOP         = 0,
-  D3DVSD_TOKEN_STREAM      = 1,
-  D3DVSD_TOKEN_STREAMDATA  = 2,
-  D3DVSD_TOKEN_TESSELLATOR = 3,
-  D3DVSD_TOKEN_CONSTMEM    = 4,
-  D3DVSD_TOKEN_EXT         = 5,
-  /* RESERVED              = 6 */
-  D3DVSD_TOKEN_END         = 7,
-  D3DVSD_FORCE_DWORD       = 0x7FFFFFFF
-} D3DVSD_TOKENTYPE;
-
-/** input registers for vertex shaders functions */
-/*
-#define D3DVSDE_POSITION      0
-#define D3DVSDE_BLENDWEIGHT   1
-#define D3DVSDE_BLENDINDICES  2
-#define D3DVSDE_NORMAL        3
-#define D3DVSDE_PSIZE         4
-#define D3DVSDE_DIFFUSE       5
-#define D3DVSDE_SPECULAR      6
-#define D3DVSDE_TEXCOORD0     7
-#define D3DVSDE_TEXCOORD1     8
-#define D3DVSDE_TEXCOORD2     9
-#define D3DVSDE_TEXCOORD3    10
-#define D3DVSDE_TEXCOORD4    11
-#define D3DVSDE_TEXCOORD5    12
-#define D3DVSDE_TEXCOORD6    13
-#define D3DVSDE_TEXCOORD7    14
-#define D3DVSDE_POSITION2    15
-#define D3DVSDE_NORMAL2      16
-*/
-/** Address of the vertex register. 0 - 16 */
-typedef enum _D3DVSDE_REGISTER {
-  D3DVSDE_POSITION     =  0,
-  D3DVSDE_BLENDWEIGHT  =  1,
-  D3DVSDE_BLENDINDICES =  2,
-  D3DVSDE_NORMAL       =  3,
-  D3DVSDE_PSIZE        =  4,
-  D3DVSDE_DIFFUSE      =  5,
-  D3DVSDE_SPECULAR     =  6,
-  D3DVSDE_TEXCOORD0    =  7,
-  D3DVSDE_TEXCOORD1    =  8,
-  D3DVSDE_TEXCOORD2    =  9,
-  D3DVSDE_TEXCOORD3    = 10,
-  D3DVSDE_TEXCOORD4    = 11,
-  D3DVSDE_TEXCOORD5    = 12,
-  D3DVSDE_TEXCOORD6    = 13,
-  D3DVSDE_TEXCOORD7    = 14,
-  D3DVSDE_POSITION2    = 15,
-  D3DVSDE_NORMAL2      = 16
-} D3DVSDE_REGISTER;
-
-/** bit-field declaration for VertexRegister Type */
-/*
-#define D3DVSDT_FLOAT1      0x00
-#define D3DVSDT_FLOAT2      0x01
-#define D3DVSDT_FLOAT3      0x02
-#define D3DVSDT_FLOAT4      0x03
-#define D3DVSDT_D3DCOLOR    0x04
-#define D3DVSDT_UBYTE4      0x05
-#define D3DVSDT_SHORT2      0x06
-#define D3DVSDT_SHORT4      0x07
-*/
-typedef enum _D3DVSDT_TYPE {
-  D3DVSDT_FLOAT1   = 0x00,
-  D3DVSDT_FLOAT2   = 0x01,
-  D3DVSDT_FLOAT3   = 0x02,
-  D3DVSDT_FLOAT4   = 0x03,
-  D3DVSDT_D3DCOLOR = 0x04,
-  D3DVSDT_UBYTE4   = 0x05,
-  D3DVSDT_SHORT2   = 0x06,
-  D3DVSDT_SHORT4   = 0x07
-} D3DVSDT_TYPE;
-
-
-#define D3DVSD_CONSTADDRESSSHIFT  0
-#define D3DVSD_EXTINFOSHIFT       0
-#define D3DVSD_STREAMNUMBERSHIFT  0
-#define D3DVSD_VERTEXREGSHIFT     0
-#define D3DVSD_CONSTRSSHIFT      16
-#define D3DVSD_DATATYPESHIFT     16
-#define D3DVSD_SKIPCOUNTSHIFT    16
-#define D3DVSD_VERTEXREGINSHIFT  20
-#define D3DVSD_EXTCOUNTSHIFT     24
-#define D3DVSD_CONSTCOUNTSHIFT   25
-#define D3DVSD_DATALOADTYPESHIFT 28
-#define D3DVSD_STREAMTESSSHIFT   28
-#define D3DVSD_TOKENTYPESHIFT    29
-
-#define D3DVSD_CONSTADDRESSMASK  (0x7F     << D3DVSD_CONSTADDRESSSHIFT)
-#define D3DVSD_EXTINFOMASK       (0xFFFFFF << D3DVSD_EXTINFOSHIFT)
-#define D3DVSD_STREAMNUMBERMASK  (0xF      << D3DVSD_STREAMNUMBERSHIFT)
-#define D3DVSD_VERTEXREGMASK     (0x1F     << D3DVSD_VERTEXREGSHIFT)
-#define D3DVSD_CONSTRSMASK       (0x1FFF   << D3DVSD_CONSTRSSHIFT)
-#define D3DVSD_DATATYPEMASK      (0xF      << D3DVSD_DATATYPESHIFT)
-#define D3DVSD_SKIPCOUNTMASK     (0xF      << D3DVSD_SKIPCOUNTSHIFT)
-#define D3DVSD_EXTCOUNTMASK      (0x1F     << D3DVSD_EXTCOUNTSHIFT)
-#define D3DVSD_VERTEXREGINMASK   (0xF      << D3DVSD_VERTEXREGINSHIFT)
-#define D3DVSD_CONSTCOUNTMASK    (0xF      << D3DVSD_CONSTCOUNTSHIFT)
-#define D3DVSD_DATALOADTYPEMASK  (0x1      << D3DVSD_DATALOADTYPESHIFT)
-#define D3DVSD_STREAMTESSMASK    (0x1      << D3DVSD_STREAMTESSSHIFT)
-#define D3DVSD_TOKENTYPEMASK     (0x7      << D3DVSD_TOKENTYPESHIFT)
-
-
-#define D3DVSD_MAKETOKENTYPE(TokenType) \
-  ((TokenType << D3DVSD_TOKENTYPESHIFT) & D3DVSD_TOKENTYPEMASK)
-
-#define D3DVSD_CONST(ConstantAddress, Count) \
-  (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_CONSTMEM) | ((Count) << D3DVSD_CONSTCOUNTSHIFT) | (ConstantAddress))
-
-#define D3DVSD_END() 0xFFFFFFFF
-
-#define D3DVSD_NOP() 0x00000000
-
-#define D3DVSD_REG(VertexRegister, Type) \
-  (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAMDATA) | ((Type) << D3DVSD_DATATYPESHIFT) | (VertexRegister))
-
-#define D3DVSD_SKIP(Count) \
-  (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAMDATA) | 0x10000000 | ((Count) << D3DVSD_SKIPCOUNTSHIFT))
-
-#define D3DVSD_STREAM(StreamNumber) \
-  (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAM) | (StreamNumber))
-
-#define D3DVSD_STREAM_TESS() \
-  (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAM) | (D3DVSD_STREAMTESSMASK))
-
-#define D3DVSD_TESSNORMAL(RegisterIn, RegisterOut) \
-  (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_TESSELLATOR) | ((RegisterIn) << D3DVSD_VERTEXREGINSHIFT) | ((0x02) << D3DVSD_DATATYPESHIFT) | (RegisterOut))
-
-#define D3DVSD_TESSUV(Register) \
-  (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_TESSELLATOR) | 0x10000000 | ((0x01) << D3DVSD_DATATYPESHIFT) | (Register))
-
-
-/********************************
- * Pixel/Vertex Shaders Functions
- */
-
-/** Maximum number of supported texture coordinates sets operation */
-#define D3DDP_MAXTEXCOORD   8
-
-/** opcode token mask */
-#define D3DSI_OPCODE_MASK 0x0000FFFF
-
-/** opcodes types for PS and VS */
-typedef enum _D3DSHADER_INSTRUCTION_OPCODE_TYPE {
-  D3DSIO_NOP          =  0,
-  D3DSIO_MOV          =  1,
-  D3DSIO_ADD          =  2,
-  D3DSIO_SUB          =  3,
-  D3DSIO_MAD          =  4,
-  D3DSIO_MUL          =  5,
-  D3DSIO_RCP          =  6,
-  D3DSIO_RSQ          =  7,
-  D3DSIO_DP3          =  8,
-  D3DSIO_DP4          =  9,
-  D3DSIO_MIN          = 10,
-  D3DSIO_MAX          = 11,
-  D3DSIO_SLT          = 12,
-  D3DSIO_SGE          = 13,
-  D3DSIO_EXP          = 14,
-  D3DSIO_LOG          = 15,
-  D3DSIO_LIT          = 16,
-  D3DSIO_DST          = 17,
-  D3DSIO_LRP          = 18,
-  D3DSIO_FRC          = 19,
-  D3DSIO_M4x4         = 20,
-  D3DSIO_M4x3         = 21,
-  D3DSIO_M3x4         = 22,
-  D3DSIO_M3x3         = 23,
-  D3DSIO_M3x2         = 24,
-
-  D3DSIO_TEXCOORD     = 64,
-  D3DSIO_TEXKILL      = 65,
-  D3DSIO_TEX          = 66,
-  D3DSIO_TEXBEM       = 67,
-  D3DSIO_TEXBEML      = 68,
-  D3DSIO_TEXREG2AR    = 69,
-  D3DSIO_TEXREG2GB    = 70,
-  D3DSIO_TEXM3x2PAD   = 71,
-  D3DSIO_TEXM3x2TEX   = 72,
-  D3DSIO_TEXM3x3PAD   = 73,
-  D3DSIO_TEXM3x3TEX   = 74,
-  D3DSIO_TEXM3x3DIFF  = 75,
-  D3DSIO_TEXM3x3SPEC  = 76,
-  D3DSIO_TEXM3x3VSPEC = 77,
-  D3DSIO_EXPP         = 78,
-  D3DSIO_LOGP         = 79,
-  D3DSIO_CND          = 80,
-  D3DSIO_DEF          = 81,
-  D3DSIO_TEXREG2RGB   = 82,
-  D3DSIO_TEXDP3TEX    = 83,
-  D3DSIO_TEXM3x2DEPTH = 84,
-  D3DSIO_TEXDP3       = 85,
-  D3DSIO_TEXM3x3      = 86,
-  D3DSIO_TEXDEPTH     = 87,
-  D3DSIO_CMP          = 88,
-  D3DSIO_BEM          = 89,
-
-  D3DSIO_PHASE        = 0xFFFD,
-  D3DSIO_COMMENT      = 0xFFFE,
-  D3DSIO_END          = 0XFFFF,
-
-  D3DSIO_FORCE_DWORD  = 0X7FFFFFFF /** for 32-bit alignment */
-} D3DSHADER_INSTRUCTION_OPCODE_TYPE;
-
-/** for parallelism */
-#define D3DSI_COISSUE 0x40000000
-
-/** destination parameter modifiers (.xyzw) */
-#define D3DSP_WRITEMASK_0       0x00010000 /* .x r */
-#define D3DSP_WRITEMASK_1       0x00020000 /* .y g */
-#define D3DSP_WRITEMASK_2       0x00040000 /* .z b */
-#define D3DSP_WRITEMASK_3       0x00080000 /* .w a */
-#define D3DSP_WRITEMASK_ALL     0x000F0000 /* all */
-
-#define D3DSP_DSTMOD_SHIFT      20
-#define D3DSP_DSTMOD_MASK       (0xF << D3DSP_DSTMOD_SHIFT)
-
-typedef enum _D3DSHADER_PARAM_DSTMOD_TYPE {
-  D3DSPDM_NONE         = 0 << D3DSP_DSTMOD_SHIFT,
-  D3DSPDM_SATURATE     = 1 << D3DSP_DSTMOD_SHIFT,
-  D3DSPDM_FORCE_DWORD  = 0X7FFFFFFF
-} D3DSHADER_PARAM_DSTMOD_TYPE;
-
-/** destination param */
-#define D3DSP_DSTSHIFT_SHIFT     24
-#define D3DSP_DSTSHIFT_MASK      (0xF << D3DSP_DSTSHIFT_SHIFT)
-
-/** destination/source reg type */
-#define D3DSP_REGTYPE_SHIFT      28
-#define D3DSP_REGTYPE_MASK       (0x7 << D3DSP_REGTYPE_SHIFT)
-
-typedef enum _D3DSHADER_PARAM_REGISTER_TYPE {
-  D3DSPR_TEMP         = 0 << D3DSP_REGTYPE_SHIFT,
-  D3DSPR_INPUT        = 1 << D3DSP_REGTYPE_SHIFT,
-  D3DSPR_CONST        = 2 << D3DSP_REGTYPE_SHIFT,
-  D3DSPR_ADDR         = 3 << D3DSP_REGTYPE_SHIFT,
-  D3DSPR_TEXTURE      = 3 << D3DSP_REGTYPE_SHIFT,
-  D3DSPR_RASTOUT      = 4 << D3DSP_REGTYPE_SHIFT,
-  D3DSPR_ATTROUT      = 5 << D3DSP_REGTYPE_SHIFT,
-  D3DSPR_TEXCRDOUT    = 6 << D3DSP_REGTYPE_SHIFT,
-  D3DSPR_FORCE_DWORD  = 0x7FFFFFFF
-} D3DSHADER_PARAM_REGISTER_TYPE;
-
-typedef enum _D3DVS_RASTOUT_OFFSETS {
-  D3DSRO_POSITION     = 0,
-  D3DSRO_FOG          = 1,
-  D3DSRO_POINT_SIZE   = 2,
-  D3DSRO_FORCE_DWORD  = 0x7FFFFFFF
-} D3DVS_RASTOUT_OFFSETS;
-
-#define D3DVS_ADDRESSMODE_SHIFT  13
-#define D3DVS_ADDRESSMODE_MASK   (0x1 << D3DVS_ADDRESSMODE_SHIFT)
-
-typedef enum _D3DVS_ADDRESSMODE_TYPE {
-  D3DVS_ADDRMODE_ABSOLUTE     = 0 << D3DVS_ADDRESSMODE_SHIFT,
-  D3DVS_ADDRMODE_RELATIVE     = 1 << D3DVS_ADDRESSMODE_SHIFT,
-  D3DVS_ADDRMODE_FORCE_DWORD  = 0x7FFFFFFF
-} D3DVS_ADDRESSMODE_TYPE;
-
-#define D3DVS_SWIZZLE_SHIFT      16
-#define D3DVS_SWIZZLE_MASK       (0xFF << D3DVS_SWIZZLE_SHIFT)
-
-#define D3DSP_SWIZZLE_SHIFT      16
-#define D3DSP_SWIZZLE_MASK       (0xFF << D3DSP_SWIZZLE_SHIFT)
-
-#define D3DVS_X_X       (0 << D3DVS_SWIZZLE_SHIFT)
-#define D3DVS_X_Y       (1 << D3DVS_SWIZZLE_SHIFT)
-#define D3DVS_X_Z       (2 << D3DVS_SWIZZLE_SHIFT)
-#define D3DVS_X_W       (3 << D3DVS_SWIZZLE_SHIFT)
-
-#define D3DVS_Y_X       (0 << (D3DVS_SWIZZLE_SHIFT + 2))
-#define D3DVS_Y_Y       (1 << (D3DVS_SWIZZLE_SHIFT + 2))
-#define D3DVS_Y_Z       (2 << (D3DVS_SWIZZLE_SHIFT + 2))
-#define D3DVS_Y_W       (3 << (D3DVS_SWIZZLE_SHIFT + 2))
-
-#define D3DVS_Z_X       (0 << (D3DVS_SWIZZLE_SHIFT + 4))
-#define D3DVS_Z_Y       (1 << (D3DVS_SWIZZLE_SHIFT + 4))
-#define D3DVS_Z_Z       (2 << (D3DVS_SWIZZLE_SHIFT + 4))
-#define D3DVS_Z_W       (3 << (D3DVS_SWIZZLE_SHIFT + 4))
-
-#define D3DVS_W_X       (0 << (D3DVS_SWIZZLE_SHIFT + 6))
-#define D3DVS_W_Y       (1 << (D3DVS_SWIZZLE_SHIFT + 6))
-#define D3DVS_W_Z       (2 << (D3DVS_SWIZZLE_SHIFT + 6))
-#define D3DVS_W_W       (3 << (D3DVS_SWIZZLE_SHIFT + 6))
-
-#define D3DVS_NOSWIZZLE (D3DVS_X_X | D3DVS_Y_Y | D3DVS_Z_Z | D3DVS_W_W)
-
-#define D3DSP_NOSWIZZLE \
-    ((0 << (D3DSP_SWIZZLE_SHIFT + 0)) | (1 << (D3DSP_SWIZZLE_SHIFT + 2)) | (2 << (D3DSP_SWIZZLE_SHIFT + 4)) | (3 << (D3DSP_SWIZZLE_SHIFT + 6)))
-
-#define D3DSP_SRCMOD_SHIFT      24
-#define D3DSP_SRCMOD_MASK       (0xF << D3DSP_SRCMOD_SHIFT)
-
-typedef enum _D3DSHADER_PARAM_SRCMOD_TYPE {
-  D3DSPSM_NONE         =  0 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_NEG          =  1 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_BIAS         =  2 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_BIASNEG      =  3 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_SIGN         =  4 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_SIGNNEG      =  5 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_COMP         =  6 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_X2           =  7 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_X2NEG        =  8 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_DZ           =  9 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_DW           = 10 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_FORCE_DWORD  = 0x7FFFFFFF
-} D3DSHADER_PARAM_SRCMOD_TYPE;
-
-#define D3DPS_VERSION(major, minor) (0xFFFF0000 | ((major) << 8) | (minor))
-#define D3DVS_VERSION(major, minor) (0xFFFE0000 | ((major) << 8) | (minor))
-#define D3DSHADER_VERSION_MAJOR(version) (((version) >> 8) & 0xFF)
-#define D3DSHADER_VERSION_MINOR(version) (((version) >> 0) & 0xFF)
-
-#define D3DSI_COMMENTSIZE_SHIFT 16
-#define D3DSI_COMMENTSIZE_MASK (0x7FFF << D3DSI_COMMENTSIZE_SHIFT)
-
-#define D3DSHADER_COMMENT(commentSize) \
-  ((((commentSize) << D3DSI_COMMENTSIZE_SHIFT) & D3DSI_COMMENTSIZE_MASK) | D3DSIO_COMMENT)
-
-#define D3DPS_END() 0x0000FFFF
-#define D3DVS_END() 0x0000FFFF
-
-
-/*****************************************************************************
- * Direct 3D v8 enumerated types
- */
-typedef enum _D3DBACKBUFFER_TYPE {
-    D3DBACKBUFFER_TYPE_MONO         = 0,
-    D3DBACKBUFFER_TYPE_LEFT         = 1,
-    D3DBACKBUFFER_TYPE_RIGHT        = 2,
-
-    D3DBACKBUFFER_TYPE_FORCE_DWORD  = 0x7fffffff
-} D3DBACKBUFFER_TYPE;
-
-typedef enum _D3DBASISTYPE{
-   D3DBASIS_BEZIER        = 0,
-   D3DBASIS_BSPLINE       = 1,
-   D3DBASIS_INTERPOLATE   = 2,
-
-   D3DBASIS_FORCE_DWORD   = 0x7fffffff
-} D3DBASISTYPE;
-
-typedef enum _D3DBLEND {
-    D3DBLEND_ZERO               =  1,
-    D3DBLEND_ONE                =  2,
-    D3DBLEND_SRCCOLOR           =  3,
-    D3DBLEND_INVSRCCOLOR        =  4,
-    D3DBLEND_SRCALPHA           =  5,
-    D3DBLEND_INVSRCALPHA        =  6,
-    D3DBLEND_DESTALPHA          =  7,
-    D3DBLEND_INVDESTALPHA       =  8,
-    D3DBLEND_DESTCOLOR          =  9,
-    D3DBLEND_INVDESTCOLOR       = 10,
-    D3DBLEND_SRCALPHASAT        = 11,
-    D3DBLEND_BOTHSRCALPHA       = 12,
-    D3DBLEND_BOTHINVSRCALPHA    = 13,
-
-    D3DBLEND_FORCE_DWORD        = 0x7fffffff
-} D3DBLEND;
-
-typedef enum _D3DBLENDOP {
-    D3DBLENDOP_ADD              = 1,
-    D3DBLENDOP_SUBTRACT         = 2,
-    D3DBLENDOP_REVSUBTRACT      = 3,
-    D3DBLENDOP_MIN              = 4,
-    D3DBLENDOP_MAX              = 5,
-
-    D3DBLENDOP_FORCE_DWORD      = 0x7fffffff
-} D3DBLENDOP;
-
-typedef enum _D3DCMPFUNC {
-    D3DCMP_NEVER                = 1,
-    D3DCMP_LESS                 = 2,
-    D3DCMP_EQUAL                = 3,
-    D3DCMP_LESSEQUAL            = 4,
-    D3DCMP_GREATER              = 5,
-    D3DCMP_NOTEQUAL             = 6,
-    D3DCMP_GREATEREQUAL         = 7,
-    D3DCMP_ALWAYS               = 8,
-
-    D3DCMP_FORCE_DWORD          = 0x7fffffff
-} D3DCMPFUNC;
-
-typedef enum _D3DCUBEMAP_FACES {
-    D3DCUBEMAP_FACE_POSITIVE_X     = 0,
-    D3DCUBEMAP_FACE_NEGATIVE_X     = 1,
-    D3DCUBEMAP_FACE_POSITIVE_Y     = 2,
-    D3DCUBEMAP_FACE_NEGATIVE_Y     = 3,
-    D3DCUBEMAP_FACE_POSITIVE_Z     = 4,
-    D3DCUBEMAP_FACE_NEGATIVE_Z     = 5,
-
-    D3DCUBEMAP_FACE_FORCE_DWORD    = 0xffffffff
-} D3DCUBEMAP_FACES;
-
-typedef enum _D3DCULL {
-    D3DCULL_NONE                = 1,
-    D3DCULL_CW                  = 2,
-    D3DCULL_CCW                 = 3,
-
-    D3DCULL_FORCE_DWORD         = 0x7fffffff
-} D3DCULL;
-
-typedef enum _D3DDEBUGMONITORTOKENS {
-    D3DDMT_ENABLE          = 0,
-    D3DDMT_DISABLE         = 1,
-
-    D3DDMT_FORCE_DWORD     = 0x7fffffff
-} D3DDEBUGMONITORTOKENS;
-
-typedef enum _D3DDEVTYPE {
-    D3DDEVTYPE_HAL         = 1,
-    D3DDEVTYPE_REF         = 2,
-    D3DDEVTYPE_SW          = 3,
-
-    D3DDEVTYPE_FORCE_DWORD = 0xffffffff
-} D3DDEVTYPE;
-
-typedef enum _D3DFILLMODE {
-    D3DFILL_POINT               = 1,
-    D3DFILL_WIREFRAME           = 2,
-    D3DFILL_SOLID               = 3,
-
-    D3DFILL_FORCE_DWORD         = 0x7fffffff
-} D3DFILLMODE;
-
-typedef enum _D3DFOGMODE {
-    D3DFOG_NONE                 = 0,
-    D3DFOG_EXP                  = 1,
-    D3DFOG_EXP2                 = 2,
-    D3DFOG_LINEAR               = 3,
-
-    D3DFOG_FORCE_DWORD          = 0x7fffffff
-} D3DFOGMODE;
-
-typedef enum _D3DFORMAT {
-    D3DFMT_UNKNOWN              =   0,
-
-    D3DFMT_R8G8B8               =  20,
-    D3DFMT_A8R8G8B8             =  21,
-    D3DFMT_X8R8G8B8             =  22,
-    D3DFMT_R5G6B5               =  23,
-    D3DFMT_X1R5G5B5             =  24,
-    D3DFMT_A1R5G5B5             =  25,
-    D3DFMT_A4R4G4B4             =  26,
-    D3DFMT_R3G3B2               =  27,
-    D3DFMT_A8                   =  28,
-    D3DFMT_A8R3G3B2             =  29,
-    D3DFMT_X4R4G4B4             =  30,
-    D3DFMT_A2B10G10R10          =  31,
-    D3DFMT_G16R16               =  34,
-
-    D3DFMT_A8P8                 =  40,
-    D3DFMT_P8                   =  41,
-
-    D3DFMT_L8                   =  50,
-    D3DFMT_A8L8                 =  51,
-    D3DFMT_A4L4                 =  52,
-
-    D3DFMT_V8U8                 =  60,
-    D3DFMT_L6V5U5               =  61,
-    D3DFMT_X8L8V8U8             =  62,
-    D3DFMT_Q8W8V8U8             =  63,
-    D3DFMT_V16U16               =  64,
-    D3DFMT_W11V11U10            =  65,
-    D3DFMT_A2W10V10U10          =  67,
-
-    D3DFMT_UYVY                 =  MAKEFOURCC('U', 'Y', 'V', 'Y'),
-    D3DFMT_YUY2                 =  MAKEFOURCC('Y', 'U', 'Y', '2'),
-    D3DFMT_DXT1                 =  MAKEFOURCC('D', 'X', 'T', '1'),
-    D3DFMT_DXT2                 =  MAKEFOURCC('D', 'X', 'T', '2'),
-    D3DFMT_DXT3                 =  MAKEFOURCC('D', 'X', 'T', '3'),
-    D3DFMT_DXT4                 =  MAKEFOURCC('D', 'X', 'T', '4'),
-    D3DFMT_DXT5                 =  MAKEFOURCC('D', 'X', 'T', '5'),
-
-    D3DFMT_D16_LOCKABLE         =  70,
-    D3DFMT_D32                  =  71,
-    D3DFMT_D15S1                =  73,
-    D3DFMT_D24S8                =  75,
-    D3DFMT_D16                  =  80,
-    D3DFMT_D24X8                =  77,
-    D3DFMT_D24X4S4              =  79,
-
-    D3DFMT_VERTEXDATA           = 100,
-    D3DFMT_INDEX16              = 101,
-    D3DFMT_INDEX32              = 102,
-
-    D3DFMT_FORCE_DWORD          = 0xFFFFFFFF
-} D3DFORMAT;
-
-typedef enum _D3DLIGHTTYPE {
-    D3DLIGHT_POINT          = 1,
-    D3DLIGHT_SPOT           = 2,
-    D3DLIGHT_DIRECTIONAL    = 3,
-
-    D3DLIGHT_FORCE_DWORD    = 0x7fffffff
-} D3DLIGHTTYPE;
-
-typedef enum _D3DMATERIALCOLORSOURCE {
-    D3DMCS_MATERIAL         = 0,
-    D3DMCS_COLOR1           = 1,
-    D3DMCS_COLOR2           = 2,
-
-    D3DMCS_FORCE_DWORD      = 0x7fffffff
-} D3DMATERIALCOLORSOURCE;
-
-typedef enum _D3DMULTISAMPLE_TYPE {
-    D3DMULTISAMPLE_NONE            =  0,
-    D3DMULTISAMPLE_2_SAMPLES       =  2,
-    D3DMULTISAMPLE_3_SAMPLES       =  3,
-    D3DMULTISAMPLE_4_SAMPLES       =  4,
-    D3DMULTISAMPLE_5_SAMPLES       =  5,
-    D3DMULTISAMPLE_6_SAMPLES       =  6,
-    D3DMULTISAMPLE_7_SAMPLES       =  7,
-    D3DMULTISAMPLE_8_SAMPLES       =  8,
-    D3DMULTISAMPLE_9_SAMPLES       =  9,
-    D3DMULTISAMPLE_10_SAMPLES      = 10,
-    D3DMULTISAMPLE_11_SAMPLES      = 11,
-    D3DMULTISAMPLE_12_SAMPLES      = 12,
-    D3DMULTISAMPLE_13_SAMPLES      = 13,
-    D3DMULTISAMPLE_14_SAMPLES      = 14,
-    D3DMULTISAMPLE_15_SAMPLES      = 15,
-    D3DMULTISAMPLE_16_SAMPLES      = 16,
-
-    D3DMULTISAMPLE_FORCE_DWORD     = 0x7fffffff
-} D3DMULTISAMPLE_TYPE;
-
-typedef enum _D3DORDERTYPE {
-   D3DORDER_LINEAR      = 1,
-   D3DORDER_QUADRATIC   = 2,
-   D3DORDER_CUBIC       = 3,
-   D3DORDER_QUINTIC     = 5,
-
-   D3DORDER_FORCE_DWORD = 0x7fffffff
-} D3DORDERTYPE;
-
-typedef enum _D3DPATCHEDGESTYLE {
-   D3DPATCHEDGE_DISCRETE    = 0,
-   D3DPATCHEDGE_CONTINUOUS  = 1,
-
-   D3DPATCHEDGE_FORCE_DWORD = 0x7fffffff,
-} D3DPATCHEDGESTYLE;
-
-typedef enum _D3DPOOL {
-    D3DPOOL_DEFAULT                 = 0,
-    D3DPOOL_MANAGED                 = 1,
-    D3DPOOL_SYSTEMMEM               = 2,
-    D3DPOOL_SCRATCH                 = 3,
-
-    D3DPOOL_FORCE_DWORD             = 0x7fffffff
-} D3DPOOL;
-
-typedef enum _D3DPRIMITIVETYPE {
-    D3DPT_POINTLIST             = 1,
-    D3DPT_LINELIST              = 2,
-    D3DPT_LINESTRIP             = 3,
-    D3DPT_TRIANGLELIST          = 4,
-    D3DPT_TRIANGLESTRIP         = 5,
-    D3DPT_TRIANGLEFAN           = 6,
-
-    D3DPT_FORCE_DWORD           = 0x7fffffff
-} D3DPRIMITIVETYPE;
-
-typedef enum _D3DRENDERSTATETYPE {
-    D3DRS_ZENABLE                   =   7,
-    D3DRS_FILLMODE                  =   8,
-    D3DRS_SHADEMODE                 =   9,
-    D3DRS_LINEPATTERN               =  10,
-    D3DRS_ZWRITEENABLE              =  14,
-    D3DRS_ALPHATESTENABLE           =  15,
-    D3DRS_LASTPIXEL                 =  16,
-    D3DRS_SRCBLEND                  =  19,
-    D3DRS_DESTBLEND                 =  20,
-    D3DRS_CULLMODE                  =  22,
-    D3DRS_ZFUNC                     =  23,
-    D3DRS_ALPHAREF                  =  24,
-    D3DRS_ALPHAFUNC                 =  25,
-    D3DRS_DITHERENABLE              =  26,
-    D3DRS_ALPHABLENDENABLE          =  27,
-    D3DRS_FOGENABLE                 =  28,
-    D3DRS_SPECULARENABLE            =  29,
-    D3DRS_ZVISIBLE                  =  30,
-    D3DRS_FOGCOLOR                  =  34,
-    D3DRS_FOGTABLEMODE              =  35,
-    D3DRS_FOGSTART                  =  36,
-    D3DRS_FOGEND                    =  37,
-    D3DRS_FOGDENSITY                =  38,
-    D3DRS_EDGEANTIALIAS             =  40,
-    D3DRS_ZBIAS                     =  47,
-    D3DRS_RANGEFOGENABLE            =  48,
-    D3DRS_STENCILENABLE             =  52,
-    D3DRS_STENCILFAIL               =  53,
-    D3DRS_STENCILZFAIL              =  54,
-    D3DRS_STENCILPASS               =  55,
-    D3DRS_STENCILFUNC               =  56,
-    D3DRS_STENCILREF                =  57,
-    D3DRS_STENCILMASK               =  58,
-    D3DRS_STENCILWRITEMASK          =  59,
-    D3DRS_TEXTUREFACTOR             =  60,
-    D3DRS_WRAP0                     = 128,
-    D3DRS_WRAP1                     = 129,
-    D3DRS_WRAP2                     = 130,
-    D3DRS_WRAP3                     = 131,
-    D3DRS_WRAP4                     = 132,
-    D3DRS_WRAP5                     = 133,
-    D3DRS_WRAP6                     = 134,
-    D3DRS_WRAP7                     = 135,
-    D3DRS_CLIPPING                  = 136,
-    D3DRS_LIGHTING                  = 137,
-    D3DRS_AMBIENT                   = 139,
-    D3DRS_FOGVERTEXMODE             = 140,
-    D3DRS_COLORVERTEX               = 141,
-    D3DRS_LOCALVIEWER               = 142,
-    D3DRS_NORMALIZENORMALS          = 143,
-    D3DRS_DIFFUSEMATERIALSOURCE     = 145,
-    D3DRS_SPECULARMATERIALSOURCE    = 146,
-    D3DRS_AMBIENTMATERIALSOURCE     = 147,
-    D3DRS_EMISSIVEMATERIALSOURCE    = 148,
-    D3DRS_VERTEXBLEND               = 151,
-    D3DRS_CLIPPLANEENABLE           = 152,
-    D3DRS_SOFTWAREVERTEXPROCESSING  = 153,
-    D3DRS_POINTSIZE                 = 154,
-    D3DRS_POINTSIZE_MIN             = 155,
-    D3DRS_POINTSPRITEENABLE         = 156,
-    D3DRS_POINTSCALEENABLE          = 157,
-    D3DRS_POINTSCALE_A              = 158,
-    D3DRS_POINTSCALE_B              = 159,
-    D3DRS_POINTSCALE_C              = 160,
-    D3DRS_MULTISAMPLEANTIALIAS      = 161,
-    D3DRS_MULTISAMPLEMASK           = 162,
-    D3DRS_PATCHEDGESTYLE            = 163,
-    D3DRS_PATCHSEGMENTS             = 164,
-    D3DRS_DEBUGMONITORTOKEN         = 165,
-    D3DRS_POINTSIZE_MAX             = 166,
-    D3DRS_INDEXEDVERTEXBLENDENABLE  = 167,
-    D3DRS_COLORWRITEENABLE          = 168,
-    D3DRS_TWEENFACTOR               = 170,
-    D3DRS_BLENDOP                   = 171,
-    D3DRS_POSITIONORDER             = 172,
-    D3DRS_NORMALORDER               = 173,
-
-    D3DRS_FORCE_DWORD               = 0x7fffffff
-} D3DRENDERSTATETYPE;
-
-typedef enum _D3DRESOURCETYPE {
-    D3DRTYPE_SURFACE                =  1,
-    D3DRTYPE_VOLUME                 =  2,
-    D3DRTYPE_TEXTURE                =  3,
-    D3DRTYPE_VOLUMETEXTURE          =  4,
-    D3DRTYPE_CUBETEXTURE            =  5,
-    D3DRTYPE_VERTEXBUFFER           =  6,
-    D3DRTYPE_INDEXBUFFER            =  7,
-
-    D3DRTYPE_FORCE_DWORD            = 0x7fffffff
-} D3DRESOURCETYPE;
-
-typedef enum _D3DSHADEMODE {
-    D3DSHADE_FLAT               = 1,
-    D3DSHADE_GOURAUD            = 2,
-    D3DSHADE_PHONG              = 3,
-
-    D3DSHADE_FORCE_DWORD        = 0x7fffffff
-} D3DSHADEMODE;
-
-typedef enum _D3DSTATEBLOCKTYPE {
-    D3DSBT_ALL           = 1,
-    D3DSBT_PIXELSTATE    = 2,
-    D3DSBT_VERTEXSTATE   = 3,
-
-    D3DSBT_FORCE_DWORD   = 0xffffffff
-} D3DSTATEBLOCKTYPE;
-
-typedef enum _D3DSTENCILOP {
-    D3DSTENCILOP_KEEP           = 1,
-    D3DSTENCILOP_ZERO           = 2,
-    D3DSTENCILOP_REPLACE        = 3,
-    D3DSTENCILOP_INCRSAT        = 4,
-    D3DSTENCILOP_DECRSAT        = 5,
-    D3DSTENCILOP_INVERT         = 6,
-    D3DSTENCILOP_INCR           = 7,
-    D3DSTENCILOP_DECR           = 8,
-
-    D3DSTENCILOP_FORCE_DWORD    = 0x7fffffff
-} D3DSTENCILOP;
-
-typedef enum _D3DSWAPEFFECT {
-    D3DSWAPEFFECT_DISCARD         = 1,
-    D3DSWAPEFFECT_FLIP            = 2,
-    D3DSWAPEFFECT_COPY            = 3,
-    D3DSWAPEFFECT_COPY_VSYNC      = 4,
-
-    D3DSWAPEFFECT_FORCE_DWORD     = 0xFFFFFFFF
-} D3DSWAPEFFECT;
-
-typedef enum _D3DTEXTUREADDRESS {
-    D3DTADDRESS_WRAP            = 1,
-    D3DTADDRESS_MIRROR          = 2,
-    D3DTADDRESS_CLAMP           = 3,
-    D3DTADDRESS_BORDER          = 4,
-    D3DTADDRESS_MIRRORONCE      = 5,
-
-    D3DTADDRESS_FORCE_DWORD     = 0x7fffffff
-} D3DTEXTUREADDRESS;
-
-typedef enum _D3DTEXTUREFILTERTYPE {
-    D3DTEXF_NONE            = 0,
-    D3DTEXF_POINT           = 1,
-    D3DTEXF_LINEAR          = 2,
-    D3DTEXF_ANISOTROPIC     = 3,
-    D3DTEXF_FLATCUBIC       = 4,
-    D3DTEXF_GAUSSIANCUBIC   = 5,
-
-    D3DTEXF_FORCE_DWORD     = 0x7fffffff
-} D3DTEXTUREFILTERTYPE;
-
-typedef enum _D3DTEXTUREOP {
-    D3DTOP_DISABLE                   =  1,
-    D3DTOP_SELECTARG1                =  2,
-    D3DTOP_SELECTARG2                =  3,
-    D3DTOP_MODULATE                  =  4,
-    D3DTOP_MODULATE2X                =  5,
-    D3DTOP_MODULATE4X                =  6,
-    D3DTOP_ADD                       =  7,
-    D3DTOP_ADDSIGNED                 =  8,
-    D3DTOP_ADDSIGNED2X               =  9,
-    D3DTOP_SUBTRACT                  = 10,
-    D3DTOP_ADDSMOOTH                 = 11,
-    D3DTOP_BLENDDIFFUSEALPHA         = 12,
-    D3DTOP_BLENDTEXTUREALPHA         = 13,
-    D3DTOP_BLENDFACTORALPHA          = 14,
-    D3DTOP_BLENDTEXTUREALPHAPM       = 15,
-    D3DTOP_BLENDCURRENTALPHA         = 16,
-    D3DTOP_PREMODULATE               = 17,
-    D3DTOP_MODULATEALPHA_ADDCOLOR    = 18,
-    D3DTOP_MODULATECOLOR_ADDALPHA    = 19,
-    D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20,
-    D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21,
-    D3DTOP_BUMPENVMAP                = 22,
-    D3DTOP_BUMPENVMAPLUMINANCE       = 23,
-    D3DTOP_DOTPRODUCT3               = 24,
-    D3DTOP_MULTIPLYADD               = 25,
-    D3DTOP_LERP                      = 26,
-
-    D3DTOP_FORCE_DWORD               = 0x7fffffff,
-} D3DTEXTUREOP;
-
-typedef enum _D3DTEXTURESTAGESTATETYPE {
-    D3DTSS_COLOROP               =  1,
-    D3DTSS_COLORARG1             =  2,
-    D3DTSS_COLORARG2             =  3,
-    D3DTSS_ALPHAOP               =  4,
-    D3DTSS_ALPHAARG1             =  5,
-    D3DTSS_ALPHAARG2             =  6,
-    D3DTSS_BUMPENVMAT00          =  7,
-    D3DTSS_BUMPENVMAT01          =  8,
-    D3DTSS_BUMPENVMAT10          =  9,
-    D3DTSS_BUMPENVMAT11          = 10,
-    D3DTSS_TEXCOORDINDEX         = 11,
-    D3DTSS_ADDRESSU              = 13,
-    D3DTSS_ADDRESSV              = 14,
-    D3DTSS_BORDERCOLOR           = 15,
-    D3DTSS_MAGFILTER             = 16,
-    D3DTSS_MINFILTER             = 17,
-    D3DTSS_MIPFILTER             = 18,
-    D3DTSS_MIPMAPLODBIAS         = 19,
-    D3DTSS_MAXMIPLEVEL           = 20,
-    D3DTSS_MAXANISOTROPY         = 21,
-    D3DTSS_BUMPENVLSCALE         = 22,
-    D3DTSS_BUMPENVLOFFSET        = 23,
-    D3DTSS_TEXTURETRANSFORMFLAGS = 24,
-    D3DTSS_ADDRESSW              = 25,
-    D3DTSS_COLORARG0             = 26,
-    D3DTSS_ALPHAARG0             = 27,
-    D3DTSS_RESULTARG             = 28,
-
-    D3DTSS_FORCE_DWORD           = 0x7fffffff
-} D3DTEXTURESTAGESTATETYPE;
-
-typedef enum _D3DTEXTURETRANSFORMFLAGS {
-    D3DTTFF_DISABLE         =   0,
-    D3DTTFF_COUNT1          =   1,
-    D3DTTFF_COUNT2          =   2,
-    D3DTTFF_COUNT3          =   3,
-    D3DTTFF_COUNT4          =   4,
-    D3DTTFF_PROJECTED       = 256,
-
-    D3DTTFF_FORCE_DWORD     = 0x7fffffff
-} D3DTEXTURETRANSFORMFLAGS;
-
-typedef enum _D3DTRANSFORMSTATETYPE {
-    D3DTS_VIEW            =  2,
-    D3DTS_PROJECTION      =  3,
-    D3DTS_TEXTURE0        = 16,
-    D3DTS_TEXTURE1        = 17,
-    D3DTS_TEXTURE2        = 18,
-    D3DTS_TEXTURE3        = 19,
-    D3DTS_TEXTURE4        = 20,
-    D3DTS_TEXTURE5        = 21,
-    D3DTS_TEXTURE6        = 22,
-    D3DTS_TEXTURE7        = 23,
-
-    D3DTS_FORCE_DWORD     = 0x7fffffff
-} D3DTRANSFORMSTATETYPE;
-
-typedef enum _D3DVERTEXBLENDFLAGS {
-    D3DVBF_DISABLE  =   0,
-    D3DVBF_1WEIGHTS =   1,
-    D3DVBF_2WEIGHTS =   2,
-    D3DVBF_3WEIGHTS =   3,
-    D3DVBF_TWEENING = 255,
-    D3DVBF_0WEIGHTS = 256
-} D3DVERTEXBLENDFLAGS;
-
-typedef enum _D3DZBUFFERTYPE {
-    D3DZB_FALSE                 = 0,
-    D3DZB_TRUE                  = 1,
-    D3DZB_USEW                  = 2,
-
-    D3DZB_FORCE_DWORD           = 0x7fffffff
-} D3DZBUFFERTYPE;
-
-
-/*****************************************************************************
- * Direct 3D v8 typedefs
- */
-typedef DWORD D3DCOLOR;
-
-/*****************************************************************************
- * Direct 3D v8 structures
- */
-typedef struct _D3DADAPTER_IDENTIFIER8 {
-    char            Driver[MAX_DEVICE_IDENTIFIER_STRING];
-    char            Description[MAX_DEVICE_IDENTIFIER_STRING];
-
-    LARGE_INTEGER   DriverVersion;
-    DWORD           VendorId;
-    DWORD           DeviceId;
-    DWORD           SubSysId;
-    DWORD           Revision;
-
-    GUID            DeviceIdentifier;
-
-    DWORD           WHQLLevel;
-} D3DADAPTER_IDENTIFIER8;
-
-typedef struct _D3DBOX {
-    UINT                Left;
-    UINT                Top;
-    UINT                Right;
-    UINT                Bottom;
-    UINT                Front;
-    UINT                Back;
-} D3DBOX;
-
-typedef struct _D3DCLIPSTATUS8 {
-   DWORD ClipUnion;
-   DWORD ClipIntersection;
-} D3DCLIPSTATUS8;
-
-typedef struct _D3DCOLORVALUE {
-    float r;
-    float g;
-    float b;
-    float a;
-} D3DCOLORVALUE;
-
-typedef struct _D3DDEVICE_CREATION_PARAMETERS {
-    UINT          AdapterOrdinal;
-    D3DDEVTYPE    DeviceType;
-    HWND          hFocusWindow;
-    DWORD         BehaviorFlags;
-} D3DDEVICE_CREATION_PARAMETERS;
-
-typedef struct _D3DDISPLAYMODE {
-    UINT            Width;
-    UINT            Height;
-    UINT            RefreshRate;
-    D3DFORMAT       Format;
-} D3DDISPLAYMODE;
-
-typedef struct _D3DGAMMARAMP {
-    WORD                red  [256];
-    WORD                green[256];
-    WORD                blue [256];
-} D3DGAMMARAMP;
-
-typedef struct _D3DINDEXBUFFER_DESC {
-    D3DFORMAT           Format;
-    D3DRESOURCETYPE     Type;
-    DWORD               Usage;
-    D3DPOOL             Pool;
-    UINT                Size;
-} D3DINDEXBUFFER_DESC;
-
-#ifndef D3DVECTOR_DEFINED
-typedef struct _D3DVECTOR {
-    float x;
-    float y;
-    float z;
-} D3DVECTOR;
-#define D3DVECTOR_DEFINED
-#endif
-
-typedef struct _D3DLIGHT8 {
-    D3DLIGHTTYPE    Type;
-    D3DCOLORVALUE   Diffuse;
-    D3DCOLORVALUE   Specular;
-    D3DCOLORVALUE   Ambient;
-    D3DVECTOR       Position;
-    D3DVECTOR       Direction;
-    float           Range;
-    float           Falloff;
-    float           Attenuation0;
-    float           Attenuation1;
-    float           Attenuation2;
-    float           Theta;
-    float           Phi;
-} D3DLIGHT8;
-
-typedef struct _D3DLINEPATTERN {
-    WORD    wRepeatFactor;
-    WORD    wLinePattern;
-} D3DLINEPATTERN;
-
-typedef struct _D3DLOCKED_BOX {
-    INT                 RowPitch;
-    INT                 SlicePitch;
-    void*               pBits;
-} D3DLOCKED_BOX;
-
-typedef struct _D3DLOCKED_RECT {
-    INT                 Pitch;
-    void*               pBits;
-} D3DLOCKED_RECT;
-
-typedef struct _D3DMATERIAL8 {
-    D3DCOLORVALUE   Diffuse;
-    D3DCOLORVALUE   Ambient;
-    D3DCOLORVALUE   Specular;
-    D3DCOLORVALUE   Emissive;
-    float           Power;
-} D3DMATERIAL8;
-
-typedef struct _D3DMATRIX {
-    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;
-} D3DMATRIX;
-
-typedef struct _D3DPRESENT_PARAMETERS_ {
-    UINT                    BackBufferWidth;
-    UINT                    BackBufferHeight;
-    D3DFORMAT               BackBufferFormat;
-    UINT                    BackBufferCount;
-
-    D3DMULTISAMPLE_TYPE     MultiSampleType;
-
-    D3DSWAPEFFECT           SwapEffect;
-    HWND                    hDeviceWindow;
-    BOOL                    Windowed;
-    BOOL                    EnableAutoDepthStencil;
-    D3DFORMAT               AutoDepthStencilFormat;
-    DWORD                   Flags;
-
-    UINT                    FullScreen_RefreshRateInHz;
-    UINT                    FullScreen_PresentationInterval;
-
-} D3DPRESENT_PARAMETERS;
-
-#define D3DPRESENTFLAG_LOCKABLE_BACKBUFFER  0x00000001
-
-typedef struct _D3DRANGE {
-    UINT                Offset;
-    UINT                Size;
-} D3DRANGE;
-
-typedef struct _D3DRASTER_STATUS {
-    BOOL            InVBlank;
-    UINT            ScanLine;
-} D3DRASTER_STATUS;
-
-typedef struct _D3DRECT {
-    LONG x1;
-    LONG y1;
-    LONG x2;
-    LONG y2;
-} D3DRECT;
-
-typedef struct _D3DRECTPATCH_INFO {
-    UINT                StartVertexOffsetWidth;
-    UINT                StartVertexOffsetHeight;
-    UINT                Width;
-    UINT                Height;
-    UINT                Stride;
-    D3DBASISTYPE        Basis;
-    D3DORDERTYPE        Order;
-} D3DRECTPATCH_INFO;
-
-typedef struct _D3DSURFACE_DESC {
-    D3DFORMAT           Format;
-    D3DRESOURCETYPE     Type;
-    DWORD               Usage;
-    D3DPOOL             Pool;
-    UINT                Size;
-    D3DMULTISAMPLE_TYPE MultiSampleType;
-    UINT                Width;
-    UINT                Height;
-} D3DSURFACE_DESC;
-
-typedef struct _D3DTRIPATCH_INFO {
-    UINT                StartVertexOffset;
-    UINT                NumVertices;
-    D3DBASISTYPE        Basis;
-    D3DORDERTYPE        Order;
-} D3DTRIPATCH_INFO;
-
-typedef struct _D3DVERTEXBUFFER_DESC {
-    D3DFORMAT           Format;
-    D3DRESOURCETYPE     Type;
-    DWORD               Usage;
-    D3DPOOL             Pool;
-    UINT                Size;
-    DWORD               FVF;
-} D3DVERTEXBUFFER_DESC;
-
-typedef struct _D3DVIEWPORT8 {
-    DWORD       X;
-    DWORD       Y;
-    DWORD       Width;
-    DWORD       Height;
-    float       MinZ;
-    float       MaxZ;
-} D3DVIEWPORT8;
-
-typedef struct _D3DVOLUME_DESC {
-    D3DFORMAT           Format;
-    D3DRESOURCETYPE     Type;
-    DWORD               Usage;
-    D3DPOOL             Pool;
-    UINT                Size;
-    UINT                Width;
-    UINT                Height;
-    UINT                Depth;
-} D3DVOLUME_DESC;
-
-#endif  /* __WINE_D3D8TYPES_H */
diff --git a/misc/builddeps/win64/dx/include/d3d9.h b/misc/builddeps/win64/dx/include/d3d9.h
deleted file mode 100644 (file)
index 3f9ebf2..0000000
+++ /dev/null
@@ -1,2031 +0,0 @@
-/*
- * Copyright (C) 2002-2003 Jason Edmeades
- *                         Raphael Junqueira
- *
- * 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_D3D9_H
-#define __WINE_D3D9_H
-
-#ifndef DIRECT3D_VERSION
-#define DIRECT3D_VERSION  0x0900
-#endif
-
-#include <stdlib.h>
-
-#define COM_NO_WINDOWS_H
-#include <objbase.h>
-
-#ifndef __WINESRC__
-# include <windows.h>
-#endif
-
-#include <d3d9types.h>
-#include <d3d9caps.h>
-
-/*****************************************************************************
- * Behavior Flags for IDirect3D8::CreateDevice
- */
-#define D3DCREATE_FPU_PRESERVE                  0x00000002L
-#define D3DCREATE_MULTITHREADED                 0x00000004L
-#define D3DCREATE_PUREDEVICE                    0x00000010L
-#define D3DCREATE_SOFTWARE_VERTEXPROCESSING     0x00000020L
-#define D3DCREATE_HARDWARE_VERTEXPROCESSING     0x00000040L
-#define D3DCREATE_MIXED_VERTEXPROCESSING        0x00000080L
-#define D3DCREATE_DISABLE_DRIVER_MANAGEMENT     0x00000100L
-#define D3DCREATE_ADAPTERGROUP_DEVICE           0x00000200L
-
-/*****************************************************************************
- * Flags for SetPrivateData
- */
-#define D3DSPD_IUNKNOWN                         0x00000001L
-
-
-/*****************************************************************************
- * #defines and error codes
- */
-#define D3D_SDK_VERSION                         32
-#define D3DADAPTER_DEFAULT                      0
-#define D3DENUM_NO_WHQL_LEVEL                   0x00000002L
-#define D3DPRESENT_BACK_BUFFERS_MAX             3L
-#define D3DSGR_NO_CALIBRATION                   0x00000000L
-#define D3DSGR_CALIBRATE                        0x00000001L
-
-#define _FACD3D  0x876
-#define MAKE_D3DHRESULT( code )                 MAKE_HRESULT( 1, _FACD3D, code )
-#define MAKE_D3DSTATUS( code )                  MAKE_HRESULT( 0, _FACD3D, code )
-
-/*****************************************************************************
- * Direct3D Errors
- */
-#define D3D_OK                                  S_OK
-#define D3DERR_WRONGTEXTUREFORMAT               MAKE_D3DHRESULT(2072)
-#define D3DERR_UNSUPPORTEDCOLOROPERATION        MAKE_D3DHRESULT(2073)
-#define D3DERR_UNSUPPORTEDCOLORARG              MAKE_D3DHRESULT(2074)
-#define D3DERR_UNSUPPORTEDALPHAOPERATION        MAKE_D3DHRESULT(2075)
-#define D3DERR_UNSUPPORTEDALPHAARG              MAKE_D3DHRESULT(2076)
-#define D3DERR_TOOMANYOPERATIONS                MAKE_D3DHRESULT(2077)
-#define D3DERR_CONFLICTINGTEXTUREFILTER         MAKE_D3DHRESULT(2078)
-#define D3DERR_UNSUPPORTEDFACTORVALUE           MAKE_D3DHRESULT(2079)
-#define D3DERR_CONFLICTINGRENDERSTATE           MAKE_D3DHRESULT(2081)
-#define D3DERR_UNSUPPORTEDTEXTUREFILTER         MAKE_D3DHRESULT(2082)
-#define D3DERR_CONFLICTINGTEXTUREPALETTE        MAKE_D3DHRESULT(2086)
-#define D3DERR_DRIVERINTERNALERROR              MAKE_D3DHRESULT(2087)
-#define D3DERR_NOTFOUND                         MAKE_D3DHRESULT(2150)
-#define D3DERR_MOREDATA                         MAKE_D3DHRESULT(2151)
-#define D3DERR_DEVICELOST                       MAKE_D3DHRESULT(2152)
-#define D3DERR_DEVICENOTRESET                   MAKE_D3DHRESULT(2153)
-#define D3DERR_NOTAVAILABLE                     MAKE_D3DHRESULT(2154)
-#define D3DERR_OUTOFVIDEOMEMORY                 MAKE_D3DHRESULT(380)
-#define D3DERR_INVALIDDEVICE                    MAKE_D3DHRESULT(2155)
-#define D3DERR_INVALIDCALL                      MAKE_D3DHRESULT(2156)
-#define D3DERR_DRIVERINVALIDCALL                MAKE_D3DHRESULT(2157)
-#define D3DERR_WASSTILLDRAWING                  MAKE_D3DHRESULT(540)
-#define D3DOK_NOAUTOGEN                         MAKE_D3DSTATUS(2159)
-
-
-/*****************************************************************************
- * Predeclare the interfaces
- */
-DEFINE_GUID(IID_IDirect3D9,                   0x81BDCBCA, 0x64D4, 0x426D, 0xAE, 0x8D, 0xAD, 0x1, 0x47, 0xF4, 0x27, 0x5C);
-typedef struct IDirect3D9 *LPDIRECT3D9, *PDIRECT3D9;
-
-DEFINE_GUID(IID_IDirect3D9Ex,                 0x02177241, 0x69FC, 0x400C, 0x8F, 0xF1, 0x93, 0xA4, 0x4D, 0xF6, 0x86, 0x1D);
-typedef struct IDirect3D9Ex *LPDIRECT3D9EX, *PDIRECT3D9EX;
-
-DEFINE_GUID(IID_IDirect3DDevice9,             0xd0223b96, 0xbf7a, 0x43fd, 0x92, 0xbd, 0xa4, 0x3b, 0xd, 0x82, 0xb9, 0xeb);
-typedef struct IDirect3DDevice9 *LPDIRECT3DDEVICE9;
-
-DEFINE_GUID(IID_IDirect3DDevice9Ex,           0xb18b10ce, 0x2649, 0x405a, 0x87, 0xf, 0x95, 0xf7, 0x77, 0xd4, 0x31, 0x3a);
-typedef struct IDirect3DDevice9Ex *LPDIRECT3DDEVICE9EX, *PDIRECT3DDEVICE9EX;
-
-DEFINE_GUID(IID_IDirect3DResource9,           0x5eec05d, 0x8f7d, 0x4362, 0xb9, 0x99, 0xd1, 0xba, 0xf3, 0x57, 0xc7, 0x4);
-typedef struct IDirect3DResource9 *LPDIRECT3DRESOURCE9, *PDIRECT3DRESOURCE9;
-
-DEFINE_GUID(IID_IDirect3DVertexBuffer9,       0xb64bb1b5, 0xfd70, 0x4df6, 0xbf, 0x91, 0x19, 0xd0, 0xa1, 0x24, 0x55, 0xe3);
-typedef struct IDirect3DVertexBuffer9 *LPDIRECT3DVERTEXBUFFER9, *PDIRECT3DVERTEXBUFFER9;
-
-DEFINE_GUID(IID_IDirect3DVolume9,             0x24f416e6, 0x1f67, 0x4aa7, 0xb8, 0x8e, 0xd3, 0x3f, 0x6f, 0x31, 0x28, 0xa1);
-typedef struct IDirect3DVolume9 *LPDIRECT3DVOLUME9, *PDIRECT3DVOLUME9;
-
-DEFINE_GUID(IID_IDirect3DSwapChain9,          0x794950f2, 0xadfc, 0x458a, 0x90, 0x5e, 0x10, 0xa1, 0xb, 0xb, 0x50, 0x3b);
-typedef struct IDirect3DSwapChain9 *LPDIRECT3DSWAPCHAIN9, *PDIRECT3DSWAPCHAIN9;
-
-DEFINE_GUID(IID_IDirect3DSwapChain9Ex,        0x91886caf, 0x1c3d, 0x4d2e, 0xa0, 0xab, 0x3e, 0x4c, 0x7d, 0x8d, 0x33, 0x3);
-typedef struct IDirect3DSwapChain9Ex *LPDIRECT3DSWAPCHAIN9EX, *PDIRECT3DSWAPCHAIN9EX;
-
-DEFINE_GUID(IID_IDirect3DSurface9,            0xcfbaf3a, 0x9ff6, 0x429a, 0x99, 0xb3, 0xa2, 0x79, 0x6a, 0xf8, 0xb8, 0x9b);
-typedef struct IDirect3DSurface9 *LPDIRECT3DSURFACE9, *PDIRECT3DSURFACE9;
-
-DEFINE_GUID(IID_IDirect3DIndexBuffer9,        0x7c9dd65e, 0xd3f7, 0x4529, 0xac, 0xee, 0x78, 0x58, 0x30, 0xac, 0xde, 0x35);
-typedef struct IDirect3DIndexBuffer9 *LPDIRECT3DINDEXBUFFER9, *PDIRECT3DINDEXBUFFER9;
-
-DEFINE_GUID(IID_IDirect3DBaseTexture9,        0x580ca87e, 0x1d3c, 0x4d54, 0x99, 0x1d, 0xb7, 0xd3, 0xe3, 0xc2, 0x98, 0xce);
-typedef struct IDirect3DBaseTexture9 *LPDIRECT3DBASETEXTURE9, *PDIRECT3DBASETEXTURE9;
-
-DEFINE_GUID(IID_IDirect3DTexture9,            0x85c31227, 0x3de5, 0x4f00, 0x9b, 0x3a, 0xf1, 0x1a, 0xc3, 0x8c, 0x18, 0xb5);
-typedef struct IDirect3DTexture9 *LPDIRECT3DTEXTURE9, *PDIRECT3DTEXTURE9;
-
-DEFINE_GUID(IID_IDirect3DCubeTexture9,        0xfff32f81, 0xd953, 0x473a, 0x92, 0x23, 0x93, 0xd6, 0x52, 0xab, 0xa9, 0x3f);
-typedef struct IDirect3DCubeTexture9 *LPDIRECT3DCUBETEXTURE9, *PDIRECT3DCUBETEXTURE9;
-
-DEFINE_GUID(IID_IDirect3DVolumeTexture9,      0x2518526c, 0xe789, 0x4111, 0xa7, 0xb9, 0x47, 0xef, 0x32, 0x8d, 0x13, 0xe6);
-typedef struct IDirect3DVolumeTexture9 *LPDIRECT3DVOLUMETEXTURE9, *PDIRECT3DVOLUMETEXTURE9;
-
-DEFINE_GUID(IID_IDirect3DVertexDeclaration9,  0xdd13c59c, 0x36fa, 0x4098, 0xa8, 0xfb, 0xc7, 0xed, 0x39, 0xdc, 0x85, 0x46);
-typedef struct IDirect3DVertexDeclaration9 *LPDIRECT3DVERTEXDECLARATION9;
-
-DEFINE_GUID(IID_IDirect3DVertexShader9,       0xefc5557e, 0x6265, 0x4613, 0x8a, 0x94, 0x43, 0x85, 0x78, 0x89, 0xeb, 0x36);
-typedef struct IDirect3DVertexShader9 *LPDIRECT3DVERTEXSHADER9;
-
-DEFINE_GUID(IID_IDirect3DPixelShader9,        0x6d3bdbdc, 0x5b02, 0x4415, 0xb8, 0x52, 0xce, 0x5e, 0x8b, 0xcc, 0xb2, 0x89);
-typedef struct IDirect3DPixelShader9 *LPDIRECT3DPIXELSHADER9;
-
-DEFINE_GUID(IID_IDirect3DStateBlock9,         0xb07c4fe5, 0x310d, 0x4ba8, 0xa2, 0x3c, 0x4f, 0xf, 0x20, 0x6f, 0x21, 0x8b);
-typedef struct IDirect3DStateBlock9 *LPDIRECT3DSTATEBLOCK9;
-
-DEFINE_GUID(IID_IDirect3DQuery9,              0xd9771460, 0xa695, 0x4f26, 0xbb, 0xd3, 0x27, 0xb8, 0x40, 0xb5, 0x41, 0xcc);
-typedef struct IDirect3DQuery9 *LPDIRECT3DQUERY9, *PDIRECT3DQUERY9;
-
-/*****************************************************************************
- * IDirect3D9 interface
- */
-#undef INTERFACE
-#define INTERFACE IDirect3D9
-DECLARE_INTERFACE_(IDirect3D9,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3D9 methods ***/
-    STDMETHOD(RegisterSoftwareDevice)(THIS_ void* pInitializeFunction) PURE;
-    STDMETHOD_(UINT, GetAdapterCount)(THIS) PURE;
-    STDMETHOD(GetAdapterIdentifier)(THIS_ UINT Adapter, DWORD Flags, D3DADAPTER_IDENTIFIER9* pIdentifier) PURE;
-    STDMETHOD_(UINT, GetAdapterModeCount)(THIS_ UINT Adapter, D3DFORMAT Format) PURE;
-    STDMETHOD(EnumAdapterModes)(THIS_ UINT Adapter, D3DFORMAT Format, UINT Mode, D3DDISPLAYMODE* pMode) PURE;
-    STDMETHOD(GetAdapterDisplayMode)(THIS_ UINT Adapter, D3DDISPLAYMODE* pMode) PURE;
-    STDMETHOD(CheckDeviceType)(THIS_ UINT iAdapter, D3DDEVTYPE DevType, D3DFORMAT DisplayFormat, D3DFORMAT BackBufferFormat, BOOL bWindowed) PURE;
-    STDMETHOD(CheckDeviceFormat)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, DWORD Usage, D3DRESOURCETYPE RType, D3DFORMAT CheckFormat) PURE;
-    STDMETHOD(CheckDeviceMultiSampleType)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT SurfaceFormat, BOOL Windowed, D3DMULTISAMPLE_TYPE MultiSampleType, DWORD* pQualityLevels) PURE;
-    STDMETHOD(CheckDepthStencilMatch)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, D3DFORMAT RenderTargetFormat, D3DFORMAT DepthStencilFormat) PURE;
-    STDMETHOD(CheckDeviceFormatConversion)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT SourceFormat, D3DFORMAT TargetFormat) PURE;
-    STDMETHOD(GetDeviceCaps)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DCAPS9* pCaps) PURE;
-    STDMETHOD_(HMONITOR, GetAdapterMonitor)(THIS_ UINT Adapter) PURE;
-    STDMETHOD(CreateDevice)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* pPresentationParameters, struct IDirect3DDevice9** ppReturnedDeviceInterface) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3D9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3D9_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3D9_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3D9 methods ***/
-#define IDirect3D9_RegisterSoftwareDevice(p,a)                (p)->lpVtbl->RegisterSoftwareDevice(p,a)
-#define IDirect3D9_GetAdapterCount(p)                         (p)->lpVtbl->GetAdapterCount(p)
-#define IDirect3D9_GetAdapterIdentifier(p,a,b,c)              (p)->lpVtbl->GetAdapterIdentifier(p,a,b,c)
-#define IDirect3D9_GetAdapterModeCount(p,a,b)                 (p)->lpVtbl->GetAdapterModeCount(p,a,b)
-#define IDirect3D9_EnumAdapterModes(p,a,b,c,d)                (p)->lpVtbl->EnumAdapterModes(p,a,b,c,d)
-#define IDirect3D9_GetAdapterDisplayMode(p,a,b)               (p)->lpVtbl->GetAdapterDisplayMode(p,a,b)
-#define IDirect3D9_CheckDeviceType(p,a,b,c,d,e)               (p)->lpVtbl->CheckDeviceType(p,a,b,c,d,e)
-#define IDirect3D9_CheckDeviceFormat(p,a,b,c,d,e,f)           (p)->lpVtbl->CheckDeviceFormat(p,a,b,c,d,e,f)
-#define IDirect3D9_CheckDeviceMultiSampleType(p,a,b,c,d,e,f)  (p)->lpVtbl->CheckDeviceMultiSampleType(p,a,b,c,d,e,f)
-#define IDirect3D9_CheckDepthStencilMatch(p,a,b,c,d,e)        (p)->lpVtbl->CheckDepthStencilMatch(p,a,b,c,d,e)
-#define IDirect3D9_CheckDeviceFormatConversion(p,a,b,c,d)     (p)->lpVtbl->CheckDeviceFormatConversion(p,a,b,c,d)
-#define IDirect3D9_GetDeviceCaps(p,a,b,c)                     (p)->lpVtbl->GetDeviceCaps(p,a,b,c)
-#define IDirect3D9_GetAdapterMonitor(p,a)                     (p)->lpVtbl->GetAdapterMonitor(p,a)
-#define IDirect3D9_CreateDevice(p,a,b,c,d,e,f)                (p)->lpVtbl->CreateDevice(p,a,b,c,d,e,f)
-#else
-/*** IUnknown methods ***/
-#define IDirect3D9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3D9_AddRef(p)             (p)->AddRef()
-#define IDirect3D9_Release(p)            (p)->Release()
-/*** IDirect3D9 methods ***/
-#define IDirect3D9_RegisterSoftwareDevice(p,a)                (p)->RegisterSoftwareDevice(a)
-#define IDirect3D9_GetAdapterCount(p)                         (p)->GetAdapterCount()
-#define IDirect3D9_GetAdapterIdentifier(p,a,b,c)              (p)->GetAdapterIdentifier(a,b,c)
-#define IDirect3D9_GetAdapterModeCount(p,a,b)                 (p)->GetAdapterModeCount(a,b)
-#define IDirect3D9_EnumAdapterModes(p,a,b,c,d)                (p)->EnumAdapterModes(a,b,c,d)
-#define IDirect3D9_GetAdapterDisplayMode(p,a,b)               (p)->GetAdapterDisplayMode(a,b)
-#define IDirect3D9_CheckDeviceType(p,a,b,c,d,e)               (p)->CheckDeviceType(a,b,c,d,e)
-#define IDirect3D9_CheckDeviceFormat(p,a,b,c,d,e,f)           (p)->CheckDeviceFormat(a,b,c,d,e,f)
-#define IDirect3D9_CheckDeviceMultiSampleType(p,a,b,c,d,e,f)  (p)->CheckDeviceMultiSampleType(a,b,c,d,e,f)
-#define IDirect3D9_CheckDepthStencilMatch(p,a,b,c,d,e)        (p)->CheckDepthStencilMatch(a,b,c,d,e)
-#define IDirect3D9_CheckDeviceFormatConversion(p,a,b,c,d)     (p)->CheckDeviceFormatConversion(a,b,c,d)
-#define IDirect3D9_GetDeviceCaps(p,a,b,c)                     (p)->GetDeviceCaps(a,b,c)
-#define IDirect3D9_GetAdapterMonitor(p,a)                     (p)->GetAdapterMonitor(a)
-#define IDirect3D9_CreateDevice(p,a,b,c,d,e,f)                (p)->CreateDevice(a,b,c,d,e,f)
-#endif
-
-/*****************************************************************************
- * IDirect3D9Ex interface
- */
-#define INTERFACE IDirect3D9Ex
-DECLARE_INTERFACE_(IDirect3D9Ex,IDirect3D9)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3D9 methods ***/
-
-    /* Note: Microsoft's d3d9.h does not declare IDirect3D9Ex::RegisterSoftwareDevice . This would mean that
-     * the offsets of the other methods in the Vtable change too. This is wrong. In Microsoft's
-     * d3d9.dll, the offsets for the other functions are still compatible with IDirect3D9.
-     * This is probably because even in MS's header IDirect3D9Ex inherits from IDirect3D9, which makes the
-     * C++ inferface compatible, and nobody uses the C interface in Windows world.
-     */
-    STDMETHOD(RegisterSoftwareDevice)(THIS_ void* pInitializeFunction) PURE;
-
-    STDMETHOD_(UINT, GetAdapterCount)(THIS) PURE;
-    STDMETHOD(GetAdapterIdentifier)(THIS_ UINT Adapter, DWORD Flags, D3DADAPTER_IDENTIFIER9* pIdentifier) PURE;
-    STDMETHOD_(UINT, GetAdapterModeCount)(THIS_ UINT Adapter, D3DFORMAT Format) PURE;
-    STDMETHOD(EnumAdapterModes)(THIS_ UINT Adapter, D3DFORMAT Format, UINT Mode, D3DDISPLAYMODE* pMode) PURE;
-    STDMETHOD(GetAdapterDisplayMode)(THIS_ UINT Adapter, D3DDISPLAYMODE* pMode) PURE;
-    STDMETHOD(CheckDeviceType)(THIS_ UINT iAdapter, D3DDEVTYPE DevType, D3DFORMAT DisplayFormat, D3DFORMAT BackBufferFormat, BOOL bWindowed) PURE;
-    STDMETHOD(CheckDeviceFormat)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, DWORD Usage, D3DRESOURCETYPE RType, D3DFORMAT CheckFormat) PURE;
-    STDMETHOD(CheckDeviceMultiSampleType)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT SurfaceFormat, BOOL Windowed, D3DMULTISAMPLE_TYPE MultiSampleType, DWORD* pQualityLevels) PURE;
-    STDMETHOD(CheckDepthStencilMatch)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, D3DFORMAT RenderTargetFormat, D3DFORMAT DepthStencilFormat) PURE;
-    STDMETHOD(CheckDeviceFormatConversion)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT SourceFormat, D3DFORMAT TargetFormat) PURE;
-    STDMETHOD(GetDeviceCaps)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DCAPS9* pCaps) PURE;
-    STDMETHOD_(HMONITOR, GetAdapterMonitor)(THIS_ UINT Adapter) PURE;
-    STDMETHOD(CreateDevice)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* pPresentationParameters, struct IDirect3DDevice9** ppReturnedDeviceInterface) PURE;
-    /*** IDirect3D9Ex methods ***/
-    STDMETHOD_(UINT, GetAdapterModeCountEx)(THIS_ UINT Adapter, CONST D3DDISPLAYMODEFILTER *pFilter) PURE;
-    STDMETHOD(EnumAdapterModesEx)(THIS_ UINT Adapter, CONST D3DDISPLAYMODEFILTER *pFilter, UINT Mode, D3DDISPLAYMODEEX* pMode) PURE;
-    STDMETHOD(GetAdapterDisplayModeEx)(THIS_ UINT Adapter, D3DDISPLAYMODEEX *pMode, D3DDISPLAYROTATION *pRotation);
-    STDMETHOD(CreateDeviceEx)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* pPresentationParameters, D3DDISPLAYMODEEX* pFullscreenDisplayMode, struct IDirect3DDevice9Ex **ppReturnedDeviceInterface) PURE;
-    STDMETHOD(GetAdapterLUID)(THIS_ UINT Adatper, LUID *pLUID) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3D9Ex_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3D9Ex_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3D9Ex_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3D9 methods ***/
-#define IDirect3D9Ex_RegisterSoftwareDevice(p,a)                (p)->lpVtbl->RegisterSoftwareDevice(p,a)
-#define IDirect3D9Ex_GetAdapterCount(p)                         (p)->lpVtbl->GetAdapterCount(p)
-#define IDirect3D9Ex_GetAdapterIdentifier(p,a,b,c)              (p)->lpVtbl->GetAdapterIdentifier(p,a,b,c)
-#define IDirect3D9Ex_GetAdapterModeCount(p,a,b)                 (p)->lpVtbl->GetAdapterModeCount(p,a,b)
-#define IDirect3D9Ex_EnumAdapterModes(p,a,b,c,d)                (p)->lpVtbl->EnumAdapterModes(p,a,b,c,d)
-#define IDirect3D9Ex_GetAdapterDisplayMode(p,a,b)               (p)->lpVtbl->GetAdapterDisplayMode(p,a,b)
-#define IDirect3D9Ex_CheckDeviceType(p,a,b,c,d,e)               (p)->lpVtbl->CheckDeviceType(p,a,b,c,d,e)
-#define IDirect3D9Ex_CheckDeviceFormat(p,a,b,c,d,e,f)           (p)->lpVtbl->CheckDeviceFormat(p,a,b,c,d,e,f)
-#define IDirect3D9Ex_CheckDeviceMultiSampleType(p,a,b,c,d,e,f)  (p)->lpVtbl->CheckDeviceMultiSampleType(p,a,b,c,d,e,f)
-#define IDirect3D9Ex_CheckDepthStencilMatch(p,a,b,c,d,e)        (p)->lpVtbl->CheckDepthStencilMatch(p,a,b,c,d,e)
-#define IDirect3D9Ex_CheckDeviceFormatConversion(p,a,b,c,d)     (p)->lpVtbl->CheckDeviceFormatConversion(p,a,b,c,d)
-#define IDirect3D9Ex_GetDeviceCaps(p,a,b,c)                     (p)->lpVtbl->GetDeviceCaps(p,a,b,c)
-#define IDirect3D9Ex_GetAdapterMonitor(p,a)                     (p)->lpVtbl->GetAdapterMonitor(p,a)
-#define IDirect3D9Ex_CreateDevice(p,a,b,c,d,e,f)                (p)->lpVtbl->CreateDevice(p,a,b,c,d,e,f)
-/*** IDirect3D9Ex methods ***/
-#define IDirect3D9Ex_GetAdapterModeCountEx(p,a,b)               (p)->lpVtbl->GetAdapterModeCountEx(p,a,b)
-#define IDirect3D9Ex_EnumAdapterModesEx(p,a,b,c,d)              (p)->lpVtbl->EnumAdapterModesEx(p,a,b,c,d)
-#define IDirect3D9Ex_GetAdapterDisplayModeEx(p,a,b,c)           (p)->lpVtbl->GetAdapterDisplayModeEx(p,a,b,c)
-#define IDirect3D9Ex_CreateDeviceEx(p,a,b,c,d,e,f,g)            (p)->lpVtbl->CreateDeviceEx(p,a,b,c,d,e,f,g)
-#define IDirect3D9Ex_GetAdapterLUID(p,a,b)                      (p)->lpVtbl->GetAdapterLUID(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3D9Ex_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3D9Ex_AddRef(p)             (p)->AddRef()
-#define IDirect3D9Ex_Release(p)            (p)->Release()
-/*** IDirect3D9 methods ***/
-#define IDirect3D9Ex_RegisterSoftwareDevice(p,a)                (p)->RegisterSoftwareDevice(a)
-#define IDirect3D9Ex_GetAdapterCount(p)                         (p)->GetAdapterCount()
-#define IDirect3D9Ex_GetAdapterIdentifier(p,a,b,c)              (p)->GetAdapterIdentifier(a,b,c)
-#define IDirect3D9Ex_GetAdapterModeCount(p,a,b)                 (p)->GetAdapterModeCount(a,b)
-#define IDirect3D9Ex_EnumAdapterModes(p,a,b,c,d)                (p)->EnumAdapterModes(a,b,c,d)
-#define IDirect3D9Ex_GetAdapterDisplayMode(p,a,b)               (p)->GetAdapterDisplayMode(a,b)
-#define IDirect3D9Ex_CheckDeviceType(p,a,b,c,d,e)               (p)->CheckDeviceType(a,b,c,d,e)
-#define IDirect3D9Ex_CheckDeviceFormat(p,a,b,c,d,e,f)           (p)->CheckDeviceFormat(a,b,c,d,e,f)
-#define IDirect3D9Ex_CheckDeviceMultiSampleType(p,a,b,c,d,e,f)  (p)->CheckDeviceMultiSampleType(a,b,c,d,e,f)
-#define IDirect3D9Ex_CheckDepthStencilMatch(p,a,b,c,d,e)        (p)->CheckDepthStencilMatch(a,b,c,d,e)
-#define IDirect3D9Ex_CheckDeviceFormatConversion(p,a,b,c,d)     (p)->CheckDeviceFormatConversion(a,b,c,d)
-#define IDirect3D9Ex_GetDeviceCaps(p,a,b,c)                     (p)->GetDeviceCaps(a,b,c)
-#define IDirect3D9Ex_GetAdapterMonitor(p,a)                     (p)->GetAdapterMonitor(a)
-#define IDirect3D9Ex_CreateDevice(p,a,b,c,d,e,f)                (p)->CreateDevice(a,b,c,d,e,f)
-#endif
-
-/*****************************************************************************
- * IDirect3DVolume9 interface
- */
-#define INTERFACE IDirect3DVolume9
-DECLARE_INTERFACE_(IDirect3DVolume9,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DVolume9 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** 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(GetContainer)(THIS_ REFIID riid, void** ppContainer) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3DVOLUME_DESC* pDesc) PURE;
-    STDMETHOD(LockBox)(THIS_ D3DLOCKED_BOX* pLockedVolume, CONST D3DBOX* pBox, DWORD Flags) PURE;
-    STDMETHOD(UnlockBox)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DVolume9_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DVolume9_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DVolume9_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DVolume9 methods ***/
-#define IDirect3DVolume9_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DVolume9_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DVolume9_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DVolume9_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DVolume9_GetContainer(p,a,b)          (p)->lpVtbl->GetContainer(p,a,b)
-#define IDirect3DVolume9_GetDesc(p,a)                 (p)->lpVtbl->GetDesc(p,a)
-#define IDirect3DVolume9_LockBox(p,a,b,c)             (p)->lpVtbl->LockBox(p,a,b,c)
-#define IDirect3DVolume9_UnlockBox(p)                 (p)->lpVtbl->UnlockBox(p)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DVolume9_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DVolume9_AddRef(p)                    (p)->AddRef()
-#define IDirect3DVolume9_Release(p)                   (p)->Release()
-/*** IDirect3DVolume9 methods ***/
-#define IDirect3DVolume9_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DVolume9_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DVolume9_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
-#define IDirect3DVolume9_FreePrivateData(p,a)         (p)->FreePrivateData(a)
-#define IDirect3DVolume9_GetContainer(p,a,b)          (p)->GetContainer(a,b)
-#define IDirect3DVolume9_GetDesc(p,a)                 (p)->GetDesc(a)
-#define IDirect3DVolume9_LockBox(p,a,b,c)             (p)->LockBox(a,b,c)
-#define IDirect3DVolume9_UnlockBox(p)                 (p)->UnlockBox()
-#endif
-
-/*****************************************************************************
- * IDirect3DSwapChain9 interface
- */
-#define INTERFACE IDirect3DSwapChain9
-DECLARE_INTERFACE_(IDirect3DSwapChain9,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DSwapChain9 methods ***/
-    STDMETHOD(Present)(THIS_ CONST RECT* pSourceRect, CONST RECT* pDestRect, HWND hDestWindowOverride, CONST RGNDATA* pDirtyRegion, DWORD dwFlags) PURE;
-    STDMETHOD(GetFrontBufferData)(THIS_ struct IDirect3DSurface9* pDestSurface) PURE;
-    STDMETHOD(GetBackBuffer)(THIS_ UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, struct IDirect3DSurface9** ppBackBuffer) PURE;
-    STDMETHOD(GetRasterStatus)(THIS_ D3DRASTER_STATUS* pRasterStatus) PURE;
-    STDMETHOD(GetDisplayMode)(THIS_ D3DDISPLAYMODE* pMode) PURE;
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
-    STDMETHOD(GetPresentParameters)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DSwapChain9_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DSwapChain9_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DSwapChain9_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DSwapChain9 methods ***/
-#define IDirect3DSwapChain9_Present(p,a,b,c,d,e)         (p)->lpVtbl->Present(p,a,b,c,d,e)
-#define IDirect3DSwapChain9_GetFrontBufferData(p,a)      (p)->lpVtbl->GetFrontBufferData(p,a)
-#define IDirect3DSwapChain9_GetBackBuffer(p,a,b,c)       (p)->lpVtbl->GetBackBuffer(p,a,b,c)
-#define IDirect3DSwapChain9_GetRasterStatus(p,a)         (p)->lpVtbl->GetRasterStatus(p,a)
-#define IDirect3DSwapChain9_GetDisplayMode(p,a)          (p)->lpVtbl->GetDisplayMode(p,a)
-#define IDirect3DSwapChain9_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DSwapChain9_GetPresentParameters(p,a)    (p)->lpVtbl->GetPresentParameters(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DSwapChain9_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DSwapChain9_AddRef(p)                    (p)->AddRef()
-#define IDirect3DSwapChain9_Release(p)                   (p)->Release()
-/*** IDirect3DSwapChain9 methods ***/
-#define IDirect3DSwapChain9_Present(p,a,b,c,d,e)         (p)->Present(a,b,c,d,e)
-#define IDirect3DSwapChain9_GetFrontBufferData(p,a)      (p)->GetFrontBufferData(a)
-#define IDirect3DSwapChain9_GetBackBuffer(p,a,b,c)       (p)->GetBackBuffer(a,b,c)
-#define IDirect3DSwapChain9_GetRasterStatus(p,a)         (p)->GetRasterStatus(a)
-#define IDirect3DSwapChain9_GetDisplayMode(p,a)          (p)->GetDisplayMode(a)
-#define IDirect3DSwapChain9_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DSwapChain9_GetPresentParameters(p,a)    (p)->GetPresentParameters(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DResource9 interface
- */
-#define INTERFACE IDirect3DResource9
-DECLARE_INTERFACE_(IDirect3DResource9,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource9 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** 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_(D3DRESOURCETYPE, GetType)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DResource9_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DResource9_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DResource9_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DResource9 methods ***/
-#define IDirect3DResource9_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DResource9_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DResource9_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DResource9_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DResource9_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DResource9_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
-#define IDirect3DResource9_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
-#define IDirect3DResource9_GetType(p)                   (p)->lpVtbl->GetType(p)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DResource9_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DResource9_AddRef(p)                    (p)->AddRef()
-#define IDirect3DResource9_Release(p)                   (p)->Release()
-/*** IDirect3DResource9 methods ***/
-#define IDirect3DResource9_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DResource9_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DResource9_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
-#define IDirect3DResource9_FreePrivateData(p,a)         (p)->FreePrivateData(a)
-#define IDirect3DResource9_SetPriority(p,a)             (p)->SetPriority(a)
-#define IDirect3DResource9_GetPriority(p)               (p)->GetPriority()
-#define IDirect3DResource9_PreLoad(p)                   (p)->PreLoad()
-#define IDirect3DResource9_GetType(p)                   (p)->GetType()
-#endif
-
-/*****************************************************************************
- * IDirect3DSurface9 interface
- */
-#define INTERFACE IDirect3DSurface9
-DECLARE_INTERFACE_(IDirect3DSurface9,IDirect3DResource9)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource9 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** 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_(D3DRESOURCETYPE, GetType)(THIS) PURE;
-    /*** IDirect3DSurface9 methods ***/
-    STDMETHOD(GetContainer)(THIS_ REFIID riid, void** ppContainer) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3DSURFACE_DESC* pDesc) PURE;
-    STDMETHOD(LockRect)(THIS_ D3DLOCKED_RECT* pLockedRect, CONST RECT* pRect, DWORD Flags) PURE;
-    STDMETHOD(UnlockRect)(THIS) PURE;
-    STDMETHOD(GetDC)(THIS_ HDC* phdc) PURE;
-    STDMETHOD(ReleaseDC)(THIS_ HDC hdc) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DSurface9_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DSurface9_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DSurface9_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DSurface9 methods: IDirect3DResource9 ***/
-#define IDirect3DSurface9_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DSurface9_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DSurface9_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DSurface9_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DSurface9_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DSurface9_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
-#define IDirect3DSurface9_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
-#define IDirect3DSurface9_GetType(p)                   (p)->lpVtbl->GetType(p)
-/*** IDirect3DSurface9 methods ***/
-#define IDirect3DSurface9_GetContainer(p,a,b)          (p)->lpVtbl->GetContainer(p,a,b)
-#define IDirect3DSurface9_GetDesc(p,a)                 (p)->lpVtbl->GetDesc(p,a)
-#define IDirect3DSurface9_LockRect(p,a,b,c)            (p)->lpVtbl->LockRect(p,a,b,c)
-#define IDirect3DSurface9_UnlockRect(p)                (p)->lpVtbl->UnlockRect(p)
-#define IDirect3DSurface9_GetDC(p,a)                   (p)->lpVtbl->GetDC(p,a)
-#define IDirect3DSurface9_ReleaseDC(p,a)               (p)->lpVtbl->ReleaseDC(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DSurface9_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DSurface9_AddRef(p)                    (p)->AddRef()
-#define IDirect3DSurface9_Release(p)                   (p)->Release()
-/*** IDirect3DSurface9 methods: IDirect3DResource9 ***/
-#define IDirect3DSurface9_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DSurface9_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DSurface9_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
-#define IDirect3DSurface9_FreePrivateData(p,a)         (p)->FreePrivateData(a)
-#define IDirect3DSurface9_SetPriority(p,a)             (p)->SetPriority(a)
-#define IDirect3DSurface9_GetPriority(p)               (p)->GetPriority()
-#define IDirect3DSurface9_PreLoad(p)                   (p)->PreLoad()
-#define IDirect3DSurface9_GetType(p)                   (p)->GetType()
-/*** IDirect3DSurface9 methods ***/
-#define IDirect3DSurface9_GetContainer(p,a,b)          (p)->GetContainer(a,b)
-#define IDirect3DSurface9_GetDesc(p,a)                 (p)->GetDesc(a)
-#define IDirect3DSurface9_LockRect(p,a,b,c)            (p)->LockRect(a,b,c)
-#define IDirect3DSurface9_UnlockRect(p)                (p)->UnlockRect()
-#define IDirect3DSurface9_GetDC(p,a)                   (p)->GetDC(a)
-#define IDirect3DSurface9_ReleaseDC(p,a)               (p)->ReleaseDC(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DVertexBuffer9 interface
- */
-#define INTERFACE IDirect3DVertexBuffer9
-DECLARE_INTERFACE_(IDirect3DVertexBuffer9,IDirect3DResource9)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource9 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** 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_(D3DRESOURCETYPE, GetType)(THIS) PURE;
-    /*** IDirect3DVertexBuffer9 methods ***/
-    STDMETHOD(Lock)(THIS_ UINT OffsetToLock, UINT SizeToLock, void** ppbData, DWORD Flags) PURE;
-    STDMETHOD(Unlock)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3DVERTEXBUFFER_DESC* pDesc) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DVertexBuffer9_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DVertexBuffer9_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DVertexBuffer9_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DVertexBuffer9 methods: IDirect3DResource9 ***/
-#define IDirect3DVertexBuffer9_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DVertexBuffer9_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DVertexBuffer9_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DVertexBuffer9_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DVertexBuffer9_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DVertexBuffer9_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
-#define IDirect3DVertexBuffer9_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
-#define IDirect3DVertexBuffer9_GetType(p)                   (p)->lpVtbl->GetType(p)
-/*** IDirect3DVertexBuffer9 methods ***/
-#define IDirect3DVertexBuffer9_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
-#define IDirect3DVertexBuffer9_Unlock(p)                    (p)->lpVtbl->Unlock(p)
-#define IDirect3DVertexBuffer9_GetDesc(p,a)                 (p)->lpVtbl->GetDesc(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DVertexBuffer9_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DVertexBuffer9_AddRef(p)                    (p)->AddRef()
-#define IDirect3DVertexBuffer9_Release(p)                   (p)->Release()
-/*** IDirect3DVertexBuffer9 methods: IDirect3DResource9 ***/
-#define IDirect3DVertexBuffer9_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DVertexBuffer9_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DVertexBuffer9_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
-#define IDirect3DVertexBuffer9_FreePrivateData(p,a)         (p)->FreePrivateData(a)
-#define IDirect3DVertexBuffer9_SetPriority(p,a)             (p)->SetPriority(a)
-#define IDirect3DVertexBuffer9_GetPriority(p)               (p)->GetPriority()
-#define IDirect3DVertexBuffer9_PreLoad(p)                   (p)->PreLoad()
-#define IDirect3DVertexBuffer9_GetType(p)                   (p)->GetType()
-/*** IDirect3DVertexBuffer9 methods ***/
-#define IDirect3DVertexBuffer9_Lock(p,a,b,c,d)              (p)->Lock(a,b,c,d)
-#define IDirect3DVertexBuffer9_Unlock(p)                    (p)->Unlock()
-#define IDirect3DVertexBuffer9_GetDesc(p,a)                 (p)->GetDesc(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DIndexBuffer9 interface
- */
-#define INTERFACE IDirect3DIndexBuffer9
-DECLARE_INTERFACE_(IDirect3DIndexBuffer9,IDirect3DResource9)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource9 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** 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_(D3DRESOURCETYPE, GetType)(THIS) PURE;
-    /*** IDirect3DIndexBuffer9 methods ***/
-    STDMETHOD(Lock)(THIS_ UINT OffsetToLock, UINT SizeToLock, void** ppbData, DWORD Flags) PURE;
-    STDMETHOD(Unlock)(THIS) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3DINDEXBUFFER_DESC* pDesc) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DIndexBuffer9_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DIndexBuffer9_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DIndexBuffer9_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DIndexBuffer9 methods: IDirect3DResource9 ***/
-#define IDirect3DIndexBuffer9_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DIndexBuffer9_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DIndexBuffer9_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DIndexBuffer9_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DIndexBuffer9_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DIndexBuffer9_GetPriority(p)               (p)->lpVtbl->GetPriority(p)
-#define IDirect3DIndexBuffer9_PreLoad(p)                   (p)->lpVtbl->PreLoad(p)
-#define IDirect3DIndexBuffer9_GetType(p)                   (p)->lpVtbl->GetType(p)
-/*** IDirect3DIndexBuffer9 methods ***/
-#define IDirect3DIndexBuffer9_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
-#define IDirect3DIndexBuffer9_Unlock(p)                    (p)->lpVtbl->Unlock(p)
-#define IDirect3DIndexBuffer9_GetDesc(p,a)                 (p)->lpVtbl->GetDesc(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DIndexBuffer9_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DIndexBuffer9_AddRef(p)                    (p)->AddRef()
-#define IDirect3DIndexBuffer9_Release(p)                   (p)->Release()
-/*** IDirect3DIndexBuffer9 methods: IDirect3DResource9 ***/
-#define IDirect3DIndexBuffer9_GetDevice(p,a)               (p)->GetDevice(a)
-#define IDirect3DIndexBuffer9_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DIndexBuffer9_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
-#define IDirect3DIndexBuffer9_FreePrivateData(p,a)         (p)->FreePrivateData(a)
-#define IDirect3DIndexBuffer9_SetPriority(p,a)             (p)->SetPriority(a)
-#define IDirect3DIndexBuffer9_GetPriority(p)               (p)->GetPriority()
-#define IDirect3DIndexBuffer9_PreLoad(p)                   (p)->PreLoad()
-#define IDirect3DIndexBuffer9_GetType(p)                   (p)->GetType()
-/*** IDirect3DIndexBuffer9 methods ***/
-#define IDirect3DIndexBuffer9_Lock(p,a,b,c,d)              (p)->Lock(a,b,c,d)
-#define IDirect3DIndexBuffer9_Unlock(p)                    (p)->Unlock()
-#define IDirect3DIndexBuffer9_GetDesc(p,a)                 (p)->GetDesc(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DBaseTexture9 interface
- */
-#define INTERFACE IDirect3DBaseTexture9
-DECLARE_INTERFACE_(IDirect3DBaseTexture9,IDirect3DResource9)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource9 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** 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_(D3DRESOURCETYPE, GetType)(THIS) PURE;
-    /*** IDirect3DBaseTexture9 methods ***/
-    STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
-    STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
-    STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
-    STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE FilterType) PURE;
-    STDMETHOD_(D3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE;
-    STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DBaseTexture9_QueryInterface(p,a,b)  (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DBaseTexture9_AddRef(p)              (p)->lpVtbl->AddRef(p)
-#define IDirect3DBaseTexture9_Release(p)             (p)->lpVtbl->Release(p)
-/*** IDirect3DBaseTexture9 methods: IDirect3DResource9 ***/
-#define IDirect3DBaseTexture9_GetDevice(p,a)             (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DBaseTexture9_SetPrivateData(p,a,b,c,d)  (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DBaseTexture9_GetPrivateData(p,a,b,c)    (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DBaseTexture9_FreePrivateData(p,a)       (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DBaseTexture9_SetPriority(p,a)           (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DBaseTexture9_GetPriority(p)             (p)->lpVtbl->GetPriority(p)
-#define IDirect3DBaseTexture9_PreLoad(p)                 (p)->lpVtbl->PreLoad(p)
-#define IDirect3DBaseTexture9_GetType(p)                 (p)->lpVtbl->GetType(p)
-/*** IDirect3DBaseTexture9 methods ***/
-#define IDirect3DBaseTexture9_SetLOD(p,a)                (p)->lpVtbl->SetLOD(p,a)
-#define IDirect3DBaseTexture9_GetLOD(p)                  (p)->lpVtbl->GetLOD(p)
-#define IDirect3DBaseTexture9_GetLevelCount(p)           (p)->lpVtbl->GetLevelCount(p)
-#define IDirect3DBaseTexture9_SetAutoGenFilterType(p,a)  (p)->lpVtbl->SetAutoGenFilterType(p,a)
-#define IDirect3DBaseTexture9_GetAutoGenFilterType(p)    (p)->lpVtbl->GetAutoGenFilterType(p)
-#define IDirect3DBaseTexture9_GenerateMipSubLevels(p)    (p)->lpVtbl->GenerateMipSubLevels(p)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DBaseTexture9_QueryInterface(p,a,b)  (p)->QueryInterface(a,b)
-#define IDirect3DBaseTexture9_AddRef(p)              (p)->AddRef()
-#define IDirect3DBaseTexture9_Release(p)             (p)->Release()
-/*** IDirect3DBaseTexture9 methods: IDirect3DResource9 ***/
-#define IDirect3DBaseTexture9_GetDevice(p,a)             (p)->GetDevice(a)
-#define IDirect3DBaseTexture9_SetPrivateData(p,a,b,c,d)  (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DBaseTexture9_GetPrivateData(p,a,b,c)    (p)->GetPrivateData(a,b,c)
-#define IDirect3DBaseTexture9_FreePrivateData(p,a)       (p)->FreePrivateData(a)
-#define IDirect3DBaseTexture9_SetPriority(p,a)           (p)->SetPriority(a)
-#define IDirect3DBaseTexture9_GetPriority(p)             (p)->GetPriority()
-#define IDirect3DBaseTexture9_PreLoad(p)                 (p)->PreLoad()
-#define IDirect3DBaseTexture9_GetType(p)                 (p)->GetType()
-/*** IDirect3DBaseTexture9 methods ***/
-#define IDirect3DBaseTexture9_SetLOD(p,a)                (p)->SetLOD(a)
-#define IDirect3DBaseTexture9_GetLOD(p)                  (p)->GetLOD()
-#define IDirect3DBaseTexture9_GetLevelCount(p)           (p)->GetLevelCount()
-#define IDirect3DBaseTexture9_SetAutoGenFilterType(p,a)  (p)->SetAutoGenFilterType(a)
-#define IDirect3DBaseTexture9_GetAutoGenFilterType(p)    (p)->GetAutoGenFilterType()
-#define IDirect3DBaseTexture9_GenerateMipSubLevels(p)    (p)->GenerateMipSubLevels()
-#endif
-
-/*****************************************************************************
- * IDirect3DCubeTexture9 interface
- */
-#define INTERFACE IDirect3DCubeTexture9
-DECLARE_INTERFACE_(IDirect3DCubeTexture9,IDirect3DBaseTexture9)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource9 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** 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_(D3DRESOURCETYPE, GetType)(THIS) PURE;
-    /*** IDirect3DBaseTexture9 methods ***/
-    STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
-    STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
-    STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
-    STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE FilterType) PURE;
-    STDMETHOD_(D3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE;
-    STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE;
-    /*** IDirect3DCubeTexture9 methods ***/
-    STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3DSURFACE_DESC* pDesc) PURE;
-    STDMETHOD(GetCubeMapSurface)(THIS_ D3DCUBEMAP_FACES FaceType, UINT Level, IDirect3DSurface9** ppCubeMapSurface) PURE;
-    STDMETHOD(LockRect)(THIS_ D3DCUBEMAP_FACES FaceType, UINT Level, D3DLOCKED_RECT* pLockedRect, CONST RECT* pRect, DWORD Flags) PURE;
-    STDMETHOD(UnlockRect)(THIS_ D3DCUBEMAP_FACES FaceType, UINT Level) PURE;
-    STDMETHOD(AddDirtyRect)(THIS_ D3DCUBEMAP_FACES FaceType, CONST RECT* pDirtyRect) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DCubeTexture9_QueryInterface(p,a,b)       (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DCubeTexture9_AddRef(p)                   (p)->lpVtbl->AddRef(p)
-#define IDirect3DCubeTexture9_Release(p)                  (p)->lpVtbl->Release(p)
-/*** IDirect3DCubeTexture9 methods: IDirect3DResource9 ***/
-#define IDirect3DCubeTexture9_GetDevice(p,a)              (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DCubeTexture9_SetPrivateData(p,a,b,c,d)   (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DCubeTexture9_GetPrivateData(p,a,b,c)     (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DCubeTexture9_FreePrivateData(p,a)        (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DCubeTexture9_SetPriority(p,a)            (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DCubeTexture9_GetPriority(p)              (p)->lpVtbl->GetPriority(p)
-#define IDirect3DCubeTexture9_PreLoad(p)                  (p)->lpVtbl->PreLoad(p)
-#define IDirect3DCubeTexture9_GetType(p)                  (p)->lpVtbl->GetType(p)
-/*** IDirect3DCubeTexture9 methods: IDirect3DBaseTexture9 ***/
-#define IDirect3DCubeTexture9_SetLOD(p,a)                 (p)->lpVtbl->SetLOD(p,a)
-#define IDirect3DCubeTexture9_GetLOD(p)                   (p)->lpVtbl->GetLOD(p)
-#define IDirect3DCubeTexture9_GetLevelCount(p)            (p)->lpVtbl->GetLevelCount(p)
-#define IDirect3DCubeTexture9_SetAutoGenFilterType(p,a)   (p)->lpVtbl->SetAutoGenFilterType(p,a)
-#define IDirect3DCubeTexture9_GetAutoGenFilterType(p)     (p)->lpVtbl->GetAutoGenFilterType(p)
-#define IDirect3DCubeTexture9_GenerateMipSubLevels(p)     (p)->lpVtbl->GenerateMipSubLevels(p)
-/*** IDirect3DCubeTexture9 methods ***/
-#define IDirect3DCubeTexture9_GetLevelDesc(p,a,b)         (p)->lpVtbl->GetLevelDesc(p,a,b)
-#define IDirect3DCubeTexture9_GetCubeMapSurface(p,a,b,c)  (p)->lpVtbl->GetCubeMapSurface(p,a,b,c)
-#define IDirect3DCubeTexture9_LockRect(p,a,b,c,d,e)       (p)->lpVtbl->LockRect(p,a,b,c,d,e)
-#define IDirect3DCubeTexture9_UnlockRect(p,a,b)           (p)->lpVtbl->UnlockRect(p,a,b)
-#define IDirect3DCubeTexture9_AddDirtyRect(p,a,b)         (p)->lpVtbl->AddDirtyRect(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DCubeTexture9_QueryInterface(p,a,b)       (p)->QueryInterface(a,b)
-#define IDirect3DCubeTexture9_AddRef(p)                   (p)->AddRef()
-#define IDirect3DCubeTexture9_Release(p)                  (p)->Release()
-/*** IDirect3DCubeTexture9 methods: IDirect3DResource9 ***/
-#define IDirect3DCubeTexture9_GetDevice(p,a)              (p)->GetDevice(a)
-#define IDirect3DCubeTexture9_SetPrivateData(p,a,b,c,d)   (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DCubeTexture9_GetPrivateData(p,a,b,c)     (p)->GetPrivateData(a,b,c)
-#define IDirect3DCubeTexture9_FreePrivateData(p,a)        (p)->FreePrivateData(a)
-#define IDirect3DCubeTexture9_SetPriority(p,a)            (p)->SetPriority(a)
-#define IDirect3DCubeTexture9_GetPriority(p)              (p)->GetPriority()
-#define IDirect3DCubeTexture9_PreLoad(p)                  (p)->PreLoad()
-#define IDirect3DCubeTexture9_GetType(p)                  (p)->GetType()
-/*** IDirect3DCubeTexture9 methods: IDirect3DBaseTexture9 ***/
-#define IDirect3DCubeTexture9_SetLOD(p,a)                 (p)->SetLOD(a)
-#define IDirect3DCubeTexture9_GetLOD(p)                   (p)->GetLOD()
-#define IDirect3DCubeTexture9_GetLevelCount(p)            (p)->GetLevelCount()
-#define IDirect3DCubeTexture9_SetAutoGenFilterType(p,a)   (p)->SetAutoGenFilterType(a)
-#define IDirect3DCubeTexture9_GetAutoGenFilterType(p)     (p)->GetAutoGenFilterType()
-#define IDirect3DCubeTexture9_GenerateMipSubLevels(p)     (p)->GenerateMipSubLevels()
-/*** IDirect3DCubeTexture9 methods ***/
-#define IDirect3DCubeTexture9_GetLevelDesc(p,a,b)         (p)->GetLevelDesc(a,b)
-#define IDirect3DCubeTexture9_GetCubeMapSurface(p,a,b,c)  (p)->GetCubeMapSurface(a,b,c)
-#define IDirect3DCubeTexture9_LockRect(p,a,b,c,d,e)       (p)->LockRect(a,b,c,d,e)
-#define IDirect3DCubeTexture9_UnlockRect(p,a,b)           (p)->UnlockRect(a,b)
-#define IDirect3DCubeTexture9_AddDirtyRect(p,a,b)         (p)->AddDirtyRect(a,b)
-#endif
-
-/*****************************************************************************
- * IDirect3DTexture9 interface
- */
-#define INTERFACE IDirect3DTexture9
-DECLARE_INTERFACE_(IDirect3DTexture9,IDirect3DBaseTexture9)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource9 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** 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_(D3DRESOURCETYPE, GetType)(THIS) PURE;
-    /*** IDirect3DBaseTexture9 methods ***/
-    STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
-    STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
-    STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
-    STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE FilterType) PURE;
-    STDMETHOD_(D3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE;
-    STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE;
-    /*** IDirect3DTexture9 methods ***/
-    STDMETHOD(GetLevelDesc)(THIS_ UINT Level, D3DSURFACE_DESC* pDesc) PURE;
-    STDMETHOD(GetSurfaceLevel)(THIS_ UINT Level, IDirect3DSurface9** ppSurfaceLevel) PURE;
-    STDMETHOD(LockRect)(THIS_ UINT Level, D3DLOCKED_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 IDirect3DTexture9_QueryInterface(p,a,b)      (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DTexture9_AddRef(p)                  (p)->lpVtbl->AddRef(p)
-#define IDirect3DTexture9_Release(p)                 (p)->lpVtbl->Release(p)
-/*** IDirect3DTexture9 methods: IDirect3DResource9 ***/
-#define IDirect3DTexture9_GetDevice(p,a)             (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DTexture9_SetPrivateData(p,a,b,c,d)  (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DTexture9_GetPrivateData(p,a,b,c)    (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DTexture9_FreePrivateData(p,a)       (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DTexture9_SetPriority(p,a)           (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DTexture9_GetPriority(p)             (p)->lpVtbl->GetPriority(p)
-#define IDirect3DTexture9_PreLoad(p)                 (p)->lpVtbl->PreLoad(p)
-#define IDirect3DTexture9_GetType(p)                 (p)->lpVtbl->GetType(p)
-/*** IDirect3DTexture9 methods: IDirect3DBaseTexture9 ***/
-#define IDirect3DTexture9_SetLOD(p,a)                (p)->lpVtbl->SetLOD(p,a)
-#define IDirect3DTexture9_GetLOD(p)                  (p)->lpVtbl->GetLOD(p)
-#define IDirect3DTexture9_GetLevelCount(p)           (p)->lpVtbl->GetLevelCount(p)
-#define IDirect3DTexture9_SetAutoGenFilterType(p,a)  (p)->lpVtbl->SetAutoGenFilterType(p,a)
-#define IDirect3DTexture9_GetAutoGenFilterType(p)    (p)->lpVtbl->GetAutoGenFilterType(p)
-#define IDirect3DTexture9_GenerateMipSubLevels(p)    (p)->lpVtbl->GenerateMipSubLevels(p)
-/*** IDirect3DTexture9 methods ***/
-#define IDirect3DTexture9_GetLevelDesc(p,a,b)        (p)->lpVtbl->GetLevelDesc(p,a,b)
-#define IDirect3DTexture9_GetSurfaceLevel(p,a,b)     (p)->lpVtbl->GetSurfaceLevel(p,a,b)
-#define IDirect3DTexture9_LockRect(p,a,b,c,d)        (p)->lpVtbl->LockRect(p,a,b,c,d)
-#define IDirect3DTexture9_UnlockRect(p,a)            (p)->lpVtbl->UnlockRect(p,a)
-#define IDirect3DTexture9_AddDirtyRect(p,a)          (p)->lpVtbl->AddDirtyRect(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DTexture9_QueryInterface(p,a,b)      (p)->QueryInterface(a,b)
-#define IDirect3DTexture9_AddRef(p)                  (p)->AddRef()
-#define IDirect3DTexture9_Release(p)                 (p)->Release()
-/*** IDirect3DTexture9 methods: IDirect3DResource9 ***/
-#define IDirect3DTexture9_GetDevice(p,a)             (p)->GetDevice(a)
-#define IDirect3DTexture9_SetPrivateData(p,a,b,c,d)  (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DTexture9_GetPrivateData(p,a,b,c)    (p)->GetPrivateData(a,b,c)
-#define IDirect3DTexture9_FreePrivateData(p,a)       (p)->FreePrivateData(a)
-#define IDirect3DTexture9_SetPriority(p,a)           (p)->SetPriority(a)
-#define IDirect3DTexture9_GetPriority(p)             (p)->GetPriority()
-#define IDirect3DTexture9_PreLoad(p)                 (p)->PreLoad()
-#define IDirect3DTexture9_GetType(p)                 (p)->GetType()
-/*** IDirect3DTexture9 methods: IDirect3DBaseTexture9 ***/
-#define IDirect3DTexture9_SetLOD(p,a)                (p)->SetLOD(a)
-#define IDirect3DTexture9_GetLOD(p)                  (p)->GetLOD()
-#define IDirect3DTexture9_GetLevelCount(p)           (p)->GetLevelCount()
-#define IDirect3DTexture9_SetAutoGenFilterType(p,a)  (p)->SetAutoGenFilterType(a)
-#define IDirect3DTexture9_GetAutoGenFilterType(p)    (p)->GetAutoGenFilterType()
-#define IDirect3DTexture9_GenerateMipSubLevels(p)    (p)->GenerateMipSubLevels()
-/*** IDirect3DTexture9 methods ***/
-#define IDirect3DTexture9_GetLevelDesc(p,a,b)        (p)->GetLevelDesc(a,b)
-#define IDirect3DTexture9_GetSurfaceLevel(p,a,b)     (p)->GetSurfaceLevel(a,b)
-#define IDirect3DTexture9_LockRect(p,a,b,c,d)        (p)->LockRect(a,b,c,d)
-#define IDirect3DTexture9_UnlockRect(p,a)            (p)->UnlockRect(a)
-#define IDirect3DTexture9_AddDirtyRect(p,a)          (p)->AddDirtyRect(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DVolumeTexture9 interface
- */
-#define INTERFACE IDirect3DVolumeTexture9
-DECLARE_INTERFACE_(IDirect3DVolumeTexture9,IDirect3DBaseTexture9)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DResource9 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** 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_(D3DRESOURCETYPE, GetType)(THIS) PURE;
-    /*** IDirect3DBaseTexture9 methods ***/
-    STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
-    STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
-    STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
-    STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE FilterType) PURE;
-    STDMETHOD_(D3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE;
-    STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE;
-    /*** IDirect3DVolumeTexture9 methods ***/
-    STDMETHOD(GetLevelDesc)(THIS_ UINT Level, D3DVOLUME_DESC *pDesc) PURE;
-    STDMETHOD(GetVolumeLevel)(THIS_ UINT Level, IDirect3DVolume9** ppVolumeLevel) PURE;
-    STDMETHOD(LockBox)(THIS_ UINT Level, D3DLOCKED_BOX* pLockedVolume, CONST D3DBOX* pBox, DWORD Flags) PURE;
-    STDMETHOD(UnlockBox)(THIS_ UINT Level) PURE;
-    STDMETHOD(AddDirtyBox)(THIS_ CONST D3DBOX* pDirtyBox) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DVolumeTexture9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DVolumeTexture9_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IDirect3DVolumeTexture9_Release(p) (p)->lpVtbl->Release(p)
-/*** IDirect3DVolumeTexture9 methods: IDirect3DResource9 ***/
-#define IDirect3DVolumeTexture9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DVolumeTexture9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirect3DVolumeTexture9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirect3DVolumeTexture9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirect3DVolumeTexture9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
-#define IDirect3DVolumeTexture9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
-#define IDirect3DVolumeTexture9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
-#define IDirect3DVolumeTexture9_GetType(p) (p)->lpVtbl->GetType(p)
-/*** IDirect3DVolumeTexture9 methods: IDirect3DBaseTexture9 ***/
-#define IDirect3DVolumeTexture9_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
-#define IDirect3DVolumeTexture9_GetLOD(p) (p)->lpVtbl->GetLOD(p)
-#define IDirect3DVolumeTexture9_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
-#define IDirect3DVolumeTexture9_SetAutoGenFilterType(p,a) (p)->lpVtbl->SetAutoGenFilterType(p,a)
-#define IDirect3DVolumeTexture9_GetAutoGenFilterType(p) (p)->lpVtbl->GetAutoGenFilterType(p)
-#define IDirect3DVolumeTexture9_GenerateMipSubLevels(p) (p)->lpVtbl->GenerateMipSubLevels(p)
-/*** IDirect3DVolumeTexture9 methods ***/
-#define IDirect3DVolumeTexture9_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b)
-#define IDirect3DVolumeTexture9_GetVolumeLevel(p,a,b) (p)->lpVtbl->GetVolumeLevel(p,a,b)
-#define IDirect3DVolumeTexture9_LockBox(p,a,b,c,d) (p)->lpVtbl->LockBox(p,a,b,c,d)
-#define IDirect3DVolumeTexture9_UnlockBox(p,a) (p)->lpVtbl->UnlockBox(p,a)
-#define IDirect3DVolumeTexture9_AddDirtyBox(p,a) (p)->lpVtbl->AddDirtyBox(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DVolumeTexture9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DVolumeTexture9_AddRef(p) (p)->AddRef()
-#define IDirect3DVolumeTexture9_Release(p) (p)->Release()
-/*** IDirect3DVolumeTexture9 methods: IDirect3DResource9 ***/
-#define IDirect3DVolumeTexture9_GetDevice(p,a) (p)->GetDevice(a)
-#define IDirect3DVolumeTexture9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
-#define IDirect3DVolumeTexture9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
-#define IDirect3DVolumeTexture9_FreePrivateData(p,a) (p)->FreePrivateData(a)
-#define IDirect3DVolumeTexture9_SetPriority(p,a) (p)->SetPriority(a)
-#define IDirect3DVolumeTexture9_GetPriority(p) (p)->GetPriority()
-#define IDirect3DVolumeTexture9_PreLoad(p) (p)->PreLoad()
-#define IDirect3DVolumeTexture9_GetType(p) (p)->GetType()
-/*** IDirect3DVolumeTexture9 methods: IDirect3DBaseTexture9 ***/
-#define IDirect3DVolumeTexture9_SetLOD(p,a) (p)->SetLOD(a)
-#define IDirect3DVolumeTexture9_GetLOD(p) (p)->GetLOD()
-#define IDirect3DVolumeTexture9_GetLevelCount(p) (p)->GetLevelCount()
-#define IDirect3DVolumeTexture9_SetAutoGenFilterType(p,a) (p)->SetAutoGenFilterType(a)
-#define IDirect3DVolumeTexture9_GetAutoGenFilterType(p) (p)->GetAutoGenFilterType()
-#define IDirect3DVolumeTexture9_GenerateMipSubLevels(p) (p)->GenerateMipSubLevels()
-/*** IDirect3DVolumeTexture9 methods ***/
-#define IDirect3DVolumeTexture9_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b)
-#define IDirect3DVolumeTexture9_GetVolumeLevel(p,a,b) (p)->GetVolumeLevel(a,b)
-#define IDirect3DVolumeTexture9_LockBox(p,a,b,c,d) (p)->LockBox(a,b,c,d)
-#define IDirect3DVolumeTexture9_UnlockBox(p,a) (p)->UnlockBox(a)
-#define IDirect3DVolumeTexture9_AddDirtyBox(p,a) (p)->AddDirtyBox(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DVertexDeclaration9 interface
- */
-#define INTERFACE IDirect3DVertexDeclaration9
-DECLARE_INTERFACE_(IDirect3DVertexDeclaration9,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DVertexDeclaration9 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
-    STDMETHOD(GetDeclaration)(THIS_ D3DVERTEXELEMENT9*, UINT* pNumElements) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DVertexDeclaration9_QueryInterface(p,a,b)  (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DVertexDeclaration9_AddRef(p)              (p)->lpVtbl->AddRef(p)
-#define IDirect3DVertexDeclaration9_Release(p)             (p)->lpVtbl->Release(p)
-/*** IDirect3DVertexShader9 methods ***/
-#define IDirect3DVertexDeclaration9_GetDevice(p,a)         (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DVertexDeclaration9_GetDeclaration(p,a,b)  (p)->lpVtbl->GetDeclaration(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DVertexDeclaration9_QueryInterface(p,a,b)  (p)->QueryInterface(a,b)
-#define IDirect3DVertexDeclaration9_AddRef(p)              (p)->AddRef()
-#define IDirect3DVertexDeclaration9_Release(p)             (p)->Release()
-/*** IDirect3DVertexShader9 methods ***/
-#define IDirect3DVertexDeclaration9_GetDevice(p,a)         (p)->GetDevice(a)
-#define IDirect3DVertexDeclaration9_GetDeclaration(p,a,b)  (p)->GetDeclaration(a,b)
-#endif
-
-/*****************************************************************************
- * IDirect3DVertexShader9 interface
- */
-#define INTERFACE IDirect3DVertexShader9
-DECLARE_INTERFACE_(IDirect3DVertexShader9,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DVertexShader9 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
-    STDMETHOD(GetFunction)(THIS_ void*, UINT* pSizeOfData) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DVertexShader9_QueryInterface(p,a,b)  (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DVertexShader9_AddRef(p)              (p)->lpVtbl->AddRef(p)
-#define IDirect3DVertexShader9_Release(p)             (p)->lpVtbl->Release(p)
-/*** IDirect3DVertexShader9 methods ***/
-#define IDirect3DVertexShader9_GetDevice(p,a)         (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DVertexShader9_GetFunction(p,a,b)     (p)->lpVtbl->GetFunction(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DVertexShader9_QueryInterface(p,a,b)  (p)->QueryInterface(a,b)
-#define IDirect3DVertexShader9_AddRef(p)              (p)->AddRef()
-#define IDirect3DVertexShader9_Release(p)             (p)->Release()
-/*** IDirect3DVertexShader9 methods ***/
-#define IDirect3DVertexShader9_GetDevice(p,a)         (p)->GetDevice(a)
-#define IDirect3DVertexShader9_GetFunction(p,a,b)     (p)->GetFunction(a,b)
-#endif
-
-/*****************************************************************************
- * IDirect3DPixelShader9 interface
- */
-#define INTERFACE IDirect3DPixelShader9
-DECLARE_INTERFACE_(IDirect3DPixelShader9,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DPixelShader9 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
-    STDMETHOD(GetFunction)(THIS_ void*, UINT* pSizeOfData) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DPixelShader9_QueryInterface(p,a,b)  (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DPixelShader9_AddRef(p)              (p)->lpVtbl->AddRef(p)
-#define IDirect3DPixelShader9_Release(p)             (p)->lpVtbl->Release(p)
-/*** IDirect3DPixelShader9 methods ***/
-#define IDirect3DPixelShader9_GetDevice(p,a)         (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DPixelShader9_GetFunction(p,a,b)     (p)->lpVtbl->GetFunction(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DPixelShader9_QueryInterface(p,a,b)  (p)->QueryInterface(a,b)
-#define IDirect3DPixelShader9_AddRef(p)              (p)->AddRef()
-#define IDirect3DPixelShader9_Release(p)             (p)->Release()
-/*** IDirect3DPixelShader9 methods ***/
-#define IDirect3DPixelShader9_GetDevice(p,a)         (p)->GetDevice(a)
-#define IDirect3DPixelShader9_GetFunction(p,a,b)     (p)->GetFunction(a,b)
-#endif
-
-/*****************************************************************************
- * IDirect3DStateBlock9 interface
- */
-#define INTERFACE IDirect3DStateBlock9
-DECLARE_INTERFACE_(IDirect3DStateBlock9,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DStateBlock9 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
-    STDMETHOD(Capture)(THIS) PURE;
-    STDMETHOD(Apply)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DStateBlock9_QueryInterface(p,a,b)  (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DStateBlock9_AddRef(p)              (p)->lpVtbl->AddRef(p)
-#define IDirect3DStateBlock9_Release(p)             (p)->lpVtbl->Release(p)
-/*** IDirect3DStateBlock9 methods ***/
-#define IDirect3DStateBlock9_GetDevice(p,a)         (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DStateBlock9_Capture(p)             (p)->lpVtbl->Capture(p)
-#define IDirect3DStateBlock9_Apply(p)               (p)->lpVtbl->Apply(p)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DStateBlock9_QueryInterface(p,a,b)  (p)->QueryInterface(a,b)
-#define IDirect3DStateBlock9_AddRef(p)              (p)->AddRef()
-#define IDirect3DStateBlock9_Release(p)             (p)->Release()
-/*** IDirect3DStateBlock9 methods ***/
-#define IDirect3DStateBlock9_GetDevice(p,a)         (p)->GetDevice(a)
-#define IDirect3DStateBlock9_Capture(p)             (p)->Capture()
-#define IDirect3DStateBlock9_Apply(p)               (p)->Apply()
-#endif
-
-/*****************************************************************************
- * IDirect3DQuery9 interface
- */
-#define INTERFACE IDirect3DQuery9
-DECLARE_INTERFACE_(IDirect3DQuery9,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DQuery9 methods ***/
-    STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
-    STDMETHOD_(D3DQUERYTYPE, GetType)(THIS) PURE;
-    STDMETHOD_(DWORD, GetDataSize)(THIS) PURE;
-    STDMETHOD(Issue)(THIS_ DWORD dwIssueFlags) PURE;
-    STDMETHOD(GetData)(THIS_ void* pData, DWORD dwSize, DWORD dwGetDataFlags) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DQuery9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DQuery9_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IDirect3DQuery9_Release(p) (p)->lpVtbl->Release(p)
-/*** IDirect3DQuery9 ***/
-#define IDirect3DQuery9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DQuery9_GetType(p) (p)->lpVtbl->GetType(p)
-#define IDirect3DQuery9_GetDataSize(p) (p)->lpVtbl->GetDataSize(p)
-#define IDirect3DQuery9_Issue(p,a) (p)->lpVtbl->Issue(p,a)
-#define IDirect3DQuery9_GetData(p,a,b,c) (p)->lpVtbl->GetData(p,a,b,c)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DQuery9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DQuery9_AddRef(p) (p)->AddRef()
-#define IDirect3DQuery9_Release(p) (p)->Release()
-/*** IDirect3DQuery9 ***/
-#define IDirect3DQuery9_GetDevice(p,a) (p)->GetDevice(a)
-#define IDirect3DQuery9_GetType(p) (p)->GetType()
-#define IDirect3DQuery9_GetDataSize(p) (p)->GetDataSize()
-#define IDirect3DQuery9_Issue(p,a) (p)->Issue(a)
-#define IDirect3DQuery9_GetData(p,a,b,c) (p)->GetData(a,b,c)
-#endif
-
-/*****************************************************************************
- * IDirect3DDevice9 interface
- */
-#define INTERFACE IDirect3DDevice9
-DECLARE_INTERFACE_(IDirect3DDevice9,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DDevice9 methods ***/
-    STDMETHOD(TestCooperativeLevel)(THIS) PURE;
-    STDMETHOD_(UINT, GetAvailableTextureMem)(THIS) PURE;
-    STDMETHOD(EvictManagedResources)(THIS) PURE;
-    STDMETHOD(GetDirect3D)(THIS_ IDirect3D9** ppD3D9) PURE;
-    STDMETHOD(GetDeviceCaps)(THIS_ D3DCAPS9* pCaps) PURE;
-    STDMETHOD(GetDisplayMode)(THIS_ UINT iSwapChain, D3DDISPLAYMODE* pMode) PURE;
-    STDMETHOD(GetCreationParameters)(THIS_ D3DDEVICE_CREATION_PARAMETERS *pParameters) PURE;
-    STDMETHOD(SetCursorProperties)(THIS_ UINT XHotSpot, UINT YHotSpot, IDirect3DSurface9* pCursorBitmap) PURE;
-    STDMETHOD_(void, SetCursorPosition)(THIS_ int X,int Y, DWORD Flags) PURE;
-    STDMETHOD_(BOOL, ShowCursor)(THIS_ BOOL bShow) PURE;
-    STDMETHOD(CreateAdditionalSwapChain)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters, IDirect3DSwapChain9** pSwapChain) PURE;
-    STDMETHOD(GetSwapChain)(THIS_ UINT iSwapChain, IDirect3DSwapChain9** pSwapChain) PURE;
-    STDMETHOD_(UINT, GetNumberOfSwapChains)(THIS) PURE;
-    STDMETHOD(Reset)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters) PURE;
-    STDMETHOD(Present)(THIS_ CONST RECT* pSourceRect, CONST RECT* pDestRect, HWND hDestWindowOverride, CONST RGNDATA* pDirtyRegion) PURE;
-    STDMETHOD(GetBackBuffer)(THIS_ UINT iSwapChain, UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, IDirect3DSurface9** ppBackBuffer) PURE;
-    STDMETHOD(GetRasterStatus)(THIS_ UINT iSwapChain, D3DRASTER_STATUS* pRasterStatus) PURE;
-    STDMETHOD(SetDialogBoxMode)(THIS_ BOOL bEnableDialogs) PURE;
-    STDMETHOD_(void, SetGammaRamp)(THIS_ UINT iSwapChain, DWORD Flags, CONST D3DGAMMARAMP* pRamp) PURE;
-    STDMETHOD_(void, GetGammaRamp)(THIS_ UINT iSwapChain, D3DGAMMARAMP* pRamp) PURE;
-    STDMETHOD(CreateTexture)(THIS_ UINT Width, UINT Height, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DTexture9** ppTexture, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(CreateVolumeTexture)(THIS_ UINT Width, UINT Height, UINT Depth, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DVolumeTexture9** ppVolumeTexture, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(CreateCubeTexture)(THIS_ UINT EdgeLength, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DCubeTexture9** ppCubeTexture, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(CreateVertexBuffer)(THIS_ UINT Length, DWORD Usage, DWORD FVF, D3DPOOL Pool, IDirect3DVertexBuffer9** ppVertexBuffer, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(CreateIndexBuffer)(THIS_ UINT Length, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DIndexBuffer9** ppIndexBuffer, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(CreateRenderTarget)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Lockable, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(CreateDepthStencilSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Discard, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(UpdateSurface)(THIS_ IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestinationSurface, CONST POINT* pDestPoint) PURE;
-    STDMETHOD(UpdateTexture)(THIS_ IDirect3DBaseTexture9* pSourceTexture, IDirect3DBaseTexture9* pDestinationTexture) PURE;
-    STDMETHOD(GetRenderTargetData)(THIS_ IDirect3DSurface9* pRenderTarget, IDirect3DSurface9* pDestSurface) PURE;
-    STDMETHOD(GetFrontBufferData)(THIS_ UINT iSwapChain, IDirect3DSurface9* pDestSurface) PURE;
-    STDMETHOD(StretchRect)(THIS_ IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestSurface, CONST RECT* pDestRect, D3DTEXTUREFILTERTYPE Filter) PURE;
-    STDMETHOD(ColorFill)(THIS_ IDirect3DSurface9* pSurface, CONST RECT* pRect, D3DCOLOR color) PURE;
-    STDMETHOD(CreateOffscreenPlainSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DPOOL Pool, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(SetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9* pRenderTarget) PURE;
-    STDMETHOD(GetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9** ppRenderTarget) PURE;
-    STDMETHOD(SetDepthStencilSurface)(THIS_ IDirect3DSurface9* pNewZStencil) PURE;
-    STDMETHOD(GetDepthStencilSurface)(THIS_ IDirect3DSurface9** ppZStencilSurface) PURE;
-    STDMETHOD(BeginScene)(THIS) PURE;
-    STDMETHOD(EndScene)(THIS) PURE;
-    STDMETHOD(Clear)(THIS_ DWORD Count, CONST D3DRECT* pRects, DWORD Flags, D3DCOLOR Color, float Z, DWORD Stencil) PURE;
-    STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX* pMatrix) PURE;
-    STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE State, D3DMATRIX* pMatrix) PURE;
-    STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE, CONST D3DMATRIX*) PURE;
-    STDMETHOD(SetViewport)(THIS_ CONST D3DVIEWPORT9* pViewport) PURE;
-    STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT9* pViewport) PURE;
-    STDMETHOD(SetMaterial)(THIS_ CONST D3DMATERIAL9* pMaterial) PURE;
-    STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL9* pMaterial) PURE;
-    STDMETHOD(SetLight)(THIS_ DWORD Index, CONST D3DLIGHT9*) PURE;
-    STDMETHOD(GetLight)(THIS_ DWORD Index, D3DLIGHT9*) PURE;
-    STDMETHOD(LightEnable)(THIS_ DWORD Index, BOOL Enable) PURE;
-    STDMETHOD(GetLightEnable)(THIS_ DWORD Index, BOOL* pEnable) PURE;
-    STDMETHOD(SetClipPlane)(THIS_ DWORD Index, CONST float* pPlane) PURE;
-    STDMETHOD(GetClipPlane)(THIS_ DWORD Index, float* pPlane) PURE;
-    STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE State, DWORD Value) PURE;
-    STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE State, DWORD* pValue) PURE;
-    STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE Type, IDirect3DStateBlock9** ppSB) PURE;
-    STDMETHOD(BeginStateBlock)(THIS) PURE;
-    STDMETHOD(EndStateBlock)(THIS_ IDirect3DStateBlock9** ppSB) PURE;
-    STDMETHOD(SetClipStatus)(THIS_ CONST D3DCLIPSTATUS9* pClipStatus) PURE;
-    STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS9* pClipStatus) PURE;
-    STDMETHOD(GetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9** ppTexture) PURE;
-    STDMETHOD(SetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9* pTexture) PURE;
-    STDMETHOD(GetTextureStageState)(THIS_ DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD* pValue) PURE;
-    STDMETHOD(SetTextureStageState)(THIS_ DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value) PURE;
-    STDMETHOD(GetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD* pValue) PURE;
-    STDMETHOD(SetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value) PURE;
-    STDMETHOD(ValidateDevice)(THIS_ DWORD* pNumPasses) PURE;
-    STDMETHOD(SetPaletteEntries)(THIS_ UINT PaletteNumber, CONST PALETTEENTRY* pEntries) PURE;
-    STDMETHOD(GetPaletteEntries)(THIS_ UINT PaletteNumber,PALETTEENTRY* pEntries) PURE;
-    STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT PaletteNumber) PURE;
-    STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT *PaletteNumber) 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(SetNPatchMode)(THIS_ float nSegments) PURE;
-    STDMETHOD_(float, GetNPatchMode)(THIS) PURE;
-    STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT StartVertex, UINT PrimitiveCount) PURE;
-    STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount) PURE;
-    STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) PURE;
-    STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT MinVertexIndex, UINT NumVertices, UINT PrimitiveCount, CONST void* pIndexData, D3DFORMAT IndexDataFormat, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) PURE;
-    STDMETHOD(ProcessVertices)(THIS_ UINT SrcStartIndex, UINT DestIndex, UINT VertexCount, IDirect3DVertexBuffer9* pDestBuffer, IDirect3DVertexDeclaration9* pVertexDecl, DWORD Flags) PURE;
-    STDMETHOD(CreateVertexDeclaration)(THIS_ CONST D3DVERTEXELEMENT9* pVertexElements, IDirect3DVertexDeclaration9** ppDecl) PURE;
-    STDMETHOD(SetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9* pDecl) PURE;
-    STDMETHOD(GetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9** ppDecl) PURE;
-    STDMETHOD(SetFVF)(THIS_ DWORD FVF) PURE;
-    STDMETHOD(GetFVF)(THIS_ DWORD* pFVF) PURE;
-    STDMETHOD(CreateVertexShader)(THIS_ CONST DWORD* pFunction, IDirect3DVertexShader9** ppShader) PURE;
-    STDMETHOD(SetVertexShader)(THIS_ IDirect3DVertexShader9* pShader) PURE;
-    STDMETHOD(GetVertexShader)(THIS_ IDirect3DVertexShader9** ppShader) PURE;
-    STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) PURE;
-    STDMETHOD(GetVertexShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE;
-    STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) PURE;
-    STDMETHOD(GetVertexShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE;
-    STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT StartRegister, CONST BOOL* pConstantData, UINT  BoolCount) PURE;
-    STDMETHOD(GetVertexShaderConstantB)(THIS_ UINT StartRegister, BOOL* pConstantData, UINT BoolCount) PURE;
-    STDMETHOD(SetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9* pStreamData, UINT OffsetInBytes, UINT Stride) PURE;
-    STDMETHOD(GetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9** ppStreamData, UINT* OffsetInBytes, UINT* pStride) PURE;
-    STDMETHOD(SetStreamSourceFreq)(THIS_ UINT StreamNumber, UINT Divider) PURE;
-    STDMETHOD(GetStreamSourceFreq)(THIS_ UINT StreamNumber, UINT* Divider) PURE;
-    STDMETHOD(SetIndices)(THIS_ IDirect3DIndexBuffer9* pIndexData) PURE;
-    STDMETHOD(GetIndices)(THIS_ IDirect3DIndexBuffer9** ppIndexData) PURE;
-    STDMETHOD(CreatePixelShader)(THIS_ CONST DWORD* pFunction, IDirect3DPixelShader9** ppShader) PURE;
-    STDMETHOD(SetPixelShader)(THIS_ IDirect3DPixelShader9* pShader) PURE;
-    STDMETHOD(GetPixelShader)(THIS_ IDirect3DPixelShader9** ppShader) PURE;
-    STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) PURE;
-    STDMETHOD(GetPixelShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE;
-    STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) PURE;
-    STDMETHOD(GetPixelShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE;
-    STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT StartRegister, CONST BOOL* pConstantData, UINT  BoolCount) PURE;
-    STDMETHOD(GetPixelShaderConstantB)(THIS_ UINT StartRegister, BOOL* pConstantData, UINT BoolCount) PURE;
-    STDMETHOD(DrawRectPatch)(THIS_ UINT Handle, CONST float* pNumSegs, CONST D3DRECTPATCH_INFO* pRectPatchInfo) PURE;
-    STDMETHOD(DrawTriPatch)(THIS_ UINT Handle, CONST float* pNumSegs, CONST D3DTRIPATCH_INFO* pTriPatchInfo) PURE;
-    STDMETHOD(DeletePatch)(THIS_ UINT Handle) PURE;
-    STDMETHOD(CreateQuery)(THIS_ D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DDevice9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DDevice9_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DDevice9_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3DDevice9 methods ***/
-#define IDirect3DDevice9_TestCooperativeLevel(p)                       (p)->lpVtbl->TestCooperativeLevel(p)
-#define IDirect3DDevice9_GetAvailableTextureMem(p)                     (p)->lpVtbl->GetAvailableTextureMem(p)
-#define IDirect3DDevice9_EvictManagedResources(p)                      (p)->lpVtbl->EvictManagedResources(p)
-#define IDirect3DDevice9_GetDirect3D(p,a)                              (p)->lpVtbl->GetDirect3D(p,a)
-#define IDirect3DDevice9_GetDeviceCaps(p,a)                            (p)->lpVtbl->GetDeviceCaps(p,a)
-#define IDirect3DDevice9_GetDisplayMode(p,a,b)                         (p)->lpVtbl->GetDisplayMode(p,a,b)
-#define IDirect3DDevice9_GetCreationParameters(p,a)                    (p)->lpVtbl->GetCreationParameters(p,a)
-#define IDirect3DDevice9_SetCursorProperties(p,a,b,c)                  (p)->lpVtbl->SetCursorProperties(p,a,b,c)
-#define IDirect3DDevice9_SetCursorPosition(p,a,b,c)                    (p)->lpVtbl->SetCursorPosition(p,a,b,c)
-#define IDirect3DDevice9_ShowCursor(p,a)                               (p)->lpVtbl->ShowCursor(p,a)
-#define IDirect3DDevice9_CreateAdditionalSwapChain(p,a,b)              (p)->lpVtbl->CreateAdditionalSwapChain(p,a,b)
-#define IDirect3DDevice9_GetSwapChain(p,a,b)                           (p)->lpVtbl->GetSwapChain(p,a,b)
-#define IDirect3DDevice9_GetNumberOfSwapChains(p)                      (p)->lpVtbl->GetNumberOfSwapChains(p)
-#define IDirect3DDevice9_Reset(p,a)                                    (p)->lpVtbl->Reset(p,a)
-#define IDirect3DDevice9_Present(p,a,b,c,d)                            (p)->lpVtbl->Present(p,a,b,c,d)
-#define IDirect3DDevice9_GetBackBuffer(p,a,b,c,d)                      (p)->lpVtbl->GetBackBuffer(p,a,b,c,d)
-#define IDirect3DDevice9_GetRasterStatus(p,a,b)                        (p)->lpVtbl->GetRasterStatus(p,a,b)
-#define IDirect3DDevice9_SetDialogBoxMode(p,a)                         (p)->lpVtbl->SetDialogBoxMode(p,a)
-#define IDirect3DDevice9_SetGammaRamp(p,a,b,c)                         (p)->lpVtbl->SetGammaRamp(p,a,b,c)
-#define IDirect3DDevice9_GetGammaRamp(p,a,b)                           (p)->lpVtbl->GetGammaRamp(p,a,b)
-#define IDirect3DDevice9_CreateTexture(p,a,b,c,d,e,f,g,h)              (p)->lpVtbl->CreateTexture(p,a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9_CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i)      (p)->lpVtbl->CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i)
-#define IDirect3DDevice9_CreateCubeTexture(p,a,b,c,d,e,f,g)            (p)->lpVtbl->CreateCubeTexture(p,a,b,c,d,e,f,g)
-#define IDirect3DDevice9_CreateVertexBuffer(p,a,b,c,d,e,f)             (p)->lpVtbl->CreateVertexBuffer(p,a,b,c,d,e,f)
-#define IDirect3DDevice9_CreateIndexBuffer(p,a,b,c,d,e,f)              (p)->lpVtbl->CreateIndexBuffer(p,a,b,c,d,e,f)
-#define IDirect3DDevice9_CreateRenderTarget(p,a,b,c,d,e,f,g,h)         (p)->lpVtbl->CreateRenderTarget(p,a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9_CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h)  (p)->lpVtbl->CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9_UpdateSurface(p,a,b,c,d)                      (p)->lpVtbl->UpdateSurface(p,a,b,c,d)
-#define IDirect3DDevice9_UpdateTexture(p,a,b)                          (p)->lpVtbl->UpdateTexture(p,a,b)
-#define IDirect3DDevice9_GetRenderTargetData(p,a,b)                    (p)->lpVtbl->GetRenderTargetData(p,a,b)
-#define IDirect3DDevice9_GetFrontBufferData(p,a,b)                     (p)->lpVtbl->GetFrontBufferData(p,a,b)
-#define IDirect3DDevice9_StretchRect(p,a,b,c,d,e)                      (p)->lpVtbl->StretchRect(p,a,b,c,d,e)
-#define IDirect3DDevice9_ColorFill(p,a,b,c)                            (p)->lpVtbl->ColorFill(p,a,b,c)
-#define IDirect3DDevice9_CreateOffscreenPlainSurface(p,a,b,c,d,e,f)    (p)->lpVtbl->CreateOffscreenPlainSurface(p,a,b,c,d,e,f)
-#define IDirect3DDevice9_SetRenderTarget(p,a,b)                        (p)->lpVtbl->SetRenderTarget(p,a,b)
-#define IDirect3DDevice9_GetRenderTarget(p,a,b)                        (p)->lpVtbl->GetRenderTarget(p,a,b)
-#define IDirect3DDevice9_SetDepthStencilSurface(p,a)                   (p)->lpVtbl->SetDepthStencilSurface(p,a)
-#define IDirect3DDevice9_GetDepthStencilSurface(p,a)                   (p)->lpVtbl->GetDepthStencilSurface(p,a)
-#define IDirect3DDevice9_BeginScene(p)                                 (p)->lpVtbl->BeginScene(p)
-#define IDirect3DDevice9_EndScene(p)                                   (p)->lpVtbl->EndScene(p)
-#define IDirect3DDevice9_Clear(p,a,b,c,d,e,f)                          (p)->lpVtbl->Clear(p,a,b,c,d,e,f)
-#define IDirect3DDevice9_SetTransform(p,a,b)                           (p)->lpVtbl->SetTransform(p,a,b)
-#define IDirect3DDevice9_GetTransform(p,a,b)                           (p)->lpVtbl->GetTransform(p,a,b)
-#define IDirect3DDevice9_MultiplyTransform(p,a,b)                      (p)->lpVtbl->MultiplyTransform(p,a,b)
-#define IDirect3DDevice9_SetViewport(p,a)                              (p)->lpVtbl->SetViewport(p,a)
-#define IDirect3DDevice9_GetViewport(p,a)                              (p)->lpVtbl->GetViewport(p,a)
-#define IDirect3DDevice9_SetMaterial(p,a)                              (p)->lpVtbl->SetMaterial(p,a)
-#define IDirect3DDevice9_GetMaterial(p,a)                              (p)->lpVtbl->GetMaterial(p,a)
-#define IDirect3DDevice9_SetLight(p,a,b)                               (p)->lpVtbl->SetLight(p,a,b)
-#define IDirect3DDevice9_GetLight(p,a,b)                               (p)->lpVtbl->GetLight(p,a,b)
-#define IDirect3DDevice9_LightEnable(p,a,b)                            (p)->lpVtbl->LightEnable(p,a,b)
-#define IDirect3DDevice9_GetLightEnable(p,a,b)                         (p)->lpVtbl->GetLightEnable(p,a,b)
-#define IDirect3DDevice9_SetClipPlane(p,a,b)                           (p)->lpVtbl->SetClipPlane(p,a,b)
-#define IDirect3DDevice9_GetClipPlane(p,a,b)                           (p)->lpVtbl->GetClipPlane(p,a,b)
-#define IDirect3DDevice9_SetRenderState(p,a,b)                         (p)->lpVtbl->SetRenderState(p,a,b)
-#define IDirect3DDevice9_GetRenderState(p,a,b)                         (p)->lpVtbl->GetRenderState(p,a,b)
-#define IDirect3DDevice9_CreateStateBlock(p,a,b)                       (p)->lpVtbl->CreateStateBlock(p,a,b)
-#define IDirect3DDevice9_BeginStateBlock(p)                            (p)->lpVtbl->BeginStateBlock(p)
-#define IDirect3DDevice9_EndStateBlock(p,a)                            (p)->lpVtbl->EndStateBlock(p,a)
-#define IDirect3DDevice9_SetClipStatus(p,a)                            (p)->lpVtbl->SetClipStatus(p,a)
-#define IDirect3DDevice9_GetClipStatus(p,a)                            (p)->lpVtbl->GetClipStatus(p,a)
-#define IDirect3DDevice9_GetTexture(p,a,b)                             (p)->lpVtbl->GetTexture(p,a,b)
-#define IDirect3DDevice9_SetTexture(p,a,b)                             (p)->lpVtbl->SetTexture(p,a,b)
-#define IDirect3DDevice9_GetTextureStageState(p,a,b,c)                 (p)->lpVtbl->GetTextureStageState(p,a,b,c)
-#define IDirect3DDevice9_SetTextureStageState(p,a,b,c)                 (p)->lpVtbl->SetTextureStageState(p,a,b,c)
-#define IDirect3DDevice9_GetSamplerState(p,a,b,c)                      (p)->lpVtbl->GetSamplerState(p,a,b,c)
-#define IDirect3DDevice9_SetSamplerState(p,a,b,c)                      (p)->lpVtbl->SetSamplerState(p,a,b,c)
-#define IDirect3DDevice9_ValidateDevice(p,a)                           (p)->lpVtbl->ValidateDevice(p,a)
-#define IDirect3DDevice9_SetPaletteEntries(p,a,b)                      (p)->lpVtbl->SetPaletteEntries(p,a,b)
-#define IDirect3DDevice9_GetPaletteEntries(p,a,b)                      (p)->lpVtbl->GetPaletteEntries(p,a,b)
-#define IDirect3DDevice9_SetCurrentTexturePalette(p,a)                 (p)->lpVtbl->SetCurrentTexturePalette(p,a)
-#define IDirect3DDevice9_GetCurrentTexturePalette(p,a)                 (p)->lpVtbl->GetCurrentTexturePalette(p,a)
-#define IDirect3DDevice9_SetScissorRect(p,a)                           (p)->lpVtbl->SetScissorRect(p,a)
-#define IDirect3DDevice9_GetScissorRect(p,a)                           (p)->lpVtbl->GetScissorRect(p,a)
-#define IDirect3DDevice9_SetSoftwareVertexProcessing(p,a)              (p)->lpVtbl->SetSoftwareVertexProcessing(p,a)
-#define IDirect3DDevice9_GetSoftwareVertexProcessing(p)                (p)->lpVtbl->GetSoftwareVertexProcessing(p)
-#define IDirect3DDevice9_SetNPatchMode(p,a)                            (p)->lpVtbl->SetNPatchMode(p,a)
-#define IDirect3DDevice9_GetNPatchMode(p)                              (p)->lpVtbl->GetNPatchMode(p)
-#define IDirect3DDevice9_DrawPrimitive(p,a,b,c)                        (p)->lpVtbl->DrawPrimitive(p,a,b,c)
-#define IDirect3DDevice9_DrawIndexedPrimitive(p,a,b,c,d,e,f)           (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f)
-#define IDirect3DDevice9_DrawPrimitiveUP(p,a,b,c,d)                    (p)->lpVtbl->DrawPrimitiveUP(p,a,b,c,d)
-#define IDirect3DDevice9_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h)     (p)->lpVtbl->DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9_ProcessVertices(p,a,b,c,d,e,f)                (p)->lpVtbl->ProcessVertices(p,a,b,c,d,e,f)
-#define IDirect3DDevice9_CreateVertexDeclaration(p,a,b)                (p)->lpVtbl->CreateVertexDeclaration(p,a,b)
-#define IDirect3DDevice9_SetVertexDeclaration(p,a)                     (p)->lpVtbl->SetVertexDeclaration(p,a)
-#define IDirect3DDevice9_GetVertexDeclaration(p,a)                     (p)->lpVtbl->GetVertexDeclaration(p,a)
-#define IDirect3DDevice9_SetFVF(p,a)                                   (p)->lpVtbl->SetFVF(p,a)
-#define IDirect3DDevice9_GetFVF(p,a)                                   (p)->lpVtbl->GetFVF(p,a)
-#define IDirect3DDevice9_CreateVertexShader(p,a,b)                     (p)->lpVtbl->CreateVertexShader(p,a,b)
-#define IDirect3DDevice9_SetVertexShader(p,a)                          (p)->lpVtbl->SetVertexShader(p,a)
-#define IDirect3DDevice9_GetVertexShader(p,a)                          (p)->lpVtbl->GetVertexShader(p,a)
-#define IDirect3DDevice9_SetVertexShaderConstantF(p,a,b,c)             (p)->lpVtbl->SetVertexShaderConstantF(p,a,b,c)
-#define IDirect3DDevice9_GetVertexShaderConstantF(p,a,b,c)             (p)->lpVtbl->GetVertexShaderConstantF(p,a,b,c)
-#define IDirect3DDevice9_SetVertexShaderConstantI(p,a,b,c)             (p)->lpVtbl->SetVertexShaderConstantI(p,a,b,c)
-#define IDirect3DDevice9_GetVertexShaderConstantI(p,a,b,c)             (p)->lpVtbl->GetVertexShaderConstantI(p,a,b,c)
-#define IDirect3DDevice9_SetVertexShaderConstantB(p,a,b,c)             (p)->lpVtbl->SetVertexShaderConstantB(p,a,b,c)
-#define IDirect3DDevice9_GetVertexShaderConstantB(p,a,b,c)             (p)->lpVtbl->GetVertexShaderConstantB(p,a,b,c)
-#define IDirect3DDevice9_SetStreamSource(p,a,b,c,d)                    (p)->lpVtbl->SetStreamSource(p,a,b,c,d)
-#define IDirect3DDevice9_GetStreamSource(p,a,b,c,d)                    (p)->lpVtbl->GetStreamSource(p,a,b,c,d)
-#define IDirect3DDevice9_SetStreamSourceFreq(p,a,b)                    (p)->lpVtbl->SetStreamSourceFreq(p,a,b)
-#define IDirect3DDevice9_GetStreamSourceFreq(p,a,b)                    (p)->lpVtbl->GetStreamSourceFreq(p,a,b)
-#define IDirect3DDevice9_SetIndices(p,a)                               (p)->lpVtbl->SetIndices(p,a)
-#define IDirect3DDevice9_GetIndices(p,a)                               (p)->lpVtbl->GetIndices(p,a)
-#define IDirect3DDevice9_CreatePixelShader(p,a,b)                      (p)->lpVtbl->CreatePixelShader(p,a,b)
-#define IDirect3DDevice9_SetPixelShader(p,a)                           (p)->lpVtbl->SetPixelShader(p,a)
-#define IDirect3DDevice9_GetPixelShader(p,a)                           (p)->lpVtbl->GetPixelShader(p,a)
-#define IDirect3DDevice9_SetPixelShaderConstantF(p,a,b,c)              (p)->lpVtbl->SetPixelShaderConstantF(p,a,b,c)
-#define IDirect3DDevice9_GetPixelShaderConstantF(p,a,b,c)              (p)->lpVtbl->GetPixelShaderConstantF(p,a,b,c)
-#define IDirect3DDevice9_SetPixelShaderConstantI(p,a,b,c)              (p)->lpVtbl->SetPixelShaderConstantI(p,a,b,c)
-#define IDirect3DDevice9_GetPixelShaderConstantI(p,a,b,c)              (p)->lpVtbl->GetPixelShaderConstantI(p,a,b,c)
-#define IDirect3DDevice9_SetPixelShaderConstantB(p,a,b,c)              (p)->lpVtbl->SetPixelShaderConstantB(p,a,b,c)
-#define IDirect3DDevice9_GetPixelShaderConstantB(p,a,b,c)              (p)->lpVtbl->GetPixelShaderConstantB(p,a,b,c)
-#define IDirect3DDevice9_DrawRectPatch(p,a,b,c)                        (p)->lpVtbl->DrawRectPatch(p,a,b,c)
-#define IDirect3DDevice9_DrawTriPatch(p,a,b,c)                         (p)->lpVtbl->DrawTriPatch(p,a,b,c)
-#define IDirect3DDevice9_DeletePatch(p,a)                              (p)->lpVtbl->DeletePatch(p,a)
-#define IDirect3DDevice9_CreateQuery(p,a,b)                            (p)->lpVtbl->CreateQuery(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DDevice9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DDevice9_AddRef(p)             (p)->AddRef()
-#define IDirect3DDevice9_Release(p)            (p)->Release()
-/*** IDirect3DDevice9 methods ***/
-#define IDirect3DDevice9_TestCooperativeLevel(p)                       (p)->TestCooperativeLevel()
-#define IDirect3DDevice9_GetAvailableTextureMem(p)                     (p)->GetAvailableTextureMem()
-#define IDirect3DDevice9_EvictManagedResources(p)                      (p)->EvictManagedResources()
-#define IDirect3DDevice9_GetDirect3D(p,a)                              (p)->GetDirect3D(a)
-#define IDirect3DDevice9_GetDeviceCaps(p,a)                            (p)->GetDeviceCaps(a)
-#define IDirect3DDevice9_GetDisplayMode(p,a,b)                         (p)->GetDisplayMode(a,b)
-#define IDirect3DDevice9_GetCreationParameters(p,a)                    (p)->GetCreationParameters(a)
-#define IDirect3DDevice9_SetCursorProperties(p,a,b,c)                  (p)->SetCursorProperties(a,b,c)
-#define IDirect3DDevice9_SetCursorPosition(p,a,b,c)                    (p)->SetCursorPosition(a,b,c)
-#define IDirect3DDevice9_ShowCursor(p,a)                               (p)->ShowCursor(a)
-#define IDirect3DDevice9_CreateAdditionalSwapChain(p,a,b)              (p)->CreateAdditionalSwapChain(a,b)
-#define IDirect3DDevice9_GetSwapChain(p,a,b)                           (p)->GetSwapChain(a,b)
-#define IDirect3DDevice9_GetNumberOfSwapChains(p)                      (p)->GetNumberOfSwapChains()
-#define IDirect3DDevice9_Reset(p,a)                                    (p)->Reset(a)
-#define IDirect3DDevice9_Present(p,a,b,c,d)                            (p)->Present(a,b,c,d)
-#define IDirect3DDevice9_GetBackBuffer(p,a,b,c,d)                      (p)->GetBackBuffer(a,b,c,d)
-#define IDirect3DDevice9_GetRasterStatus(p,a,b)                        (p)->GetRasterStatus(a,b)
-#define IDirect3DDevice9_SetDialogBoxMode(p,a)                         (p)->SetDialogBoxMode(a)
-#define IDirect3DDevice9_SetGammaRamp(p,a,b,c)                         (p)->SetGammaRamp(a,b,c)
-#define IDirect3DDevice9_GetGammaRamp(p,a,b)                           (p)->GetGammaRamp(a,b)
-#define IDirect3DDevice9_CreateTexture(p,a,b,c,d,e,f,g,h)              (p)->CreateTexture(a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9_CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i)      (p)->CreateVolumeTexture(a,b,c,d,e,f,g,h,i)
-#define IDirect3DDevice9_CreateCubeTexture(p,a,b,c,d,e,f,g)            (p)->CreateCubeTexture(a,b,c,d,e,f,g)
-#define IDirect3DDevice9_CreateVertexBuffer(p,a,b,c,d,e,f)             (p)->CreateVertexBuffer(a,b,c,d,e,f)
-#define IDirect3DDevice9_CreateIndexBuffer(p,a,b,c,d,e,f)              (p)->CreateIndexBuffer(a,b,c,d,e,f)
-#define IDirect3DDevice9_CreateRenderTarget(p,a,b,c,d,e,f,g,h)         (p)->CreateRenderTarget(a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9_CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h)  (p)->CreateDepthStencilSurface(a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9_UpdateSurface(p,a,b,c,d)                      (p)->UpdateSurface(a,b,c,d)
-#define IDirect3DDevice9_UpdateTexture(p,a,b)                          (p)->UpdateTexture(a,b)
-#define IDirect3DDevice9_GetRenderTargetData(p,a,b)                    (p)->GetRenderTargetData(a,b)
-#define IDirect3DDevice9_GetFrontBufferData(p,a,b)                     (p)->GetFrontBufferData(a,b)
-#define IDirect3DDevice9_StretchRect(p,a,b,c,d,e)                      (p)->StretchRect(a,b,c,d,e)
-#define IDirect3DDevice9_ColorFill(p,a,b,c)                            (p)->ColorFill(a,b,c)
-#define IDirect3DDevice9_CreateOffscreenPlainSurface(p,a,b,c,d,e,f)    (p)->CreateOffscreenPlainSurface(a,b,c,d,e,f)
-#define IDirect3DDevice9_SetRenderTarget(p,a,b)                        (p)->SetRenderTarget(a,b)
-#define IDirect3DDevice9_GetRenderTarget(p,a,b)                        (p)->GetRenderTarget(a,b)
-#define IDirect3DDevice9_SetDepthStencilSurface(p,a)                   (p)->SetDepthStencilSurface(a)
-#define IDirect3DDevice9_GetDepthStencilSurface(p,a)                   (p)->GetDepthStencilSurface(a)
-#define IDirect3DDevice9_BeginScene(p)                                 (p)->BeginScene()
-#define IDirect3DDevice9_EndScene(p)                                   (p)->EndScene()
-#define IDirect3DDevice9_Clear(p,a,b,c,d,e,f)                          (p)->Clear(a,b,c,d,e,f)
-#define IDirect3DDevice9_SetTransform(p,a,b)                           (p)->SetTransform(a,b)
-#define IDirect3DDevice9_GetTransform(p,a,b)                           (p)->GetTransform(a,b)
-#define IDirect3DDevice9_MultiplyTransform(p,a,b)                      (p)->MultiplyTransform(a,b)
-#define IDirect3DDevice9_SetViewport(p,a)                              (p)->SetViewport(a)
-#define IDirect3DDevice9_GetViewport(p,a)                              (p)->GetViewport(a)
-#define IDirect3DDevice9_SetMaterial(p,a)                              (p)->SetMaterial(a)
-#define IDirect3DDevice9_GetMaterial(p,a)                              (p)->GetMaterial(a)
-#define IDirect3DDevice9_SetLight(p,a,b)                               (p)->SetLight(a,b)
-#define IDirect3DDevice9_GetLight(p,a,b)                               (p)->GetLight(a,b)
-#define IDirect3DDevice9_LightEnable(p,a,b)                            (p)->LightEnable(a,b)
-#define IDirect3DDevice9_GetLightEnable(p,a,b)                         (p)->GetLightEnable(a,b)
-#define IDirect3DDevice9_SetClipPlane(p,a,b)                           (p)->SetClipPlane(a,b)
-#define IDirect3DDevice9_GetClipPlane(p,a,b)                           (p)->GetClipPlane(a,b)
-#define IDirect3DDevice9_SetRenderState(p,a,b)                         (p)->SetRenderState(a,b)
-#define IDirect3DDevice9_GetRenderState(p,a,b)                         (p)->GetRenderState(a,b)
-#define IDirect3DDevice9_CreateStateBlock(p,a,b)                       (p)->CreateStateBlock(a,b)
-#define IDirect3DDevice9_BeginStateBlock(p)                            (p)->BeginStateBlock()
-#define IDirect3DDevice9_EndStateBlock(p,a)                            (p)->EndStateBlock(a)
-#define IDirect3DDevice9_SetClipStatus(p,a)                            (p)->SetClipStatus(a)
-#define IDirect3DDevice9_GetClipStatus(p,a)                            (p)->GetClipStatus(a)
-#define IDirect3DDevice9_GetTexture(p,a,b)                             (p)->GetTexture(a,b)
-#define IDirect3DDevice9_SetTexture(p,a,b)                             (p)->SetTexture(a,b)
-#define IDirect3DDevice9_GetTextureStageState(p,a,b,c)                 (p)->GetTextureStageState(a,b,c)
-#define IDirect3DDevice9_SetTextureStageState(p,a,b,c)                 (p)->SetTextureStageState(a,b,c)
-#define IDirect3DDevice9_GetSamplerState(p,a,b,c)                      (p)->GetSamplerState(a,b,c)
-#define IDirect3DDevice9_SetSamplerState(p,a,b,c)                      (p)->SetSamplerState(a,b,c)
-#define IDirect3DDevice9_ValidateDevice(p,a)                           (p)->ValidateDevice(a)
-#define IDirect3DDevice9_SetPaletteEntries(p,a,b)                      (p)->SetPaletteEntries(a,b)
-#define IDirect3DDevice9_GetPaletteEntries(p,a,b)                      (p)->GetPaletteEntries(a,b)
-#define IDirect3DDevice9_SetCurrentTexturePalette(p,a)                 (p)->SetCurrentTexturePalette(a)
-#define IDirect3DDevice9_GetCurrentTexturePalette(p,a)                 (p)->GetCurrentTexturePalette(a)
-#define IDirect3DDevice9_SetScissorRect(p,a)                           (p)->SetScissorRect(a)
-#define IDirect3DDevice9_GetScissorRect(p,a)                           (p)->GetScissorRect(a)
-#define IDirect3DDevice9_SetSoftwareVertexProcessing(p,a)              (p)->SetSoftwareVertexProcessing(a)
-#define IDirect3DDevice9_GetSoftwareVertexProcessing(p)                (p)->GetSoftwareVertexProcessing()
-#define IDirect3DDevice9_SetNPatchMode(p,a)                            (p)->SetNPatchMode(a)
-#define IDirect3DDevice9_GetNPatchMode(p)                              (p)->GetNPatchMode()
-#define IDirect3DDevice9_DrawPrimitive(p,a,b,c)                        (p)->DrawPrimitive(a,b,c)
-#define IDirect3DDevice9_DrawIndexedPrimitive(p,a,b,c,d,e,f)           (p)->DrawIndexedPrimitive(a,b,c,d,e,f)
-#define IDirect3DDevice9_DrawPrimitiveUP(p,a,b,c,d)                    (p)->DrawPrimitiveUP(a,b,c,d)
-#define IDirect3DDevice9_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h)     (p)->DrawIndexedPrimitiveUP(a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9_ProcessVertices(p,a,b,c,d,e,f)                (p)->ProcessVertices(a,b,c,d,e,f)
-#define IDirect3DDevice9_CreateVertexDeclaration(p,a,b)                (p)->CreateVertexDeclaration(a,b)
-#define IDirect3DDevice9_SetVertexDeclaration(p,a)                     (p)->SetVertexDeclaration(a)
-#define IDirect3DDevice9_GetVertexDeclaration(p,a)                     (p)->GetVertexDeclaration(a)
-#define IDirect3DDevice9_SetFVF(p,a)                                   (p)->SetFVF(a)
-#define IDirect3DDevice9_GetFVF(p,a)                                   (p)->GetFVF(a)
-#define IDirect3DDevice9_CreateVertexShader(p,a,b)                     (p)->CreateVertexShader(a,b)
-#define IDirect3DDevice9_SetVertexShader(p,a)                          (p)->SetVertexShader(a)
-#define IDirect3DDevice9_GetVertexShader(p,a)                          (p)->GetVertexShader(a)
-#define IDirect3DDevice9_SetVertexShaderConstantF(p,a,b,c)             (p)->SetVertexShaderConstantF(a,b,c)
-#define IDirect3DDevice9_GetVertexShaderConstantF(p,a,b,c)             (p)->GetVertexShaderConstantF(a,b,c)
-#define IDirect3DDevice9_SetVertexShaderConstantI(p,a,b,c)             (p)->SetVertexShaderConstantI(a,b,c)
-#define IDirect3DDevice9_GetVertexShaderConstantI(p,a,b,c)             (p)->GetVertexShaderConstantI(a,b,c)
-#define IDirect3DDevice9_SetVertexShaderConstantB(p,a,b,c)             (p)->SetVertexShaderConstantB(a,b,c)
-#define IDirect3DDevice9_GetVertexShaderConstantB(p,a,b,c)             (p)->GetVertexShaderConstantB(a,b,c)
-#define IDirect3DDevice9_SetStreamSource(p,a,b,c,d)                    (p)->SetStreamSource(a,b,c,d)
-#define IDirect3DDevice9_GetStreamSource(p,a,b,c,d)                    (p)->GetStreamSource(a,b,c,d)
-#define IDirect3DDevice9_SetStreamSourceFreq(p,a,b)                    (p)->SetStreamSourceFreq(a,b)
-#define IDirect3DDevice9_GetStreamSourceFreq(p,a,b)                    (p)->GetStreamSourceFreq(a,b)
-#define IDirect3DDevice9_SetIndices(p,a)                               (p)->SetIndices(a)
-#define IDirect3DDevice9_GetIndices(p,a)                               (p)->GetIndices(a)
-#define IDirect3DDevice9_CreatePixelShader(p,a,b)                      (p)->CreatePixelShader(a,b)
-#define IDirect3DDevice9_SetPixelShader(p,a)                           (p)->SetPixelShader(a)
-#define IDirect3DDevice9_GetPixelShader(p,a)                           (p)->GetPixelShader(a)
-#define IDirect3DDevice9_SetPixelShaderConstantF(p,a,b,c)              (p)->SetPixelShaderConstantF(a,b,c)
-#define IDirect3DDevice9_GetPixelShaderConstantF(p,a,b,c)              (p)->GetPixelShaderConstantF(a,b,c)
-#define IDirect3DDevice9_SetPixelShaderConstantI(p,a,b,c)              (p)->SetPixelShaderConstantI(a,b,c)
-#define IDirect3DDevice9_GetPixelShaderConstantI(p,a,b,c)              (p)->GetPixelShaderConstantI(a,b,c)
-#define IDirect3DDevice9_SetPixelShaderConstantB(p,a,b,c)              (p)->SetPixelShaderConstantB(a,b,c)
-#define IDirect3DDevice9_GetPixelShaderConstantB(p,a,b,c)              (p)->GetPixelShaderConstantB(a,b,c)
-#define IDirect3DDevice9_DrawRectPatch(p,a,b,c)                        (p)->DrawRectPatch(a,b,c)
-#define IDirect3DDevice9_DrawTriPatch(p,a,b,c)                         (p)->DrawTriPatch(a,b,c)
-#define IDirect3DDevice9_DeletePatch(p,a)                              (p)->DeletePatch(a)
-#define IDirect3DDevice9_CreateQuery(p,a,b)                            (p)->CreateQuery(a,b)
-#endif
-
-
-/*****************************************************************************
- * IDirect3DDevice9Ex interface
- */
-#define INTERFACE IDirect3DDevice9Ex
-DECLARE_INTERFACE_(IDirect3DDevice9Ex,IDirect3DDevice9)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DDevice9 methods ***/
-    STDMETHOD(TestCooperativeLevel)(THIS) PURE;
-    STDMETHOD_(UINT, GetAvailableTextureMem)(THIS) PURE;
-    STDMETHOD(EvictManagedResources)(THIS) PURE;
-    STDMETHOD(GetDirect3D)(THIS_ IDirect3D9** ppD3D9) PURE;
-    STDMETHOD(GetDeviceCaps)(THIS_ D3DCAPS9* pCaps) PURE;
-    STDMETHOD(GetDisplayMode)(THIS_ UINT iSwapChain, D3DDISPLAYMODE* pMode) PURE;
-    STDMETHOD(GetCreationParameters)(THIS_ D3DDEVICE_CREATION_PARAMETERS *pParameters) PURE;
-    STDMETHOD(SetCursorProperties)(THIS_ UINT XHotSpot, UINT YHotSpot, IDirect3DSurface9* pCursorBitmap) PURE;
-    STDMETHOD_(void, SetCursorPosition)(THIS_ int X,int Y, DWORD Flags) PURE;
-    STDMETHOD_(BOOL, ShowCursor)(THIS_ BOOL bShow) PURE;
-    STDMETHOD(CreateAdditionalSwapChain)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters, IDirect3DSwapChain9** pSwapChain) PURE;
-    STDMETHOD(GetSwapChain)(THIS_ UINT iSwapChain, IDirect3DSwapChain9** pSwapChain) PURE;
-    STDMETHOD_(UINT, GetNumberOfSwapChains)(THIS) PURE;
-    STDMETHOD(Reset)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters) PURE;
-    STDMETHOD(Present)(THIS_ CONST RECT* pSourceRect, CONST RECT* pDestRect, HWND hDestWindowOverride, CONST RGNDATA* pDirtyRegion) PURE;
-    STDMETHOD(GetBackBuffer)(THIS_ UINT iSwapChain, UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, IDirect3DSurface9** ppBackBuffer) PURE;
-    STDMETHOD(GetRasterStatus)(THIS_ UINT iSwapChain, D3DRASTER_STATUS* pRasterStatus) PURE;
-    STDMETHOD(SetDialogBoxMode)(THIS_ BOOL bEnableDialogs) PURE;
-    STDMETHOD_(void, SetGammaRamp)(THIS_ UINT iSwapChain, DWORD Flags, CONST D3DGAMMARAMP* pRamp) PURE;
-    STDMETHOD_(void, GetGammaRamp)(THIS_ UINT iSwapChain, D3DGAMMARAMP* pRamp) PURE;
-    STDMETHOD(CreateTexture)(THIS_ UINT Width, UINT Height, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DTexture9** ppTexture, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(CreateVolumeTexture)(THIS_ UINT Width, UINT Height, UINT Depth, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DVolumeTexture9** ppVolumeTexture, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(CreateCubeTexture)(THIS_ UINT EdgeLength, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DCubeTexture9** ppCubeTexture, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(CreateVertexBuffer)(THIS_ UINT Length, DWORD Usage, DWORD FVF, D3DPOOL Pool, IDirect3DVertexBuffer9** ppVertexBuffer, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(CreateIndexBuffer)(THIS_ UINT Length, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DIndexBuffer9** ppIndexBuffer, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(CreateRenderTarget)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Lockable, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(CreateDepthStencilSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Discard, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(UpdateSurface)(THIS_ IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestinationSurface, CONST POINT* pDestPoint) PURE;
-    STDMETHOD(UpdateTexture)(THIS_ IDirect3DBaseTexture9* pSourceTexture, IDirect3DBaseTexture9* pDestinationTexture) PURE;
-    STDMETHOD(GetRenderTargetData)(THIS_ IDirect3DSurface9* pRenderTarget, IDirect3DSurface9* pDestSurface) PURE;
-    STDMETHOD(GetFrontBufferData)(THIS_ UINT iSwapChain, IDirect3DSurface9* pDestSurface) PURE;
-    STDMETHOD(StretchRect)(THIS_ IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestSurface, CONST RECT* pDestRect, D3DTEXTUREFILTERTYPE Filter) PURE;
-    STDMETHOD(ColorFill)(THIS_ IDirect3DSurface9* pSurface, CONST RECT* pRect, D3DCOLOR color) PURE;
-    STDMETHOD(CreateOffscreenPlainSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DPOOL Pool, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
-    STDMETHOD(SetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9* pRenderTarget) PURE;
-    STDMETHOD(GetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9** ppRenderTarget) PURE;
-    STDMETHOD(SetDepthStencilSurface)(THIS_ IDirect3DSurface9* pNewZStencil) PURE;
-    STDMETHOD(GetDepthStencilSurface)(THIS_ IDirect3DSurface9** ppZStencilSurface) PURE;
-    STDMETHOD(BeginScene)(THIS) PURE;
-    STDMETHOD(EndScene)(THIS) PURE;
-    STDMETHOD(Clear)(THIS_ DWORD Count, CONST D3DRECT* pRects, DWORD Flags, D3DCOLOR Color, float Z, DWORD Stencil) PURE;
-    STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX* pMatrix) PURE;
-    STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE State, D3DMATRIX* pMatrix) PURE;
-    STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE, CONST D3DMATRIX*) PURE;
-    STDMETHOD(SetViewport)(THIS_ CONST D3DVIEWPORT9* pViewport) PURE;
-    STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT9* pViewport) PURE;
-    STDMETHOD(SetMaterial)(THIS_ CONST D3DMATERIAL9* pMaterial) PURE;
-    STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL9* pMaterial) PURE;
-    STDMETHOD(SetLight)(THIS_ DWORD Index, CONST D3DLIGHT9*) PURE;
-    STDMETHOD(GetLight)(THIS_ DWORD Index, D3DLIGHT9*) PURE;
-    STDMETHOD(LightEnable)(THIS_ DWORD Index, BOOL Enable) PURE;
-    STDMETHOD(GetLightEnable)(THIS_ DWORD Index, BOOL* pEnable) PURE;
-    STDMETHOD(SetClipPlane)(THIS_ DWORD Index, CONST float* pPlane) PURE;
-    STDMETHOD(GetClipPlane)(THIS_ DWORD Index, float* pPlane) PURE;
-    STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE State, DWORD Value) PURE;
-    STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE State, DWORD* pValue) PURE;
-    STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE Type, IDirect3DStateBlock9** ppSB) PURE;
-    STDMETHOD(BeginStateBlock)(THIS) PURE;
-    STDMETHOD(EndStateBlock)(THIS_ IDirect3DStateBlock9** ppSB) PURE;
-    STDMETHOD(SetClipStatus)(THIS_ CONST D3DCLIPSTATUS9* pClipStatus) PURE;
-    STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS9* pClipStatus) PURE;
-    STDMETHOD(GetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9** ppTexture) PURE;
-    STDMETHOD(SetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9* pTexture) PURE;
-    STDMETHOD(GetTextureStageState)(THIS_ DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD* pValue) PURE;
-    STDMETHOD(SetTextureStageState)(THIS_ DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value) PURE;
-    STDMETHOD(GetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD* pValue) PURE;
-    STDMETHOD(SetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value) PURE;
-    STDMETHOD(ValidateDevice)(THIS_ DWORD* pNumPasses) PURE;
-    STDMETHOD(SetPaletteEntries)(THIS_ UINT PaletteNumber, CONST PALETTEENTRY* pEntries) PURE;
-    STDMETHOD(GetPaletteEntries)(THIS_ UINT PaletteNumber,PALETTEENTRY* pEntries) PURE;
-    STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT PaletteNumber) PURE;
-    STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT *PaletteNumber) 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(SetNPatchMode)(THIS_ float nSegments) PURE;
-    STDMETHOD_(float, GetNPatchMode)(THIS) PURE;
-    STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT StartVertex, UINT PrimitiveCount) PURE;
-    STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount) PURE;
-    STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) PURE;
-    STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT MinVertexIndex, UINT NumVertices, UINT PrimitiveCount, CONST void* pIndexData, D3DFORMAT IndexDataFormat, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) PURE;
-    STDMETHOD(ProcessVertices)(THIS_ UINT SrcStartIndex, UINT DestIndex, UINT VertexCount, IDirect3DVertexBuffer9* pDestBuffer, IDirect3DVertexDeclaration9* pVertexDecl, DWORD Flags) PURE;
-    STDMETHOD(CreateVertexDeclaration)(THIS_ CONST D3DVERTEXELEMENT9* pVertexElements, IDirect3DVertexDeclaration9** ppDecl) PURE;
-    STDMETHOD(SetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9* pDecl) PURE;
-    STDMETHOD(GetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9** ppDecl) PURE;
-    STDMETHOD(SetFVF)(THIS_ DWORD FVF) PURE;
-    STDMETHOD(GetFVF)(THIS_ DWORD* pFVF) PURE;
-    STDMETHOD(CreateVertexShader)(THIS_ CONST DWORD* pFunction, IDirect3DVertexShader9** ppShader) PURE;
-    STDMETHOD(SetVertexShader)(THIS_ IDirect3DVertexShader9* pShader) PURE;
-    STDMETHOD(GetVertexShader)(THIS_ IDirect3DVertexShader9** ppShader) PURE;
-    STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) PURE;
-    STDMETHOD(GetVertexShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE;
-    STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) PURE;
-    STDMETHOD(GetVertexShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE;
-    STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT StartRegister, CONST BOOL* pConstantData, UINT  BoolCount) PURE;
-    STDMETHOD(GetVertexShaderConstantB)(THIS_ UINT StartRegister, BOOL* pConstantData, UINT BoolCount) PURE;
-    STDMETHOD(SetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9* pStreamData, UINT OffsetInBytes, UINT Stride) PURE;
-    STDMETHOD(GetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9** ppStreamData, UINT* OffsetInBytes, UINT* pStride) PURE;
-    STDMETHOD(SetStreamSourceFreq)(THIS_ UINT StreamNumber, UINT Divider) PURE;
-    STDMETHOD(GetStreamSourceFreq)(THIS_ UINT StreamNumber, UINT* Divider) PURE;
-    STDMETHOD(SetIndices)(THIS_ IDirect3DIndexBuffer9* pIndexData) PURE;
-    STDMETHOD(GetIndices)(THIS_ IDirect3DIndexBuffer9** ppIndexData) PURE;
-    STDMETHOD(CreatePixelShader)(THIS_ CONST DWORD* pFunction, IDirect3DPixelShader9** ppShader) PURE;
-    STDMETHOD(SetPixelShader)(THIS_ IDirect3DPixelShader9* pShader) PURE;
-    STDMETHOD(GetPixelShader)(THIS_ IDirect3DPixelShader9** ppShader) PURE;
-    STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) PURE;
-    STDMETHOD(GetPixelShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE;
-    STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) PURE;
-    STDMETHOD(GetPixelShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE;
-    STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT StartRegister, CONST BOOL* pConstantData, UINT  BoolCount) PURE;
-    STDMETHOD(GetPixelShaderConstantB)(THIS_ UINT StartRegister, BOOL* pConstantData, UINT BoolCount) PURE;
-    STDMETHOD(DrawRectPatch)(THIS_ UINT Handle, CONST float* pNumSegs, CONST D3DRECTPATCH_INFO* pRectPatchInfo) PURE;
-    STDMETHOD(DrawTriPatch)(THIS_ UINT Handle, CONST float* pNumSegs, CONST D3DTRIPATCH_INFO* pTriPatchInfo) PURE;
-    STDMETHOD(DeletePatch)(THIS_ UINT Handle) PURE;
-    STDMETHOD(CreateQuery)(THIS_ D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery) PURE;
-    /* IDirect3DDevice9Ex methods */
-    STDMETHOD(SetConvolutionMonoKernel)(THIS_ UINT width, UINT height, float *rows, float *columns) PURE;
-    STDMETHOD(ComposeRects)(THIS_ IDirect3DSurface9 *src_surface, IDirect3DSurface9 *dst_surface,
-            IDirect3DVertexBuffer9 *src_descs, UINT rect_count, IDirect3DVertexBuffer9 *dst_descs,
-            D3DCOMPOSERECTSOP operation, INT offset_x, INT offset_y) PURE;
-    STDMETHOD(PresentEx)(THIS_ CONST RECT *pSourceRect, CONST RECT *pDestRect, HWND hDestWindowOverride, CONST RGNDATA *pDirtyRegion, DWORD dwFlags) PURE;
-    STDMETHOD(GetGPUThreadPriority)(THIS_ INT *pPriority) PURE;
-    STDMETHOD(SetGPUThreadPriority)(THIS_ INT Priority) PURE;
-    STDMETHOD(WaitForVBlank)(THIS_ UINT iSwapChain) PURE;
-    STDMETHOD(CheckResourceResidency)(THIS_ IDirect3DResource9 **resources, UINT32 resource_count) PURE;
-    STDMETHOD(SetMaximumFrameLatency)(THIS_ UINT MaxLatency) PURE;
-    STDMETHOD(GetMaximumFrameLatency)(THIS_ UINT *pMaxLatenxy) PURE;
-    STDMETHOD(CheckDeviceState)(THIS_ HWND dst_window) PURE;
-    STDMETHOD(CreateRenderTargetEx)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultiSampleQuality, BOOL Lockable, IDirect3DSurface9 ** ppSurface, HANDLE *pSharedHandle, DWORD Usage) PURE;
-    STDMETHOD(CreateOffscreenPlainSurfaceEx)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DPOOL Pool, IDirect3DSurface9 **ppSurface, HANDLE *pSharedHandle, DWORD Usage) PURE;
-    STDMETHOD(CreateDepthStencilSurfaceEx)(THIS_ UINT width, UINT height, D3DFORMAT format,
-            D3DMULTISAMPLE_TYPE multisample_type, DWORD multisample_quality, BOOL discard,
-            IDirect3DSurface9 **surface, HANDLE *shared_handle, DWORD usage) PURE;
-    STDMETHOD(ResetEx)(THIS_ D3DPRESENT_PARAMETERS *pPresentationParameters, D3DDISPLAYMODEEX *pFullscreenDisplayMode) PURE;
-    STDMETHOD(GetDisplayModeEx)(THIS_ UINT iSwapChain, D3DDISPLAYMODEEX *pMode, D3DDISPLAYROTATION *pRotation) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DDevice9Ex_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DDevice9Ex_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirect3DDevice9Ex_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirect3DDevice9 methods ***/
-#define IDirect3DDevice9Ex_TestCooperativeLevel(p)                       (p)->lpVtbl->TestCooperativeLevel(p)
-#define IDirect3DDevice9Ex_GetAvailableTextureMem(p)                     (p)->lpVtbl->GetAvailableTextureMem(p)
-#define IDirect3DDevice9Ex_EvictManagedResources(p)                      (p)->lpVtbl->EvictManagedResources(p)
-#define IDirect3DDevice9Ex_GetDirect3D(p,a)                              (p)->lpVtbl->GetDirect3D(p,a)
-#define IDirect3DDevice9Ex_GetDeviceCaps(p,a)                            (p)->lpVtbl->GetDeviceCaps(p,a)
-#define IDirect3DDevice9Ex_GetDisplayMode(p,a,b)                         (p)->lpVtbl->GetDisplayMode(p,a,b)
-#define IDirect3DDevice9Ex_GetCreationParameters(p,a)                    (p)->lpVtbl->GetCreationParameters(p,a)
-#define IDirect3DDevice9Ex_SetCursorProperties(p,a,b,c)                  (p)->lpVtbl->SetCursorProperties(p,a,b,c)
-#define IDirect3DDevice9Ex_SetCursorPosition(p,a,b,c)                    (p)->lpVtbl->SetCursorPosition(p,a,b,c)
-#define IDirect3DDevice9Ex_ShowCursor(p,a)                               (p)->lpVtbl->ShowCursor(p,a)
-#define IDirect3DDevice9Ex_CreateAdditionalSwapChain(p,a,b)              (p)->lpVtbl->CreateAdditionalSwapChain(p,a,b)
-#define IDirect3DDevice9Ex_GetSwapChain(p,a,b)                           (p)->lpVtbl->GetSwapChain(p,a,b)
-#define IDirect3DDevice9Ex_GetNumberOfSwapChains(p)                      (p)->lpVtbl->GetNumberOfSwapChains(p)
-#define IDirect3DDevice9Ex_Reset(p,a)                                    (p)->lpVtbl->Reset(p,a)
-#define IDirect3DDevice9Ex_Present(p,a,b,c,d)                            (p)->lpVtbl->Present(p,a,b,c,d)
-#define IDirect3DDevice9Ex_GetBackBuffer(p,a,b,c,d)                      (p)->lpVtbl->GetBackBuffer(p,a,b,c,d)
-#define IDirect3DDevice9Ex_GetRasterStatus(p,a,b)                        (p)->lpVtbl->GetRasterStatus(p,a,b)
-#define IDirect3DDevice9Ex_SetDialogBoxMode(p,a)                         (p)->lpVtbl->SetDialogBoxMode(p,a)
-#define IDirect3DDevice9Ex_SetGammaRamp(p,a,b,c)                         (p)->lpVtbl->SetGammaRamp(p,a,b,c)
-#define IDirect3DDevice9Ex_GetGammaRamp(p,a,b)                           (p)->lpVtbl->GetGammaRamp(p,a,b)
-#define IDirect3DDevice9Ex_CreateTexture(p,a,b,c,d,e,f,g,h)              (p)->lpVtbl->CreateTexture(p,a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9Ex_CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i)      (p)->lpVtbl->CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i)
-#define IDirect3DDevice9Ex_CreateCubeTexture(p,a,b,c,d,e,f,g)            (p)->lpVtbl->CreateCubeTexture(p,a,b,c,d,e,f,g)
-#define IDirect3DDevice9Ex_CreateVertexBuffer(p,a,b,c,d,e,f)             (p)->lpVtbl->CreateVertexBuffer(p,a,b,c,d,e,f)
-#define IDirect3DDevice9Ex_CreateIndexBuffer(p,a,b,c,d,e,f)              (p)->lpVtbl->CreateIndexBuffer(p,a,b,c,d,e,f)
-#define IDirect3DDevice9Ex_CreateRenderTarget(p,a,b,c,d,e,f,g,h)         (p)->lpVtbl->CreateRenderTarget(p,a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9Ex_CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h)  (p)->lpVtbl->CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9Ex_UpdateSurface(p,a,b,c,d)                      (p)->lpVtbl->UpdateSurface(p,a,b,c,d)
-#define IDirect3DDevice9Ex_UpdateTexture(p,a,b)                          (p)->lpVtbl->UpdateTexture(p,a,b)
-#define IDirect3DDevice9Ex_GetRenderTargetData(p,a,b)                    (p)->lpVtbl->GetRenderTargetData(p,a,b)
-#define IDirect3DDevice9Ex_GetFrontBufferData(p,a,b)                     (p)->lpVtbl->GetFrontBufferData(p,a,b)
-#define IDirect3DDevice9Ex_StretchRect(p,a,b,c,d,e)                      (p)->lpVtbl->StretchRect(p,a,b,c,d,e)
-#define IDirect3DDevice9Ex_ColorFill(p,a,b,c)                            (p)->lpVtbl->ColorFill(p,a,b,c)
-#define IDirect3DDevice9Ex_CreateOffscreenPlainSurface(p,a,b,c,d,e,f)    (p)->lpVtbl->CreateOffscreenPlainSurface(p,a,b,c,d,e,f)
-#define IDirect3DDevice9Ex_SetRenderTarget(p,a,b)                        (p)->lpVtbl->SetRenderTarget(p,a,b)
-#define IDirect3DDevice9Ex_GetRenderTarget(p,a,b)                        (p)->lpVtbl->GetRenderTarget(p,a,b)
-#define IDirect3DDevice9Ex_SetDepthStencilSurface(p,a)                   (p)->lpVtbl->SetDepthStencilSurface(p,a)
-#define IDirect3DDevice9Ex_GetDepthStencilSurface(p,a)                   (p)->lpVtbl->GetDepthStencilSurface(p,a)
-#define IDirect3DDevice9Ex_BeginScene(p)                                 (p)->lpVtbl->BeginScene(p)
-#define IDirect3DDevice9Ex_EndScene(p)                                   (p)->lpVtbl->EndScene(p)
-#define IDirect3DDevice9Ex_Clear(p,a,b,c,d,e,f)                          (p)->lpVtbl->Clear(p,a,b,c,d,e,f)
-#define IDirect3DDevice9Ex_SetTransform(p,a,b)                           (p)->lpVtbl->SetTransform(p,a,b)
-#define IDirect3DDevice9Ex_GetTransform(p,a,b)                           (p)->lpVtbl->GetTransform(p,a,b)
-#define IDirect3DDevice9Ex_MultiplyTransform(p,a,b)                      (p)->lpVtbl->MultiplyTransform(p,a,b)
-#define IDirect3DDevice9Ex_SetViewport(p,a)                              (p)->lpVtbl->SetViewport(p,a)
-#define IDirect3DDevice9Ex_GetViewport(p,a)                              (p)->lpVtbl->GetViewport(p,a)
-#define IDirect3DDevice9Ex_SetMaterial(p,a)                              (p)->lpVtbl->SetMaterial(p,a)
-#define IDirect3DDevice9Ex_GetMaterial(p,a)                              (p)->lpVtbl->GetMaterial(p,a)
-#define IDirect3DDevice9Ex_SetLight(p,a,b)                               (p)->lpVtbl->SetLight(p,a,b)
-#define IDirect3DDevice9Ex_GetLight(p,a,b)                               (p)->lpVtbl->GetLight(p,a,b)
-#define IDirect3DDevice9Ex_LightEnable(p,a,b)                            (p)->lpVtbl->LightEnable(p,a,b)
-#define IDirect3DDevice9Ex_GetLightEnable(p,a,b)                         (p)->lpVtbl->GetLightEnable(p,a,b)
-#define IDirect3DDevice9Ex_SetClipPlane(p,a,b)                           (p)->lpVtbl->SetClipPlane(p,a,b)
-#define IDirect3DDevice9Ex_GetClipPlane(p,a,b)                           (p)->lpVtbl->GetClipPlane(p,a,b)
-#define IDirect3DDevice9Ex_SetRenderState(p,a,b)                         (p)->lpVtbl->SetRenderState(p,a,b)
-#define IDirect3DDevice9Ex_GetRenderState(p,a,b)                         (p)->lpVtbl->GetRenderState(p,a,b)
-#define IDirect3DDevice9Ex_CreateStateBlock(p,a,b)                       (p)->lpVtbl->CreateStateBlock(p,a,b)
-#define IDirect3DDevice9Ex_BeginStateBlock(p)                            (p)->lpVtbl->BeginStateBlock(p)
-#define IDirect3DDevice9Ex_EndStateBlock(p,a)                            (p)->lpVtbl->EndStateBlock(p,a)
-#define IDirect3DDevice9Ex_SetClipStatus(p,a)                            (p)->lpVtbl->SetClipStatus(p,a)
-#define IDirect3DDevice9Ex_GetClipStatus(p,a)                            (p)->lpVtbl->GetClipStatus(p,a)
-#define IDirect3DDevice9Ex_GetTexture(p,a,b)                             (p)->lpVtbl->GetTexture(p,a,b)
-#define IDirect3DDevice9Ex_SetTexture(p,a,b)                             (p)->lpVtbl->SetTexture(p,a,b)
-#define IDirect3DDevice9Ex_GetTextureStageState(p,a,b,c)                 (p)->lpVtbl->GetTextureStageState(p,a,b,c)
-#define IDirect3DDevice9Ex_SetTextureStageState(p,a,b,c)                 (p)->lpVtbl->SetTextureStageState(p,a,b,c)
-#define IDirect3DDevice9Ex_GetSamplerState(p,a,b,c)                      (p)->lpVtbl->GetSamplerState(p,a,b,c)
-#define IDirect3DDevice9Ex_SetSamplerState(p,a,b,c)                      (p)->lpVtbl->SetSamplerState(p,a,b,c)
-#define IDirect3DDevice9Ex_ValidateDevice(p,a)                           (p)->lpVtbl->ValidateDevice(p,a)
-#define IDirect3DDevice9Ex_SetPaletteEntries(p,a,b)                      (p)->lpVtbl->SetPaletteEntries(p,a,b)
-#define IDirect3DDevice9Ex_GetPaletteEntries(p,a,b)                      (p)->lpVtbl->GetPaletteEntries(p,a,b)
-#define IDirect3DDevice9Ex_SetCurrentTexturePalette(p,a)                 (p)->lpVtbl->SetCurrentTexturePalette(p,a)
-#define IDirect3DDevice9Ex_GetCurrentTexturePalette(p,a)                 (p)->lpVtbl->GetCurrentTexturePalette(p,a)
-#define IDirect3DDevice9Ex_SetScissorRect(p,a)                           (p)->lpVtbl->SetScissorRect(p,a)
-#define IDirect3DDevice9Ex_GetScissorRect(p,a)                           (p)->lpVtbl->GetScissorRect(p,a)
-#define IDirect3DDevice9Ex_SetSoftwareVertexProcessing(p,a)              (p)->lpVtbl->SetSoftwareVertexProcessing(p,a)
-#define IDirect3DDevice9Ex_GetSoftwareVertexProcessing(p)                (p)->lpVtbl->GetSoftwareVertexProcessing(p)
-#define IDirect3DDevice9Ex_SetNPatchMode(p,a)                            (p)->lpVtbl->SetNPatchMode(p,a)
-#define IDirect3DDevice9Ex_GetNPatchMode(p)                              (p)->lpVtbl->GetNPatchMode(p)
-#define IDirect3DDevice9Ex_DrawPrimitive(p,a,b,c)                        (p)->lpVtbl->DrawPrimitive(p,a,b,c)
-#define IDirect3DDevice9Ex_DrawIndexedPrimitive(p,a,b,c,d,e,f)           (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f)
-#define IDirect3DDevice9Ex_DrawPrimitiveUP(p,a,b,c,d)                    (p)->lpVtbl->DrawPrimitiveUP(p,a,b,c,d)
-#define IDirect3DDevice9Ex_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h)     (p)->lpVtbl->DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9Ex_ProcessVertices(p,a,b,c,d,e,f)                (p)->lpVtbl->ProcessVertices(p,a,b,c,d,e,f)
-#define IDirect3DDevice9Ex_CreateVertexDeclaration(p,a,b)                (p)->lpVtbl->CreateVertexDeclaration(p,a,b)
-#define IDirect3DDevice9Ex_SetVertexDeclaration(p,a)                     (p)->lpVtbl->SetVertexDeclaration(p,a)
-#define IDirect3DDevice9Ex_GetVertexDeclaration(p,a)                     (p)->lpVtbl->GetVertexDeclaration(p,a)
-#define IDirect3DDevice9Ex_SetFVF(p,a)                                   (p)->lpVtbl->SetFVF(p,a)
-#define IDirect3DDevice9Ex_GetFVF(p,a)                                   (p)->lpVtbl->GetFVF(p,a)
-#define IDirect3DDevice9Ex_CreateVertexShader(p,a,b)                     (p)->lpVtbl->CreateVertexShader(p,a,b)
-#define IDirect3DDevice9Ex_SetVertexShader(p,a)                          (p)->lpVtbl->SetVertexShader(p,a)
-#define IDirect3DDevice9Ex_GetVertexShader(p,a)                          (p)->lpVtbl->GetVertexShader(p,a)
-#define IDirect3DDevice9Ex_SetVertexShaderConstantF(p,a,b,c)             (p)->lpVtbl->SetVertexShaderConstantF(p,a,b,c)
-#define IDirect3DDevice9Ex_GetVertexShaderConstantF(p,a,b,c)             (p)->lpVtbl->GetVertexShaderConstantF(p,a,b,c)
-#define IDirect3DDevice9Ex_SetVertexShaderConstantI(p,a,b,c)             (p)->lpVtbl->SetVertexShaderConstantI(p,a,b,c)
-#define IDirect3DDevice9Ex_GetVertexShaderConstantI(p,a,b,c)             (p)->lpVtbl->GetVertexShaderConstantI(p,a,b,c)
-#define IDirect3DDevice9Ex_SetVertexShaderConstantB(p,a,b,c)             (p)->lpVtbl->SetVertexShaderConstantB(p,a,b,c)
-#define IDirect3DDevice9Ex_GetVertexShaderConstantB(p,a,b,c)             (p)->lpVtbl->GetVertexShaderConstantB(p,a,b,c)
-#define IDirect3DDevice9Ex_SetStreamSource(p,a,b,c,d)                    (p)->lpVtbl->SetStreamSource(p,a,b,c,d)
-#define IDirect3DDevice9Ex_GetStreamSource(p,a,b,c,d)                    (p)->lpVtbl->GetStreamSource(p,a,b,c,d)
-#define IDirect3DDevice9Ex_SetStreamSourceFreq(p,a,b)                    (p)->lpVtbl->SetStreamSourceFreq(p,a,b)
-#define IDirect3DDevice9Ex_GetStreamSourceFreq(p,a,b)                    (p)->lpVtbl->GetStreamSourceFreq(p,a,b)
-#define IDirect3DDevice9Ex_SetIndices(p,a)                               (p)->lpVtbl->SetIndices(p,a)
-#define IDirect3DDevice9Ex_GetIndices(p,a)                               (p)->lpVtbl->GetIndices(p,a)
-#define IDirect3DDevice9Ex_CreatePixelShader(p,a,b)                      (p)->lpVtbl->CreatePixelShader(p,a,b)
-#define IDirect3DDevice9Ex_SetPixelShader(p,a)                           (p)->lpVtbl->SetPixelShader(p,a)
-#define IDirect3DDevice9Ex_GetPixelShader(p,a)                           (p)->lpVtbl->GetPixelShader(p,a)
-#define IDirect3DDevice9Ex_SetPixelShaderConstantF(p,a,b,c)              (p)->lpVtbl->SetPixelShaderConstantF(p,a,b,c)
-#define IDirect3DDevice9Ex_GetPixelShaderConstantF(p,a,b,c)              (p)->lpVtbl->GetPixelShaderConstantF(p,a,b,c)
-#define IDirect3DDevice9Ex_SetPixelShaderConstantI(p,a,b,c)              (p)->lpVtbl->SetPixelShaderConstantI(p,a,b,c)
-#define IDirect3DDevice9Ex_GetPixelShaderConstantI(p,a,b,c)              (p)->lpVtbl->GetPixelShaderConstantI(p,a,b,c)
-#define IDirect3DDevice9Ex_SetPixelShaderConstantB(p,a,b,c)              (p)->lpVtbl->SetPixelShaderConstantB(p,a,b,c)
-#define IDirect3DDevice9Ex_GetPixelShaderConstantB(p,a,b,c)              (p)->lpVtbl->GetPixelShaderConstantB(p,a,b,c)
-#define IDirect3DDevice9Ex_DrawRectPatch(p,a,b,c)                        (p)->lpVtbl->DrawRectPatch(p,a,b,c)
-#define IDirect3DDevice9Ex_DrawTriPatch(p,a,b,c)                         (p)->lpVtbl->DrawTriPatch(p,a,b,c)
-#define IDirect3DDevice9Ex_DeletePatch(p,a)                              (p)->lpVtbl->DeletePatch(p,a)
-#define IDirect3DDevice9Ex_CreateQuery(p,a,b)                            (p)->lpVtbl->CreateQuery(p,a,b)
-/* IDirect3DDevice9Ex */
-#define IDirect3DDevice9Ex_SetConvolutionMonoKernel(p,a,b,c,d)           (p)->lpVtbl->SetConvolutionMonoKernel(p,a,b,c,d)
-#define IDirect3DDevice9Ex_ComposeRects(p,a,b,c,d,e,f,g,h)               (p)->lpVtbl->ComposeRects(p,a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9Ex_PresentEx(p,a,b,c,d,e)                        (p)->lpVtbl->PresentEx(p,a,b,c,d,e)
-#define IDirect3DDevice9Ex_GetGPUThreadPriority(p,a)                     (p)->lpVtbl->GetGPUThreadPriority(p,a)
-#define IDirect3DDevice9Ex_SetGPUThreadPriority(p,a)                     (p)->lpVtbl->SetGPUThreadPriority(p,a)
-#define IDirect3DDevice9Ex_WaitForVBlank(p,a)                            (p)->lpVtbl->WaitForVBlank(p,a)
-#define IDirect3DDevice9Ex_CheckResourceResidency(p,a,b)                 (p)->lpVtbl->CheckResourceResidency(p,a,b)
-#define IDirect3DDevice9Ex_SetMaximumFrameLatency(p,a)                   (p)->lpVtbl->SetMaximumFrameLatency(p,a)
-#define IDirect3DDevice9Ex_GetMaximumFrameLatency(p,a)                   (p)->lpVtbl->GetMaximumFrameLatency(p,a)
-#define IDirect3DDevice9Ex_CheckDeviceState(p,a)                         (p)->lpVtbl->CheckDeviceState(p,a)
-#define IDirect3DDevice9Ex_CreateRenderTargetEx(p,a,b,c,d,e,f,g,h,i)     (p)->lpVtbl->CreateRenderTargetEx(p,a,b,c,d,e,f,g,h,i)
-#define IDirect3DDevice9Ex_CreateOffscreenPlainSurfaceEx(p,a,b,c,d,e,f,g)(p)->lpVtbl->CreateOffscreenPlainSurfaceEx(p,a,b,c,d,e,f,g)
-#define IDirect3DDevice9Ex_CreateDepthStencilSurfaceEx(p,a,b,c,d,e,f,g,h,i)(p)->lpVtbl->CreateDepthStencilSurfaceEx(p,a,b,c,d,e,f,g,h,i)
-#define IDirect3DDevice9Ex_ResetEx(p,a,b)                                 (p)->lpVtbl->ResetEx(p,a,b)
-#define IDirect3DDevice9Ex_GetDisplayModeEx(p,a,b,c)                     (p)->lpVtbl->GetDisplayModeEx(p,a,b,c)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DDevice9Ex_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirect3DDevice9Ex_AddRef(p)             (p)->AddRef()
-#define IDirect3DDevice9Ex_Release(p)            (p)->Release()
-/*** IDirect3DDevice9 methods ***/
-#define IDirect3DDevice9Ex_TestCooperativeLevel(p)                       (p)->TestCooperativeLevel()
-#define IDirect3DDevice9Ex_GetAvailableTextureMem(p)                     (p)->GetAvailableTextureMem()
-#define IDirect3DDevice9Ex_EvictManagedResources(p)                      (p)->EvictManagedResources()
-#define IDirect3DDevice9Ex_GetDirect3D(p,a)                              (p)->GetDirect3D(a)
-#define IDirect3DDevice9Ex_GetDeviceCaps(p,a)                            (p)->GetDeviceCaps(a)
-#define IDirect3DDevice9Ex_GetDisplayMode(p,a,b)                         (p)->GetDisplayMode(a,b)
-#define IDirect3DDevice9Ex_GetCreationParameters(p,a)                    (p)->GetCreationParameters(a)
-#define IDirect3DDevice9Ex_SetCursorProperties(p,a,b,c)                  (p)->SetCursorProperties(a,b,c)
-#define IDirect3DDevice9Ex_SetCursorPosition(p,a,b,c)                    (p)->SetCursorPosition(a,b,c)
-#define IDirect3DDevice9Ex_ShowCursor(p,a)                               (p)->ShowCursor(a)
-#define IDirect3DDevice9Ex_CreateAdditionalSwapChain(p,a,b)              (p)->CreateAdditionalSwapChain(a,b)
-#define IDirect3DDevice9Ex_GetSwapChain(p,a,b)                           (p)->GetSwapChain(a,b)
-#define IDirect3DDevice9Ex_GetNumberOfSwapChains(p)                      (p)->GetNumberOfSwapChains()
-#define IDirect3DDevice9Ex_Reset(p,a)                                    (p)->Reset(a)
-#define IDirect3DDevice9Ex_Present(p,a,b,c,d)                            (p)->Present(a,b,c,d)
-#define IDirect3DDevice9Ex_GetBackBuffer(p,a,b,c,d)                      (p)->GetBackBuffer(a,b,c,d)
-#define IDirect3DDevice9Ex_GetRasterStatus(p,a,b)                        (p)->GetRasterStatus(a,b)
-#define IDirect3DDevice9Ex_SetDialogBoxMode(p,a)                         (p)->SetDialogBoxMode(a)
-#define IDirect3DDevice9Ex_SetGammaRamp(p,a,b,c)                         (p)->SetGammaRamp(a,b,c)
-#define IDirect3DDevice9Ex_GetGammaRamp(p,a,b)                           (p)->GetGammaRamp(a,b)
-#define IDirect3DDevice9Ex_CreateTexture(p,a,b,c,d,e,f,g,h)              (p)->CreateTexture(a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9Ex_CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i)      (p)->CreateVolumeTexture(a,b,c,d,e,f,g,h,i)
-#define IDirect3DDevice9Ex_CreateCubeTexture(p,a,b,c,d,e,f,g)            (p)->CreateCubeTexture(a,b,c,d,e,f,g)
-#define IDirect3DDevice9Ex_CreateVertexBuffer(p,a,b,c,d,e,f)             (p)->CreateVertexBuffer(a,b,c,d,e,f)
-#define IDirect3DDevice9Ex_CreateIndexBuffer(p,a,b,c,d,e,f)              (p)->CreateIndexBuffer(a,b,c,d,e,f)
-#define IDirect3DDevice9Ex_CreateRenderTarget(p,a,b,c,d,e,f,g,h)         (p)->CreateRenderTarget(a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9Ex_CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h)  (p)->CreateDepthStencilSurface(a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9Ex_UpdateSurface(p,a,b,c,d)                      (p)->UpdateSurface(a,b,c,d)
-#define IDirect3DDevice9Ex_UpdateTexture(p,a,b)                          (p)->UpdateTexture(a,b)
-#define IDirect3DDevice9Ex_GetRenderTargetData(p,a,b)                    (p)->GetRenderTargetData(a,b)
-#define IDirect3DDevice9Ex_GetFrontBufferData(p,a,b)                     (p)->GetFrontBufferData(a,b)
-#define IDirect3DDevice9Ex_StretchRect(p,a,b,c,d,e)                      (p)->StretchRect(a,b,c,d,e)
-#define IDirect3DDevice9Ex_ColorFill(p,a,b,c)                            (p)->ColorFill(a,b,c)
-#define IDirect3DDevice9Ex_CreateOffscreenPlainSurface(p,a,b,c,d,e,f)    (p)->CreateOffscreenPlainSurface(a,b,c,d,e,f)
-#define IDirect3DDevice9Ex_SetRenderTarget(p,a,b)                        (p)->SetRenderTarget(a,b)
-#define IDirect3DDevice9Ex_GetRenderTarget(p,a,b)                        (p)->GetRenderTarget(a,b)
-#define IDirect3DDevice9Ex_SetDepthStencilSurface(p,a)                   (p)->SetDepthStencilSurface(a)
-#define IDirect3DDevice9Ex_GetDepthStencilSurface(p,a)                   (p)->GetDepthStencilSurface(a)
-#define IDirect3DDevice9Ex_BeginScene(p)                                 (p)->BeginScene()
-#define IDirect3DDevice9Ex_EndScene(p)                                   (p)->EndScene()
-#define IDirect3DDevice9Ex_Clear(p,a,b,c,d,e,f)                          (p)->Clear(a,b,c,d,e,f)
-#define IDirect3DDevice9Ex_SetTransform(p,a,b)                           (p)->SetTransform(a,b)
-#define IDirect3DDevice9Ex_GetTransform(p,a,b)                           (p)->GetTransform(a,b)
-#define IDirect3DDevice9Ex_MultiplyTransform(p,a,b)                      (p)->MultiplyTransform(a,b)
-#define IDirect3DDevice9Ex_SetViewport(p,a)                              (p)->SetViewport(a)
-#define IDirect3DDevice9Ex_GetViewport(p,a)                              (p)->GetViewport(a)
-#define IDirect3DDevice9Ex_SetMaterial(p,a)                              (p)->SetMaterial(a)
-#define IDirect3DDevice9Ex_GetMaterial(p,a)                              (p)->GetMaterial(a)
-#define IDirect3DDevice9Ex_SetLight(p,a,b)                               (p)->SetLight(a,b)
-#define IDirect3DDevice9Ex_GetLight(p,a,b)                               (p)->GetLight(a,b)
-#define IDirect3DDevice9Ex_LightEnable(p,a,b)                            (p)->LightEnable(a,b)
-#define IDirect3DDevice9Ex_GetLightEnable(p,a,b)                         (p)->GetLightEnable(a,b)
-#define IDirect3DDevice9Ex_SetClipPlane(p,a,b)                           (p)->SetClipPlane(a,b)
-#define IDirect3DDevice9Ex_GetClipPlane(p,a,b)                           (p)->GetClipPlane(a,b)
-#define IDirect3DDevice9Ex_SetRenderState(p,a,b)                         (p)->SetRenderState(a,b)
-#define IDirect3DDevice9Ex_GetRenderState(p,a,b)                         (p)->GetRenderState(a,b)
-#define IDirect3DDevice9Ex_CreateStateBlock(p,a,b)                       (p)->CreateStateBlock(a,b)
-#define IDirect3DDevice9Ex_BeginStateBlock(p)                            (p)->BeginStateBlock()
-#define IDirect3DDevice9Ex_EndStateBlock(p,a)                            (p)->EndStateBlock(a)
-#define IDirect3DDevice9Ex_SetClipStatus(p,a)                            (p)->SetClipStatus(a)
-#define IDirect3DDevice9Ex_GetClipStatus(p,a)                            (p)->GetClipStatus(a)
-#define IDirect3DDevice9Ex_GetTexture(p,a,b)                             (p)->GetTexture(a,b)
-#define IDirect3DDevice9Ex_SetTexture(p,a,b)                             (p)->SetTexture(a,b)
-#define IDirect3DDevice9Ex_GetTextureStageState(p,a,b,c)                 (p)->GetTextureStageState(a,b,c)
-#define IDirect3DDevice9Ex_SetTextureStageState(p,a,b,c)                 (p)->SetTextureStageState(a,b,c)
-#define IDirect3DDevice9Ex_GetSamplerState(p,a,b,c)                      (p)->GetSamplerState(a,b,c)
-#define IDirect3DDevice9Ex_SetSamplerState(p,a,b,c)                      (p)->SetSamplerState(a,b,c)
-#define IDirect3DDevice9Ex_ValidateDevice(p,a)                           (p)->ValidateDevice(a)
-#define IDirect3DDevice9Ex_SetPaletteEntries(p,a,b)                      (p)->SetPaletteEntries(a,b)
-#define IDirect3DDevice9Ex_GetPaletteEntries(p,a,b)                      (p)->GetPaletteEntries(a,b)
-#define IDirect3DDevice9Ex_SetCurrentTexturePalette(p,a)                 (p)->SetCurrentTexturePalette(a)
-#define IDirect3DDevice9Ex_GetCurrentTexturePalette(p,a)                 (p)->GetCurrentTexturePalette(a)
-#define IDirect3DDevice9Ex_SetScissorRect(p,a)                           (p)->SetScissorRect(a)
-#define IDirect3DDevice9Ex_GetScissorRect(p,a)                           (p)->GetScissorRect(a)
-#define IDirect3DDevice9Ex_SetSoftwareVertexProcessing(p,a)              (p)->SetSoftwareVertexProcessing(a)
-#define IDirect3DDevice9Ex_GetSoftwareVertexProcessing(p)                (p)->GetSoftwareVertexProcessing()
-#define IDirect3DDevice9Ex_SetNPatchMode(p,a)                            (p)->SetNPatchMode(a)
-#define IDirect3DDevice9Ex_GetNPatchMode(p)                              (p)->GetNPatchMode()
-#define IDirect3DDevice9Ex_DrawPrimitive(p,a,b,c)                        (p)->DrawPrimitive(a,b,c)
-#define IDirect3DDevice9Ex_DrawIndexedPrimitive(p,a,b,c,d,e,f)           (p)->DrawIndexedPrimitive(a,b,c,d,e,f)
-#define IDirect3DDevice9Ex_DrawPrimitiveUP(p,a,b,c,d)                    (p)->DrawPrimitiveUP(a,b,c,d)
-#define IDirect3DDevice9Ex_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h)     (p)->DrawIndexedPrimitiveUP(a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9Ex_ProcessVertices(p,a,b,c,d,e,f)                (p)->ProcessVertices(a,b,c,d,e,f)
-#define IDirect3DDevice9Ex_CreateVertexDeclaration(p,a,b)                (p)->CreateVertexDeclaration(a,b)
-#define IDirect3DDevice9Ex_SetVertexDeclaration(p,a)                     (p)->SetVertexDeclaration(a)
-#define IDirect3DDevice9Ex_GetVertexDeclaration(p,a)                     (p)->GetVertexDeclaration(a)
-#define IDirect3DDevice9Ex_SetFVF(p,a)                                   (p)->SetFVF(a)
-#define IDirect3DDevice9Ex_GetFVF(p,a)                                   (p)->GetFVF(a)
-#define IDirect3DDevice9Ex_CreateVertexShader(p,a,b)                     (p)->CreateVertexShader(a,b)
-#define IDirect3DDevice9Ex_SetVertexShader(p,a)                          (p)->SetVertexShader(a)
-#define IDirect3DDevice9Ex_GetVertexShader(p,a)                          (p)->GetVertexShader(a)
-#define IDirect3DDevice9Ex_SetVertexShaderConstantF(p,a,b,c)             (p)->SetVertexShaderConstantF(a,b,c)
-#define IDirect3DDevice9Ex_GetVertexShaderConstantF(p,a,b,c)             (p)->GetVertexShaderConstantF(a,b,c)
-#define IDirect3DDevice9Ex_SetVertexShaderConstantI(p,a,b,c)             (p)->SetVertexShaderConstantI(a,b,c)
-#define IDirect3DDevice9Ex_GetVertexShaderConstantI(p,a,b,c)             (p)->GetVertexShaderConstantI(a,b,c)
-#define IDirect3DDevice9Ex_SetVertexShaderConstantB(p,a,b,c)             (p)->SetVertexShaderConstantB(a,b,c)
-#define IDirect3DDevice9Ex_GetVertexShaderConstantB(p,a,b,c)             (p)->GetVertexShaderConstantB(a,b,c)
-#define IDirect3DDevice9Ex_SetStreamSource(p,a,b,c,d)                    (p)->SetStreamSource(a,b,c,d)
-#define IDirect3DDevice9Ex_GetStreamSource(p,a,b,c,d)                    (p)->GetStreamSource(a,b,c,d)
-#define IDirect3DDevice9Ex_SetStreamSourceFreq(p,a,b)                    (p)->SetStreamSourceFreq(a,b)
-#define IDirect3DDevice9Ex_GetStreamSourceFreq(p,a,b)                    (p)->GetStreamSourceFreq(a,b)
-#define IDirect3DDevice9Ex_SetIndices(p,a)                               (p)->SetIndices(a)
-#define IDirect3DDevice9Ex_GetIndices(p,a)                               (p)->GetIndices(a)
-#define IDirect3DDevice9Ex_CreatePixelShader(p,a,b)                      (p)->CreatePixelShader(a,b)
-#define IDirect3DDevice9Ex_SetPixelShader(p,a)                           (p)->SetPixelShader(a)
-#define IDirect3DDevice9Ex_GetPixelShader(p,a)                           (p)->GetPixelShader(a)
-#define IDirect3DDevice9Ex_SetPixelShaderConstantF(p,a,b,c)              (p)->SetPixelShaderConstantF(a,b,c)
-#define IDirect3DDevice9Ex_GetPixelShaderConstantF(p,a,b,c)              (p)->GetPixelShaderConstantF(a,b,c)
-#define IDirect3DDevice9Ex_SetPixelShaderConstantI(p,a,b,c)              (p)->SetPixelShaderConstantI(a,b,c)
-#define IDirect3DDevice9Ex_GetPixelShaderConstantI(p,a,b,c)              (p)->GetPixelShaderConstantI(a,b,c)
-#define IDirect3DDevice9Ex_SetPixelShaderConstantB(p,a,b,c)              (p)->SetPixelShaderConstantB(a,b,c)
-#define IDirect3DDevice9Ex_GetPixelShaderConstantB(p,a,b,c)              (p)->GetPixelShaderConstantB(a,b,c)
-#define IDirect3DDevice9Ex_DrawRectPatch(p,a,b,c)                        (p)->DrawRectPatch(a,b,c)
-#define IDirect3DDevice9Ex_DrawTriPatch(p,a,b,c)                         (p)->DrawTriPatch(a,b,c)
-#define IDirect3DDevice9Ex_DeletePatch(p,a)                              (p)->DeletePatch(a)
-#define IDirect3DDevice9Ex_CreateQuery(p,a,b)                            (p)->CreateQuery(a,b)
-/* IDirect3DDevice9Ex */
-#define IDirect3DDevice9Ex_SetConvolutionMonoKernel(p,a,b,c,d)           (p)->SetConvolutionMonoKernel(a,b,c,d)
-#define IDirect3DDevice9Ex_ComposeRects(p,a,b,c,d,e,f,g,h)               (p)->ComposeRects(a,b,c,d,e,f,g,h)
-#define IDirect3DDevice9Ex_PresentEx(p,a,b,c,d,e)                        (p)->PresentEx(a,b,c,d,e)
-#define IDirect3DDevice9Ex_GetGPUThreadPriority(p,a)                     (p)->GetGPUThreadPriority(a)
-#define IDirect3DDevice9Ex_SetGPUThreadPriority(p,a)                     (p)->SetGPUThreadPriority(a)
-#define IDirect3DDevice9Ex_WaitForVBlank(p,a)                            (p)->WaitForVBlank(a)
-#define IDirect3DDevice9Ex_CheckResourceResidency(p,a,b)                 (p)->CheckResourceResidency(a,b)
-#define IDirect3DDevice9Ex_SetMaximumFrameLatency(p,a)                   (p)->SetMaximumFrameLatency(a)
-#define IDirect3DDevice9Ex_GetMaximumFrameLatency(p,a)                   (p)->GetMaximumFrameLatency(a)
-#define IDirect3DDevice9Ex_CheckDeviceState(p,a)                         (p)->CheckDeviceState(a)
-#define IDirect3DDevice9Ex_CreateRenderTargetEx(p,a,b,c,d,e,f,g,h,i)     (p)->CreateRenderTargetEx(a,b,c,d,e,f,g,h,i)
-#define IDirect3DDevice9Ex_CreateOffscreenPlainSurfaceEx(p,a,b,c,d,e,f,g)(p)->CreateOffscreenPlainSurfaceEx(a,b,c,d,e,f,g)
-#define IDirect3DDevice9Ex_CreateDepthStencilSurfaceEx(p,a,b,c,d,e,f,g,h,i)(p)->CreateDepthStencilSurfaceEx(a,b,c,d,e,f,g,h,i)
-#define IDirect3DDevice9Ex_ResetEx(p,a,b)                                (p)->ResetEx(a,b)
-#define IDirect3DDevice9Ex_GetDisplayModeEx(p,a,b,c)                     (p)->GetDisplayModeEx(a,b,c)
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif  /* defined(__cplusplus) */
-
-int         WINAPI D3DPERF_BeginEvent(D3DCOLOR,LPCWSTR);
-int         WINAPI D3DPERF_EndEvent(void);
-DWORD       WINAPI D3DPERF_GetStatus(void);
-BOOL        WINAPI D3DPERF_QueryRepeatFrame(void);
-void        WINAPI D3DPERF_SetMarker(D3DCOLOR,LPCWSTR);
-void        WINAPI D3DPERF_SetOptions(DWORD);
-void        WINAPI D3DPERF_SetRegion(D3DCOLOR,LPCWSTR);
-
-/* Define the main entrypoint as well */
-IDirect3D9* WINAPI Direct3DCreate9(UINT SDKVersion);
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif /* defined(__cplusplus) */
-
-
-#endif /* __WINE_D3D9_H */
diff --git a/misc/builddeps/win64/dx/include/d3d9caps.h b/misc/builddeps/win64/dx/include/d3d9caps.h
deleted file mode 100644 (file)
index 8ed6598..0000000
+++ /dev/null
@@ -1,395 +0,0 @@
-/*
- * Copyright (C) 2002-2003 Jason Edmeades
- *                         Raphael Junqueira
- *
- * 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_D3D9CAPS_H
-#define __WINE_D3D9CAPS_H
-
-/*
- * Definitions
- */
-#define D3DCAPS_READ_SCANLINE 0x20000
-
-#define D3DCURSORCAPS_COLOR   1
-#define D3DCURSORCAPS_LOWRES  2
-
-
-#define D3DDEVCAPS2_STREAMOFFSET                        0x00000001L
-#define D3DDEVCAPS2_DMAPNPATCH                          0x00000002L
-#define D3DDEVCAPS2_ADAPTIVETESSRTPATCH                 0x00000004L
-#define D3DDEVCAPS2_ADAPTIVETESSNPATCH                  0x00000008L
-#define D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES       0x00000010L
-#define D3DDEVCAPS2_PRESAMPLEDDMAPNPATCH                0x00000020L
-#define D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET  0x00000040L
-
-#define D3DDEVCAPS_EXECUTESYSTEMMEMORY     0x0000010
-#define D3DDEVCAPS_EXECUTEVIDEOMEMORY      0x0000020
-#define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY    0x0000040
-#define D3DDEVCAPS_TLVERTEXVIDEOMEMORY     0x0000080
-#define D3DDEVCAPS_TEXTURESYSTEMMEMORY     0x0000100
-#define D3DDEVCAPS_TEXTUREVIDEOMEMORY      0x0000200
-#define D3DDEVCAPS_DRAWPRIMTLVERTEX        0x0000400
-#define D3DDEVCAPS_CANRENDERAFTERFLIP      0x0000800
-#define D3DDEVCAPS_TEXTURENONLOCALVIDMEM   0x0001000
-#define D3DDEVCAPS_DRAWPRIMITIVES2         0x0002000
-#define D3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x0004000
-#define D3DDEVCAPS_DRAWPRIMITIVES2EX       0x0008000
-#define D3DDEVCAPS_HWTRANSFORMANDLIGHT     0x0010000
-#define D3DDEVCAPS_CANBLTSYSTONONLOCAL     0x0020000
-#define D3DDEVCAPS_HWRASTERIZATION         0x0080000
-#define D3DDEVCAPS_PUREDEVICE              0x0100000
-#define D3DDEVCAPS_QUINTICRTPATCHES        0x0200000
-#define D3DDEVCAPS_RTPATCHES               0x0400000
-#define D3DDEVCAPS_RTPATCHHANDLEZERO       0x0800000
-#define D3DDEVCAPS_NPATCHES                0x1000000
-
-#define D3DFVFCAPS_TEXCOORDCOUNTMASK  0x00FFFF
-#define D3DFVFCAPS_DONOTSTRIPELEMENTS 0x080000
-#define D3DFVFCAPS_PSIZE              0x100000
-
-#define D3DLINECAPS_TEXTURE           0x01
-#define D3DLINECAPS_ZTEST             0x02
-#define D3DLINECAPS_BLEND             0x04
-#define D3DLINECAPS_ALPHACMP          0x08
-#define D3DLINECAPS_FOG               0x10
-#define D3DLINECAPS_ANTIALIAS         0x20
-
-#define D3DPBLENDCAPS_ZERO            0x00000001
-#define D3DPBLENDCAPS_ONE             0x00000002
-#define D3DPBLENDCAPS_SRCCOLOR        0x00000004
-#define D3DPBLENDCAPS_INVSRCCOLOR     0x00000008
-#define D3DPBLENDCAPS_SRCALPHA        0x00000010
-#define D3DPBLENDCAPS_INVSRCALPHA     0x00000020
-#define D3DPBLENDCAPS_DESTALPHA       0x00000040
-#define D3DPBLENDCAPS_INVDESTALPHA    0x00000080
-#define D3DPBLENDCAPS_DESTCOLOR       0x00000100
-#define D3DPBLENDCAPS_INVDESTCOLOR    0x00000200
-#define D3DPBLENDCAPS_SRCALPHASAT     0x00000400
-#define D3DPBLENDCAPS_BOTHSRCALPHA    0x00000800
-#define D3DPBLENDCAPS_BOTHINVSRCALPHA 0x00001000
-#define D3DPBLENDCAPS_BLENDFACTOR     0x00002000
-
-#define D3DPCMPCAPS_NEVER        0x01
-#define D3DPCMPCAPS_LESS         0x02
-#define D3DPCMPCAPS_EQUAL        0x04
-#define D3DPCMPCAPS_LESSEQUAL    0x08
-#define D3DPCMPCAPS_GREATER      0x10
-#define D3DPCMPCAPS_NOTEQUAL     0x20
-#define D3DPCMPCAPS_GREATEREQUAL 0x40
-#define D3DPCMPCAPS_ALWAYS       0x80
-
-#define D3DPMISCCAPS_MASKZ                      0x00000002L
-#define D3DPMISCCAPS_LINEPATTERNREP             0x00000004L
-#define D3DPMISCCAPS_CULLNONE                   0x00000010L
-#define D3DPMISCCAPS_CULLCW                     0x00000020L
-#define D3DPMISCCAPS_CULLCCW                    0x00000040L
-#define D3DPMISCCAPS_COLORWRITEENABLE           0x00000080L
-#define D3DPMISCCAPS_CLIPPLANESCALEDPOINTS      0x00000100L
-#define D3DPMISCCAPS_CLIPTLVERTS                0x00000200L
-#define D3DPMISCCAPS_TSSARGTEMP                 0x00000400L
-#define D3DPMISCCAPS_BLENDOP                    0x00000800L
-#define D3DPMISCCAPS_NULLREFERENCE              0x00001000L
-#define D3DPMISCCAPS_INDEPENDENTWRITEMASKS      0x00004000L
-#define D3DPMISCCAPS_PERSTAGECONSTANT           0x00008000L
-#define D3DPMISCCAPS_FOGANDSPECULARALPHA        0x00010000L
-#define D3DPMISCCAPS_SEPARATEALPHABLEND         0x00020000L
-#define D3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS    0x00040000L
-#define D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING 0x00080000L
-#define D3DPMISCCAPS_FOGVERTEXCLAMPED           0x00100000L
-
-
-#define D3DPRASTERCAPS_DITHER                     0x00000001L
-#define D3DPRASTERCAPS_PAT                        0x00000008L
-#define D3DPRASTERCAPS_ZTEST                      0x00000010L
-#define D3DPRASTERCAPS_FOGVERTEX                  0x00000080L
-#define D3DPRASTERCAPS_FOGTABLE                   0x00000100L
-#define D3DPRASTERCAPS_ANTIALIASEDGES             0x00001000L
-#define D3DPRASTERCAPS_MIPMAPLODBIAS              0x00002000L
-#define D3DPRASTERCAPS_ZBIAS                      0x00004000L
-#define D3DPRASTERCAPS_ZBUFFERLESSHSR             0x00008000L
-#define D3DPRASTERCAPS_FOGRANGE                   0x00010000L
-#define D3DPRASTERCAPS_ANISOTROPY                 0x00020000L
-#define D3DPRASTERCAPS_WBUFFER                    0x00040000L
-#define D3DPRASTERCAPS_WFOG                       0x00100000L
-#define D3DPRASTERCAPS_ZFOG                       0x00200000L
-#define D3DPRASTERCAPS_COLORPERSPECTIVE           0x00400000L
-#define D3DPRASTERCAPS_SCISSORTEST                0x01000000L
-#define D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS        0x02000000L
-#define D3DPRASTERCAPS_DEPTHBIAS                  0x04000000L 
-#define D3DPRASTERCAPS_MULTISAMPLE_TOGGLE         0x08000000L
-
-#define D3DPRESENT_INTERVAL_DEFAULT               0x00000000
-#define D3DPRESENT_INTERVAL_ONE                   0x00000001
-#define D3DPRESENT_INTERVAL_TWO                   0x00000002
-#define D3DPRESENT_INTERVAL_THREE                 0x00000004
-#define D3DPRESENT_INTERVAL_FOUR                  0x00000008
-#define D3DPRESENT_INTERVAL_IMMEDIATE             0x80000000
-
-#define D3DPSHADECAPS_COLORGOURAUDRGB             0x00008
-#define D3DPSHADECAPS_SPECULARGOURAUDRGB          0x00200
-#define D3DPSHADECAPS_ALPHAGOURAUDBLEND           0x04000
-#define D3DPSHADECAPS_FOGGOURAUD                  0x80000
-
-#define D3DPTADDRESSCAPS_WRAP                     0x01
-#define D3DPTADDRESSCAPS_MIRROR                   0x02
-#define D3DPTADDRESSCAPS_CLAMP                    0x04
-#define D3DPTADDRESSCAPS_BORDER                   0x08
-#define D3DPTADDRESSCAPS_INDEPENDENTUV            0x10
-#define D3DPTADDRESSCAPS_MIRRORONCE               0x20
-
-#define D3DPTEXTURECAPS_PERSPECTIVE              0x00000001L
-#define D3DPTEXTURECAPS_POW2                     0x00000002L
-#define D3DPTEXTURECAPS_ALPHA                    0x00000004L
-#define D3DPTEXTURECAPS_SQUAREONLY               0x00000020L
-#define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 0x00000040L
-#define D3DPTEXTURECAPS_ALPHAPALETTE             0x00000080L
-#define D3DPTEXTURECAPS_NONPOW2CONDITIONAL       0x00000100L
-#define D3DPTEXTURECAPS_PROJECTED                0x00000400L
-#define D3DPTEXTURECAPS_CUBEMAP                  0x00000800L
-#define D3DPTEXTURECAPS_VOLUMEMAP                0x00002000L
-#define D3DPTEXTURECAPS_MIPMAP                   0x00004000L
-#define D3DPTEXTURECAPS_MIPVOLUMEMAP             0x00008000L
-#define D3DPTEXTURECAPS_MIPCUBEMAP               0x00010000L
-#define D3DPTEXTURECAPS_CUBEMAP_POW2             0x00020000L
-#define D3DPTEXTURECAPS_VOLUMEMAP_POW2           0x00040000L
-#define D3DPTEXTURECAPS_NOPROJECTEDBUMPENV       0x00200000L
-
-#define D3DPTFILTERCAPS_MINFPOINT                0x00000100
-#define D3DPTFILTERCAPS_MINFLINEAR               0x00000200
-#define D3DPTFILTERCAPS_MINFANISOTROPIC          0x00000400
-#define D3DPTFILTERCAPS_MINFPYRAMIDALQUAD        0x00000800
-#define D3DPTFILTERCAPS_MINFGAUSSIANQUAD         0x00001000
-#define D3DPTFILTERCAPS_MIPFPOINT                0x00010000
-#define D3DPTFILTERCAPS_MIPFLINEAR               0x00020000
-#define D3DPTFILTERCAPS_MAGFPOINT                0x01000000
-#define D3DPTFILTERCAPS_MAGFLINEAR               0x02000000
-#define D3DPTFILTERCAPS_MAGFANISOTROPIC          0x04000000
-#define D3DPTFILTERCAPS_MAGFPYRAMIDALQUAD        0x08000000
-#define D3DPTFILTERCAPS_MAGFGAUSSIANQUAD         0x10000000
-
-#define D3DSTENCILCAPS_KEEP                      0x01
-#define D3DSTENCILCAPS_ZERO                      0x02
-#define D3DSTENCILCAPS_REPLACE                   0x04
-#define D3DSTENCILCAPS_INCRSAT                   0x08
-#define D3DSTENCILCAPS_DECRSAT                   0x10
-#define D3DSTENCILCAPS_INVERT                    0x20
-#define D3DSTENCILCAPS_INCR                      0x40
-#define D3DSTENCILCAPS_DECR                      0x80
-#define D3DSTENCILCAPS_TWOSIDED                  0x100
-
-#define D3DTEXOPCAPS_DISABLE                     0x0000001
-#define D3DTEXOPCAPS_SELECTARG1                  0x0000002
-#define D3DTEXOPCAPS_SELECTARG2                  0x0000004
-#define D3DTEXOPCAPS_MODULATE                    0x0000008
-#define D3DTEXOPCAPS_MODULATE2X                  0x0000010
-#define D3DTEXOPCAPS_MODULATE4X                  0x0000020
-#define D3DTEXOPCAPS_ADD                         0x0000040
-#define D3DTEXOPCAPS_ADDSIGNED                   0x0000080
-#define D3DTEXOPCAPS_ADDSIGNED2X                 0x0000100
-#define D3DTEXOPCAPS_SUBTRACT                    0x0000200
-#define D3DTEXOPCAPS_ADDSMOOTH                   0x0000400
-#define D3DTEXOPCAPS_BLENDDIFFUSEALPHA           0x0000800
-#define D3DTEXOPCAPS_BLENDTEXTUREALPHA           0x0001000
-#define D3DTEXOPCAPS_BLENDFACTORALPHA            0x0002000
-#define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM         0x0004000
-#define D3DTEXOPCAPS_BLENDCURRENTALPHA           0x0008000
-#define D3DTEXOPCAPS_PREMODULATE                 0x0010000
-#define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR      0x0020000
-#define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA      0x0040000
-#define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR   0x0080000
-#define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA   0x0100000
-#define D3DTEXOPCAPS_BUMPENVMAP                  0x0200000
-#define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE         0x0400000
-#define D3DTEXOPCAPS_DOTPRODUCT3                 0x0800000
-#define D3DTEXOPCAPS_MULTIPLYADD                 0x1000000
-#define D3DTEXOPCAPS_LERP                        0x2000000
-
-#define D3DVTXPCAPS_TEXGEN                         0x00000001L
-#define D3DVTXPCAPS_MATERIALSOURCE7                0x00000002L
-#define D3DVTXPCAPS_DIRECTIONALLIGHTS              0x00000008L
-#define D3DVTXPCAPS_POSITIONALLIGHTS               0x00000010L
-#define D3DVTXPCAPS_LOCALVIEWER                    0x00000020L
-#define D3DVTXPCAPS_TWEENING                       0x00000040L
-#define D3DVTXPCAPS_TEXGEN_SPHEREMAP               0x00000100L
-#define D3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER       0x00000200L
-
-#define D3DDTCAPS_UBYTE4                           0x00000001L
-#define D3DDTCAPS_UBYTE4N                          0x00000002L
-#define D3DDTCAPS_SHORT2N                          0x00000004L
-#define D3DDTCAPS_SHORT4N                          0x00000008L
-#define D3DDTCAPS_USHORT2N                         0x00000010L
-#define D3DDTCAPS_USHORT4N                         0x00000020L
-#define D3DDTCAPS_UDEC3                            0x00000040L
-#define D3DDTCAPS_DEC3N                            0x00000080L
-#define D3DDTCAPS_FLOAT16_2                        0x00000100L
-#define D3DDTCAPS_FLOAT16_4                        0x00000200L
-
-#define D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD  0x00000020L
-#define D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION       0x00000080L
-#define D3DCAPS3_COPY_TO_VIDMEM                    0x00000100L 
-#define D3DCAPS3_COPY_TO_SYSTEMMEM                 0x00000200L
-#define D3DCAPS3_RESERVED                          0x8000001FL
-
-#define D3DCAPS2_NO2DDURING3DSCENE                 0x00000002L
-#define D3DCAPS2_FULLSCREENGAMMA                   0x00020000L
-#define D3DCAPS2_CANRENDERWINDOWED                 0x00080000L
-#define D3DCAPS2_CANCALIBRATEGAMMA                 0x00100000L
-#define D3DCAPS2_RESERVED                          0x02000000L
-#define D3DCAPS2_CANMANAGERESOURCE                 0x10000000L
-#define D3DCAPS2_DYNAMICTEXTURES                   0x20000000L
-#define D3DCAPS2_CANAUTOGENMIPMAP                  0x40000000L
-
-
-#define D3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH  24
-#define D3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH  0
-#define D3DVS20_MAX_NUMTEMPS                 32
-#define D3DVS20_MIN_NUMTEMPS                 12
-#define D3DVS20_MAX_STATICFLOWCONTROLDEPTH   4
-#define D3DVS20_MIN_STATICFLOWCONTROLDEPTH   1
-
-#define D3DVS20CAPS_PREDICATION              (1 << 0)
-
-#define D3DPS20CAPS_ARBITRARYSWIZZLE         (1 << 0)
-#define D3DPS20CAPS_GRADIENTINSTRUCTIONS     (1 << 1)
-#define D3DPS20CAPS_PREDICATION              (1 << 2)
-#define D3DPS20CAPS_NODEPENDENTREADLIMIT     (1 << 3)
-#define D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT    (1 << 4)
-
-#define D3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH  24
-#define D3DPS20_MIN_DYNAMICFLOWCONTROLDEPTH  0
-#define D3DPS20_MAX_NUMTEMPS                 32
-#define D3DPS20_MIN_NUMTEMPS                 12
-#define D3DPS20_MAX_STATICFLOWCONTROLDEPTH   4
-#define D3DPS20_MIN_STATICFLOWCONTROLDEPTH   0
-#define D3DPS20_MAX_NUMINSTRUCTIONSLOTS      512
-#define D3DPS20_MIN_NUMINSTRUCTIONSLOTS      96
-
-#define D3DMIN30SHADERINSTRUCTIONS          512
-#define D3DMAX30SHADERINSTRUCTIONS          32768
-
-
-typedef struct _D3DVSHADERCAPS2_0 {
-  DWORD  Caps;
-  INT    DynamicFlowControlDepth;
-  INT    NumTemps;
-  INT    StaticFlowControlDepth;
-} D3DVSHADERCAPS2_0;
-
-typedef struct _D3DPSHADERCAPS2_0 {
-  DWORD  Caps;
-  INT    DynamicFlowControlDepth;
-  INT    NumTemps;
-  INT    StaticFlowControlDepth;
-  INT    NumInstructionSlots;
-} D3DPSHADERCAPS2_0;
-
-/*
- * The d3dcaps9 structure
- */
-typedef struct _D3DCAPS9 {
-  D3DDEVTYPE          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, 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;
-
-  UINT                MasterAdapterOrdinal;   
-  UINT                AdapterOrdinalInGroup;  
-  UINT                NumberOfAdaptersInGroup;
-  DWORD               DeclTypes;              
-  DWORD               NumSimultaneousRTs;     
-  DWORD               StretchRectFilterCaps;  
-  D3DVSHADERCAPS2_0   VS20Caps;
-  D3DPSHADERCAPS2_0   PS20Caps;
-  DWORD               VertexTextureFilterCaps;
-  DWORD               MaxVShaderInstructionsExecuted;
-  DWORD               MaxPShaderInstructionsExecuted;
-  DWORD               MaxVertexShader30InstructionSlots; 
-  DWORD               MaxPixelShader30InstructionSlots;
-
-} D3DCAPS9;
-
-#endif
diff --git a/misc/builddeps/win64/dx/include/d3d9types.h b/misc/builddeps/win64/dx/include/d3d9types.h
deleted file mode 100644 (file)
index e0e11df..0000000
+++ /dev/null
@@ -1,1582 +0,0 @@
-/*
- * Copyright (C) 2002-2003 Jason Edmeades 
- * Copyright (C) 2002-2003 Raphael Junqueira
- * Copyright (C) 2005 Oliver Stieber
- *
- * 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_D3D9TYPES_H
-#define __WINE_D3D9TYPES_H
-
-#include <_mingw_dxhelper.h>
-
-/*****************************************************************************
- * Direct 3D v9 #defines
- */
-#ifndef D3DCLEAR_TARGET
-#define D3DCLEAR_TARGET   0x00000001L
-#endif
-#ifndef D3DCLEAR_ZBUFFER
-#define D3DCLEAR_ZBUFFER  0x00000002L
-#endif
-#ifndef D3DCLEAR_STENCIL
-#define D3DCLEAR_STENCIL  0x00000004L
-#endif
-
-#define D3DCLIPPLANE0 (1 << 0)
-#define D3DCLIPPLANE1 (1 << 1)
-#define D3DCLIPPLANE2 (1 << 2)
-#define D3DCLIPPLANE3 (1 << 3)
-#define D3DCLIPPLANE4 (1 << 4)
-#define D3DCLIPPLANE5 (1 << 5)
-
-#define D3DCOLOR_ARGB(a,r,g,b)       ((D3DCOLOR)((((a)&0xff)<<24)|(((r)&0xff)<<16)|(((g)&0xff)<<8)|((b)&0xff)))
-#define D3DCOLOR_COLORVALUE(r,g,b,a) D3DCOLOR_RGBA((DWORD)((r)*255.f),(DWORD)((g)*255.f),(DWORD)((b)*255.f),(DWORD)((a)*255.f))
-#define D3DCOLOR_RGBA(r,g,b,a)       D3DCOLOR_ARGB(a,r,g,b)
-#define D3DCOLOR_XRGB(r,g,b)         D3DCOLOR_ARGB(0xff,r,g,b)
-#define D3DCOLOR_XYUV(y,u,v)         D3DCOLOR_ARGB(0xFF,y,u,v)
-#define D3DCOLOR_AYUV(a,y,u,v)       D3DCOLOR_ARGB(a,y,u,v)
-
-#define D3DCS_LEFT                   0x001L
-#define D3DCS_RIGHT                  0x002L
-#define D3DCS_TOP                    0x004L
-#define D3DCS_BOTTOM                 0x008L
-#define D3DCS_FRONT                  0x010L
-#define D3DCS_BACK                   0x020L
-#define D3DCS_PLANE0                 0x040L
-#define D3DCS_PLANE1                 0x080L
-#define D3DCS_PLANE2                 0x100L
-#define D3DCS_PLANE3                 0x200L
-#define D3DCS_PLANE4                 0x400L
-#define D3DCS_PLANE5                 0x800L
-#define D3DCS_ALL                    0xFFFL
-
-#define D3DFVF_TEXTUREFORMAT1 3
-#define D3DFVF_TEXTUREFORMAT2 0
-#define D3DFVF_TEXTUREFORMAT3 1
-#define D3DFVF_TEXTUREFORMAT4 2
-#define D3DFVF_TEXCOORDSIZE1(CoordIndex) (D3DFVF_TEXTUREFORMAT1 << (CoordIndex*2 + 16))
-#define D3DFVF_TEXCOORDSIZE2(CoordIndex) (D3DFVF_TEXTUREFORMAT2)
-#define D3DFVF_TEXCOORDSIZE3(CoordIndex) (D3DFVF_TEXTUREFORMAT3 << (CoordIndex*2 + 16))
-#define D3DFVF_TEXCOORDSIZE4(CoordIndex) (D3DFVF_TEXTUREFORMAT4 << (CoordIndex*2 + 16))
-
-#define D3DLOCK_READONLY           0x0010
-#define D3DLOCK_NOSYSLOCK          0x0800
-#define D3DLOCK_NOOVERWRITE        0x1000
-#define D3DLOCK_DISCARD            0x2000
-#define D3DLOCK_DONOTWAIT          0x4000
-#define D3DLOCK_NO_DIRTY_UPDATE    0x8000
-
-#define D3DMAXUSERCLIPPLANES       32
-#define D3DCLIPPLANE0              (1 << 0)
-#define D3DCLIPPLANE1              (1 << 1)
-#define D3DCLIPPLANE2              (1 << 2)
-#define D3DCLIPPLANE3              (1 << 3)
-#define D3DCLIPPLANE4              (1 << 4)
-#define D3DCLIPPLANE5              (1 << 5)
-
-
-#define D3DRENDERSTATE_WRAPBIAS    128UL
-
-/* MSDN has this in d3d9caps.h, but it should be here */
-#define D3DTSS_TCI_PASSTHRU                       0x00000
-#define D3DTSS_TCI_CAMERASPACENORMAL              0x10000
-#define D3DTSS_TCI_CAMERASPACEPOSITION            0x20000
-#define D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR    0x30000
-#define D3DTSS_TCI_SPHEREMAP                      0x40000
-
-
-#define D3DTS_WORLD  D3DTS_WORLDMATRIX(0)
-#define D3DTS_WORLD1 D3DTS_WORLDMATRIX(1)
-#define D3DTS_WORLD2 D3DTS_WORLDMATRIX(2)
-#define D3DTS_WORLD3 D3DTS_WORLDMATRIX(3)
-#define D3DTS_WORLDMATRIX(index) (D3DTRANSFORMSTATETYPE)(index + 256)
-
-#define D3DUSAGE_RENDERTARGET       0x00000001L
-#define D3DUSAGE_DEPTHSTENCIL       0x00000002L
-#define D3DUSAGE_WRITEONLY          0x00000008L
-#define D3DUSAGE_SOFTWAREPROCESSING 0x00000010L
-#define D3DUSAGE_DONOTCLIP          0x00000020L
-#define D3DUSAGE_POINTS             0x00000040L
-#define D3DUSAGE_RTPATCHES          0x00000080L
-#define D3DUSAGE_NPATCHES           0x00000100L
-#define D3DUSAGE_DYNAMIC            0x00000200L
-#define D3DUSAGE_AUTOGENMIPMAP      0x00000400L 
-#define D3DUSAGE_DMAP               0x00004000L
-
-#define D3DUSAGE_QUERY_FILTER                   0x00020000L
-#define D3DUSAGE_QUERY_LEGACYBUMPMAP            0x00008000L
-#define D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING 0x00080000L
-#define D3DUSAGE_QUERY_SRGBREAD                 0x00010000L
-#define D3DUSAGE_QUERY_SRGBWRITE                0x00040000L
-#define D3DUSAGE_QUERY_VERTEXTEXTURE            0x00100000L
-#define D3DUSAGE_QUERY_WRAPANDMIP               0x00200000L
-
-#define D3DWRAP_U        1
-#define D3DWRAP_V        2
-#define D3DWRAP_W        4
-#define D3DWRAPCOORD_0   1
-#define D3DWRAPCOORD_1   2
-#define D3DWRAPCOORD_2   4
-#define D3DWRAPCOORD_3   8
-
-#define MAX_DEVICE_IDENTIFIER_STRING        512
-
-#define D3DFVF_RESERVED0           0x0001
-#define D3DFVF_POSITION_MASK       0x400E
-#define D3DFVF_XYZ                 0x0002
-#define D3DFVF_XYZRHW              0x0004
-#define D3DFVF_XYZB1               0x0006
-#define D3DFVF_XYZB2               0x0008
-#define D3DFVF_XYZB3               0x000a
-#define D3DFVF_XYZB4               0x000c
-#define D3DFVF_XYZB5               0x000e
-#define D3DFVF_XYZW                0x4002
-#define D3DFVF_NORMAL              0x0010
-#define D3DFVF_PSIZE               0x0020
-#define D3DFVF_DIFFUSE             0x0040
-#define D3DFVF_SPECULAR            0x0080
-#define D3DFVF_TEXCOUNT_MASK       0x0f00
-#define D3DFVF_TEXCOUNT_SHIFT           8
-#define D3DFVF_TEX0                0x0000
-#define D3DFVF_TEX1                0x0100
-#define D3DFVF_TEX2                0x0200
-#define D3DFVF_TEX3                0x0300
-#define D3DFVF_TEX4                0x0400
-#define D3DFVF_TEX5                0x0500
-#define D3DFVF_TEX6                0x0600
-#define D3DFVF_TEX7                0x0700
-#define D3DFVF_TEX8                0x0800
-#define D3DFVF_LASTBETA_UBYTE4     0x1000
-#define D3DFVF_LASTBETA_D3DCOLOR   0x8000
-#define D3DFVF_RESERVED2           0x6000
-
-#define D3DTA_SELECTMASK        0x0000000f
-#define D3DTA_DIFFUSE           0x00000000
-#define D3DTA_CURRENT           0x00000001
-#define D3DTA_TEXTURE           0x00000002
-#define D3DTA_TFACTOR           0x00000003
-#define D3DTA_SPECULAR          0x00000004
-#define D3DTA_TEMP              0x00000005
-#define D3DTA_CONSTANT          0x00000006
-#define D3DTA_COMPLEMENT        0x00000010
-#define D3DTA_ALPHAREPLICATE    0x00000020
-
-#define D3DCOLORWRITEENABLE_RED   (1L<<0)   
-#define D3DCOLORWRITEENABLE_GREEN (1L<<1)
-#define D3DCOLORWRITEENABLE_BLUE  (1L<<2)
-#define D3DCOLORWRITEENABLE_ALPHA (1L<<3)
-
-#define D3DPV_DONOTCOPYDATA         (1 << 0)
-
-#define D3DSTREAMSOURCE_INDEXEDDATA  (1 << 30)
-#define D3DSTREAMSOURCE_INSTANCEDATA (2 << 30)
-
-#define D3D_MAX_SIMULTANEOUS_RENDERTARGETS 4
-
-#define MAXD3DDECLLENGTH         64 /* +end marker */
-#define MAXD3DDECLMETHOD         D3DDECLMETHOD_LOOKUPPRESAMPLED
-#define MAXD3DDECLTYPE           D3DDECLTYPE_UNUSED
-#define MAXD3DDECLUSAGE          D3DDECLUSAGE_SAMPLE
-#define MAXD3DDECLUSAGEINDEX     15
-
-#define D3DDMAPSAMPLER 256
-#define D3DVERTEXTEXTURESAMPLER0 (D3DDMAPSAMPLER+1)
-#define D3DVERTEXTEXTURESAMPLER1 (D3DDMAPSAMPLER+2)
-#define D3DVERTEXTEXTURESAMPLER2 (D3DDMAPSAMPLER+3)
-#define D3DVERTEXTEXTURESAMPLER3 (D3DDMAPSAMPLER+4)
-
-#ifndef MAKEFOURCC
-#define MAKEFOURCC(ch0, ch1, ch2, ch3)  \
-    ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) |  \
-    ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 ))
-#endif /* MAKEFOURCC */
-
-/* Constants used by D3DPRESENT_PARAMETERS. when creating a device or swapchain */
-
-#define D3DPRESENTFLAG_LOCKABLE_BACKBUFFER  0x00000001 /* Create a lockable backbuffer */
-#define D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL 0x00000002 /* Discard Z buffer */
-#define D3DPRESENTFLAG_DEVICECLIP           0x00000004 /* Clip the window blited into the client area 2k + xp only */
-#define D3DPRESENTFLAG_VIDEO                0x00000010 /* backbuffer 'may' contain video data */
-#define D3DPRESENTFLAG_NOAUTOROTATE         0x00000020 /* d3d9ex, ignore display rotation */
-#define D3DPRESENTFLAG_UNPRUNEDMODE         0x00000040 /* d3d9ex, specify invalid display modes */
-
-#define D3DPRESENT_BACK_BUFFERS_MAX         3L
-#define D3DPRESENT_RATE_DEFAULT             0x00000000
-
-/**************************** 
- * Vertex Shaders Declaration
- */
-
-typedef enum _D3DDECLUSAGE {
-  D3DDECLUSAGE_POSITION     = 0,
-  D3DDECLUSAGE_BLENDWEIGHT  = 1,
-  D3DDECLUSAGE_BLENDINDICES = 2,
-  D3DDECLUSAGE_NORMAL       = 3,      
-  D3DDECLUSAGE_PSIZE        = 4,       
-  D3DDECLUSAGE_TEXCOORD     = 5,    
-  D3DDECLUSAGE_TANGENT      = 6,     
-  D3DDECLUSAGE_BINORMAL     = 7,    
-  D3DDECLUSAGE_TESSFACTOR   = 8,  
-  D3DDECLUSAGE_POSITIONT    = 9,   
-  D3DDECLUSAGE_COLOR        = 10,       
-  D3DDECLUSAGE_FOG          = 11,        
-  D3DDECLUSAGE_DEPTH        = 12,      
-  D3DDECLUSAGE_SAMPLE       = 13     
-} D3DDECLUSAGE;
-
-#define D3DMAXDECLUSAGE         D3DDECLUSAGE_SAMPLE
-#define D3DMAXDECLUSAGEINDEX    15
-#define D3DMAXDECLLENGTH        18
-#define D3DMAXDECLUSAGE_DX8     D3DDECLUSAGE_TEXCOORD
-
-typedef enum _D3DDECLMETHOD {
-  D3DDECLMETHOD_DEFAULT          = 0,
-  D3DDECLMETHOD_PARTIALU         = 1,
-  D3DDECLMETHOD_PARTIALV         = 2,
-  D3DDECLMETHOD_CROSSUV          = 3,
-  D3DDECLMETHOD_UV               = 4,
-  D3DDECLMETHOD_LOOKUP           = 5,
-  D3DDECLMETHOD_LOOKUPPRESAMPLED = 6
-} D3DDECLMETHOD;
-
-
-#define D3DMAXDECLMETHOD        D3DDECLMETHOD_LOOKUPPRESAMPLED
-
-typedef enum _D3DDECLTYPE {
-  D3DDECLTYPE_FLOAT1    =  0,
-  D3DDECLTYPE_FLOAT2    =  1,
-  D3DDECLTYPE_FLOAT3    =  2,
-  D3DDECLTYPE_FLOAT4    =  3,
-  D3DDECLTYPE_D3DCOLOR  =  4,
-  D3DDECLTYPE_UBYTE4    =  5,
-  D3DDECLTYPE_SHORT2    =  6,
-  D3DDECLTYPE_SHORT4    =  7,
-  /* VS 2.0 */
-  D3DDECLTYPE_UBYTE4N   =  8,
-  D3DDECLTYPE_SHORT2N   =  9,
-  D3DDECLTYPE_SHORT4N   = 10,
-  D3DDECLTYPE_USHORT2N  = 11,
-  D3DDECLTYPE_USHORT4N  = 12,
-  D3DDECLTYPE_UDEC3     = 13,
-  D3DDECLTYPE_DEC3N     = 14,
-  D3DDECLTYPE_FLOAT16_2 = 15,
-  D3DDECLTYPE_FLOAT16_4 = 16,
-  D3DDECLTYPE_UNUSED    = 17,
-} D3DDECLTYPE;
-
-#define D3DMAXDECLTYPE          D3DDECLTYPE_UNUSED
-
-typedef struct _D3DVERTEXELEMENT9 {
-  WORD    Stream;
-  WORD    Offset;
-  BYTE    Type;
-  BYTE    Method;
-  BYTE    Usage;
-  BYTE    UsageIndex;
-} D3DVERTEXELEMENT9, *LPD3DVERTEXELEMENT9;
-
-
-typedef enum _D3DQUERYTYPE {
-    D3DQUERYTYPE_VCACHE = 4,
-    D3DQUERYTYPE_RESOURCEMANAGER = 5,
-    D3DQUERYTYPE_VERTEXSTATS = 6,
-    D3DQUERYTYPE_EVENT = 8,
-    D3DQUERYTYPE_OCCLUSION = 9,
-    D3DQUERYTYPE_TIMESTAMP = 10,
-    D3DQUERYTYPE_TIMESTAMPDISJOINT = 11,
-    D3DQUERYTYPE_TIMESTAMPFREQ = 12,
-    D3DQUERYTYPE_PIPELINETIMINGS = 13,
-    D3DQUERYTYPE_INTERFACETIMINGS = 14,
-    D3DQUERYTYPE_VERTEXTIMINGS = 15,
-    D3DQUERYTYPE_PIXELTIMINGS = 16,
-    D3DQUERYTYPE_BANDWIDTHTIMINGS = 17,
-    D3DQUERYTYPE_CACHEUTILIZATION = 18
-} D3DQUERYTYPE;
-
-#define D3DISSUE_BEGIN   (1 << 1)
-#define D3DISSUE_END     (1 << 0)
-#define D3DGETDATA_FLUSH (1 << 0)
-
-
-#define D3DDECL_END() {0xFF,0,D3DDECLTYPE_UNUSED,0,0,0}
-#define D3DDP_MAXTEXCOORD   8
-
-
-#define D3DVSD_MAKETOKENTYPE(TokenType) \
-  ((TokenType << D3DVSD_TOKENTYPESHIFT) & D3DVSD_TOKENTYPEMASK)
-
-#define D3DVSD_CONST(ConstantAddress, Count) \
-  (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_CONSTMEM) | ((Count) << D3DVSD_CONSTCOUNTSHIFT) | (ConstantAddress))
-
-#define D3DVSD_END() 0xFFFFFFFF
-
-#define D3DVSD_NOP() 0x00000000
-
-#define D3DVSD_REG(VertexRegister, Type) \
-  (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAMDATA) | ((Type) << D3DVSD_DATATYPESHIFT) | (VertexRegister))
-
-#define D3DVSD_SKIP(Count) \
-  (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAMDATA) | 0x10000000 | ((Count) << D3DVSD_SKIPCOUNTSHIFT))
-
-#define D3DVSD_STREAM(StreamNumber) \
-  (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAM) | (StreamNumber))
-
-#define D3DVSD_STREAM_TESS() \
-  (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAM) | (D3DVSD_STREAMTESSMASK))
-
-#define D3DVSD_TESSNORMAL(RegisterIn, RegisterOut) \
-  (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_TESSELLATOR) | ((RegisterIn) << D3DVSD_VERTEXREGINSHIFT) | ((0x02) << D3DVSD_DATATYPESHIFT) | (RegisterOut))
-
-#define D3DVSD_TESSUV(Register) \
-  (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_TESSELLATOR) | 0x10000000 | ((0x01) << D3DVSD_DATATYPESHIFT) | (Register))
-
-
-/********************************
- * Pixel/Vertex Shaders Functions
- */
-
-/** Maximum number of supported texture coordinates sets operation */
-#define D3DDP_MAXTEXCOORD   8
-
-/** opcode token mask */
-#define D3DSI_OPCODE_MASK       0x0000FFFF
-#define D3DSI_INSTLENGTH_MASK   0x0F000000
-#define D3DSI_INSTLENGTH_SHIFT  24
-
-/** opcodes types for PS and VS */
-typedef enum _D3DSHADER_INSTRUCTION_OPCODE_TYPE {
-  D3DSIO_NOP          =  0,
-  D3DSIO_MOV          =  1,
-  D3DSIO_ADD          =  2,
-  D3DSIO_SUB          =  3,
-  D3DSIO_MAD          =  4,
-  D3DSIO_MUL          =  5,
-  D3DSIO_RCP          =  6,
-  D3DSIO_RSQ          =  7,
-  D3DSIO_DP3          =  8,
-  D3DSIO_DP4          =  9,
-  D3DSIO_MIN          = 10,
-  D3DSIO_MAX          = 11,
-  D3DSIO_SLT          = 12,
-  D3DSIO_SGE          = 13,
-  D3DSIO_EXP          = 14,
-  D3DSIO_LOG          = 15,
-  D3DSIO_LIT          = 16,
-  D3DSIO_DST          = 17,
-  D3DSIO_LRP          = 18,
-  D3DSIO_FRC          = 19,
-  D3DSIO_M4x4         = 20,
-  D3DSIO_M4x3         = 21,
-  D3DSIO_M3x4         = 22,
-  D3DSIO_M3x3         = 23,
-  D3DSIO_M3x2         = 24,
-  D3DSIO_CALL         = 25,
-  D3DSIO_CALLNZ       = 26,
-  D3DSIO_LOOP         = 27,
-  D3DSIO_RET          = 28,
-  D3DSIO_ENDLOOP      = 29,
-  D3DSIO_LABEL        = 30,
-  D3DSIO_DCL          = 31,
-  D3DSIO_POW          = 32,
-  D3DSIO_CRS          = 33,
-  D3DSIO_SGN          = 34,
-  D3DSIO_ABS          = 35,
-  D3DSIO_NRM          = 36,
-  D3DSIO_SINCOS       = 37,
-  D3DSIO_REP          = 38,
-  D3DSIO_ENDREP       = 39,
-  D3DSIO_IF           = 40,
-  D3DSIO_IFC          = 41,
-  D3DSIO_ELSE         = 42,
-  D3DSIO_ENDIF        = 43,
-  D3DSIO_BREAK        = 44,
-  D3DSIO_BREAKC       = 45,
-  D3DSIO_MOVA         = 46,
-  D3DSIO_DEFB         = 47,
-  D3DSIO_DEFI         = 48,
-
-  D3DSIO_TEXCOORD     = 64,
-  D3DSIO_TEXKILL      = 65,
-  D3DSIO_TEX          = 66,
-  D3DSIO_TEXBEM       = 67,
-  D3DSIO_TEXBEML      = 68,
-  D3DSIO_TEXREG2AR    = 69,
-  D3DSIO_TEXREG2GB    = 70,
-  D3DSIO_TEXM3x2PAD   = 71,
-  D3DSIO_TEXM3x2TEX   = 72,
-  D3DSIO_TEXM3x3PAD   = 73,
-  D3DSIO_TEXM3x3TEX   = 74,
-  D3DSIO_TEXM3x3DIFF  = 75,
-  D3DSIO_TEXM3x3SPEC  = 76,
-  D3DSIO_TEXM3x3VSPEC = 77,
-  D3DSIO_EXPP         = 78,
-  D3DSIO_LOGP         = 79,
-  D3DSIO_CND          = 80,
-  D3DSIO_DEF          = 81,
-  D3DSIO_TEXREG2RGB   = 82,
-  D3DSIO_TEXDP3TEX    = 83,
-  D3DSIO_TEXM3x2DEPTH = 84,
-  D3DSIO_TEXDP3       = 85,
-  D3DSIO_TEXM3x3      = 86,
-  D3DSIO_TEXDEPTH     = 87,
-  D3DSIO_CMP          = 88,
-  D3DSIO_BEM          = 89,
-  D3DSIO_DP2ADD       = 90,
-  D3DSIO_DSX          = 91,
-  D3DSIO_DSY          = 92,
-  D3DSIO_TEXLDD       = 93,
-  D3DSIO_SETP         = 94,
-  D3DSIO_TEXLDL       = 95,
-  D3DSIO_BREAKP       = 96,
-  
-  D3DSIO_PHASE        = 0xFFFD,
-  D3DSIO_COMMENT      = 0xFFFE,
-  D3DSIO_END          = 0XFFFF,
-
-  D3DSIO_FORCE_DWORD  = 0X7FFFFFFF /** for 32-bit alignment */
-} D3DSHADER_INSTRUCTION_OPCODE_TYPE;
-
-#define D3DSINCOSCONST1   -1.5500992e-006f, -2.1701389e-005f,  0.0026041667f, 0.00026041668f
-#define D3DSINCOSCONST2   -0.020833334f,    -0.12500000f,      1.0f,          0.50000000f
-
-#define D3DSHADER_INSTRUCTION_PREDICATED    (1 << 28)
-
-#define D3DSI_TEXLD_PROJECT 0x00010000
-#define D3DSI_TEXLD_BIAS    0x00020000
-
-/** for parallelism */
-#define D3DSI_COISSUE 0x40000000
-
-#define D3DSP_DCL_USAGE_SHIFT 0
-#define D3DSP_DCL_USAGE_MASK  0x0000000f
-
-#define D3DSP_DCL_USAGEINDEX_SHIFT 16
-#define D3DSP_DCL_USAGEINDEX_MASK  0x000f0000
-
-#define D3DSP_TEXTURETYPE_SHIFT 27
-#define D3DSP_TEXTURETYPE_MASK  0x78000000
-
-typedef enum _D3DSAMPLER_TEXTURE_TYPE {
-  D3DSTT_UNKNOWN      = 0 << D3DSP_TEXTURETYPE_SHIFT,
-  D3DSTT_1D           = 1 << D3DSP_TEXTURETYPE_SHIFT,
-  D3DSTT_2D           = 2 << D3DSP_TEXTURETYPE_SHIFT,
-  D3DSTT_CUBE         = 3 << D3DSP_TEXTURETYPE_SHIFT,
-  D3DSTT_VOLUME       = 4 << D3DSP_TEXTURETYPE_SHIFT,
-
-  D3DSTT_FORCE_DWORD  = 0x7FFFFFFF
-} D3DSAMPLER_TEXTURE_TYPE;
-
-#define D3DSP_REGNUM_MASK       0x000007FF
-
-/** destination parameter modifiers (.xyzw) */
-#define D3DSP_WRITEMASK_0       0x00010000 /* .x r */
-#define D3DSP_WRITEMASK_1       0x00020000 /* .y g */
-#define D3DSP_WRITEMASK_2       0x00040000 /* .z b */
-#define D3DSP_WRITEMASK_3       0x00080000 /* .w a */
-#define D3DSP_WRITEMASK_ALL     0x000F0000 /* all */
-
-#define D3DSP_DSTMOD_SHIFT      20
-#define D3DSP_DSTMOD_MASK       (0xF << D3DSP_DSTMOD_SHIFT)
-
-typedef enum _D3DSHADER_PARAM_DSTMOD_TYPE {
-  D3DSPDM_NONE             = 0 << D3DSP_DSTMOD_SHIFT,
-  D3DSPDM_SATURATE         = 1 << D3DSP_DSTMOD_SHIFT,
-  D3DSPDM_PARTIALPRECISION = 2 << D3DSP_DSTMOD_SHIFT,
-  D3DSPDM_MSAMPCENTROID    = 4 << D3DSP_DSTMOD_SHIFT,
-
-  D3DSPDM_FORCE_DWORD  = 0x7FFFFFFF
-} D3DSHADER_PARAM_DSTMOD_TYPE;
-
-/** destination param */
-#define D3DSP_DSTSHIFT_SHIFT     24
-#define D3DSP_DSTSHIFT_MASK      (0xF << D3DSP_DSTSHIFT_SHIFT)
-
-/** destination/source reg type */
-#define D3DSP_REGTYPE_SHIFT      28
-#define D3DSP_REGTYPE_SHIFT2     8
-#define D3DSP_REGTYPE_MASK       (0x7 << D3DSP_REGTYPE_SHIFT)
-#define D3DSP_REGTYPE_MASK2      0x00001800
-
-typedef enum _D3DSHADER_PARAM_REGISTER_TYPE {
-  D3DSPR_TEMP         =  0, 
-  D3DSPR_INPUT        =  1,
-  D3DSPR_CONST        =  2,
-  D3DSPR_ADDR         =  3,
-  D3DSPR_TEXTURE      =  3,
-  D3DSPR_RASTOUT      =  4,
-  D3DSPR_ATTROUT      =  5,
-  D3DSPR_TEXCRDOUT    =  6,
-  D3DSPR_OUTPUT       =  6,
-  D3DSPR_CONSTINT     =  7,
-  D3DSPR_COLOROUT     =  8,
-  D3DSPR_DEPTHOUT     =  9,
-  D3DSPR_SAMPLER      = 10,
-  D3DSPR_CONST2       = 11,
-  D3DSPR_CONST3       = 12,
-  D3DSPR_CONST4       = 13,
-  D3DSPR_CONSTBOOL    = 14,
-  D3DSPR_LOOP         = 15,
-  D3DSPR_TEMPFLOAT16  = 16,
-  D3DSPR_MISCTYPE     = 17,
-  D3DSPR_LABEL        = 18,
-  D3DSPR_PREDICATE    = 19,
-
-  D3DSPR_FORCE_DWORD  = 0x7FFFFFFF
-} D3DSHADER_PARAM_REGISTER_TYPE;
-
-typedef enum _D3DSHADER_MISCTYPE_OFFSETS {
-    D3DSMO_POSITION  = 0,
-    D3DSMO_FACE      = 1
-} D3DSHADER_MISCTYPE_OFFSETS;
-
-typedef enum _D3DVS_RASTOUT_OFFSETS {
-  D3DSRO_POSITION     = 0,
-  D3DSRO_FOG          = 1,
-  D3DSRO_POINT_SIZE   = 2,
-
-  D3DSRO_FORCE_DWORD  = 0x7FFFFFFF
-} D3DVS_RASTOUT_OFFSETS;
-
-#define D3DVS_ADDRESSMODE_SHIFT  13
-#define D3DVS_ADDRESSMODE_MASK   (0x1 << D3DVS_ADDRESSMODE_SHIFT)
-
-typedef enum _D3DVS_ADDRESSMODE_TYPE {
-  D3DVS_ADDRMODE_ABSOLUTE     = 0 << D3DVS_ADDRESSMODE_SHIFT,
-  D3DVS_ADDRMODE_RELATIVE     = 1 << D3DVS_ADDRESSMODE_SHIFT,
-
-  D3DVS_ADDRMODE_FORCE_DWORD  = 0x7FFFFFFF
-} D3DVS_ADDRESSMODE_TYPE;
-
-#define D3DSHADER_ADDRESSMODE_SHIFT 13
-#define D3DSHADER_ADDRESSMODE_MASK  (1 << D3DSHADER_ADDRESSMODE_SHIFT)
-
-typedef enum _D3DSHADER_ADDRESSMODE_TYPE {
-  D3DSHADER_ADDRMODE_ABSOLUTE    = 0 << D3DSHADER_ADDRESSMODE_SHIFT,
-  D3DSHADER_ADDRMODE_RELATIVE    = 1 << D3DSHADER_ADDRESSMODE_SHIFT,
-
-  D3DSHADER_ADDRMODE_FORCE_DWORD = 0x7FFFFFFF
-} D3DSHADER_ADDRESSMODE_TYPE;
-
-
-#define D3DVS_SWIZZLE_SHIFT      16
-#define D3DVS_SWIZZLE_MASK       (0xFF << D3DVS_SWIZZLE_SHIFT)
-
-#define D3DSP_SWIZZLE_SHIFT      16
-#define D3DSP_SWIZZLE_MASK       (0xFF << D3DSP_SWIZZLE_SHIFT)
-
-#define D3DVS_X_X       (0 << D3DVS_SWIZZLE_SHIFT)
-#define D3DVS_X_Y       (1 << D3DVS_SWIZZLE_SHIFT)
-#define D3DVS_X_Z       (2 << D3DVS_SWIZZLE_SHIFT)
-#define D3DVS_X_W       (3 << D3DVS_SWIZZLE_SHIFT)
-
-#define D3DVS_Y_X       (0 << (D3DVS_SWIZZLE_SHIFT + 2))
-#define D3DVS_Y_Y       (1 << (D3DVS_SWIZZLE_SHIFT + 2))
-#define D3DVS_Y_Z       (2 << (D3DVS_SWIZZLE_SHIFT + 2))
-#define D3DVS_Y_W       (3 << (D3DVS_SWIZZLE_SHIFT + 2))
-
-#define D3DVS_Z_X       (0 << (D3DVS_SWIZZLE_SHIFT + 4))
-#define D3DVS_Z_Y       (1 << (D3DVS_SWIZZLE_SHIFT + 4))
-#define D3DVS_Z_Z       (2 << (D3DVS_SWIZZLE_SHIFT + 4))
-#define D3DVS_Z_W       (3 << (D3DVS_SWIZZLE_SHIFT + 4))
-
-#define D3DVS_W_X       (0 << (D3DVS_SWIZZLE_SHIFT + 6))
-#define D3DVS_W_Y       (1 << (D3DVS_SWIZZLE_SHIFT + 6))
-#define D3DVS_W_Z       (2 << (D3DVS_SWIZZLE_SHIFT + 6))
-#define D3DVS_W_W       (3 << (D3DVS_SWIZZLE_SHIFT + 6))
-
-#define D3DVS_NOSWIZZLE (D3DVS_X_X | D3DVS_Y_Y | D3DVS_Z_Z | D3DVS_W_W)
-
-#define D3DSP_NOSWIZZLE \
-    ((0 << (D3DSP_SWIZZLE_SHIFT + 0)) | (1 << (D3DSP_SWIZZLE_SHIFT + 2)) | (2 << (D3DSP_SWIZZLE_SHIFT + 4)) | (3 << (D3DSP_SWIZZLE_SHIFT + 6)))
-
-#define D3DSP_SRCMOD_SHIFT      24
-#define D3DSP_SRCMOD_MASK       (0xF << D3DSP_SRCMOD_SHIFT)
-
-typedef enum _D3DSHADER_PARAM_SRCMOD_TYPE {
-  D3DSPSM_NONE         =  0 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_NEG          =  1 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_BIAS         =  2 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_BIASNEG      =  3 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_SIGN         =  4 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_SIGNNEG      =  5 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_COMP         =  6 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_X2           =  7 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_X2NEG        =  8 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_DZ           =  9 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_DW           = 10 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_ABS          = 11 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_ABSNEG       = 12 << D3DSP_SRCMOD_SHIFT,
-  D3DSPSM_NOT          = 13 << D3DSP_SRCMOD_SHIFT,
-
-  D3DSPSM_FORCE_DWORD  = 0x7FFFFFFF
-} D3DSHADER_PARAM_SRCMOD_TYPE;
-
-#define D3DPS_VERSION(major, minor) (0xFFFF0000 | ((major) << 8) | (minor))
-#define D3DVS_VERSION(major, minor) (0xFFFE0000 | ((major) << 8) | (minor))
-#define D3DSHADER_VERSION_MAJOR(version) (((version) >> 8) & 0xFF)
-#define D3DSHADER_VERSION_MINOR(version) (((version) >> 0) & 0xFF)
-
-#define D3DSI_COMMENTSIZE_SHIFT 16
-#define D3DSI_COMMENTSIZE_MASK (0x7FFF << D3DSI_COMMENTSIZE_SHIFT)
-
-#define D3DSHADER_COMMENT(commentSize) \
-  ((((commentSize) << D3DSI_COMMENTSIZE_SHIFT) & D3DSI_COMMENTSIZE_MASK) | D3DSIO_COMMENT)
-
-#define D3DPS_END() 0x0000FFFF
-#define D3DVS_END() 0x0000FFFF
-
-
-/*****************************************************************************
- * Direct 3D v8 enumerated types
- */
-typedef enum _D3DBACKBUFFER_TYPE {
-    D3DBACKBUFFER_TYPE_MONO         = 0,
-    D3DBACKBUFFER_TYPE_LEFT         = 1,
-    D3DBACKBUFFER_TYPE_RIGHT        = 2,
-
-    D3DBACKBUFFER_TYPE_FORCE_DWORD  = 0x7fffffff
-} D3DBACKBUFFER_TYPE;
-
-#define D3DPRESENT_BACK_BUFFER_MAX 3L
-
-typedef enum _D3DBASISTYPE {
-   D3DBASIS_BEZIER        = 0,
-   D3DBASIS_BSPLINE       = 1,
-   D3DBASIS_INTERPOLATE   = 2,
-
-   D3DBASIS_FORCE_DWORD   = 0x7fffffff
-} D3DBASISTYPE;
-
-typedef enum _D3DBLEND {
-    D3DBLEND_ZERO               =  1,
-    D3DBLEND_ONE                =  2,
-    D3DBLEND_SRCCOLOR           =  3,
-    D3DBLEND_INVSRCCOLOR        =  4,
-    D3DBLEND_SRCALPHA           =  5,
-    D3DBLEND_INVSRCALPHA        =  6,
-    D3DBLEND_DESTALPHA          =  7,
-    D3DBLEND_INVDESTALPHA       =  8,
-    D3DBLEND_DESTCOLOR          =  9,
-    D3DBLEND_INVDESTCOLOR       = 10,
-    D3DBLEND_SRCALPHASAT        = 11,
-    D3DBLEND_BOTHSRCALPHA       = 12,
-    D3DBLEND_BOTHINVSRCALPHA    = 13,
-    D3DBLEND_BLENDFACTOR        = 14,
-    D3DBLEND_INVBLENDFACTOR     = 15,
-    D3DBLEND_FORCE_DWORD        = 0x7fffffff
-} D3DBLEND;
-
-typedef enum _D3DBLENDOP {
-    D3DBLENDOP_ADD              = 1,
-    D3DBLENDOP_SUBTRACT         = 2,
-    D3DBLENDOP_REVSUBTRACT      = 3,
-    D3DBLENDOP_MIN              = 4,
-    D3DBLENDOP_MAX              = 5,
-
-    D3DBLENDOP_FORCE_DWORD      = 0x7fffffff
-} D3DBLENDOP;
-
-typedef enum _D3DCMPFUNC {
-    D3DCMP_NEVER                = 1,
-    D3DCMP_LESS                 = 2,
-    D3DCMP_EQUAL                = 3,
-    D3DCMP_LESSEQUAL            = 4,
-    D3DCMP_GREATER              = 5,
-    D3DCMP_NOTEQUAL             = 6,
-    D3DCMP_GREATEREQUAL         = 7,
-    D3DCMP_ALWAYS               = 8,
-
-    D3DCMP_FORCE_DWORD          = 0x7fffffff
-} D3DCMPFUNC;
-
-typedef enum _D3DCUBEMAP_FACES {
-    D3DCUBEMAP_FACE_POSITIVE_X     = 0,
-    D3DCUBEMAP_FACE_NEGATIVE_X     = 1,
-    D3DCUBEMAP_FACE_POSITIVE_Y     = 2,
-    D3DCUBEMAP_FACE_NEGATIVE_Y     = 3,
-    D3DCUBEMAP_FACE_POSITIVE_Z     = 4,
-    D3DCUBEMAP_FACE_NEGATIVE_Z     = 5,
-
-    D3DCUBEMAP_FACE_FORCE_DWORD    = 0xffffffff
-} D3DCUBEMAP_FACES;
-
-typedef enum _D3DCULL {
-    D3DCULL_NONE                = 1,
-    D3DCULL_CW                  = 2,
-    D3DCULL_CCW                 = 3,
-
-    D3DCULL_FORCE_DWORD         = 0x7fffffff
-} D3DCULL;
-
-typedef enum _D3DDEBUGMONITORTOKENS {
-    D3DDMT_ENABLE          = 0,
-    D3DDMT_DISABLE         = 1,
-
-    D3DDMT_FORCE_DWORD     = 0x7fffffff
-} D3DDEBUGMONITORTOKENS;
-
-typedef enum _D3DDEGREETYPE {
-    D3DDEGREE_LINEAR      = 1,
-    D3DDEGREE_QUADRATIC   = 2,
-    D3DDEGREE_CUBIC       = 3,
-    D3DDEGREE_QUINTIC     = 5,
-    
-    D3DDEGREE_FORCE_DWORD   = 0x7fffffff
-} D3DDEGREETYPE;
-
-typedef enum _D3DDEVTYPE {
-    D3DDEVTYPE_HAL         = 1,
-    D3DDEVTYPE_REF         = 2,
-    D3DDEVTYPE_SW          = 3,
-    D3DDEVTYPE_NULLREF     = 4,
-
-    D3DDEVTYPE_FORCE_DWORD = 0xffffffff
-} D3DDEVTYPE;
-
-typedef enum _D3DFILLMODE {
-    D3DFILL_POINT               = 1,
-    D3DFILL_WIREFRAME           = 2,
-    D3DFILL_SOLID               = 3,
-
-    D3DFILL_FORCE_DWORD         = 0x7fffffff
-} D3DFILLMODE;
-
-typedef enum _D3DFOGMODE {
-    D3DFOG_NONE                 = 0,
-    D3DFOG_EXP                  = 1,
-    D3DFOG_EXP2                 = 2,
-    D3DFOG_LINEAR               = 3,
-
-    D3DFOG_FORCE_DWORD          = 0x7fffffff
-} D3DFOGMODE;
-
-typedef enum _D3DFORMAT {
-    D3DFMT_UNKNOWN              =   0,
-
-    D3DFMT_R8G8B8               =  20,
-    D3DFMT_A8R8G8B8             =  21,
-    D3DFMT_X8R8G8B8             =  22,
-    D3DFMT_R5G6B5               =  23,
-    D3DFMT_X1R5G5B5             =  24,
-    D3DFMT_A1R5G5B5             =  25,
-    D3DFMT_A4R4G4B4             =  26,
-    D3DFMT_R3G3B2               =  27,
-    D3DFMT_A8                   =  28,
-    D3DFMT_A8R3G3B2             =  29,
-    D3DFMT_X4R4G4B4             =  30,
-    D3DFMT_A2B10G10R10          =  31,
-    D3DFMT_A8B8G8R8             =  32,
-    D3DFMT_X8B8G8R8             =  33,
-    D3DFMT_G16R16               =  34,
-    D3DFMT_A2R10G10B10          =  35,
-    D3DFMT_A16B16G16R16         =  36,
-  
-
-    D3DFMT_A8P8                 =  40,
-    D3DFMT_P8                   =  41,
-
-    D3DFMT_L8                   =  50,
-    D3DFMT_A8L8                 =  51,
-    D3DFMT_A4L4                 =  52,
-
-    D3DFMT_V8U8                 =  60,
-    D3DFMT_L6V5U5               =  61,
-    D3DFMT_X8L8V8U8             =  62,
-    D3DFMT_Q8W8V8U8             =  63,
-    D3DFMT_V16U16               =  64,
-    D3DFMT_A2W10V10U10          =  67,
-
-    D3DFMT_UYVY                 =  MAKEFOURCC('U', 'Y', 'V', 'Y'),
-    D3DFMT_YUY2                 =  MAKEFOURCC('Y', 'U', 'Y', '2'),
-    D3DFMT_DXT1                 =  MAKEFOURCC('D', 'X', 'T', '1'),
-    D3DFMT_DXT2                 =  MAKEFOURCC('D', 'X', 'T', '2'),
-    D3DFMT_DXT3                 =  MAKEFOURCC('D', 'X', 'T', '3'),
-    D3DFMT_DXT4                 =  MAKEFOURCC('D', 'X', 'T', '4'),
-    D3DFMT_DXT5                 =  MAKEFOURCC('D', 'X', 'T', '5'),
-    D3DFMT_MULTI2_ARGB8         =  MAKEFOURCC('M', 'E', 'T', '1'),
-    D3DFMT_G8R8_G8B8            =  MAKEFOURCC('G', 'R', 'G', 'B'),
-    D3DFMT_R8G8_B8G8            =  MAKEFOURCC('R', 'G', 'B', 'G'),
-
-    D3DFMT_D16_LOCKABLE         =  70,
-    D3DFMT_D32                  =  71,
-    D3DFMT_D15S1                =  73,
-    D3DFMT_D24S8                =  75,
-    D3DFMT_D24X8                =  77,
-    D3DFMT_D24X4S4              =  79,
-    D3DFMT_D16                  =  80,
-    D3DFMT_L16                  =  81,
-    D3DFMT_D32F_LOCKABLE        =  82,
-    D3DFMT_D24FS8               =  83,
-
-    D3DFMT_VERTEXDATA           = 100,
-    D3DFMT_INDEX16              = 101,
-    D3DFMT_INDEX32              = 102,
-    D3DFMT_Q16W16V16U16         = 110,
-    /* Floating point formats */
-    D3DFMT_R16F                 = 111,
-    D3DFMT_G16R16F              = 112,
-    D3DFMT_A16B16G16R16F        = 113,
-    
-    /* IEEE formats */
-    D3DFMT_R32F                 = 114,
-    D3DFMT_G32R32F              = 115,
-    D3DFMT_A32B32G32R32F        = 116,
-    
-    D3DFMT_CxV8U8               = 117,
-
-
-    D3DFMT_FORCE_DWORD          = 0xFFFFFFFF
-} D3DFORMAT;
-
-typedef enum _D3DLIGHTTYPE {
-    D3DLIGHT_POINT          = 1,
-    D3DLIGHT_SPOT           = 2,
-    D3DLIGHT_DIRECTIONAL    = 3,
-
-    D3DLIGHT_FORCE_DWORD    = 0x7fffffff
-} D3DLIGHTTYPE;
-
-typedef enum _D3DMATERIALCOLORSOURCE {
-    D3DMCS_MATERIAL         = 0,
-    D3DMCS_COLOR1           = 1,
-    D3DMCS_COLOR2           = 2,
-
-    D3DMCS_FORCE_DWORD      = 0x7fffffff
-} D3DMATERIALCOLORSOURCE;
-
-typedef enum _D3DMULTISAMPLE_TYPE {
-    D3DMULTISAMPLE_NONE            =  0,
-    D3DMULTISAMPLE_NONMASKABLE     =  1,
-    D3DMULTISAMPLE_2_SAMPLES       =  2,
-    D3DMULTISAMPLE_3_SAMPLES       =  3,
-    D3DMULTISAMPLE_4_SAMPLES       =  4,
-    D3DMULTISAMPLE_5_SAMPLES       =  5,
-    D3DMULTISAMPLE_6_SAMPLES       =  6,
-    D3DMULTISAMPLE_7_SAMPLES       =  7,
-    D3DMULTISAMPLE_8_SAMPLES       =  8,
-    D3DMULTISAMPLE_9_SAMPLES       =  9,
-    D3DMULTISAMPLE_10_SAMPLES      = 10,
-    D3DMULTISAMPLE_11_SAMPLES      = 11,
-    D3DMULTISAMPLE_12_SAMPLES      = 12,
-    D3DMULTISAMPLE_13_SAMPLES      = 13,
-    D3DMULTISAMPLE_14_SAMPLES      = 14,
-    D3DMULTISAMPLE_15_SAMPLES      = 15,
-    D3DMULTISAMPLE_16_SAMPLES      = 16,
-
-    D3DMULTISAMPLE_FORCE_DWORD     = 0x7fffffff
-} D3DMULTISAMPLE_TYPE;
-
-#if 0
-typedef enum _D3DORDERTYPE {
-   D3DORDER_LINEAR      = 1,
-   D3DORDER_QUADRATIC   = 2,
-   D3DORDER_CUBIC       = 3,
-   D3DORDER_QUINTIC     = 5,
-
-   D3DORDER_FORCE_DWORD = 0x7fffffff
-} D3DORDERTYPE;
-#endif
-typedef enum _D3DPATCHEDGESTYLE {
-   D3DPATCHEDGE_DISCRETE    = 0,
-   D3DPATCHEDGE_CONTINUOUS  = 1,
-
-   D3DPATCHEDGE_FORCE_DWORD = 0x7fffffff,
-} D3DPATCHEDGESTYLE;
-
-typedef enum _D3DPOOL {
-    D3DPOOL_DEFAULT                 = 0,
-    D3DPOOL_MANAGED                 = 1,
-    D3DPOOL_SYSTEMMEM               = 2,
-    D3DPOOL_SCRATCH                 = 3,
-
-    D3DPOOL_FORCE_DWORD             = 0x7fffffff
-} D3DPOOL;
-
-typedef enum _D3DPRIMITIVETYPE {
-    D3DPT_POINTLIST             = 1,
-    D3DPT_LINELIST              = 2,
-    D3DPT_LINESTRIP             = 3,
-    D3DPT_TRIANGLELIST          = 4,
-    D3DPT_TRIANGLESTRIP         = 5,
-    D3DPT_TRIANGLEFAN           = 6,
-
-    D3DPT_FORCE_DWORD           = 0x7fffffff
-} D3DPRIMITIVETYPE;
-
-typedef enum _D3DRENDERSTATETYPE {
-    D3DRS_ZENABLE                   =   7,
-    D3DRS_FILLMODE                  =   8,
-    D3DRS_SHADEMODE                 =   9,
-    D3DRS_ZWRITEENABLE              =  14,
-    D3DRS_ALPHATESTENABLE           =  15,
-    D3DRS_LASTPIXEL                 =  16,
-    D3DRS_SRCBLEND                  =  19,
-    D3DRS_DESTBLEND                 =  20,
-    D3DRS_CULLMODE                  =  22,
-    D3DRS_ZFUNC                     =  23,
-    D3DRS_ALPHAREF                  =  24,
-    D3DRS_ALPHAFUNC                 =  25,
-    D3DRS_DITHERENABLE              =  26,
-    D3DRS_ALPHABLENDENABLE          =  27,
-    D3DRS_FOGENABLE                 =  28,
-    D3DRS_SPECULARENABLE            =  29,
-    D3DRS_FOGCOLOR                  =  34,
-    D3DRS_FOGTABLEMODE              =  35,
-    D3DRS_FOGSTART                  =  36,
-    D3DRS_FOGEND                    =  37,
-    D3DRS_FOGDENSITY                =  38,
-    D3DRS_RANGEFOGENABLE            =  48,
-    D3DRS_STENCILENABLE             =  52,
-    D3DRS_STENCILFAIL               =  53,
-    D3DRS_STENCILZFAIL              =  54,
-    D3DRS_STENCILPASS               =  55,
-    D3DRS_STENCILFUNC               =  56,
-    D3DRS_STENCILREF                =  57,
-    D3DRS_STENCILMASK               =  58,
-    D3DRS_STENCILWRITEMASK          =  59,
-    D3DRS_TEXTUREFACTOR             =  60,
-    D3DRS_WRAP0                     = 128,
-    D3DRS_WRAP1                     = 129,
-    D3DRS_WRAP2                     = 130,
-    D3DRS_WRAP3                     = 131,
-    D3DRS_WRAP4                     = 132,
-    D3DRS_WRAP5                     = 133,
-    D3DRS_WRAP6                     = 134,
-    D3DRS_WRAP7                     = 135,
-    D3DRS_CLIPPING                  = 136,
-    D3DRS_LIGHTING                  = 137,
-    D3DRS_AMBIENT                   = 139,
-    D3DRS_FOGVERTEXMODE             = 140,
-    D3DRS_COLORVERTEX               = 141,
-    D3DRS_LOCALVIEWER               = 142,
-    D3DRS_NORMALIZENORMALS          = 143,
-    D3DRS_DIFFUSEMATERIALSOURCE     = 145,
-    D3DRS_SPECULARMATERIALSOURCE    = 146,
-    D3DRS_AMBIENTMATERIALSOURCE     = 147,
-    D3DRS_EMISSIVEMATERIALSOURCE    = 148,
-    D3DRS_VERTEXBLEND               = 151,
-    D3DRS_CLIPPLANEENABLE           = 152,
-    D3DRS_POINTSIZE                 = 154,
-    D3DRS_POINTSIZE_MIN             = 155,
-    D3DRS_POINTSPRITEENABLE         = 156,
-    D3DRS_POINTSCALEENABLE          = 157,
-    D3DRS_POINTSCALE_A              = 158,
-    D3DRS_POINTSCALE_B              = 159,
-    D3DRS_POINTSCALE_C              = 160,
-    D3DRS_MULTISAMPLEANTIALIAS      = 161,
-    D3DRS_MULTISAMPLEMASK           = 162,
-    D3DRS_PATCHEDGESTYLE            = 163,
-    D3DRS_DEBUGMONITORTOKEN         = 165,
-    D3DRS_POINTSIZE_MAX             = 166,
-    D3DRS_INDEXEDVERTEXBLENDENABLE  = 167,
-    D3DRS_COLORWRITEENABLE          = 168,
-    D3DRS_TWEENFACTOR               = 170,
-    D3DRS_BLENDOP                   = 171,
-    D3DRS_POSITIONDEGREE            = 172,
-    D3DRS_NORMALDEGREE              = 173,
-    D3DRS_SCISSORTESTENABLE         = 174,
-    D3DRS_SLOPESCALEDEPTHBIAS       = 175,
-    D3DRS_ANTIALIASEDLINEENABLE     = 176,
-    D3DRS_MINTESSELLATIONLEVEL      = 178,
-    D3DRS_MAXTESSELLATIONLEVEL      = 179,
-    D3DRS_ADAPTIVETESS_X            = 180,
-    D3DRS_ADAPTIVETESS_Y            = 181,
-    D3DRS_ADAPTIVETESS_Z            = 182,
-    D3DRS_ADAPTIVETESS_W            = 183,
-    D3DRS_ENABLEADAPTIVETESSELLATION= 184,
-    D3DRS_TWOSIDEDSTENCILMODE       = 185,
-    D3DRS_CCW_STENCILFAIL           = 186,
-    D3DRS_CCW_STENCILZFAIL          = 187,
-    D3DRS_CCW_STENCILPASS           = 188,
-    D3DRS_CCW_STENCILFUNC           = 189,
-    D3DRS_COLORWRITEENABLE1         = 190,
-    D3DRS_COLORWRITEENABLE2         = 191,
-    D3DRS_COLORWRITEENABLE3         = 192,
-    D3DRS_BLENDFACTOR               = 193,
-    D3DRS_SRGBWRITEENABLE           = 194,
-    D3DRS_DEPTHBIAS                 = 195,
-    D3DRS_WRAP8                     = 198,
-    D3DRS_WRAP9                     = 199,
-    D3DRS_WRAP10                    = 200,
-    D3DRS_WRAP11                    = 201,
-    D3DRS_WRAP12                    = 202,
-    D3DRS_WRAP13                    = 203,
-    D3DRS_WRAP14                    = 204,
-    D3DRS_WRAP15                    = 205,
-    D3DRS_SEPARATEALPHABLENDENABLE  = 206,
-    D3DRS_SRCBLENDALPHA             = 207,
-    D3DRS_DESTBLENDALPHA            = 208,
-    D3DRS_BLENDOPALPHA              = 209,
-
-    D3DRS_FORCE_DWORD               = 0x7fffffff
-} D3DRENDERSTATETYPE;
-
-typedef enum _D3DRESOURCETYPE {
-    D3DRTYPE_SURFACE                =  1,
-    D3DRTYPE_VOLUME                 =  2,
-    D3DRTYPE_TEXTURE                =  3,
-    D3DRTYPE_VOLUMETEXTURE          =  4,
-    D3DRTYPE_CUBETEXTURE            =  5,
-    D3DRTYPE_VERTEXBUFFER           =  6,
-    D3DRTYPE_INDEXBUFFER            =  7,
-
-    D3DRTYPE_FORCE_DWORD            = 0x7fffffff
-} D3DRESOURCETYPE;
-
-#define D3DRTYPECOUNT (D3DRTYPE_INDEXBUFFER+1)
-
-typedef enum _D3DSHADEMODE {
-    D3DSHADE_FLAT               = 1,
-    D3DSHADE_GOURAUD            = 2,
-    D3DSHADE_PHONG              = 3,
-
-    D3DSHADE_FORCE_DWORD        = 0x7fffffff
-} D3DSHADEMODE;
-
-typedef enum _D3DSTATEBLOCKTYPE {
-    D3DSBT_ALL           = 1,
-    D3DSBT_PIXELSTATE    = 2,
-    D3DSBT_VERTEXSTATE   = 3,
-
-    D3DSBT_FORCE_DWORD   = 0xffffffff
-} D3DSTATEBLOCKTYPE;
-
-typedef enum _D3DSTENCILOP {
-    D3DSTENCILOP_KEEP           = 1,
-    D3DSTENCILOP_ZERO           = 2,
-    D3DSTENCILOP_REPLACE        = 3,
-    D3DSTENCILOP_INCRSAT        = 4,
-    D3DSTENCILOP_DECRSAT        = 5,
-    D3DSTENCILOP_INVERT         = 6,
-    D3DSTENCILOP_INCR           = 7,
-    D3DSTENCILOP_DECR           = 8,
-
-    D3DSTENCILOP_FORCE_DWORD    = 0x7fffffff
-} D3DSTENCILOP;
-
-typedef enum _D3DSWAPEFFECT {
-    D3DSWAPEFFECT_DISCARD         = 1,
-    D3DSWAPEFFECT_FLIP            = 2,
-    D3DSWAPEFFECT_COPY            = 3,
-    D3DSWAPEFFECT_FORCE_DWORD     = 0xFFFFFFFF
-} D3DSWAPEFFECT;
-
-typedef enum _D3DTEXTUREADDRESS {
-    D3DTADDRESS_WRAP            = 1,
-    D3DTADDRESS_MIRROR          = 2,
-    D3DTADDRESS_CLAMP           = 3,
-    D3DTADDRESS_BORDER          = 4,
-    D3DTADDRESS_MIRRORONCE      = 5,
-
-    D3DTADDRESS_FORCE_DWORD     = 0x7fffffff
-} D3DTEXTUREADDRESS;
-
-typedef enum _D3DTEXTUREFILTERTYPE {
-    D3DTEXF_NONE            = 0,
-    D3DTEXF_POINT           = 1,
-    D3DTEXF_LINEAR          = 2,
-    D3DTEXF_ANISOTROPIC     = 3,
-    D3DTEXF_FLATCUBIC       = 4,
-    D3DTEXF_GAUSSIANCUBIC   = 5,
-    D3DTEXF_PYRAMIDALQUAD   = 6,
-    D3DTEXF_GAUSSIANQUAD    = 7,
-    D3DTEXF_FORCE_DWORD     = 0x7fffffff
-} D3DTEXTUREFILTERTYPE;
-
-typedef enum _D3DTEXTUREOP {
-    D3DTOP_DISABLE                   =  1,
-    D3DTOP_SELECTARG1                =  2,
-    D3DTOP_SELECTARG2                =  3,
-    D3DTOP_MODULATE                  =  4,
-    D3DTOP_MODULATE2X                =  5,
-    D3DTOP_MODULATE4X                =  6,
-    D3DTOP_ADD                       =  7,
-    D3DTOP_ADDSIGNED                 =  8,
-    D3DTOP_ADDSIGNED2X               =  9,
-    D3DTOP_SUBTRACT                  = 10,
-    D3DTOP_ADDSMOOTH                 = 11,
-    D3DTOP_BLENDDIFFUSEALPHA         = 12,
-    D3DTOP_BLENDTEXTUREALPHA         = 13,
-    D3DTOP_BLENDFACTORALPHA          = 14,
-    D3DTOP_BLENDTEXTUREALPHAPM       = 15,
-    D3DTOP_BLENDCURRENTALPHA         = 16,
-    D3DTOP_PREMODULATE               = 17,
-    D3DTOP_MODULATEALPHA_ADDCOLOR    = 18,
-    D3DTOP_MODULATECOLOR_ADDALPHA    = 19,
-    D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20,
-    D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21,
-    D3DTOP_BUMPENVMAP                = 22,
-    D3DTOP_BUMPENVMAPLUMINANCE       = 23,
-    D3DTOP_DOTPRODUCT3               = 24,
-    D3DTOP_MULTIPLYADD               = 25,
-    D3DTOP_LERP                      = 26,
-
-    D3DTOP_FORCE_DWORD               = 0x7fffffff,
-} D3DTEXTUREOP;
-
-typedef enum _D3DTEXTURESTAGESTATETYPE {
-    D3DTSS_COLOROP               =  1,
-    D3DTSS_COLORARG1             =  2,
-    D3DTSS_COLORARG2             =  3,
-    D3DTSS_ALPHAOP               =  4,
-    D3DTSS_ALPHAARG1             =  5,
-    D3DTSS_ALPHAARG2             =  6,
-    D3DTSS_BUMPENVMAT00          =  7,
-    D3DTSS_BUMPENVMAT01          =  8,
-    D3DTSS_BUMPENVMAT10          =  9,
-    D3DTSS_BUMPENVMAT11          = 10,
-    D3DTSS_TEXCOORDINDEX         = 11,
-    D3DTSS_BUMPENVLSCALE         = 22,
-    D3DTSS_BUMPENVLOFFSET        = 23,
-    D3DTSS_TEXTURETRANSFORMFLAGS = 24,
-    D3DTSS_COLORARG0             = 26,
-    D3DTSS_ALPHAARG0             = 27,
-    D3DTSS_RESULTARG             = 28,
-    D3DTSS_CONSTANT              = 32,
-
-    D3DTSS_FORCE_DWORD           = 0x7fffffff
-} D3DTEXTURESTAGESTATETYPE;
-
-typedef enum _D3DTEXTURETRANSFORMFLAGS {
-    D3DTTFF_DISABLE         =   0,
-    D3DTTFF_COUNT1          =   1,
-    D3DTTFF_COUNT2          =   2,
-    D3DTTFF_COUNT3          =   3,
-    D3DTTFF_COUNT4          =   4,
-    D3DTTFF_PROJECTED       = 256,
-
-    D3DTTFF_FORCE_DWORD     = 0x7fffffff
-} D3DTEXTURETRANSFORMFLAGS;
-
-typedef enum _D3DTRANSFORMSTATETYPE {
-    D3DTS_VIEW            =  2,
-    D3DTS_PROJECTION      =  3,
-    D3DTS_TEXTURE0        = 16,
-    D3DTS_TEXTURE1        = 17,
-    D3DTS_TEXTURE2        = 18,
-    D3DTS_TEXTURE3        = 19,
-    D3DTS_TEXTURE4        = 20,
-    D3DTS_TEXTURE5        = 21,
-    D3DTS_TEXTURE6        = 22,
-    D3DTS_TEXTURE7        = 23,
-
-    D3DTS_FORCE_DWORD     = 0x7fffffff
-} D3DTRANSFORMSTATETYPE;
-
-typedef enum _D3DVERTEXBLENDFLAGS {
-    D3DVBF_DISABLE  =   0,
-    D3DVBF_1WEIGHTS =   1,
-    D3DVBF_2WEIGHTS =   2,
-    D3DVBF_3WEIGHTS =   3,
-    D3DVBF_TWEENING = 255,
-    D3DVBF_0WEIGHTS = 256
-} D3DVERTEXBLENDFLAGS;
-
-typedef enum _D3DZBUFFERTYPE {
-    D3DZB_FALSE                 = 0,
-    D3DZB_TRUE                  = 1,
-    D3DZB_USEW                  = 2,
-
-    D3DZB_FORCE_DWORD           = 0x7fffffff
-} D3DZBUFFERTYPE;
-
-typedef enum _D3DSAMPLERSTATETYPE {
-    D3DSAMP_ADDRESSU       = 1,
-    D3DSAMP_ADDRESSV       = 2,
-    D3DSAMP_ADDRESSW       = 3,
-    D3DSAMP_BORDERCOLOR    = 4,
-    D3DSAMP_MAGFILTER      = 5,
-    D3DSAMP_MINFILTER      = 6,
-    D3DSAMP_MIPFILTER      = 7,
-    D3DSAMP_MIPMAPLODBIAS  = 8,
-    D3DSAMP_MAXMIPLEVEL    = 9,
-    D3DSAMP_MAXANISOTROPY  = 10,
-    D3DSAMP_SRGBTEXTURE    = 11,
-    D3DSAMP_ELEMENTINDEX   = 12,
-    D3DSAMP_DMAPOFFSET     = 13,
-                                
-    D3DSAMP_FORCE_DWORD   = 0x7fffffff,
-} D3DSAMPLERSTATETYPE;
-
-
-/*****************************************************************************
- * Direct 3D v9 typedefs
- */
-#ifndef D3DCOLOR_DEFINED
-typedef DWORD D3DCOLOR;
-#define D3DCOLOR_DEFINED
-#endif
-
-/*****************************************************************************
- * Direct 3D v9 structures
- */
-typedef struct _D3DADAPTER_IDENTIFIER9 {
-    char            Driver[MAX_DEVICE_IDENTIFIER_STRING];
-    char            Description[MAX_DEVICE_IDENTIFIER_STRING];
-    char            DeviceName[32];
-    LARGE_INTEGER   DriverVersion; 
-
-    DWORD           VendorId;
-    DWORD           DeviceId;
-    DWORD           SubSysId;
-    DWORD           Revision;
-
-    GUID            DeviceIdentifier;
-
-    DWORD           WHQLLevel;
-} D3DADAPTER_IDENTIFIER9;
-
-typedef struct _D3DBOX {
-    UINT                Left;
-    UINT                Top;
-    UINT                Right;
-    UINT                Bottom;
-    UINT                Front;
-    UINT                Back;
-} D3DBOX;
-
-typedef struct _D3DCLIPSTATUS9 {
-   DWORD ClipUnion;
-   DWORD ClipIntersection;
-} D3DCLIPSTATUS9;
-
-#ifndef D3DCOLORVALUE_DEFINED
-typedef struct _D3DCOLORVALUE {
-    float r;
-    float g;
-    float b;
-    float a;
-} D3DCOLORVALUE;
-#define D3DCOLORVALUE_DEFINED
-#endif
-
-typedef struct _D3DDEVICE_CREATION_PARAMETERS {
-    UINT          AdapterOrdinal;
-    D3DDEVTYPE    DeviceType;
-    HWND          hFocusWindow;
-    DWORD         BehaviorFlags;
-} D3DDEVICE_CREATION_PARAMETERS;
-
-typedef struct _D3DDEVINFO_D3D9BANDWIDTHTIMINGS {
-    float         MaxBandwidthUtilized;
-    float         FrontEndUploadMemoryUtilizedPercent;
-    float         VertexRateUtilizedPercent;
-    float         TriangleSetupRateUtilizedPercent;
-    float         FillRateUtilizedPercent;
-} D3DDEVINFO_D3D9BANDWIDTHTIMINGS;
-
-typedef struct _D3DDEVINFO_D3D9CACHEUTILIZATION {
-    float         TextureCacheHitRate;
-    float         PostTransformVertexCacheHitRate;
-} D3DDEVINFO_D3D9CACHEUTILIZATION;
-
-typedef struct _D3DDEVINFO_D3D9INTERFACETIMINGS {
-    float         WaitingForGPUToUseApplicationResourceTimePercent;
-    float         WaitingForGPUToAcceptMoreCommandsTimePercent;
-    float         WaitingForGPUToStayWithinLatencyTimePercent;
-    float         WaitingForGPUExclusiveResourceTimePercent;
-    float         WaitingForGPUOtherTimePercent;
-} D3DDEVINFO_D3D9INTERFACETIMINGS;
-
-typedef struct _D3DDEVINFO_D3D9PIPELINETIMINGS {
-    float         VertexProcessingTimePercent;
-    float         PixelProcessingTimePercent;
-    float         OtherGPUProcessingTimePercent;
-    float         GPUIdleTimePercent;
-} D3DDEVINFO_D3D9PIPELINETIMINGS;
-
-typedef struct _D3DDEVINFO_D3D9STAGETIMINGS {
-    float         MemoryProcessingPercent;
-    float         ComputationProcessingPercent;
-} D3DDEVINFO_D3D9STAGETIMINGS;
-
-
-/* Vertex cache optimization hints. */
-typedef struct D3DDEVINFO_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; 
-} D3DDEVINFO_VCACHE;
-
-typedef struct D3DRESOURCESTATS {
-    BOOL                bThrashing;
-    DWORD               ApproxBytesDownloaded;
-    DWORD               NumEvicts;
-    DWORD               NumVidCreates;
-    DWORD               LastPri;
-    DWORD               NumUsed;
-    DWORD               NumUsedInVidMem;
-    DWORD               WorkingSet;
-    DWORD               WorkingSetBytes;
-    DWORD               TotalManaged;
-    DWORD               TotalBytes;
-} D3DRESOURCESTATS;
-
-typedef struct _D3DDEVINFO_D3DRESOURCEMANAGER {
-    D3DRESOURCESTATS stats[D3DRTYPECOUNT];
-} D3DDEVINFO_D3DRESOURCEMANAGER;
-
-typedef struct _D3DDEVINFO_D3DVERTEXSTATS {
-    DWORD NumRenderedTriangles;
-    DWORD NumExtraClippingTriangles;
-} D3DDEVINFO_D3DVERTEXSTATS;
-
-typedef struct _D3DDISPLAYMODE {
-    UINT            Width;
-    UINT            Height;
-    UINT            RefreshRate;
-    D3DFORMAT       Format;
-} D3DDISPLAYMODE;
-
-typedef struct _D3DGAMMARAMP {
-    WORD                red  [256];
-    WORD                green[256];
-    WORD                blue [256];
-} D3DGAMMARAMP;
-
-typedef struct _D3DINDEXBUFFER_DESC {
-    D3DFORMAT           Format;
-    D3DRESOURCETYPE     Type;
-    DWORD               Usage;
-    D3DPOOL             Pool;
-    UINT                Size;
-} D3DINDEXBUFFER_DESC;
-
-#ifndef D3DVECTOR_DEFINED
-typedef struct _D3DVECTOR {
-    float x;
-    float y;
-    float z;
-} D3DVECTOR;
-#define D3DVECTOR_DEFINED
-#endif
-
-typedef struct _D3DLIGHT9 {
-    D3DLIGHTTYPE    Type;
-    D3DCOLORVALUE   Diffuse;
-    D3DCOLORVALUE   Specular;
-    D3DCOLORVALUE   Ambient;
-    D3DVECTOR       Position;
-    D3DVECTOR       Direction;
-    float           Range;
-    float           Falloff;
-    float           Attenuation0;
-    float           Attenuation1;
-    float           Attenuation2;
-    float           Theta;
-    float           Phi;
-} D3DLIGHT9;
-
-typedef struct _D3DLINEPATTERN {
-    WORD    wRepeatFactor;
-    WORD    wLinePattern;
-} D3DLINEPATTERN;
-
-typedef struct _D3DLOCKED_BOX {
-    INT                 RowPitch;
-    INT                 SlicePitch;
-    void*               pBits;
-} D3DLOCKED_BOX;
-
-typedef struct _D3DLOCKED_RECT {
-    INT                 Pitch;
-    void*               pBits;
-} D3DLOCKED_RECT;
-
-typedef struct _D3DMATERIAL9 {
-    D3DCOLORVALUE   Diffuse;
-    D3DCOLORVALUE   Ambient;
-    D3DCOLORVALUE   Specular;
-    D3DCOLORVALUE   Emissive;
-    float           Power;
-} D3DMATERIAL9;
-
-#ifndef D3DMATRIX_DEFINED
-typedef struct _D3DMATRIX {
-    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;
-} D3DMATRIX;
-#define D3DMATRIX_DEFINED
-#endif
-
-typedef struct _D3DPRESENT_PARAMETERS_ {
-    UINT                    BackBufferWidth;
-    UINT                    BackBufferHeight;
-    D3DFORMAT               BackBufferFormat;
-    UINT                    BackBufferCount;
-
-    D3DMULTISAMPLE_TYPE     MultiSampleType;
-    DWORD                   MultiSampleQuality;
-
-    D3DSWAPEFFECT           SwapEffect;
-    HWND                    hDeviceWindow;
-    BOOL                    Windowed;
-    BOOL                    EnableAutoDepthStencil;
-    D3DFORMAT               AutoDepthStencilFormat;
-    DWORD                   Flags;
-
-    UINT                    FullScreen_RefreshRateInHz;
-    UINT                    PresentationInterval;
-
-} D3DPRESENT_PARAMETERS;
-
-typedef struct _D3DRANGE {
-    UINT                Offset;
-    UINT                Size;
-} D3DRANGE;
-
-typedef struct _D3DRASTER_STATUS {
-    BOOL            InVBlank;
-    UINT            ScanLine;
-} D3DRASTER_STATUS;
-
-#ifndef D3DRECT_DEFINED
-typedef struct _D3DRECT {
-    LONG x1;
-    LONG y1;
-    LONG x2;
-    LONG y2;
-} D3DRECT;
-#define D3DRECT_DEFINED
-#endif
-
-typedef struct _D3DRECTPATCH_INFO {
-    UINT                StartVertexOffsetWidth;
-    UINT                StartVertexOffsetHeight;
-    UINT                Width;
-    UINT                Height;
-    UINT                Stride;
-    D3DBASISTYPE        Basis;
-    D3DDEGREETYPE       Degree;
-} D3DRECTPATCH_INFO;
-
-typedef struct _D3DSURFACE_DESC {
-    D3DFORMAT           Format;
-    D3DRESOURCETYPE     Type;
-    DWORD               Usage;
-    D3DPOOL             Pool;
-    D3DMULTISAMPLE_TYPE MultiSampleType;
-    DWORD               MultiSampleQuality;
-    UINT                Width;
-    UINT                Height;
-} D3DSURFACE_DESC;
-
-typedef struct _D3DTRIPATCH_INFO {
-    UINT                StartVertexOffset;
-    UINT                NumVertices;
-    D3DBASISTYPE        Basis;
-    D3DDEGREETYPE       Degree;
-} D3DTRIPATCH_INFO;
-
-typedef struct _D3DVERTEXBUFFER_DESC {
-    D3DFORMAT           Format;
-    D3DRESOURCETYPE     Type;
-    DWORD               Usage;
-    D3DPOOL             Pool;
-    UINT                Size;
-    DWORD               FVF;
-} D3DVERTEXBUFFER_DESC;
-
-typedef struct _D3DVIEWPORT9 {
-    DWORD       X;
-    DWORD       Y;
-    DWORD       Width;
-    DWORD       Height;
-    float       MinZ;
-    float       MaxZ;
-} D3DVIEWPORT9;
-
-typedef struct _D3DVOLUME_DESC {
-    D3DFORMAT           Format;
-    D3DRESOURCETYPE     Type;
-    DWORD               Usage;
-    D3DPOOL             Pool;
-
-    UINT                Width;
-    UINT                Height;
-    UINT                Depth;
-} D3DVOLUME_DESC;
-
-/* Parts added with d3d9ex */
-#if !defined(D3D_DISABLE_9EX)
-typedef enum D3DSCANLINEORDERING
-{
-    D3DSCANLINEORDERING_UNKNOWN,
-    D3DSCANLINEORDERING_PROGRESSIVE,
-    D3DSCANLINEORDERING_INTERLACED,
-} D3DSCANLINEORDERING;
-
-
-typedef struct D3DDISPLAYMODEFILTER
-{
-    UINT                Size;
-    D3DFORMAT           Format;
-    D3DSCANLINEORDERING ScanLineOrdering;
-} D3DDISPLAYMODEFILTER;
-
-typedef struct D3DDISPLAYMODEEX
-{
-    UINT                Size;
-    UINT                Width;
-    UINT                Height;
-    UINT                RefreshRate;
-    D3DFORMAT           Format;
-    D3DSCANLINEORDERING ScanLineOrdering;
-} D3DDISPLAYMODEEX;
-
-typedef enum D3DDISPLAYROTATION
-{
-    D3DDISPLAYROTATION_IDENTITY = 1,
-    D3DDISPLAYROTATION_90,
-    D3DDISPLAYROTATION_180,
-    D3DDISPLAYROTATION_270
-} D3DDISPLAYROTATION;
-
-typedef enum _D3DCOMPOSERECTSOP{
-    D3DCOMPOSERECTS_COPY        = 1,
-    D3DCOMPOSERECTS_OR,
-    D3DCOMPOSERECTS_AND,
-    D3DCOMPOSERECTS_NEG,
-    D3DCOMPOSERECTS_FORCE_DWORD = 0x7fffffff
-} D3DCOMPOSERECTSOP;
-#endif /* D3D_DISABLE_9EX */
-
-typedef enum _D3DSHADER_COMPARISON
-{
-    D3DSPC_RESERVED0 = 0,
-    D3DSPC_GT,
-    D3DSPC_EQ,
-    D3DSPC_GE,
-    D3DSPC_LT,
-    D3DSPC_NE,
-    D3DSPC_LE,
-    D3DSPC_RESERVED1,
-} D3DSHADER_COMPARISON;
-
-#endif /* __WINE_D3D9TYPES_H */
diff --git a/misc/builddeps/win64/dx/include/d3dcaps.h b/misc/builddeps/win64/dx/include/d3dcaps.h
deleted file mode 100644 (file)
index b44c49d..0000000
+++ /dev/null
@@ -1,432 +0,0 @@
-/*
- * Copyright (C) 2000 Peter Hunnisett
- *
- * 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_D3DCAPS_H
-#define __WINE_D3DCAPS_H
-
-#include <ddraw.h>
-
-typedef struct _D3DTRANSFORMCAPS {
-       DWORD dwSize;
-       DWORD dwCaps;
-} D3DTRANSFORMCAPS, *LPD3DTRANSFORMCAPS;
-
-#define D3DTRANSFORMCAPS_CLIP           0x00000001L
-
-typedef struct _D3DLIGHTINGCAPS {
-       DWORD dwSize;
-       DWORD dwCaps;
-       DWORD dwLightingModel;
-       DWORD dwNumLights;
-} D3DLIGHTINGCAPS, *LPD3DLIGHTINGCAPS;
-
-#define D3DLIGHTINGMODEL_RGB            0x00000001
-#define D3DLIGHTINGMODEL_MONO           0x00000002
-
-#define D3DLIGHTCAPS_POINT              0x00000001
-#define D3DLIGHTCAPS_SPOT               0x00000002
-#define D3DLIGHTCAPS_DIRECTIONAL        0x00000004
-#define D3DLIGHTCAPS_PARALLELPOINT      0x00000008
-#define D3DLIGHTCAPS_GLSPOT             0x00000010
-
-typedef struct _D3dPrimCaps {
-    DWORD dwSize;
-    DWORD dwMiscCaps;
-    DWORD dwRasterCaps;
-    DWORD dwZCmpCaps;
-    DWORD dwSrcBlendCaps;
-    DWORD dwDestBlendCaps;
-    DWORD dwAlphaCmpCaps;
-    DWORD dwShadeCaps;
-    DWORD dwTextureCaps;
-    DWORD dwTextureFilterCaps;
-    DWORD dwTextureBlendCaps;
-    DWORD dwTextureAddressCaps;
-    DWORD dwStippleWidth;
-    DWORD dwStippleHeight;
-} D3DPRIMCAPS, *LPD3DPRIMCAPS;
-
-#define D3DPMISCCAPS_MASKPLANES         0x00000001
-#define D3DPMISCCAPS_MASKZ              0x00000002
-#define D3DPMISCCAPS_LINEPATTERNREP     0x00000004
-#define D3DPMISCCAPS_CONFORMANT         0x00000008
-#define D3DPMISCCAPS_CULLNONE           0x00000010
-#define D3DPMISCCAPS_CULLCW             0x00000020
-#define D3DPMISCCAPS_CULLCCW            0x00000040
-
-#define D3DPRASTERCAPS_DITHER                     0x00000001
-#define D3DPRASTERCAPS_ROP2                       0x00000002
-#define D3DPRASTERCAPS_XOR                        0x00000004
-#define D3DPRASTERCAPS_PAT                        0x00000008
-#define D3DPRASTERCAPS_ZTEST                      0x00000010
-#define D3DPRASTERCAPS_SUBPIXEL                   0x00000020
-#define D3DPRASTERCAPS_SUBPIXELX                  0x00000040
-#define D3DPRASTERCAPS_FOGVERTEX                  0x00000080
-#define D3DPRASTERCAPS_FOGTABLE                   0x00000100
-#define D3DPRASTERCAPS_STIPPLE                    0x00000200
-#define D3DPRASTERCAPS_ANTIALIASSORTDEPENDENT     0x00000400
-#define D3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT   0x00000800
-#define D3DPRASTERCAPS_ANTIALIASEDGES             0x00001000
-#define D3DPRASTERCAPS_MIPMAPLODBIAS              0x00002000
-#define D3DPRASTERCAPS_ZBIAS                      0x00004000
-#define D3DPRASTERCAPS_ZBUFFERLESSHSR             0x00008000
-#define D3DPRASTERCAPS_FOGRANGE                   0x00010000
-#define D3DPRASTERCAPS_ANISOTROPY                 0x00020000
-#define D3DPRASTERCAPS_WBUFFER                    0x00040000
-#define D3DPRASTERCAPS_TRANSLUCENTSORTINDEPENDENT 0x00080000
-#define D3DPRASTERCAPS_WFOG                       0x00100000
-#define D3DPRASTERCAPS_ZFOG                       0x00200000
-
-#define D3DPCMPCAPS_NEVER               0x00000001
-#define D3DPCMPCAPS_LESS                0x00000002
-#define D3DPCMPCAPS_EQUAL               0x00000004
-#define D3DPCMPCAPS_LESSEQUAL           0x00000008
-#define D3DPCMPCAPS_GREATER             0x00000010
-#define D3DPCMPCAPS_NOTEQUAL            0x00000020
-#define D3DPCMPCAPS_GREATEREQUAL        0x00000040
-#define D3DPCMPCAPS_ALWAYS              0x00000080
-
-#define D3DPBLENDCAPS_ZERO              0x00000001
-#define D3DPBLENDCAPS_ONE               0x00000002
-#define D3DPBLENDCAPS_SRCCOLOR          0x00000004
-#define D3DPBLENDCAPS_INVSRCCOLOR       0x00000008
-#define D3DPBLENDCAPS_SRCALPHA          0x00000010
-#define D3DPBLENDCAPS_INVSRCALPHA       0x00000020
-#define D3DPBLENDCAPS_DESTALPHA         0x00000040
-#define D3DPBLENDCAPS_INVDESTALPHA      0x00000080
-#define D3DPBLENDCAPS_DESTCOLOR         0x00000100
-#define D3DPBLENDCAPS_INVDESTCOLOR      0x00000200
-#define D3DPBLENDCAPS_SRCALPHASAT       0x00000400
-#define D3DPBLENDCAPS_BOTHSRCALPHA      0x00000800
-#define D3DPBLENDCAPS_BOTHINVSRCALPHA   0x00001000
-
-#define D3DPSHADECAPS_COLORFLATMONO     0x00000001
-#define D3DPSHADECAPS_COLORFLATRGB      0x00000002
-#define D3DPSHADECAPS_COLORGOURAUDMONO  0x00000004
-#define D3DPSHADECAPS_COLORGOURAUDRGB   0x00000008
-#define D3DPSHADECAPS_COLORPHONGMONO    0x00000010
-#define D3DPSHADECAPS_COLORPHONGRGB     0x00000020
-
-#define D3DPSHADECAPS_SPECULARFLATMONO    0x00000040
-#define D3DPSHADECAPS_SPECULARFLATRGB     0x00000080
-#define D3DPSHADECAPS_SPECULARGOURAUDMONO 0x00000100
-#define D3DPSHADECAPS_SPECULARGOURAUDRGB  0x00000200
-#define D3DPSHADECAPS_SPECULARPHONGMONO   0x00000400
-#define D3DPSHADECAPS_SPECULARPHONGRGB    0x00000800
-
-#define D3DPSHADECAPS_ALPHAFLATBLEND       0x00001000
-#define D3DPSHADECAPS_ALPHAFLATSTIPPLED    0x00002000
-#define D3DPSHADECAPS_ALPHAGOURAUDBLEND    0x00004000
-#define D3DPSHADECAPS_ALPHAGOURAUDSTIPPLED 0x00008000
-#define D3DPSHADECAPS_ALPHAPHONGBLEND      0x00010000
-#define D3DPSHADECAPS_ALPHAPHONGSTIPPLED   0x00020000
-
-#define D3DPSHADECAPS_FOGFLAT           0x00040000
-#define D3DPSHADECAPS_FOGGOURAUD        0x00080000
-#define D3DPSHADECAPS_FOGPHONG          0x00100000
-
-#define D3DPTEXTURECAPS_PERSPECTIVE              0x00000001
-#define D3DPTEXTURECAPS_POW2                     0x00000002
-#define D3DPTEXTURECAPS_ALPHA                    0x00000004
-#define D3DPTEXTURECAPS_TRANSPARENCY             0x00000008
-#define D3DPTEXTURECAPS_BORDER                   0x00000010
-#define D3DPTEXTURECAPS_SQUAREONLY               0x00000020
-#define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 0x00000040
-#define D3DPTEXTURECAPS_ALPHAPALETTE             0x00000080
-#define D3DPTEXTURECAPS_NONPOW2CONDITIONAL  0x00000100L
-/* yes actually 0x00000200 is unused - or at least unreleased */
-#define D3DPTEXTURECAPS_PROJECTED                0x00000400
-#define D3DPTEXTURECAPS_CUBEMAP                  0x00000800
-#define D3DPTEXTURECAPS_COLORKEYBLEND            0x00001000
-
-#define D3DPTFILTERCAPS_NEAREST           0x00000001
-#define D3DPTFILTERCAPS_LINEAR            0x00000002
-#define D3DPTFILTERCAPS_MIPNEAREST        0x00000004
-#define D3DPTFILTERCAPS_MIPLINEAR         0x00000008
-#define D3DPTFILTERCAPS_LINEARMIPNEAREST  0x00000010
-#define D3DPTFILTERCAPS_LINEARMIPLINEAR   0x00000020
-/* yes - missing numbers */
-#define D3DPTFILTERCAPS_MINFPOINT         0x00000100
-#define D3DPTFILTERCAPS_MINFLINEAR        0x00000200
-#define D3DPTFILTERCAPS_MINFANISOTROPIC   0x00000400
-/* yes - missing numbers */
-#define D3DPTFILTERCAPS_MIPFPOINT         0x00010000
-#define D3DPTFILTERCAPS_MIPFLINEAR        0x00020000
-/* yes - missing numbers */
-#define D3DPTFILTERCAPS_MAGFPOINT         0x01000000
-#define D3DPTFILTERCAPS_MAGFLINEAR        0x02000000
-#define D3DPTFILTERCAPS_MAGFANISOTROPIC   0x04000000
-#define D3DPTFILTERCAPS_MAGFAFLATCUBIC    0x08000000
-#define D3DPTFILTERCAPS_MAGFGAUSSIANCUBIC 0x10000000
-
-#define D3DPTBLENDCAPS_DECAL            0x00000001
-#define D3DPTBLENDCAPS_MODULATE         0x00000002
-#define D3DPTBLENDCAPS_DECALALPHA       0x00000004
-#define D3DPTBLENDCAPS_MODULATEALPHA    0x00000008
-#define D3DPTBLENDCAPS_DECALMASK        0x00000010
-#define D3DPTBLENDCAPS_MODULATEMASK     0x00000020
-#define D3DPTBLENDCAPS_COPY             0x00000040
-#define D3DPTBLENDCAPS_ADD              0x00000080
-
-#define D3DPTADDRESSCAPS_WRAP           0x00000001
-#define D3DPTADDRESSCAPS_MIRROR         0x00000002
-#define D3DPTADDRESSCAPS_CLAMP          0x00000004
-#define D3DPTADDRESSCAPS_BORDER         0x00000008
-#define D3DPTADDRESSCAPS_INDEPENDENTUV  0x00000010
-
-
-typedef struct _D3DDeviceDesc {
-        DWORD           dwSize;
-        DWORD           dwFlags;
-        D3DCOLORMODEL   dcmColorModel;
-        DWORD           dwDevCaps;
-        D3DTRANSFORMCAPS dtcTransformCaps;
-        BOOL            bClipping;
-        D3DLIGHTINGCAPS dlcLightingCaps;
-        D3DPRIMCAPS     dpcLineCaps;
-        D3DPRIMCAPS     dpcTriCaps;
-        DWORD           dwDeviceRenderBitDepth;
-        DWORD           dwDeviceZBufferBitDepth;
-        DWORD           dwMaxBufferSize;
-        DWORD           dwMaxVertexCount;
-
-        DWORD           dwMinTextureWidth,dwMinTextureHeight;
-        DWORD           dwMaxTextureWidth,dwMaxTextureHeight;
-        DWORD           dwMinStippleWidth,dwMaxStippleWidth;
-        DWORD           dwMinStippleHeight,dwMaxStippleHeight;
-
-        DWORD       dwMaxTextureRepeat;
-        DWORD       dwMaxTextureAspectRatio;
-        DWORD       dwMaxAnisotropy;
-
-        D3DVALUE    dvGuardBandLeft;
-        D3DVALUE    dvGuardBandTop;
-        D3DVALUE    dvGuardBandRight;
-        D3DVALUE    dvGuardBandBottom;
-
-        D3DVALUE    dvExtentsAdjust;
-        DWORD       dwStencilCaps;
-
-        DWORD       dwFVFCaps;
-        DWORD       dwTextureOpCaps;
-        WORD        wMaxTextureBlendStages;
-        WORD        wMaxSimultaneousTextures;
-} D3DDEVICEDESC,*LPD3DDEVICEDESC;
-#define D3DDEVICEDESCSIZE (sizeof(D3DDEVICEDESC))
-
-typedef struct _D3DDeviceDesc7 {
-        DWORD            dwDevCaps;
-        D3DPRIMCAPS      dpcLineCaps;
-        D3DPRIMCAPS      dpcTriCaps;
-        DWORD            dwDeviceRenderBitDepth;
-        DWORD            dwDeviceZBufferBitDepth;
-
-        DWORD       dwMinTextureWidth, dwMinTextureHeight;
-        DWORD       dwMaxTextureWidth, dwMaxTextureHeight;
-
-        DWORD       dwMaxTextureRepeat;
-        DWORD       dwMaxTextureAspectRatio;
-        DWORD       dwMaxAnisotropy;
-
-        D3DVALUE    dvGuardBandLeft;
-        D3DVALUE    dvGuardBandTop;
-        D3DVALUE    dvGuardBandRight;
-        D3DVALUE    dvGuardBandBottom;
-
-        D3DVALUE    dvExtentsAdjust;
-        DWORD       dwStencilCaps;
-        DWORD       dwFVFCaps;
-        DWORD       dwTextureOpCaps;
-        WORD        wMaxTextureBlendStages;
-        WORD        wMaxSimultaneousTextures;
-
-        DWORD       dwMaxActiveLights;
-        D3DVALUE    dvMaxVertexW;
-        GUID        deviceGUID;
-
-        WORD        wMaxUserClipPlanes;
-        WORD        wMaxVertexBlendMatrices;
-
-        DWORD       dwVertexProcessingCaps;
-
-        DWORD       dwReserved1;
-        DWORD       dwReserved2;
-        DWORD       dwReserved3;
-        DWORD       dwReserved4;
-} D3DDEVICEDESC7, *LPD3DDEVICEDESC7;
-#define D3DDEVICEDESC7SIZE (sizeof(D3DDEVICEDESC7))
-
-#define D3DDD_COLORMODEL                0x00000001
-#define D3DDD_DEVCAPS                   0x00000002
-#define D3DDD_TRANSFORMCAPS             0x00000004
-#define D3DDD_LIGHTINGCAPS              0x00000008
-#define D3DDD_BCLIPPING                 0x00000010
-#define D3DDD_LINECAPS                  0x00000020
-#define D3DDD_TRICAPS                   0x00000040
-#define D3DDD_DEVICERENDERBITDEPTH      0x00000080
-#define D3DDD_DEVICEZBUFFERBITDEPTH     0x00000100
-#define D3DDD_MAXBUFFERSIZE             0x00000200
-#define D3DDD_MAXVERTEXCOUNT            0x00000400
-
-#define D3DDEVCAPS_FLOATTLVERTEX           0x00000001
-#define D3DDEVCAPS_SORTINCREASINGZ         0x00000002
-#define D3DDEVCAPS_SORTDECREASINGZ         0X00000004
-#define D3DDEVCAPS_SORTEXACT               0x00000008
-#define D3DDEVCAPS_EXECUTESYSTEMMEMORY     0x00000010
-#define D3DDEVCAPS_EXECUTEVIDEOMEMORY      0x00000020
-#define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY    0x00000040
-#define D3DDEVCAPS_TLVERTEXVIDEOMEMORY     0x00000080
-#define D3DDEVCAPS_TEXTURESYSTEMMEMORY     0x00000100
-#define D3DDEVCAPS_TEXTUREVIDEOMEMORY      0x00000200
-#define D3DDEVCAPS_DRAWPRIMTLVERTEX        0x00000400
-#define D3DDEVCAPS_CANRENDERAFTERFLIP      0x00000800
-#define D3DDEVCAPS_TEXTURENONLOCALVIDMEM   0x00001000
-#define D3DDEVCAPS_DRAWPRIMITIVES2         0x00002000
-#define D3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x00004000
-#define D3DDEVCAPS_DRAWPRIMITIVES2EX       0x00008000
-#define D3DDEVCAPS_HWTRANSFORMANDLIGHT     0x00010000
-#define D3DDEVCAPS_CANBLTSYSTONONLOCAL     0x00020000
-#define D3DDEVCAPS_HWRASTERIZATION         0x00080000
-
-#define D3DSTENCILCAPS_KEEP     0x00000001
-#define D3DSTENCILCAPS_ZERO     0x00000002
-#define D3DSTENCILCAPS_REPLACE  0x00000004
-#define D3DSTENCILCAPS_INCRSAT  0x00000008
-#define D3DSTENCILCAPS_DECRSAT  0x00000010
-#define D3DSTENCILCAPS_INVERT   0x00000020
-#define D3DSTENCILCAPS_INCR     0x00000040
-#define D3DSTENCILCAPS_DECR     0x00000080
-
-#define D3DTEXOPCAPS_DISABLE                    0x00000001
-#define D3DTEXOPCAPS_SELECTARG1                 0x00000002
-#define D3DTEXOPCAPS_SELECTARG2                 0x00000004
-#define D3DTEXOPCAPS_MODULATE                   0x00000008
-#define D3DTEXOPCAPS_MODULATE2X                 0x00000010
-#define D3DTEXOPCAPS_MODULATE4X                 0x00000020
-#define D3DTEXOPCAPS_ADD                        0x00000040
-#define D3DTEXOPCAPS_ADDSIGNED                  0x00000080
-#define D3DTEXOPCAPS_ADDSIGNED2X                0x00000100
-#define D3DTEXOPCAPS_SUBTRACT                   0x00000200
-#define D3DTEXOPCAPS_ADDSMOOTH                  0x00000400
-#define D3DTEXOPCAPS_BLENDDIFFUSEALPHA          0x00000800
-#define D3DTEXOPCAPS_BLENDTEXTUREALPHA          0x00001000
-#define D3DTEXOPCAPS_BLENDFACTORALPHA           0x00002000
-#define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM        0x00004000
-#define D3DTEXOPCAPS_BLENDCURRENTALPHA          0x00008000
-#define D3DTEXOPCAPS_PREMODULATE                0x00010000
-#define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR     0x00020000
-#define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA     0x00040000
-#define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR  0x00080000
-#define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA  0x00100000
-#define D3DTEXOPCAPS_BUMPENVMAP                 0x00200000
-#define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE        0x00400000
-#define D3DTEXOPCAPS_DOTPRODUCT3                0x00800000
-
-#define D3DFVFCAPS_TEXCOORDCOUNTMASK    0x0000FFFF
-#define D3DFVFCAPS_DONOTSTRIPELEMENTS   0x00080000
-
-#define D3DVTXPCAPS_TEXGEN              0x00000001
-#define D3DVTXPCAPS_MATERIALSOURCE7     0x00000002
-#define D3DVTXPCAPS_VERTEXFOG           0x00000004
-#define D3DVTXPCAPS_DIRECTIONALLIGHTS   0x00000008
-#define D3DVTXPCAPS_POSITIONALLIGHTS    0x00000010
-#define D3DVTXPCAPS_LOCALVIEWER         0x00000020
-
-typedef HRESULT (CALLBACK *LPD3DENUMDEVICESCALLBACK)(LPGUID lpGuid,LPSTR lpDeviceDescription,LPSTR lpDeviceName,LPD3DDEVICEDESC,LPD3DDEVICEDESC,LPVOID);
-typedef HRESULT (CALLBACK *LPD3DENUMDEVICESCALLBACK7)(LPSTR lpDeviceDescription, LPSTR lpDeviceName, LPD3DDEVICEDESC7, LPVOID);
-
-#define D3DFDS_COLORMODEL          0x00000001
-#define D3DFDS_GUID                0x00000002
-#define D3DFDS_HARDWARE            0x00000004
-#define D3DFDS_TRIANGLES           0x00000008
-#define D3DFDS_LINES               0x00000010
-#define D3DFDS_MISCCAPS            0x00000020
-#define D3DFDS_RASTERCAPS          0x00000040
-#define D3DFDS_ZCMPCAPS            0x00000080
-#define D3DFDS_ALPHACMPCAPS        0x00000100
-#define D3DFDS_SRCBLENDCAPS        0x00000200
-#define D3DFDS_DSTBLENDCAPS        0x00000400
-#define D3DFDS_SHADECAPS           0x00000800
-#define D3DFDS_TEXTURECAPS         0x00001000
-#define D3DFDS_TEXTUREFILTERCAPS   0x00002000
-#define D3DFDS_TEXTUREBLENDCAPS    0x00004000
-#define D3DFDS_TEXTUREADDRESSCAPS  0x00008000
-
-typedef struct _D3DFINDDEVICESEARCH {
-    DWORD               dwSize;
-    DWORD               dwFlags;
-    BOOL                bHardware;
-    D3DCOLORMODEL       dcmColorModel;
-    GUID                guid;
-    DWORD               dwCaps;
-    D3DPRIMCAPS         dpcPrimCaps;
-} D3DFINDDEVICESEARCH,*LPD3DFINDDEVICESEARCH;
-
-typedef struct _D3DFINDDEVICERESULT {
-    DWORD               dwSize;
-    GUID                guid;
-    D3DDEVICEDESC       ddHwDesc;
-    D3DDEVICEDESC       ddSwDesc;
-} D3DFINDDEVICERESULT,*LPD3DFINDDEVICERESULT;
-
-typedef struct _D3DExecuteBufferDesc {
-  DWORD  dwSize;
-  DWORD  dwFlags;
-  DWORD  dwCaps;
-  DWORD  dwBufferSize;
-  LPVOID lpData;
-} D3DEXECUTEBUFFERDESC, *LPD3DEXECUTEBUFFERDESC;
-
-#define D3DDEB_BUFSIZE          0x00000001
-#define D3DDEB_CAPS             0x00000002
-#define D3DDEB_LPDATA           0x00000004
-
-#define D3DDEBCAPS_SYSTEMMEMORY 0x00000001
-#define D3DDEBCAPS_VIDEOMEMORY  0x00000002
-#define D3DDEBCAPS_MEM          (D3DDEBCAPS_SYSTEMMEMORY|D3DDEBCAPS_VIDEOMEMORY) /* = 0x3 */
-
-typedef struct _D3DDEVINFO_TEXTUREMANAGER {
-       BOOL    bThrashing;
-       DWORD   dwApproxBytesDownloaded;
-       DWORD   dwNumEvicts;
-       DWORD   dwNumVidCreates;
-       DWORD   dwNumTexturesUsed;
-       DWORD   dwNumUsedTexInVid;
-       DWORD   dwWorkingSet;
-       DWORD   dwWorkingSetBytes;
-       DWORD   dwTotalManaged;
-       DWORD   dwTotalBytes;
-       DWORD   dwLastPri;
-} D3DDEVINFO_TEXTUREMANAGER, *LPD3DDEVINFO_TEXTUREMANAGER;
-
-typedef struct _D3DDEVINFO_TEXTURING {
-       DWORD   dwNumLoads;
-       DWORD   dwApproxBytesLoaded;
-       DWORD   dwNumPreLoads;
-       DWORD   dwNumSet;
-       DWORD   dwNumCreates;
-       DWORD   dwNumDestroys;
-       DWORD   dwNumSetPriorities;
-       DWORD   dwNumSetLODs;
-       DWORD   dwNumLocks;
-       DWORD   dwNumGetDCs;
-} D3DDEVINFO_TEXTURING, *LPD3DDEVINFO_TEXTURING;
-
-
-
-#endif
diff --git a/misc/builddeps/win64/dx/include/d3dhal.h b/misc/builddeps/win64/dx/include/d3dhal.h
deleted file mode 100644 (file)
index 806f299..0000000
+++ /dev/null
@@ -1,535 +0,0 @@
-/*
- * Direct3D driver interface
- * (DirectX 7 version)
- *
- * Copyright (C) 2001 Ove Kaaven
- *
- * 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 _D3DHAL_H_
-#define _D3DHAL_H_
-
-#include <_mingw_dxhelper.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <d3d.h>
-
-/*****************************************************************************
- * device info structures
- */
-typedef struct _D3DDeviceDesc_V1 {
-  DWORD                        dwSize;
-  DWORD                        dwFlags;
-  D3DCOLORMODEL                dcmColorModel;
-  DWORD                        dwDevCaps;
-  D3DTRANSFORMCAPS     dtcTransformCaps;
-  WINBOOL              bClipping;
-  D3DLIGHTINGCAPS      dlcLightingCaps;
-  D3DPRIMCAPS          dpcLineCaps;
-  D3DPRIMCAPS          dpcTriCaps;
-  DWORD                        dwDeviceRenderBitDepth;
-  DWORD                        dwDeviceZBufferBitDepth;
-  DWORD                        dwMaxBufferSize;
-  DWORD                        dwMaxVertexCount;
-} D3DDEVICEDESC_V1,*LPD3DDEVICEDESC_V1;
-
-/* this is to allow keeping the bulk of our OpenGL code out of x11drv */
-#define D3DDD_WINE_OPENGL_DEVICE 0x00008000
-
-typedef struct _D3DHAL_GLOBALDRIVERDATA {
-  DWORD                        dwSize;
-  D3DDEVICEDESC_V1     hwCaps;
-  DWORD                        dwNumVertices;
-  DWORD                        dwNumClipVertices;
-  DWORD                        dwNumTextureFormats;
-  LPDDSURFACEDESC      lpTextureFormats;
-} D3DHAL_GLOBALDRIVERDATA;
-
-#ifndef D3DHAL_GLOBALDRIVERDATA_DEFINED
-typedef D3DHAL_GLOBALDRIVERDATA *LPD3DHAL_GLOBALDRIVERDATA;
-#define D3DHAL_GLOBALDRIVERDATA_DEFINED
-#endif
-
-typedef struct _D3DHAL_D3DEXTENDEDCAPS {
-  DWORD                        dwSize;
-  /* DirectX 5 */
-  DWORD                        dwMinTextureWidth, dwMaxTextureWidth;
-  DWORD                        dwMinTextureHeight, dwMaxTextureHeight;
-  DWORD                        dwMinStippleWidth, dwMaxStippleWidth;
-  DWORD                        dwMinStippleHeight, dwMaxStippleHeight;
-  /* DirectX 6 */
-  DWORD                        dwMaxTextureRepeat;
-  DWORD                        dwMaxTextureAspectRatio;
-  DWORD                        dwMaxAnisotropy;
-  D3DVALUE             dvGuardBandLeft;
-  D3DVALUE             dvGuardBandTop;
-  D3DVALUE             dvGuardBandRight;
-  D3DVALUE             dvGuardBandBottom;
-  D3DVALUE             dvExtentsAdjust;
-  DWORD                        dwStencilCaps;
-  DWORD                        dwFVFCaps;
-  DWORD                        dwTextureOpCaps;
-  WORD                 wMaxTextureBlendStages;
-  WORD                 wMaxSimultaneousTextures;
-  /* DirectX 7 */
-  DWORD                        dwMaxActiveLights;
-  D3DVALUE             dvMaxVertexW;
-  WORD                 wMaxUserClipPlanes;
-  WORD                 wMaxVertexBlendMatrices;
-  DWORD                        dwVertexProcessingCaps;
-  DWORD                        dwReserved1;
-  DWORD                        dwReserved2;
-  DWORD                        dwReserved3;
-  DWORD                        dwReserved4;
-} D3DHAL_D3DEXTENDEDCAPS,*LPD3DHAL_D3DEXTENDEDCAPS;
-
-/*****************************************************************************
- * d3d->driver callbacks
- */
-typedef struct _D3DHAL_CONTEXTCREATEDATA       *LPD3DHAL_CONTEXTCREATEDATA;
-typedef struct _D3DHAL_CONTEXTDESTROYDATA      *LPD3DHAL_CONTEXTDESTROYDATA;
-typedef struct _D3DHAL_CONTEXTDESTROYALLDATA   *LPD3DHAL_CONTEXTDESTROYALLDATA;
-typedef struct _D3DHAL_SCENECAPTUREDATA                *LPD3DHAL_SCENECAPTUREDATA;
-typedef struct _D3DHAL_RENDERSTATEDATA         *LPD3DHAL_RENDERSTATEDATA;
-typedef struct _D3DHAL_RENDERPRIMITIVEDATA     *LPD3DHAL_RENDERPRIMITIVEDATA;
-typedef struct _D3DHAL_TEXTURECREATEDATA       *LPD3DHAL_TEXTURECREATEDATA;
-typedef struct _D3DHAL_TEXTUREDESTROYDATA      *LPD3DHAL_TEXTUREDESTROYDATA;
-typedef struct _D3DHAL_TEXTURESWAPDATA         *LPD3DHAL_TEXTURESWAPDATA;
-typedef struct _D3DHAL_TEXTUREGETSURFDATA      *LPD3DHAL_TEXTUREGETSURFDATA;
-typedef struct _D3DHAL_GETSTATEDATA            *LPD3DHAL_GETSTATEDATA;
-
-typedef DWORD (PASCAL *LPD3DHAL_CONTEXTCREATECB)    (LPD3DHAL_CONTEXTCREATEDATA);
-typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYCB)   (LPD3DHAL_CONTEXTDESTROYDATA);
-typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYALLCB)(LPD3DHAL_CONTEXTDESTROYALLDATA);
-typedef DWORD (PASCAL *LPD3DHAL_SCENECAPTURECB)            (LPD3DHAL_SCENECAPTUREDATA);
-typedef DWORD (PASCAL *LPD3DHAL_RENDERSTATECB)     (LPD3DHAL_RENDERSTATEDATA);
-typedef DWORD (PASCAL *LPD3DHAL_RENDERPRIMITIVECB)  (LPD3DHAL_RENDERPRIMITIVEDATA);
-typedef DWORD (PASCAL *LPD3DHAL_TEXTURECREATECB)    (LPD3DHAL_TEXTURECREATEDATA);
-typedef DWORD (PASCAL *LPD3DHAL_TEXTUREDESTROYCB)   (LPD3DHAL_TEXTUREDESTROYDATA);
-typedef DWORD (PASCAL *LPD3DHAL_TEXTURESWAPCB)     (LPD3DHAL_TEXTURESWAPDATA);
-typedef DWORD (PASCAL *LPD3DHAL_TEXTUREGETSURFCB)   (LPD3DHAL_TEXTUREGETSURFDATA);
-typedef DWORD (PASCAL *LPD3DHAL_GETSTATECB)        (LPD3DHAL_GETSTATEDATA);
-
-typedef struct _D3DHAL_CALLBACKS {
-  DWORD                                dwSize;
-  LPD3DHAL_CONTEXTCREATECB     ContextCreate;
-  LPD3DHAL_CONTEXTDESTROYCB    ContextDestroy;
-  LPD3DHAL_CONTEXTDESTROYALLCB ContextDestroyAll;
-  LPD3DHAL_SCENECAPTURECB      SceneCapture;
-  LPVOID                       lpReserved10;
-  LPVOID                       lpReserved11;
-  LPD3DHAL_RENDERSTATECB       RenderState;
-  LPD3DHAL_RENDERPRIMITIVECB   RenderPrimitive;
-  DWORD                                dwReserved;
-  LPD3DHAL_TEXTURECREATECB     TextureCreate;
-  LPD3DHAL_TEXTUREDESTROYCB    TextureDestroy;
-  LPD3DHAL_TEXTURESWAPCB       TextureSwap;
-  LPD3DHAL_TEXTUREGETSURFCB    TextureGetSurf;
-  /* now why did MS create CALLBACKS2 and CALLBACKS3 structures if
-   * all these reserved fields were available? we may never know */
-  LPVOID                       lpReserved12;
-  LPVOID                       lpReserved13;
-  LPVOID                       lpReserved14;
-  LPVOID                       lpReserved15;
-  LPVOID                       lpReserved16;
-  LPVOID                       lpReserved17;
-  LPVOID                       lpReserved18;
-  LPVOID                       lpReserved19;
-  LPVOID                       lpReserved20;
-  LPVOID                       lpReserved21;
-  LPD3DHAL_GETSTATECB          GetState;
-  DWORD                                dwReserved0;
-  DWORD                                dwReserved1;
-  DWORD                                dwReserved2;
-  DWORD                                dwReserved3;
-  DWORD                                dwReserved4;
-  DWORD                                dwReserved5;
-  DWORD                                dwReserved6;
-  DWORD                                dwReserved7;
-  DWORD                                dwReserved8;
-  DWORD                                dwReserved9;
-} D3DHAL_CALLBACKS;
-
-#ifndef D3DHAL_CALLBACKS_DEFINED
-typedef D3DHAL_CALLBACKS *LPD3DHAL_CALLBACKS;
-#define D3DHAL_CALLBACKS_DEFINED
-#endif
-
-typedef struct _D3DHAL_SETRENDERTARGETDATA             *LPD3DHAL_SETRENDERTARGETDATA;
-typedef struct _D3DHAL_CLEARDATA                       *LPD3DHAL_CLEARDATA;
-typedef struct _D3DHAL_DRAWONEPRIMITIVEDATA            *LPD3DHAL_DRAWONEPRIMITIVEDATA;
-typedef struct _D3DHAL_DRAWONEINDEXEDPRIMITIVEDATA     *LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA;
-typedef struct _D3DHAL_DRAWPRIMITIVESDATA              *LPD3DHAL_DRAWPRIMITIVESDATA;
-
-typedef DWORD (PASCAL *LPD3DHAL_SETRENDERTARGETCB)       (LPD3DHAL_SETRENDERTARGETDATA);
-typedef DWORD (PASCAL *LPD3DHAL_CLEARCB)                 (LPD3DHAL_CLEARDATA);
-typedef DWORD (PASCAL *LPD3DHAL_DRAWONEPRIMITIVECB)      (LPD3DHAL_DRAWONEPRIMITIVEDATA);
-typedef DWORD (PASCAL *LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB)(LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA);
-typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVESCB)        (LPD3DHAL_DRAWPRIMITIVESDATA);
-
-typedef struct _D3DHAL_CALLBACKS2 {
-  DWORD                                        dwSize;
-  DWORD                                        dwFlags;
-  LPD3DHAL_SETRENDERTARGETCB           SetRenderTarget;
-  LPD3DHAL_CLEARCB                     Clear;
-  LPD3DHAL_DRAWONEPRIMITIVECB          DrawOnePrimitive;
-  LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB   DrawOneIndexedPrimitive;
-  LPD3DHAL_DRAWPRIMITIVESCB            DrawPrimitives;
-} D3DHAL_CALLBACKS2,*LPD3DHAL_CALLBACKS2;
-
-typedef struct _D3DHAL_CLEAR2DATA                      *LPD3DHAL_CLEAR2DATA;
-typedef struct _D3DHAL_VALIDATETEXTURESTAGESTATEDATA   *LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA;
-typedef struct _D3DHAL_DRAWPRIMITIVES2DATA             *LPD3DHAL_DRAWPRIMITIVES2DATA;
-
-typedef DWORD (PASCAL *LPD3DHAL_CLEAR2CB)                (LPD3DHAL_CLEAR2DATA);
-typedef DWORD (PASCAL *LPD3DHAL_VALIDATETEXTURESTAGESTATECB)(LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA);
-typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVES2CB)       (LPD3DHAL_DRAWPRIMITIVES2DATA);
-
-typedef struct _D3DHAL_CALLBACKS3 {
-  DWORD                                        dwSize;
-  DWORD                                        dwFlags;
-  LPD3DHAL_CLEAR2CB                    Clear2;
-  LPVOID                               lpvReserved;
-  LPD3DHAL_VALIDATETEXTURESTAGESTATECB ValidateTextureStageState;
-  LPD3DHAL_DRAWPRIMITIVES2CB           DrawPrimitives2;
-} D3DHAL_CALLBACKS3,*LPD3DHAL_CALLBACKS3;
-
-/*****************************************************************************
- * parameter structures
- */
-typedef struct _D3DHAL_CONTEXTCREATEDATA {
-  union {
-    LPDDRAWI_DIRECTDRAW_GBL    lpDDGbl; /* pre-DirectX 7 */
-    LPDDRAWI_DIRECTDRAW_LCL    lpDDLcl; /* DirectX 7 */
-  } DUMMYUNIONNAME1;
-  union {
-    LPDIRECTDRAWSURFACE                lpDDS;
-    LPDDRAWI_DDRAWSURFACE_LCL  lpDDSLcl; /* DirectX 7 */
-  } DUMMYUNIONNAME2;
-  union {
-    LPDIRECTDRAWSURFACE                lpDDSZ;
-    LPDDRAWI_DDRAWSURFACE_LCL  lpDDSZLcl; /* DirectX 7 */
-  } DUMMYUNIONNAME3;
-  union {
-    DWORD                      dwPID;
-    ULONG_PTR                  dwrstates;
-  } DUMMYUNIONNAME4;
-  ULONG_PTR                    dwhContext;
-  HRESULT                      ddrval;
-} D3DHAL_CONTEXTCREATEDATA;
-
-typedef struct _D3DHAL_CONTEXTDESTROYDATA {
-  ULONG_PTR                    dwhContext;
-  HRESULT                      ddrval;
-} D3DHAL_CONTEXTDESTROYDATA;
-
-typedef struct _D3DHAL_CONTEXTDESTROYALLDATA {
-  DWORD                                dwPID;
-  HRESULT                      ddrval;
-} D3DHAL_CONTEXTDESTROYALLDATA;
-
-typedef struct _D3DHAL_SCENECAPTUREDATA {
-  ULONG_PTR                    dwhContext;
-  DWORD                                dwFlag;
-  HRESULT                      ddrval;
-} D3DHAL_SCENECAPTUREDATA;
-
-#define D3DHAL_SCENE_CAPTURE_START     0x00000000
-#define D3DHAL_SCENE_CAPTURE_END       0x00000001
-
-typedef struct _D3DHAL_SETRENDERTARGETDATA {
-  ULONG_PTR                    dwhContext;
-  union {
-    LPDIRECTDRAWSURFACE                lpDDS;
-    LPDDRAWI_DDRAWSURFACE_LCL  lpDDSLcl;
-  } DUMMYUNIONNAME1;
-  union {
-    LPDIRECTDRAWSURFACE                lpDDSZ;
-    LPDDRAWI_DDRAWSURFACE_LCL  lpDDSZLcl;
-  } DUMMYUNIONNAME2;
-  HRESULT                      ddrval;
-} D3DHAL_SETRENDERTARGETDATA;
-
-typedef struct _D3DHAL_DRAWPRIMITIVES2DATA {
-  ULONG_PTR                    dwhContext;
-  DWORD                                dwFlags;
-  DWORD                                dwVertexType;
-  LPDDRAWI_DDRAWSURFACE_LCL    lpDDCommands;
-  DWORD                                dwCommandOffset;
-  DWORD                                dwCommandLength;
-  union {
-    LPDDRAWI_DDRAWSURFACE_LCL  lpDDVertex;
-    LPVOID                     lpVertices;
-  } DUMMYUNIONNAME1;
-  DWORD                                dwVertexOffset;
-  DWORD                                dwVertexLength;
-  DWORD                                dwReqVertexBufSize;
-  DWORD                                dwReqCommandBufSize;
-  LPDWORD                      lpdwRStates;
-  union {
-    DWORD                      dwVertexSize;
-    HRESULT                    ddrval;
-  } DUMMYUNIONNAME2;
-  DWORD                                dwErrorOffset;
-} D3DHAL_DRAWPRIMITIVES2DATA;
-
-#define D3DHALDP2_USERMEMVERTICES      0x00000001
-#define D3DHALDP2_EXECUTEBUFFER                0x00000002
-#define D3DHALDP2_SWAPVERTEXBUFFER     0x00000004
-#define D3DHALDP2_SWAPCOMMANDBUFFER    0x00000008
-#define D3DHALDP2_REQVERTEXBUFSIZE     0x00000010
-#define D3DHALDP2_REQCOMMANDBUFSIZE    0x00000020
-#define D3DHALDP2_VIDMEMVERTEXBUF      0x00000040
-#define D3DHALDP2_VIDMEMCOMMANDBUF     0x00000080
-
-/*****************************************************************************
- * DrawPrimitives2 command structures
- */
-typedef struct _D3DHAL_DP2COMMAND {
-  BYTE bCommand;
-  BYTE bReserved;
-  union {
-    WORD wPrimitiveCount;
-    WORD wStateCount;
-  } DUMMYUNIONNAME;
-} D3DHAL_DP2COMMAND,*LPD3DHAL_DP2COMMAND;
-
-typedef enum _D3DHAL_DP2OPERATION {
-  D3DDP2OP_POINTS              = 1,
-  D3DDP2OP_INDEXEDLINELIST     = 2,
-  D3DDP2OP_INDEXEDTRIANGLELIST = 3,
-  D3DDP2OP_RENDERSTATE         = 8,
-  D3DDP2OP_LINELIST            = 15,
-  D3DDP2OP_LINESTRIP           = 16,
-  D3DDP2OP_INDEXEDLINESTRIP    = 17,
-  D3DDP2OP_TRIANGLELIST                = 18,
-  D3DDP2OP_TRIANGLESTRIP       = 19,
-  D3DDP2OP_INDEXEDTRIANGLESTRIP        = 20,
-  D3DDP2OP_TRIANGLEFAN         = 21,
-  D3DDP2OP_INDEXEDTRIANGLEFAN  = 22,
-  D3DDP2OP_TRIANGLEFAN_IMM     = 23,
-  D3DDP2OP_LINELIST_IMM                = 24,
-  D3DDP2OP_TEXTURESTAGESTATE   = 25,
-  D3DDP2OP_INDEXEDTRIANGLELIST2        = 26,
-  D3DDP2OP_INDEXEDLINELIST2    = 27,
-  D3DDP2OP_VIEWPORTINFO                = 28,
-  D3DDP2OP_WINFO               = 29,
-  /* pre-DirectX 7 interfaces */
-  D3DDP2OP_SETPALETTE          = 30,
-  D3DDP2OP_UPDATEPALETTE       = 31,
-  /* DirectX 7 interfaces */
-  D3DDP2OP_ZRANGE              = 32,
-  D3DDP2OP_SETMATERIAL         = 33,
-  D3DDP2OP_SETLIGHT            = 34,
-  D3DDP2OP_CREATELIGHT         = 35,
-  D3DDP2OP_SETTRANSFORM                = 36,
-  D3DDP2OP_TEXBLT              = 38,
-  D3DDP2OP_STATESET            = 39,
-  D3DDP2OP_SETPRIORITY         = 40,
-  /* all interfaces */
-  D3DDP2OP_SETRENDERTARGET     = 41,
-  D3DDP2OP_CLEAR               = 42,
-  /* DirectX 7 interfaces */
-  D3DDP2OP_SETTEXLOD           = 43,
-  D3DPP2OP_SETCLIPPLANE                = 44,
-} D3DHAL_DP2OPERATION;
-
-/* point primitives */
-
-typedef struct _D3DHAL_POINTS {
-  WORD wCount;
-  WORD wVStart;
-} D3DHAL_DP2POINTS,*LPD3DHAL_DP2POINTS;
-
-/* line primitives */
-
-typedef struct _D3DHAL_DP2STARTVERTEX {
-  WORD wVStart;
-} D3DHAL_DP2STARTVERTEX,*LPD3DHAL_DP2STARTVERTEX;
-
-typedef struct _D3DHAL_DP2LINELIST {
-  WORD wVStart;
-} D3DHAL_DP2LINELIST,*LPD3DHAL_DP2LINELIST;
-
-typedef struct _D3DHAL_DP2INDEXEDLINELIST {
-  WORD wV1;
-  WORD wV2;
-} D3DHAL_DP2INDEXEDLINELIST,*LPD3DHAL_DP2INDEXEDLINELIST;
-
-typedef struct _D3DHAL_DP2LINESTRIP {
-  WORD wVStart;
-} D3DHAL_DP2LINESTRIP,*LPD3DHAL_DP2LINESTRIP;
-
-typedef struct _D3DHAL_DP2INDEXEDLINESTRIP {
-  WORD wV[2];
-} D3DHAL_DP2INDEXEDLINESTRIP,*LPD3DHAL_DP2INDEXEDLINESTRIP;
-
-/* triangle primitives */
-
-typedef struct _D3DHAL_DP2TRIANGLELIST {
-  WORD wVStart;
-} D3DHAL_DP2TRIANGLELIST,*LPD3DHAL_DP2TRIANGLELIST;
-
-typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST {
-  WORD wV1;
-  WORD wV2;
-  WORD wV3;
-  WORD wFlags;
-} D3DHAL_DP2INDEXEDTRIANGLELIST,*LPD3DHAL_DP2INDEXEDTRIANGLELIST;
-
-typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST2 {
-  WORD wV1;
-  WORD wV2;
-  WORD wV3;
-} D3DHAL_DP2INDEXEDTRIANGLELIST2,*LPD3DHAL_DP2INDEXEDTRIANGLELIST2;
-
-typedef struct _D3DHAL_DP2TRIANGLESTRIP {
-  WORD wVStart;
-} D3DHAL_DP2TRIANGLESTRIP,*LPD3DHAL_DP2TRIANGLESTRIP;
-
-typedef struct _D3DHAL_DP2INDEXEDTRIANGLESTRIP {
-  WORD wV[3];
-} D3DHAL_DP2INDEXEDTRIANGLESTRIP,*LPD3DHAL_DP2INDEXEDTRIANGLESTRIP;
-
-typedef struct _D3DHAL_DP2TRIANGLEFAN {
-  WORD wVStart;
-} D3DHAL_DP2TRIANGLEFAN,*LPD3DHAL_DP2TRIANGLEFAN;
-
-typedef struct _D3DHAL_DP2INDEXEDTRIANGLEFAN {
-  WORD wV[3];
-} D3DHAL_DP2INDEXEDTRIANGLEFAN,*LPD3DHAL_DP2INDEXEDTRIANGLEFAN;
-
-typedef struct _D3DHAL_DP2TRIANGLEFAN_IMM {
-  DWORD dwEdgeFlags;
-} D3DHAL_DP2TRIANGLEFAN_IMM,*LPD3DHAL_DP2TRIANGLEFAN_IMM;
-
-/* render states */
-typedef struct _D3DHAL_DP2RENDERSTATE {
-  D3DRENDERSTATETYPE   RenderState;
-  union {
-    D3DVALUE dvState;
-    DWORD dwState;
-  } DUMMYUNIONNAME;
-} D3DHAL_DP2RENDERSTATE,*LPD3DHAL_DP2RENDERSTATE;
-
-typedef struct _D3DHAL_DP2TEXTURESTAGESTATE {
-  WORD wStage;
-  WORD TSState;
-  DWORD dwValue;
-} D3DHAL_DP2TEXTURESTAGESTATE,*LPD3DHAL_DP2TEXTURESTAGESTATE;
-
-#define D3DTSS_TEXTUREMAP 0
-
-typedef struct _D3DHAL_DP2VIEWPORTINFO {
-  DWORD dwX;
-  DWORD dwY;
-  DWORD dwWidth;
-  DWORD dwHeight;
-} D3DHAL_DP2VIEWPORTINFO,*LPD3DHAL_DP2VIEWPORTINFO;
-
-typedef struct _D3DHAL_DP2WINFO {
-  D3DVALUE dwWNear;
-  D3DVALUE dwWFar;
-} D3DHAL_DP2WINFO,*LPD3DHAL_DP2WINFO;
-
-typedef struct _D3DHAL_DP2SETPALETTE {
-  DWORD dwPaletteHandle;
-  DWORD dwPaletteFlags;
-  DWORD dwSurfaceHandle;
-} D3DHAL_DP2SETPALETTE,*LPD3DHAL_DP2SETPALETTE;
-
-typedef struct _D3DHAL_DP2UPDATEPALETTE {
-  DWORD dwPaletteHandle;
-  WORD wStartIndex;
-  WORD wNumEntries;
-} D3DHAL_DP2UPDATEPALETTE,*LPD3DHAL_DP2UPDATEPALETTE;
-
-typedef struct _D3DHAL_DP2ZRANGE {
-  D3DVALUE dvMinZ;
-  D3DVALUE dvMaxZ;
-} D3DHAL_DP2ZRANGE,*LPD3DHAL_DP2ZRANGE;
-
-typedef D3DMATERIAL7 D3DHAL_DP2SETMATERIAL,*LPD3DHAL_DP2SETMATERIAL;
-
-typedef struct _D3DHAL_DP2SETLIGHT {
-  DWORD dwIndex;
-  DWORD dwDataType;
-} D3DHAL_DP2SETLIGHT,*LPD3DHAL_DP2SETLIGHT;
-
-#define D3DHAL_SETLIGHT_ENABLE 0
-#define D3DHAL_SETLIGHT_DISABLE        1
-#define D3DHAL_SETLIGHT_DATA   2
-
-typedef struct _D3DHAL_DP2CREATELIGHT {
-  DWORD dwIndex;
-} D3DHAL_DP2CREATELIGHT,*LPD3DHAL_DP2CREATELIGHT;
-
-typedef struct _D3DHAL_DP2SETTRANSFORM {
-  D3DTRANSFORMSTATETYPE        xfrmType;
-  D3DMATRIX            matrix;
-} D3DHAL_DP2SETTRANSFORM,*LPD3DHAL_DP2SETTRANSFORM;
-
-typedef struct _D3DHAL_DP2TEXBLT {
-  DWORD dwDDDestSurface;
-  DWORD dwDDSrcSurface;
-  POINT pDest;
-  RECTL rSrc;
-  DWORD dwFlags;
-} D3DHAL_DP2TEXBLT,*LPD3DHAL_DP2TEXBLT;
-
-typedef struct _D3DHAL_DP2STATESET {
-  DWORD               dwOperation;
-  DWORD               dwParam;
-  D3DSTATEBLOCKTYPE   sbType;
-} D3DHAL_DP2STATESET,*LPD3DHAL_DP2STATESET;
-
-#define D3DHAL_STATESETBEGIN   0
-#define D3DHAL_STATESETEND     1
-#define D3DHAL_STATESETDELETE  2
-#define D3DHAL_STATESETEXECUTE 3
-#define D3DHAL_STATESETCAPTURE 4
-
-typedef struct _D3DHAL_DP2SETPRIORITY {
-  DWORD dwDDSurface;
-  DWORD dwPriority;
-} D3DHAL_DP2SETPRIORITY,*LPD3DHAL_DP2SETPRIORITY;
-
-typedef struct _D3DHAL_DP2SETRENDERTARGET {
-  DWORD hRenderTarget;
-  DWORD hZBuffer;
-} D3DHAL_DP2SETRENDERTARGET,*LPD3DHAL_DP2SETRENDERTARGET;
-
-typedef struct _D3DHAL_DP2CLEAR {
-  DWORD                dwFlags;
-  DWORD                dwFillColor;
-  D3DVALUE     dvFillDepth;
-  DWORD                dwFillStencil;
-  RECT         Rects[1];
-} D3DHAL_DP2CLEAR,*LPD3DHAL_DP2CLEAR;
-
-typedef struct _D3DHAL_DP2SETTEXLOD {
-  DWORD dwDDSurface;
-  DWORD dwLOD;
-} D3DHAL_DP2SETTEXLOD,*LPD3DHAL_DP2SETTEXLOD;
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* _D3DHAL_H_ */
diff --git a/misc/builddeps/win64/dx/include/d3drm.h b/misc/builddeps/win64/dx/include/d3drm.h
deleted file mode 100644 (file)
index 240014e..0000000
+++ /dev/null
@@ -1,497 +0,0 @@
-/*
- * Copyright (C) 2005 Peter Berg Larsen
- * Copyright (C) 2010 Christian Costa
- *
- * 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 __D3DRM_H__
-#define __D3DRM_H__
-
-#include <ddraw.h>
-
-typedef struct IDirect3DRM *LPDIRECT3DRM;
-
-#include <d3drmobj.h>
-
-
-/* Direct3DRM Object CLSID */
-DEFINE_GUID(CLSID_CDirect3DRM,              0x4516ec41, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
-
-/* Direct3DRM Interface GUIDs */
-DEFINE_GUID(IID_IDirect3DRM,                0x2bc49361, 0x8327, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRM2,               0x4516ecc8, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
-DEFINE_GUID(IID_IDirect3DRM3,               0x4516ec83, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
-
-HRESULT WINAPI Direct3DRMCreate(LPDIRECT3DRM* ppDirect3DRM);
-
-/*****************************************************************************
- * IDirect3DRMObject interface
- */
-#ifdef WINE_NO_UNICODE_MACROS
-#undef GetClassName
-#endif
-#define INTERFACE IDirect3DRM
-DECLARE_INTERFACE_(IDirect3DRM,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRM methods ***/
-    STDMETHOD(CreateObject)(THIS_ REFCLSID rclsid, LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(CreateFrame)(THIS_ LPDIRECT3DRMFRAME, LPDIRECT3DRMFRAME *) PURE;
-    STDMETHOD(CreateMesh)(THIS_ LPDIRECT3DRMMESH *) PURE;
-    STDMETHOD(CreateMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER *) PURE;
-    STDMETHOD(CreateFace)(THIS_ LPDIRECT3DRMFACE *) PURE;
-    STDMETHOD(CreateAnimation)(THIS_ LPDIRECT3DRMANIMATION *) PURE;
-    STDMETHOD(CreateAnimationSet)(THIS_ LPDIRECT3DRMANIMATIONSET *) PURE;
-    STDMETHOD(CreateTexture)(THIS_ LPD3DRMIMAGE, LPDIRECT3DRMTEXTURE *) PURE;
-    STDMETHOD(CreateLight)(THIS_ D3DRMLIGHTTYPE, D3DCOLOR, LPDIRECT3DRMLIGHT *) PURE;
-    STDMETHOD(CreateLightRGB)(THIS_ D3DRMLIGHTTYPE, D3DVALUE, D3DVALUE, D3DVALUE, LPDIRECT3DRMLIGHT *) PURE;
-    STDMETHOD(CreateMaterial)(THIS_ D3DVALUE, LPDIRECT3DRMMATERIAL *) PURE;
-    STDMETHOD(CreateDevice)(THIS_ DWORD, DWORD, LPDIRECT3DRMDEVICE *) PURE;
-    STDMETHOD(CreateDeviceFromSurface)(THIS_ LPGUID pGUID, LPDIRECTDRAW pDD, LPDIRECTDRAWSURFACE pDDSBack,
-        LPDIRECT3DRMDEVICE *) PURE;
-    STDMETHOD(CreateDeviceFromD3D)(THIS_ LPDIRECT3D pD3D, LPDIRECT3DDEVICE pD3DDev, LPDIRECT3DRMDEVICE *) PURE;
-    STDMETHOD(CreateDeviceFromClipper)(THIS_ LPDIRECTDRAWCLIPPER pDDClipper, LPGUID pGUID, int width, int height,
-        LPDIRECT3DRMDEVICE *) PURE;
-    STDMETHOD(CreateShadow)(THIS_ LPDIRECT3DRMVISUAL, LPDIRECT3DRMLIGHT, D3DVALUE px, D3DVALUE py, D3DVALUE pz,
-        D3DVALUE nx, D3DVALUE ny, D3DVALUE nz, LPDIRECT3DRMVISUAL *) PURE;
-    STDMETHOD(CreateTextureFromSurface)(THIS_ LPDIRECTDRAWSURFACE pDDS, LPDIRECT3DRMTEXTURE *) PURE;
-    STDMETHOD(CreateViewport)(THIS_ LPDIRECT3DRMDEVICE, LPDIRECT3DRMFRAME, DWORD, DWORD, DWORD, DWORD,
-        LPDIRECT3DRMVIEWPORT *) PURE;
-    STDMETHOD(CreateWrap)(THIS_ D3DRMWRAPTYPE, LPDIRECT3DRMFRAME, D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
-        D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz, D3DVALUE ou, D3DVALUE ov,
-        D3DVALUE su, D3DVALUE sv, LPDIRECT3DRMWRAP *) PURE;
-    STDMETHOD(CreateUserVisual)(THIS_ D3DRMUSERVISUALCALLBACK, LPVOID pArg, LPDIRECT3DRMUSERVISUAL *) PURE;
-    STDMETHOD(LoadTexture)(THIS_ const char *, LPDIRECT3DRMTEXTURE *) PURE;
-    STDMETHOD(LoadTextureFromResource)(THIS_ HRSRC rs, LPDIRECT3DRMTEXTURE *) PURE;
-    STDMETHOD(SetSearchPath)(THIS_ LPCSTR) PURE;
-    STDMETHOD(AddSearchPath)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetSearchPath)(THIS_ DWORD *size_return, LPSTR path_return) PURE;
-    STDMETHOD(SetDefaultTextureColors)(THIS_ DWORD) PURE;
-    STDMETHOD(SetDefaultTextureShades)(THIS_ DWORD) PURE;
-    STDMETHOD(GetDevices)(THIS_ LPDIRECT3DRMDEVICEARRAY *) PURE;
-    STDMETHOD(GetNamedObject)(THIS_ const char *, LPDIRECT3DRMOBJECT *) PURE;
-    STDMETHOD(EnumerateObjects)(THIS_ D3DRMOBJECTCALLBACK, LPVOID) PURE;
-    STDMETHOD(Load)(THIS_ LPVOID, LPVOID, LPIID *, DWORD, D3DRMLOADOPTIONS, D3DRMLOADCALLBACK, LPVOID,
-        D3DRMLOADTEXTURECALLBACK, LPVOID, LPDIRECT3DRMFRAME) PURE;
-    STDMETHOD(Tick)(THIS_ D3DVALUE) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRM_QueryInterface(p,a,b)                         (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRM_AddRef(p)                                     (p)->lpVtbl->AddRef(p)
-#define IDirect3DRM_Release(p)                                    (p)->lpVtbl->Release(p)
-/*** IDirect3DRM methods ***/
-#define IDirect3DRM_CreateObject(p,a,b,c,d)                       (p)->lpVtbl->CreateObject(p,a,b,d)
-#define IDirect3DRM_CreateFrame(p,a,b)                            (p)->lpVtbl->CreateFrame(p,a,b)
-#define IDirect3DRM_CreateMesh(p,a)                               (p)->lpVtbl->CreateMesh(p,a)
-#define IDirect3DRM_CreateMeshBuilder(p,a)                        (p)->lpVtbl->CreateMeshBuilder(p,a)
-#define IDirect3DRM_CreateFace(p,a)                               (p)->lpVtbl->CreateFace(p,a)
-#define IDirect3DRM_CreateAnimation(p,a)                          (p)->lpVtbl->CreateAnimation(p,a)
-#define IDirect3DRM_CreateAnimationSet(p,a)                       (p)->lpVtbl->CreateAnimationSet(p,a)
-#define IDirect3DRM_CreateTexture(p,a,b)                          (p)->lpVtbl->CreateTexture(p,a,b)
-#define IDirect3DRM_CreateLight(p,a,b,c)                          (p)->lpVtbl->CreateLight(p,a,b,c)
-#define IDirect3DRM_CreateLightRGB(p,a,b,c,d,e)                   (p)->lpVtbl->CreateLightRGB(p,a,b,c,d,e)
-#define IDirect3DRM_CreateMaterial(p,a,b)                         (p)->lpVtbl->CreateMaterial(p,a,b)
-#define IDirect3DRM_CreateDevice(p,a,b,c)                         (p)->lpVtbl->CreateDevice(p,a,b,c)
-#define IDirect3DRM_CreateDeviceFromSurface(p,a,b,c,d)            (p)->lpVtbl->CreateDeviceFromSurface(p,a,b,c,d)
-#define IDirect3DRM_CreateDeviceFromD3D(p,a,b,c)                  (p)->lpVtbl->CreateDeviceFromD3D(p,a,b,c)
-#define IDirect3DRM_CreateDeviceFromClipper(p,a,b,c,d,e)          (p)->lpVtbl->CreateDeviceFromClipper(p,a,b,c,d,e)
-#define IDirect3DRM_CreateTextureFromSurface(p,a,b)               (p)->lpVtbl->CreateTextureFromSurface(p,a,b)
-#define IDirect3DRM_CreateShadow(p,a,b,c,d,e,f,g,h,i)             (p)->lpVtbl->CreateShadow(p,a,b,c,d,e,f,g,h,i)
-#define IDirect3DRM_CreateViewport(p,a,b,c,d,e,f,g)               (p)->lpVtbl->CreateViewport(p,a,b,c,d,e,f,g)
-#define IDirect3DRM_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q) (p)->lpVtbl->CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q)
-#define IDirect3DRM_CreateUserVisual(p,a,b,c)                     (p)->lpVtbl->CreateUserVisual(p,a,b,c)
-#define IDirect3DRM_LoadTexture(p,a,b)                            (p)->lpVtbl->LoadTexture(p,a,b)
-#define IDirect3DRM_LoadTextureFromResource(p,a,b)                (p)->lpVtbl->LoadTextureFromResource(p,a,b)
-#define IDirect3DRM_SetSearchPath(p,a)                            (p)->lpVtbl->SetSearchPath(p,a)
-#define IDirect3DRM_AddSearchPath(p,a)                            (p)->lpVtbl->AddSearchPath(p,a)
-#define IDirect3DRM_GetSearchPath(p,a,b)                          (p)->lpVtbl->GetSearchPath(p,a,b)
-#define IDirect3DRM_SetDefaultTextureColors(p,a)                  (p)->lpVtbl->SetDefaultTextureColors(p,a)
-#define IDirect3DRM_SetDefaultTextureShades(p,a)                  (p)->lpVtbl->SetDefaultTextureShades(p,a)
-#define IDirect3DRM_GetDevices(p,a)                               (p)->lpVtbl->GetDevices(p,a)
-#define IDirect3DRM_GetNamedObject(p,a,b)                         (p)->lpVtbl->GetNamedObject(p,a,b)
-#define IDirect3DRM_EnumerateObjects(p,a,b)                       (p)->lpVtbl->EnumerateObjects(p,a,b)
-#define IDirect3DRM_Load(p,a,b,c,d,e,f,g,h,i,j)                   (p)->lpVtbl->Load(p,a,b,c,d,e,f,g,h,i,j)
-#define IDirect3DRM_Tick(p,a)                                     (p)->lpVtbl->Tick(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRM_QueryInterface(p,a,b)                         (p)->QueryInterface(a,b)
-#define IDirect3DRM_AddRef(p)                                     (p)->AddRef()
-#define IDirect3DRM_Release(p)                                    (p)->Release()
-/*** IDirect3DRM methods ***/
-#define IDirect3DRM_CreateObject(p,a,b,c,d)                       (p)->CreateObject(a,b,d)
-#define IDirect3DRM_CreateFrame(p,a,b)                            (p)->CreateFrame(a,b)
-#define IDirect3DRM_CreateMesh(p,a)                               (p)->CreateMesh(a)
-#define IDirect3DRM_CreateMeshBuilder(p,a)                        (p)->CreateMeshBuilder(a)
-#define IDirect3DRM_CreateFace(p,a)                               (p)->CreateFace(a)
-#define IDirect3DRM_CreateAnimation(p,a)                          (p)->CreateAnimation(a)
-#define IDirect3DRM_CreateAnimationSet(p,a)                       (p)->CreateAnimationSet(a)
-#define IDirect3DRM_CreateTexture(p,a,b)                          (p)->CreateTexture(a,b)
-#define IDirect3DRM_CreateLight(p,a,b,c)                          (p)->CreateLight(a,b,c)
-#define IDirect3DRM_CreateLightRGB(p,a,b,c,d,e)                   (p)->CreateLightRGB(a,b,c,d,e)
-#define IDirect3DRM_CreateMaterial(p,a,b)                         (p)->CreateMaterial(a,b)
-#define IDirect3DRM_CreateDevice(p,a,b,c)                         (p)->CreateDevice(a,b,c)
-#define IDirect3DRM_CreateDeviceFromSurface(p,a,b,c,d)            (p)->CreateDeviceFromSurface(a,b,c,d)
-#define IDirect3DRM_CreateDeviceFromD3D(p,a,b,c)                  (p)->CreateDeviceFromD3D(a,b,c)
-#define IDirect3DRM_CreateDeviceFromClipper(p,a,b,c,d,e)          (p)->CreateDeviceFromClipper(a,b,c,d,e)
-#define IDirect3DRM_CreateTextureFromSurface(p,a,b)               (p)->CreateTextureFromSurface(a,b)
-#define IDirect3DRM_CreateShadow(p,a,b,c,d,e,f,g,h,i)             (p)->CreateShadow(a,b,c,d,e,f,g,h,i)
-#define IDirect3DRM_CreateViewport(p,a,b,c,d,e,f,g)               (p)->CreateViewport(a,b,c,d,e,f,g)
-#define IDirect3DRM_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) (p)->CreateWrap(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p)
-#define IDirect3DRM_CreateUserVisual(p,a,b,c)                     (p)->CreateUserVisual(a,b,c)
-#define IDirect3DRM_LoadTexture(p,a,b)                            (p)->LoadTexture(a,b)
-#define IDirect3DRM_LoadTextureFromResource(p,a,b)                (p)->LoadTextureFromResource(a,b)
-#define IDirect3DRM_SetSearchPath(p,a)                            (p)->SetSearchPath(a)
-#define IDirect3DRM_AddSearchPath(p,a)                            (p)->AddSearchPath(a)
-#define IDirect3DRM_GetSearchPath(p,a,b)                          (p)->GetSearchPath(a,b)
-#define IDirect3DRM_SetDefaultTextureColors(p,a)                  (p)->SetDefaultTextureColors(a)
-#define IDirect3DRM_SetDefaultTextureShades(p,a)                  (p)->SetDefaultTextureShades(a)
-#define IDirect3DRM_GetDevices(p,a)                               (p)->GetDevices(a)
-#define IDirect3DRM_GetNamedObject(p,a,b)                         (p)->GetNamedObject(a,b)
-#define IDirect3DRM_EnumerateObjects(p,a,b)                       (p)->EnumerateObjects(a,b)
-#define IDirect3DRM_Load(p,a,b,c,d,e,f,g,h,i,j)                   (p)->Load(a,b,c,d,e,f,g,h,i,j)
-#define IDirect3DRM_Tick(p,a)                                     (p)->Tick(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DRM2 interface
- */
-#ifdef WINE_NO_UNICODE_MACROS
-#undef GetClassName
-#endif
-#define INTERFACE IDirect3DRM2
-DECLARE_INTERFACE_(IDirect3DRM2,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRM2 methods ***/
-    STDMETHOD(CreateObject)(THIS_ REFCLSID rclsid, LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(CreateFrame)(THIS_ LPDIRECT3DRMFRAME, LPDIRECT3DRMFRAME2 *) PURE;
-    STDMETHOD(CreateMesh)(THIS_ LPDIRECT3DRMMESH *) PURE;
-    STDMETHOD(CreateMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER2 *) PURE;
-    STDMETHOD(CreateFace)(THIS_ LPDIRECT3DRMFACE *) PURE;
-    STDMETHOD(CreateAnimation)(THIS_ LPDIRECT3DRMANIMATION *) PURE;
-    STDMETHOD(CreateAnimationSet)(THIS_ LPDIRECT3DRMANIMATIONSET *) PURE;
-    STDMETHOD(CreateTexture)(THIS_ LPD3DRMIMAGE, LPDIRECT3DRMTEXTURE2 *) PURE;
-    STDMETHOD(CreateLight)(THIS_ D3DRMLIGHTTYPE, D3DCOLOR, LPDIRECT3DRMLIGHT *) PURE;
-    STDMETHOD(CreateLightRGB)(THIS_ D3DRMLIGHTTYPE, D3DVALUE, D3DVALUE, D3DVALUE, LPDIRECT3DRMLIGHT *) PURE;
-    STDMETHOD(CreateMaterial)(THIS_ D3DVALUE, LPDIRECT3DRMMATERIAL *) PURE;
-    STDMETHOD(CreateDevice)(THIS_ DWORD, DWORD, LPDIRECT3DRMDEVICE2 *) PURE;
-    STDMETHOD(CreateDeviceFromSurface)(THIS_ LPGUID pGUID, LPDIRECTDRAW pDD, LPDIRECTDRAWSURFACE pDDSBack,
-        LPDIRECT3DRMDEVICE2 *) PURE;
-    STDMETHOD(CreateDeviceFromD3D)(THIS_ LPDIRECT3D2 pD3D, LPDIRECT3DDEVICE2 pD3DDev, LPDIRECT3DRMDEVICE2 *) PURE;
-    STDMETHOD(CreateDeviceFromClipper)(THIS_ LPDIRECTDRAWCLIPPER pDDClipper, LPGUID pGUID, int width, int height,
-        LPDIRECT3DRMDEVICE2 *) PURE;
-    STDMETHOD(CreateTextureFromSurface)(THIS_ LPDIRECTDRAWSURFACE pDDS, LPDIRECT3DRMTEXTURE2 *) PURE;
-    STDMETHOD(CreateShadow)(THIS_ LPDIRECT3DRMVISUAL, LPDIRECT3DRMLIGHT, D3DVALUE px, D3DVALUE py, D3DVALUE pz,
-        D3DVALUE nx, D3DVALUE ny, D3DVALUE nz, LPDIRECT3DRMVISUAL *) PURE;
-    STDMETHOD(CreateViewport)(THIS_ LPDIRECT3DRMDEVICE, LPDIRECT3DRMFRAME, DWORD, DWORD, DWORD, DWORD,
-        LPDIRECT3DRMVIEWPORT *) PURE;
-    STDMETHOD(CreateWrap)(THIS_ D3DRMWRAPTYPE, LPDIRECT3DRMFRAME, D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
-        D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz, D3DVALUE ou, D3DVALUE ov,
-        D3DVALUE su, D3DVALUE sv, LPDIRECT3DRMWRAP *) PURE;
-    STDMETHOD(CreateUserVisual)(THIS_ D3DRMUSERVISUALCALLBACK, LPVOID pArg, LPDIRECT3DRMUSERVISUAL *) PURE;
-    STDMETHOD(LoadTexture)(THIS_ const char *, LPDIRECT3DRMTEXTURE2 *) PURE;
-    STDMETHOD(LoadTextureFromResource)(THIS_ HMODULE hModule, LPCSTR /* LPCTSTR */ strName, LPCSTR /* LPCTSTR */ strType, LPDIRECT3DRMTEXTURE2 *) PURE;
-    STDMETHOD(SetSearchPath)(THIS_ LPCSTR) PURE;
-    STDMETHOD(AddSearchPath)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetSearchPath)(THIS_ DWORD *size_return, LPSTR path_return) PURE;
-    STDMETHOD(SetDefaultTextureColors)(THIS_ DWORD) PURE;
-    STDMETHOD(SetDefaultTextureShades)(THIS_ DWORD) PURE;
-    STDMETHOD(GetDevices)(THIS_ LPDIRECT3DRMDEVICEARRAY *) PURE;
-    STDMETHOD(GetNamedObject)(THIS_ const char *, LPDIRECT3DRMOBJECT *) PURE;
-    STDMETHOD(EnumerateObjects)(THIS_ D3DRMOBJECTCALLBACK, LPVOID) PURE;
-    STDMETHOD(Load)(THIS_ LPVOID, LPVOID, LPIID *, DWORD, D3DRMLOADOPTIONS, D3DRMLOADCALLBACK, LPVOID,
-        D3DRMLOADTEXTURECALLBACK, LPVOID, LPDIRECT3DRMFRAME) PURE;
-    STDMETHOD(Tick)(THIS_ D3DVALUE) PURE;
-    STDMETHOD(CreateProgressiveMesh)(THIS_ LPDIRECT3DRMPROGRESSIVEMESH) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRM2_QueryInterface(p,a,b)                         (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRM2_AddRef(p)                                     (p)->lpVtbl->AddRef(p)
-#define IDirect3DRM2_Release(p)                                    (p)->lpVtbl->Release(p)
-/*** IDirect3DRM2 methods ***/
-#define IDirect3DRM2_CreateObject(p,a,b,c,d)                       (p)->lpVtbl->CreateObject(p,a,b,d)
-#define IDirect3DRM2_CreateFrame(p,a,b)                            (p)->lpVtbl->CreateFrame(p,a,b)
-#define IDirect3DRM2_CreateMesh(p,a)                               (p)->lpVtbl->CreateMesh(p,a)
-#define IDirect3DRM2_CreateMeshBuilder(p,a)                        (p)->lpVtbl->CreateMeshBuilder(p,a)
-#define IDirect3DRM2_CreateFace(p,a)                               (p)->lpVtbl->CreateFace(p,a)
-#define IDirect3DRM2_CreateAnimation(p,a)                          (p)->lpVtbl->CreateAnimation(p,a)
-#define IDirect3DRM2_CreateAnimationSet(p,a)                       (p)->lpVtbl->CreateAnimationSet(p,a)
-#define IDirect3DRM2_CreateTexture(p,a,b)                          (p)->lpVtbl->CreateTexture(p,a,b)
-#define IDirect3DRM2_CreateLight(p,a,b,c)                          (p)->lpVtbl->CreateLight(p,a,b,c)
-#define IDirect3DRM2_CreateLightRGB(p,a,b,c,d,e)                   (p)->lpVtbl->CreateLightRGB(p,a,b,c,d,e)
-#define IDirect3DRM2_CreateMaterial(p,a,b)                         (p)->lpVtbl->CreateMaterial(p,a,b)
-#define IDirect3DRM2_CreateDevice(p,a,b,c)                         (p)->lpVtbl->CreateDevice(p,a,b,c)
-#define IDirect3DRM2_CreateDeviceFromSurface(p,a,b,c,d)            (p)->lpVtbl->CreateDeviceFromSurface(p,a,b,c,d)
-#define IDirect3DRM2_CreateDeviceFromD3D(p,a,b,c)                  (p)->lpVtbl->CreateDeviceFromD3D(p,a,b,c)
-#define IDirect3DRM2_CreateDeviceFromClipper(p,a,b,c,d,e)          (p)->lpVtbl->CreateDeviceFromClipper(p,a,b,c,d,e)
-#define IDirect3DRM2_CreateTextureFromSurface(p,a,b)               (p)->lpVtbl->CreateTextureFromSurface(p,a,b)
-#define IDirect3DRM2_CreateShadow(p,a,b,c,d,e,f,g,h,i)             (p)->lpVtbl->CreateShadow(p,a,b,c,d,e,f,g,h,i)
-#define IDirect3DRM2_CreateViewport(p,a,b,c,d,e,f,g)               (p)->lpVtbl->CreateViewport(p,a,b,c,d,e,f,g)
-#define IDirect3DRM2_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q) (p)->lpVtbl->CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q)
-#define IDirect3DRM2_CreateUserVisual(p,a,b,c)                     (p)->lpVtbl->CreateUserVisual(p,a,b,c)
-#define IDirect3DRM2_LoadTexture(p,a,b)                            (p)->lpVtbl->LoadTexture(p,a,b)
-#define IDirect3DRM2_LoadTextureFromResource(p,a,b,c,d)            (p)->lpVtbl->LoadTextureFromResource(p,a,b,c,d)
-#define IDirect3DRM2_SetSearchPath(p,a)                            (p)->lpVtbl->SetSearchPath(p,a)
-#define IDirect3DRM2_AddSearchPath(p,a)                            (p)->lpVtbl->AddSearchPath(p,a)
-#define IDirect3DRM2_GetSearchPath(p,a,b)                          (p)->lpVtbl->GetSearchPath(p,a,b)
-#define IDirect3DRM2_SetDefaultTextureColors(p,a)                  (p)->lpVtbl->SetDefaultTextureColors(p,a)
-#define IDirect3DRM2_SetDefaultTextureShades(p,a)                  (p)->lpVtbl->SetDefaultTextureShades(p,a)
-#define IDirect3DRM2_GetDevices(p,a)                               (p)->lpVtbl->GetDevices(p,a)
-#define IDirect3DRM2_GetNamedObject(p,a,b)                         (p)->lpVtbl->GetNamedObject(p,a,b)
-#define IDirect3DRM2_EnumerateObjects(p,a,b)                       (p)->lpVtbl->EnumerateObjects(p,a,b)
-#define IDirect3DRM2_Load(p,a,b,c,d,e,f,g,h,i,j)                   (p)->lpVtbl->Load(p,a,b,c,d,e,f,g,h,i,j)
-#define IDirect3DRM2_Tick(p,a)                                     (p)->lpVtbl->Tick(p,a)
-#define IDirect3DRM2_CreateProgressiveMesh(p,a)                    (p)->lpVtbl->CreateProgressiveMesh(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRM2_QueryInterface(p,a,b)                         (p)->QueryInterface(a,b)
-#define IDirect3DRM2_AddRef(p)                                     (p)->AddRef()
-#define IDirect3DRM2_Release(p)                                    (p)->Release()
-/*** IDirect3DRM2 methods ***/
-#define IDirect3DRM2_CreateObject(p,a,b,c,d)                       (p)->CreateObject(a,b,d)
-#define IDirect3DRM2_CreateFrame(p,a,b)                            (p)->CreateFrame(a,b)
-#define IDirect3DRM2_CreateMesh(p,a)                               (p)->CreateMesh(a)
-#define IDirect3DRM2_CreateMeshBuilder(p,a)                        (p)->CreateMeshBuilder(a)
-#define IDirect3DRM2_CreateFace(p,a)                               (p)->CreateFace(a)
-#define IDirect3DRM2_CreateAnimation(p,a)                          (p)->CreateAnimation(a)
-#define IDirect3DRM2_CreateAnimationSet(p,a)                       (p)->CreateAnimationSet(a)
-#define IDirect3DRM2_CreateTexture(p,a,b)                          (p)->CreateTexture(a,b)
-#define IDirect3DRM2_CreateLight(p,a,b,c)                          (p)->CreateLight(a,b,c)
-#define IDirect3DRM2_CreateLightRGB(p,a,b,c,d,e)                   (p)->CreateLightRGB(a,b,c,d,e)
-#define IDirect3DRM2_CreateMaterial(p,a,b)                         (p)->CreateMaterial(a,b)
-#define IDirect3DRM2_CreateDevice(p,a,b,c)                         (p)->CreateDevice(a,b,c)
-#define IDirect3DRM2_CreateDeviceFromSurface(p,a,b,c,d)            (p)->CreateDeviceFromSurface(a,b,c,d)
-#define IDirect3DRM2_CreateDeviceFromD3D(p,a,b,c)                  (p)->CreateDeviceFromD3D(a,b,c)
-#define IDirect3DRM2_CreateDeviceFromClipper(p,a,b,c,d,e)          (p)->CreateDeviceFromClipper(a,b,c,d,e)
-#define IDirect3DRM2_CreateTextureFromSurface(p,a,b)               (p)->CreateTextureFromSurface(a,b)
-#define IDirect3DRM2_CreateShadow(p,a,b,c,d,e,f,g,h,i)             (p)->CreateShadow(a,b,c,d,e,f,g,h,i)
-#define IDirect3DRM2_CreateViewport(p,a,b,c,d,e,f,g)               (p)->CreateViewport(a,b,c,d,e,f,g)
-#define IDirect3DRM2_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) (p)->CreateWrap(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p)
-#define IDirect3DRM2_CreateUserVisual(p,a,b,c)                     (p)->CreateUserVisual(a,b,c)
-#define IDirect3DRM2_LoadTexture(p,a,b)                            (p)->LoadTexture(a,b)
-#define IDirect3DRM2_LoadTextureFromResource(p,a,b)                (p)->LoadTextureFromResource(a,b)
-#define IDirect3DRM2_SetSearchPath(p,a)                            (p)->SetSearchPath(a)
-#define IDirect3DRM2_AddSearchPath(p,a)                            (p)->AddSearchPath(a)
-#define IDirect3DRM2_GetSearchPath(p,a,b)                          (p)->GetSearchPath(a,b)
-#define IDirect3DRM2_SetDefaultTextureColors(p,a)                  (p)->SetDefaultTextureColors(a)
-#define IDirect3DRM2_SetDefaultTextureShades(p,a)                  (p)->SetDefaultTextureShades(a)
-#define IDirect3DRM2_GetDevices(p,a)                               (p)->GetDevices(a)
-#define IDirect3DRM2_GetNamedObject(p,a,b)                         (p)->GetNamedObject(a,b)
-#define IDirect3DRM2_EnumerateObjects(p,a,b)                       (p)->EnumerateObjects(a,b)
-#define IDirect3DRM2_Load(p,a,b,c,d,e,f,g,h,i,j)                   (p)->Load(a,b,c,d,e,f,g,h,i,j)
-#define IDirect3DRM2_Tick(p,a)                                     (p)->Tick(a)
-#define IDirect3DRM2_CreateProgressiveMesh(p,a)                    (p)->CreateProgressiveMesh(p,a)
-#endif
-
-/*****************************************************************************
- * IDirect3DRM3 interface
- */
-#ifdef WINE_NO_UNICODE_MACROS
-#undef GetClassName
-#endif
-#define INTERFACE IDirect3DRM3
-DECLARE_INTERFACE_(IDirect3DRM3,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRM2 methods ***/
-    STDMETHOD(CreateObject)(THIS_ REFCLSID rclsid, LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(CreateFrame)(THIS_ LPDIRECT3DRMFRAME3, LPDIRECT3DRMFRAME3 *) PURE;
-    STDMETHOD(CreateMesh)(THIS_ LPDIRECT3DRMMESH *) PURE;
-    STDMETHOD(CreateMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER3 *) PURE;
-    STDMETHOD(CreateFace)(THIS_ LPDIRECT3DRMFACE2 *) PURE;
-    STDMETHOD(CreateAnimation)(THIS_ LPDIRECT3DRMANIMATION2 *) PURE;
-    STDMETHOD(CreateAnimationSet)(THIS_ LPDIRECT3DRMANIMATIONSET2 *) PURE;
-    STDMETHOD(CreateTexture)(THIS_ LPD3DRMIMAGE, LPDIRECT3DRMTEXTURE3 *) PURE;
-    STDMETHOD(CreateLight)(THIS_ D3DRMLIGHTTYPE, D3DCOLOR, LPDIRECT3DRMLIGHT *) PURE;
-    STDMETHOD(CreateLightRGB)(THIS_ D3DRMLIGHTTYPE, D3DVALUE, D3DVALUE, D3DVALUE, LPDIRECT3DRMLIGHT *) PURE;
-    STDMETHOD(CreateMaterial)(THIS_ D3DVALUE, LPDIRECT3DRMMATERIAL2 *) PURE;
-    STDMETHOD(CreateDevice)(THIS_ DWORD, DWORD, LPDIRECT3DRMDEVICE3 *) PURE;
-    STDMETHOD(CreateDeviceFromSurface)(THIS_ LPGUID pGUID, LPDIRECTDRAW pDD, LPDIRECTDRAWSURFACE pDDSBack,
-        LPDIRECT3DRMDEVICE3 *) PURE;
-    STDMETHOD(CreateDeviceFromD3D)(THIS_ LPDIRECT3D2 pD3D, LPDIRECT3DDEVICE2 pD3DDev, LPDIRECT3DRMDEVICE3 *) PURE;
-    STDMETHOD(CreateDeviceFromClipper)(THIS_ LPDIRECTDRAWCLIPPER pDDClipper, LPGUID pGUID, int width, int height,
-        LPDIRECT3DRMDEVICE3 *) PURE;
-    STDMETHOD(CreateTextureFromSurface)(THIS_ LPDIRECTDRAWSURFACE pDDS, LPDIRECT3DRMTEXTURE3 *) PURE;
-    STDMETHOD(CreateShadow)(THIS_ LPUNKNOWN, LPDIRECT3DRMLIGHT, D3DVALUE px, D3DVALUE py, D3DVALUE pz,
-        D3DVALUE nx, D3DVALUE ny, D3DVALUE nz, LPDIRECT3DRMSHADOW2 *) PURE;
-    STDMETHOD(CreateViewport)(THIS_ LPDIRECT3DRMDEVICE3, LPDIRECT3DRMFRAME3, DWORD, DWORD, DWORD, DWORD,
-        LPDIRECT3DRMVIEWPORT2 *) PURE;
-    STDMETHOD(CreateWrap)(THIS_ D3DRMWRAPTYPE, LPDIRECT3DRMFRAME3, D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
-        D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz, D3DVALUE ou, D3DVALUE ov,
-        D3DVALUE su, D3DVALUE sv, LPDIRECT3DRMWRAP *) PURE;
-    STDMETHOD(CreateUserVisual)(THIS_ D3DRMUSERVISUALCALLBACK, LPVOID pArg, LPDIRECT3DRMUSERVISUAL *) PURE;
-    STDMETHOD(LoadTexture)(THIS_ const char *, LPDIRECT3DRMTEXTURE3 *) PURE;
-    STDMETHOD(LoadTextureFromResource)(THIS_ HMODULE hModule, LPCSTR /* LPCTSTR */ strName, LPCSTR  /* LPCTSTR */ strType, LPDIRECT3DRMTEXTURE3 *) PURE;
-    STDMETHOD(SetSearchPath)(THIS_ LPCSTR) PURE;
-    STDMETHOD(AddSearchPath)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetSearchPath)(THIS_ DWORD *size_return, LPSTR path_return) PURE;
-    STDMETHOD(SetDefaultTextureColors)(THIS_ DWORD) PURE;
-    STDMETHOD(SetDefaultTextureShades)(THIS_ DWORD) PURE;
-    STDMETHOD(GetDevices)(THIS_ LPDIRECT3DRMDEVICEARRAY *) PURE;
-    STDMETHOD(GetNamedObject)(THIS_ const char *, LPDIRECT3DRMOBJECT *) PURE;
-    STDMETHOD(EnumerateObjects)(THIS_ D3DRMOBJECTCALLBACK, LPVOID) PURE;
-    STDMETHOD(Load)(THIS_ LPVOID, LPVOID, LPIID *, DWORD, D3DRMLOADOPTIONS, D3DRMLOADCALLBACK, LPVOID,
-        D3DRMLOADTEXTURECALLBACK, LPVOID, LPDIRECT3DRMFRAME3) PURE;
-    STDMETHOD(Tick)(THIS_ D3DVALUE) PURE;
-    STDMETHOD(CreateProgressiveMesh)(THIS_ LPDIRECT3DRMPROGRESSIVEMESH) PURE;
-    STDMETHOD(RegisterClient)(THIS_ REFGUID rguid, LPDWORD lpdwID) PURE;
-    STDMETHOD(UnregisterClient)(THIS_ REFGUID rguid) PURE;
-    STDMETHOD(CreateClippedVisual)(THIS_ LPDIRECT3DRMVISUAL, LPDIRECT3DRMCLIPPEDVISUAL *) PURE;
-    STDMETHOD(SetOptions)(THIS_ DWORD) PURE;
-    STDMETHOD(GetOptions)(THIS_ LPDWORD) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRM3_QueryInterface(p,a,b)                         (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRM3_AddRef(p)                                     (p)->lpVtbl->AddRef(p)
-#define IDirect3DRM3_Release(p)                                    (p)->lpVtbl->Release(p)
-/*** IDirect3DRM3 methods ***/
-#define IDirect3DRM3_CreateObject(p,a,b,c,d)                       (p)->lpVtbl->CreateObject(p,a,b,d)
-#define IDirect3DRM3_CreateFrame(p,a,b)                            (p)->lpVtbl->CreateFrame(p,a,b)
-#define IDirect3DRM3_CreateMesh(p,a)                               (p)->lpVtbl->CreateMesh(p,a)
-#define IDirect3DRM3_CreateMeshBuilder(p,a)                        (p)->lpVtbl->CreateMeshBuilder(p,a)
-#define IDirect3DRM3_CreateFace(p,a)                               (p)->lpVtbl->CreateFace(p,a)
-#define IDirect3DRM3_CreateAnimation(p,a)                          (p)->lpVtbl->CreateAnimation(p,a)
-#define IDirect3DRM3_CreateAnimationSet(p,a)                       (p)->lpVtbl->CreateAnimationSet(p,a)
-#define IDirect3DRM3_CreateTexture(p,a,b)                          (p)->lpVtbl->CreateTexture(p,a,b)
-#define IDirect3DRM3_CreateLight(p,a,b,c)                          (p)->lpVtbl->CreateLight(p,a,b,c)
-#define IDirect3DRM3_CreateLightRGB(p,a,b,c,d,e)                   (p)->lpVtbl->CreateLightRGB(p,a,b,c,d,e)
-#define IDirect3DRM3_CreateMaterial(p,a,b)                         (p)->lpVtbl->CreateMaterial(p,a,b)
-#define IDirect3DRM3_CreateDevice(p,a,b,c)                         (p)->lpVtbl->CreateDevice(p,a,b,c)
-#define IDirect3DRM3_CreateDeviceFromSurface(p,a,b,c,d)            (p)->lpVtbl->CreateDeviceFromSurface(p,a,b,c,d)
-#define IDirect3DRM3_CreateDeviceFromD3D(p,a,b,c)                  (p)->lpVtbl->CreateDeviceFromD3D(p,a,b,c)
-#define IDirect3DRM3_CreateDeviceFromClipper(p,a,b,c,d,e)          (p)->lpVtbl->CreateDeviceFromClipper(p,a,b,c,d,e)
-#define IDirect3DRM3_CreateTextureFromSurface(p,a,b)               (p)->lpVtbl->CreateTextureFromSurface(p,a,b)
-#define IDirect3DRM3_CreateShadow(p,a,b,c,d,e,f,g,h,i)             (p)->lpVtbl->CreateShadow(p,a,b,c,d,e,f,g,h,i)
-#define IDirect3DRM3_CreateViewport(p,a,b,c,d,e,f,g)               (p)->lpVtbl->CreateViewport(p,a,b,c,d,e,f,g)
-#define IDirect3DRM3_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q) (p)->lpVtbl->CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q)
-#define IDirect3DRM3_CreateUserVisual(p,a,b,c)                     (p)->lpVtbl->CreateUserVisual(p,a,b,c)
-#define IDirect3DRM3_LoadTexture(p,a,b)                            (p)->lpVtbl->LoadTexture(p,a,b)
-#define IDirect3DRM3_LoadTextureFromResource(p,a,b,c,d)            (p)->lpVtbl->LoadTextureFromResource(p,a,b,c,d)
-#define IDirect3DRM3_SetSearchPath(p,a)                            (p)->lpVtbl->SetSearchPath(p,a)
-#define IDirect3DRM3_AddSearchPath(p,a)                            (p)->lpVtbl->AddSearchPath(p,a)
-#define IDirect3DRM3_GetSearchPath(p,a,b)                          (p)->lpVtbl->GetSearchPath(p,a,b)
-#define IDirect3DRM3_SetDefaultTextureColors(p,a)                  (p)->lpVtbl->SetDefaultTextureColors(p,a)
-#define IDirect3DRM3_SetDefaultTextureShades(p,a)                  (p)->lpVtbl->SetDefaultTextureShades(p,a)
-#define IDirect3DRM3_GetDevices(p,a)                               (p)->lpVtbl->GetDevices(p,a)
-#define IDirect3DRM3_GetNamedObject(p,a,b)                         (p)->lpVtbl->GetNamedObject(p,a,b)
-#define IDirect3DRM3_EnumerateObjects(p,a,b)                       (p)->lpVtbl->EnumerateObjects(p,a,b)
-#define IDirect3DRM3_Load(p,a,b,c,d,e,f,g,h,i,j)                   (p)->lpVtbl->Load(p,a,b,c,d,e,f,g,h,i,j)
-#define IDirect3DRM3_Tick(p,a)                                     (p)->lpVtbl->Tick(p,a)
-#define IDirect3DRM3_CreateProgressiveMesh(p,a)                    (p)->lpVtbl->CreateProgressiveMesh(p,a)
-#define IDirect3DRM3_RegisterClient(p,a,b)                         (p)->lpVtbl->RegisterClient(p,a,b)
-#define IDirect3DRM3_UnregisterClient(p,a)                         (p)->lpVtbl->UnregisterClient(p,a)
-#define IDirect3DRM3_CreateClippedVisual(p,ab)                     (p)->lpVtbl->CreateClippedVisual(p,a,b)
-#define IDirect3DRM3_SetOptions(p,a)                               (p)->lpVtbl->SetOptions(p,a)
-#define IDirect3DRM3_GetOptions(p,a)                               (p)->lpVtbl->GetOptions(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRM3_QueryInterface(p,a,b)                         (p)->QueryInterface(a,b)
-#define IDirect3DRM3_AddRef(p)                                     (p)->AddRef()
-#define IDirect3DRM3_Release(p)                                    (p)->Release()
-/*** IDirect3DRM3 methods ***/
-#define IDirect3DRM3_CreateObject(p,a,b,c,d)                       (p)->CreateObject(a,b,d)
-#define IDirect3DRM3_CreateFrame(p,a,b)                            (p)->CreateFrame(a,b)
-#define IDirect3DRM3_CreateMesh(p,a)                               (p)->CreateMesh(a)
-#define IDirect3DRM3_CreateMeshBuilder(p,a)                        (p)->CreateMeshBuilder(a)
-#define IDirect3DRM3_CreateFace(p,a)                               (p)->CreateFace(a)
-#define IDirect3DRM3_CreateAnimation(p,a)                          (p)->CreateAnimation(a)
-#define IDirect3DRM3_CreateAnimationSet(p,a)                       (p)->CreateAnimationSet(a)
-#define IDirect3DRM3_CreateTexture(p,a,b)                          (p)->CreateTexture(a,b)
-#define IDirect3DRM3_CreateLight(p,a,b,c)                          (p)->CreateLight(a,b,c)
-#define IDirect3DRM3_CreateLightRGB(p,a,b,c,d,e)                   (p)->CreateLightRGB(a,b,c,d,e)
-#define IDirect3DRM3_CreateMaterial(p,a,b)                         (p)->CreateMaterial(a,b)
-#define IDirect3DRM3_CreateDevice(p,a,b,c)                         (p)->CreateDevice(a,b,c)
-#define IDirect3DRM3_CreateDeviceFromSurface(p,a,b,c,d)            (p)->CreateDeviceFromSurface(a,b,c,d)
-#define IDirect3DRM3_CreateDeviceFromD3D(p,a,b,c)                  (p)->CreateDeviceFromD3D(a,b,c)
-#define IDirect3DRM3_CreateDeviceFromClipper(p,a,b,c,d,e)          (p)->CreateDeviceFromClipper(a,b,c,d,e)
-#define IDirect3DRM3_CreateTextureFromSurface(p,a,b)               (p)->CreateTextureFromSurface(a,b)
-#define IDirect3DRM3_CreateShadow(p,a,b,c,d,e,f,g,h,i)             (p)->CreateShadow(a,b,c,d,e,f,g,h,i)
-#define IDirect3DRM3_CreateViewport(p,a,b,c,d,e,f,g)               (p)->CreateViewport(a,b,c,d,e,f,g)
-#define IDirect3DRM3_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) (p)->CreateWrap(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p)
-#define IDirect3DRM3_CreateUserVisual(p,a,b,c)                     (p)->CreateUserVisual(a,b,c)
-#define IDirect3DRM3_LoadTexture(p,a,b)                            (p)->LoadTexture(a,b)
-#define IDirect3DRM3_LoadTextureFromResource(p,a,b,c,d)            (p)->LoadTextureFromResource(a,b,c,d)
-#define IDirect3DRM3_SetSearchPath(p,a)                            (p)->SetSearchPath(a)
-#define IDirect3DRM3_AddSearchPath(p,a)                            (p)->AddSearchPath(a)
-#define IDirect3DRM3_GetSearchPath(p,a,b)                          (p)->GetSearchPath(a,b)
-#define IDirect3DRM3_SetDefaultTextureColors(p,a)                  (p)->SetDefaultTextureColors(a)
-#define IDirect3DRM3_SetDefaultTextureShades(p,a)                  (p)->SetDefaultTextureShades(a)
-#define IDirect3DRM3_GetDevices(p,a)                               (p)->GetDevices(a)
-#define IDirect3DRM3_GetNamedObject(p,a,b)                         (p)->GetNamedObject(a,b)
-#define IDirect3DRM3_EnumerateObjects(p,a,b)                       (p)->EnumerateObjects(a,b)
-#define IDirect3DRM3_Load(p,a,b,c,d,e,f,g,h,i,j)                   (p)->Load(a,b,c,d,e,f,g,h,i,j)
-#define IDirect3DRM3_Tick(p,a)                                     (p)->Tick(a)
-#define IDirect3DRM3_CreateProgressiveMesh(p,a)                    (p)->CreateProgressiveMesh(p,a)
-#define IDirect3DRM3_RegisterClient(p,a,b)                         (p)->RegisterClient(p,a,b)
-#define IDirect3DRM3_UnregisterClient(p,a)                         (p)->UnregisterClient(p,a)
-#define IDirect3DRM3_CreateClippedVisual(p,ab)                     (p)->CreateClippedVisual(p,a,b)
-#define IDirect3DRM3_SetOptions(p,a)                               (p)->SetOptions(p,a)
-#define IDirect3DRM3_GetOptions(p,a)                               (p)->GetOptions(p,a)
-#endif
-
-#define D3DRM_OK                        DD_OK
-#define D3DRMERR_BADOBJECT              MAKE_DDHRESULT(781)
-#define D3DRMERR_BADTYPE                MAKE_DDHRESULT(782)
-#define D3DRMERR_BADALLOC               MAKE_DDHRESULT(783)
-#define D3DRMERR_FACEUSED               MAKE_DDHRESULT(784)
-#define D3DRMERR_NOTFOUND               MAKE_DDHRESULT(785)
-#define D3DRMERR_NOTDONEYET             MAKE_DDHRESULT(786)
-#define D3DRMERR_FILENOTFOUND           MAKE_DDHRESULT(787)
-#define D3DRMERR_BADFILE                MAKE_DDHRESULT(788)
-#define D3DRMERR_BADDEVICE              MAKE_DDHRESULT(789)
-#define D3DRMERR_BADVALUE               MAKE_DDHRESULT(790)
-#define D3DRMERR_BADMAJORVERSION        MAKE_DDHRESULT(791)
-#define D3DRMERR_BADMINORVERSION        MAKE_DDHRESULT(792)
-#define D3DRMERR_UNABLETOEXECUTE        MAKE_DDHRESULT(793)
-#define D3DRMERR_LIBRARYNOTFOUND        MAKE_DDHRESULT(794)
-#define D3DRMERR_INVALIDLIBRARY         MAKE_DDHRESULT(795)
-#define D3DRMERR_PENDING                MAKE_DDHRESULT(796)
-#define D3DRMERR_NOTENOUGHDATA          MAKE_DDHRESULT(797)
-#define D3DRMERR_REQUESTTOOLARGE        MAKE_DDHRESULT(798)
-#define D3DRMERR_REQUESTTOOSMALL        MAKE_DDHRESULT(799)
-#define D3DRMERR_CONNECTIONLOST         MAKE_DDHRESULT(800)
-#define D3DRMERR_LOADABORTED            MAKE_DDHRESULT(801)
-#define D3DRMERR_NOINTERNET             MAKE_DDHRESULT(802)
-#define D3DRMERR_BADCACHEFILE           MAKE_DDHRESULT(803)
-#define D3DRMERR_BOXNOTSET              MAKE_DDHRESULT(804)
-#define D3DRMERR_BADPMDATA              MAKE_DDHRESULT(805)
-#define D3DRMERR_CLIENTNOTREGISTERED    MAKE_DDHRESULT(806)
-#define D3DRMERR_NOTCREATEDFROMDDS      MAKE_DDHRESULT(807)
-#define D3DRMERR_NOSUCHKEY              MAKE_DDHRESULT(808)
-#define D3DRMERR_INCOMPATABLEKEY        MAKE_DDHRESULT(809)
-#define D3DRMERR_ELEMENTINUSE           MAKE_DDHRESULT(810)
-#define D3DRMERR_TEXTUREFORMATNOTFOUND  MAKE_DDHRESULT(811)
-#define D3DRMERR_NOTAGGREGATED          MAKE_DDHRESULT(812)
-
-#endif /* __D3DRM_H__ */
diff --git a/misc/builddeps/win64/dx/include/d3drmdef.h b/misc/builddeps/win64/dx/include/d3drmdef.h
deleted file mode 100644 (file)
index 80086dc..0000000
+++ /dev/null
@@ -1,266 +0,0 @@
-/*
- * Copyright 2007 Vijay Kiran Kamuju
- * Copyright 2007 David ADAM
- * Copyright 2010 Christian Costa
- *
- * 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 __D3DRMDEFS_H__
-#define __D3DRMDEFS_H__
-
-#include <stddef.h>
-#include <d3dtypes.h>
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-typedef struct _D3DRMVECTOR4D
-{
-    D3DVALUE x;
-    D3DVALUE y;
-    D3DVALUE z;
-    D3DVALUE w;
-} D3DRMVECTOR4D, *LPD3DRMVECTOR4D;
-
-typedef D3DVALUE D3DRMMATRIX4D[4][4];
-
-typedef struct _D3DRMQUATERNION {
-    D3DVALUE s;
-    D3DVECTOR v;
-} D3DRMQUATERNION, *LPD3DRMQUATERNION;
-
-typedef struct _D3DRMRAY {
-    D3DVECTOR dvDir;
-    D3DVECTOR dvPos;
-} D3DRMRAY, *LPD3DRMRAY;
-
-typedef struct _D3DRMBOX {
-    D3DVECTOR min;
-    D3DVECTOR max;
-} D3DRMBOX, *LPD3DRMBOX;
-
-typedef enum _D3DRMLIGHTTYPE {
-    D3DRMLIGHT_AMBIENT,
-    D3DRMLIGHT_POINT,
-    D3DRMLIGHT_SPOT,
-    D3DRMLIGHT_DIRECTIONAL,
-    D3DRMLIGHT_PARALLELPOINT
-} D3DRMLIGHTTYPE, *LPD3DRMLIGHTTYPE;
-
-typedef DWORD D3DRMRENDERQUALITY, *LPD3DRMRENDERQUALITY;
-
-typedef enum _D3DRMTEXTUREQUALITY {
-    D3DRMTEXTURE_NEAREST,
-    D3DRMTEXTURE_LINEAR,
-    D3DRMTEXTURE_MIPNEAREST,
-    D3DRMTEXTURE_MIPLINEAR,
-    D3DRMTEXTURE_LINEARMIPNEAREST,
-    D3DRMTEXTURE_LINEARMIPLINEAR
-} D3DRMTEXTUREQUALITY, *LPD3DRMTEXTUREQUALITY;
-
-typedef enum _D3DRMCOMBINETYPE {
-    D3DRMCOMBINE_REPLACE,
-    D3DRMCOMBINE_BEFORE,
-    D3DRMCOMBINE_AFTER
-} D3DRMCOMBINETYPE, *LPD3DRMCOMBINETYPE;
-
-typedef struct _D3DRMPALETTEENTRY {
-    unsigned char red;
-    unsigned char green;
-    unsigned char blue;
-    unsigned char flags;
-} D3DRMPALETTEENTRY, *LPD3DRMPALETTEENTRY;
-
-typedef struct _D3DRMIMAGE {
-    int width;
-    int height;
-    int aspectx;
-    int aspecty;
-    int depth;
-    int rgb;
-    int bytes_per_line;
-    void* buffer1;
-    void* buffer2;
-    unsigned long red_mask;
-    unsigned long green_mask;
-    unsigned long blue_mask;
-    unsigned long alpha_mask;
-    int palette_size;
-    D3DRMPALETTEENTRY* palette;
-} D3DRMIMAGE, *LPD3DRMIMAGE;
-
-typedef enum _D3DRMWRAPTYPE {
-    D3DRMWRAP_FLAT,
-    D3DRMWRAP_CYLINDER,
-    D3DRMWRAP_SPHERE,
-    D3DRMWRAP_CHROME,
-    D3DRMWRAP_SHEET,
-    D3DRMWRAP_BOX
-} D3DRMWRAPTYPE, *LPD3DRMWRAPTYPE;
-
-typedef enum _D3DRMPROJECTIONTYPE
-{
-    D3DRMPROJECT_PERSPECTIVE,
-    D3DRMPROJECT_ORTHOGRAPHIC,
-    D3DRMPROJECT_RIGHTHANDPERSPECTIVE,
-    D3DRMPROJECT_RIGHTHANDORTHOGRAPHIC
-} D3DRMPROJECTIONTYPE, *LPD3DRMPROJECTIONTYPE;
-
-typedef enum _D3DRMXOFFORMAT {
-    D3DRMXOF_BINARY,
-    D3DRMXOF_COMPRESSED,
-    D3DRMXOF_TEXT
-} D3DRMXOFFORMAT, *LPD3DRMXOFFORMAT;
-
-typedef DWORD D3DRMSAVEOPTIONS;
-
-typedef enum _D3DRMCOLORSOURCE {
-    D3DRMCOLOR_FROMFACE,
-    D3DRMCOLOR_FROMVERTEX
-} D3DRMCOLORSOURCE, *LPD3DRMCOLORSOURCE;
-
-typedef enum _D3DRMFRAMECONSTRAINT {
-    D3DRMCONSTRAIN_Z,
-    D3DRMCONSTRAIN_Y,
-    D3DRMCONSTRAIN_X
-} D3DRMFRAMECONSTRAINT, *LPD3DRMFRAMECONSTRAINT;
-
-typedef enum _D3DRMMATERIALMODE {
-    D3DRMMATERIAL_FROMMESH,
-    D3DRMMATERIAL_FROMPARENT,
-    D3DRMMATERIAL_FROMFRAME
-} D3DRMMATERIALMODE, *LPD3DRMMATERIALMODE;
-
-typedef enum _D3DRMFOGMODE {
-    D3DRMFOG_LINEAR,
-    D3DRMFOG_EXPONENTIAL,
-    D3DRMFOG_EXPONENTIALSQUARED
-} D3DRMFOGMODE, *LPD3DRMFOGMODE;
-
-typedef enum _D3DRMZBUFFERMODE {
-    D3DRMZBUFFER_FROMPARENT,
-    D3DRMZBUFFER_ENABLE,
-    D3DRMZBUFFER_DISABLE
-} D3DRMZBUFFERMODE, *LPD3DRMZBUFFERMODE;
-
-typedef enum _D3DRMSORTMODE {
-    D3DRMSORT_FROMPARENT,
-    D3DRMSORT_NONE,
-    D3DRMSORT_FRONTTOBACK,
-    D3DRMSORT_BACKTOFRONT
-} D3DRMSORTMODE, *LPD3DRMSORTMODE;
-
-typedef struct _D3DRMMATERIALOVERRIDE {
-    DWORD         dwSize;
-    DWORD         dwFlags;
-    D3DCOLORVALUE dcDiffuse;
-    D3DCOLORVALUE dcAmbient;
-    D3DCOLORVALUE dcEmissive;
-    D3DCOLORVALUE dcSpecular;
-    D3DVALUE      dvPower;
-    LPUNKNOWN     lpD3DRMTex;
-} D3DRMMATERIALOVERRIDE, *LPD3DRMMATERIALOVERRIDE;
-
-typedef DWORD D3DRMLOADOPTIONS;
-
-#define D3DRMLOAD_FROMFILE             0x000L
-#define D3DRMLOAD_FROMRESOURCE         0x001L
-#define D3DRMLOAD_FROMMEMORY           0x002L
-#define D3DRMLOAD_FROMSTREAM           0x004L
-#define D3DRMLOAD_FROMURL              0x008L
-
-#define D3DRMLOAD_BYNAME               0x010L
-#define D3DRMLOAD_BYPOSITION           0x020L
-#define D3DRMLOAD_BYGUID               0x040L
-#define D3DRMLOAD_FIRST                0x080L
-
-#define D3DRMLOAD_INSTANCEBYREFERENCE  0x100L
-#define D3DRMLOAD_INSTANCEBYCOPYING    0x200L
-
-#define D3DRMLOAD_ASYNCHRONOUS         0x400L
-
-typedef struct _D3DRMLOADRESOURCE {
-    HMODULE hModule;
-    LPCSTR /*LPCTSTR*/ lpName;
-    LPCSTR /*LPCTSTR*/ lpType;
-} D3DRMLOADRESOURCE, *LPD3DRMLOADRESOURCE;
-
-typedef struct _D3DRMLOADMEMORY {
-    LPVOID lpMemory;
-    DWORD dSize;
-} D3DRMLOADMEMORY, *LPD3DRMLOADMEMORY;
-
-typedef struct _D3DRMPMESHLOADSTATUS {
-    DWORD dwSize;
-    DWORD dwPMeshSize;
-    DWORD dwBaseMeshSize;
-    DWORD dwBytesLoaded;
-    DWORD dwVerticesLoaded;
-    DWORD dwFacesLoaded;
-    HRESULT dwLoadResult;
-    DWORD dwFlags;
-} D3DRMPMESHLOADSTATUS, *LPD3DRMPMESHLOADSTATUS;
-
-typedef enum _D3DRMUSERVISUALREASON {
-    D3DRMUSERVISUAL_CANSEE,
-    D3DRMUSERVISUAL_RENDER
-} D3DRMUSERVISUALREASON, *LPD3DRMUSERVISUALREASON;
-
-typedef DWORD D3DRMMAPPING;
-
-typedef struct _D3DRMVERTEX {
-    D3DVECTOR position;
-    D3DVECTOR normal;
-    D3DVALUE  tu;
-    D3DVALUE  tv;
-    D3DCOLOR  color;
-} D3DRMVERTEX, *LPD3DRMVERTEX;
-
-typedef LONG D3DRMGROUPINDEX;
-
-void WINAPI D3DRMMatrixFromQuaternion(D3DRMMATRIX4D, LPD3DRMQUATERNION);
-
-LPD3DRMQUATERNION WINAPI D3DRMQuaternionFromRotation(LPD3DRMQUATERNION ,LPD3DVECTOR,D3DVALUE);
-LPD3DRMQUATERNION WINAPI D3DRMQuaternionMultiply(LPD3DRMQUATERNION, LPD3DRMQUATERNION, LPD3DRMQUATERNION);
-LPD3DRMQUATERNION WINAPI D3DRMQuaternionSlerp(LPD3DRMQUATERNION, LPD3DRMQUATERNION, LPD3DRMQUATERNION, D3DVALUE);
-
-LPD3DVECTOR WINAPI D3DRMVectorAdd(LPD3DVECTOR, LPD3DVECTOR, LPD3DVECTOR);
-LPD3DVECTOR WINAPI D3DRMVectorCrossProduct(LPD3DVECTOR, LPD3DVECTOR, LPD3DVECTOR);
-D3DVALUE WINAPI D3DRMVectorDotProduct(LPD3DVECTOR, LPD3DVECTOR);
-LPD3DVECTOR WINAPI D3DRMVectorNormalize(LPD3DVECTOR);
-
-#define D3DRMVectorNormalise D3DRMVectorNormalize
-
-D3DVALUE WINAPI D3DRMVectorModulus(LPD3DVECTOR);
-LPD3DVECTOR WINAPI D3DRMVectorRandom(LPD3DVECTOR);
-LPD3DVECTOR WINAPI D3DRMVectorRotate(LPD3DVECTOR, LPD3DVECTOR, LPD3DVECTOR, D3DVALUE);
-LPD3DVECTOR WINAPI D3DRMVectorReflect(LPD3DVECTOR, LPD3DVECTOR, LPD3DVECTOR);
-LPD3DVECTOR WINAPI D3DRMVectorScale(LPD3DVECTOR, LPD3DVECTOR, D3DVALUE);
-LPD3DVECTOR WINAPI D3DRMVectorSubtract(LPD3DVECTOR, LPD3DVECTOR, LPD3DVECTOR);
-
-D3DCOLOR WINAPI D3DRMCreateColorRGB(D3DVALUE, D3DVALUE, D3DVALUE);
-D3DCOLOR WINAPI D3DRMCreateColorRGBA(D3DVALUE, D3DVALUE, D3DVALUE, D3DVALUE);
-D3DVALUE WINAPI D3DRMColorGetAlpha(D3DCOLOR);
-D3DVALUE WINAPI D3DRMColorGetBlue(D3DCOLOR);
-D3DVALUE WINAPI D3DRMColorGetGreen(D3DCOLOR);
-D3DVALUE WINAPI D3DRMColorGetRed(D3DCOLOR);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/misc/builddeps/win64/dx/include/d3drmobj.h b/misc/builddeps/win64/dx/include/d3drmobj.h
deleted file mode 100644 (file)
index bd22e89..0000000
+++ /dev/null
@@ -1,3033 +0,0 @@
-/*
- * Copyright (C) 2008 Vijay Kiran Kamuju
- * Copyright (C) 2010 Christian Costa
- *
- * 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 __D3DRMOBJ_H__
-#define __D3DRMOBJ_H__
-
-#include <objbase.h>
-#define VIRTUAL
-#include <d3drmdef.h>
-#include <d3d.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*****************************************************************************
- * Predeclare the interfaces
- */
-
-DEFINE_GUID(IID_IDirect3DRMObject,          0xeb16cb00, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMObject2,         0x4516ec7c, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
-DEFINE_GUID(IID_IDirect3DRMDevice,          0xe9e19280, 0x6e05, 0x11cf, 0xac, 0x4a, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMDevice2,         0x4516ec78, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
-DEFINE_GUID(IID_IDirect3DRMDevice3,         0x549f498b, 0xbfeb, 0x11d1, 0x8e, 0xd8, 0x00, 0xa0, 0xc9, 0x67, 0xa4, 0x82);
-DEFINE_GUID(IID_IDirect3DRMViewport,        0xeb16cb02, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMViewport2,       0x4a1b1be6, 0xbfed, 0x11d1, 0x8e, 0xd8, 0x00, 0xa0, 0xc9, 0x67, 0xa4, 0x82);
-DEFINE_GUID(IID_IDirect3DRMFrame,           0xeb16cb03, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMFrame2,          0xc3dfbd60, 0x3988, 0x11d0, 0x9e, 0xc2, 0x00, 0x00, 0xc0, 0x29, 0x1a, 0xc3);
-DEFINE_GUID(IID_IDirect3DRMFrame3,          0xff6b7f70, 0xa40e, 0x11d1, 0x91, 0xf9, 0x00, 0x00, 0xf8, 0x75, 0x8e, 0x66);
-DEFINE_GUID(IID_IDirect3DRMVisual,          0xeb16cb04, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMMesh,            0xa3a80d01, 0x6e12, 0x11cf, 0xac, 0x4a, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMMeshBuilder,     0xa3a80d02, 0x6e12, 0x11cf, 0xac, 0x4a, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMMeshBuilder2,    0x4516ec77, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
-DEFINE_GUID(IID_IDirect3DRMMeshBuilder3,    0x4516ec82, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
-DEFINE_GUID(IID_IDirect3DRMFace,            0xeb16cb07, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMFace2,           0x4516ec81, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
-DEFINE_GUID(IID_IDirect3DRMLight,           0xeb16cb08, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMTexture,         0xeb16cb09, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMTexture2,        0x120f30c0, 0x1629, 0x11d0, 0x94, 0x1c, 0x00, 0x80, 0xc8, 0x0c, 0xfa, 0x7b);
-DEFINE_GUID(IID_IDirect3DRMTexture3,        0xff6b7f73, 0xa40e, 0x11d1, 0x91, 0xf9, 0x00, 0x00, 0xf8, 0x75, 0x8e, 0x66);
-DEFINE_GUID(IID_IDirect3DRMWrap,            0xeb16cb0a, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMMaterial,        0xeb16cb0b, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMMaterial2,       0xff6b7f75, 0xa40e, 0x11d1, 0x91, 0xf9, 0x00, 0x00, 0xf8, 0x75, 0x8e, 0x66);
-DEFINE_GUID(IID_IDirect3DRMAnimation,       0xeb16cb0d, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMAnimation2,      0xff6b7f77, 0xa40e, 0x11d1, 0x91, 0xf9, 0x00, 0x00, 0xf8, 0x75, 0x8e, 0x66);
-DEFINE_GUID(IID_IDirect3DRMAnimationSet,    0xeb16cb0e, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMAnimationSet2,   0xff6b7f79, 0xa40e, 0x11d1, 0x91, 0xf9, 0x00, 0x00, 0xf8, 0x75, 0x8e, 0x66);
-DEFINE_GUID(IID_IDirect3DRMObjectArray,     0x242f6bc2, 0x3849, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
-DEFINE_GUID(IID_IDirect3DRMDeviceArray,     0xeb16cb10, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMViewportArray,   0xeb16cb11, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMFrameArray,      0xeb16cb12, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMVisualArray,     0xeb16cb13, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMLightArray,      0xeb16cb14, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMPickedArray,     0xeb16cb16, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMFaceArray,       0xeb16cb17, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMAnimationArray,  0xd5f1cae0, 0x4bd7, 0x11d1, 0xb9, 0x74, 0x00, 0x60, 0x08, 0x3e, 0x45, 0xf3);
-DEFINE_GUID(IID_IDirect3DRMUserVisual,      0x59163de0, 0x6d43, 0x11cf, 0xac, 0x4a, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMShadow,          0xaf359780, 0x6ba3, 0x11cf, 0xac, 0x4a, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
-DEFINE_GUID(IID_IDirect3DRMShadow2,         0x86b44e25, 0x9c82, 0x11d1, 0xbb, 0x0b, 0x00, 0xa0, 0xc9, 0x81, 0xa0, 0xa6);
-DEFINE_GUID(IID_IDirect3DRMInterpolator,    0x242f6bc1, 0x3849, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
-DEFINE_GUID(IID_IDirect3DRMProgressiveMesh, 0x4516ec79, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
-DEFINE_GUID(IID_IDirect3DRMPicked2Array,    0x4516ec7b, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
-DEFINE_GUID(IID_IDirect3DRMClippedVisual,   0x5434e733, 0x6d66, 0x11d1, 0xbb, 0x0b, 0x00, 0x00, 0xf8, 0x75, 0x86, 0x5a);
-
-typedef struct IDirect3DRMObject          *LPDIRECT3DRMOBJECT, **LPLPDIRECT3DRMOBJECT;
-typedef struct IDirect3DRMObject2         *LPDIRECT3DRMOBJECT2, **LPLPDIRECT3DRMOBJECT2;
-typedef struct IDirect3DRMDevice          *LPDIRECT3DRMDEVICE, **LPLPDIRECT3DRMDEVICE;
-typedef struct IDirect3DRMDevice2         *LPDIRECT3DRMDEVICE2, **LPLPDIRECT3DRMDEVICE2;
-typedef struct IDirect3DRMDevice3         *LPDIRECT3DRMDEVICE3, **LPLPDIRECT3DRMDEVICE3;
-typedef struct IDirect3DRMViewport        *LPDIRECT3DRMVIEWPORT, **LPLPDIRECT3DRMVIEWPORT;
-typedef struct IDirect3DRMViewport2       *LPDIRECT3DRMVIEWPORT2, **LPLPDIRECT3DRMVIEWPORT2;
-typedef struct IDirect3DRMFrame           *LPDIRECT3DRMFRAME, **LPLPDIRECT3DRMFRAME;
-typedef struct IDirect3DRMFrame2          *LPDIRECT3DRMFRAME2, **LPLPDIRECT3DRMFRAME2;
-typedef struct IDirect3DRMFrame3          *LPDIRECT3DRMFRAME3, **LPLPDIRECT3DRMFRAME3;
-typedef struct IDirect3DRMVisual          *LPDIRECT3DRMVISUAL, **LPLPDIRECT3DRMVISUAL;
-typedef struct IDirect3DRMMesh            *LPDIRECT3DRMMESH, **LPLPDIRECT3DRMMESH;
-typedef struct IDirect3DRMMeshBuilder     *LPDIRECT3DRMMESHBUILDER, **LPLPDIRECT3DRMMESHBUILDER;
-typedef struct IDirect3DRMMeshBuilder2    *LPDIRECT3DRMMESHBUILDER2, **LPLPDIRECT3DRMMESHBUILDER2;
-typedef struct IDirect3DRMMeshBuilder3    *LPDIRECT3DRMMESHBUILDER3, **LPLPDIRECT3DRMMESHBUILDER3;
-typedef struct IDirect3DRMFace            *LPDIRECT3DRMFACE, **LPLPDIRECT3DRMFACE;
-typedef struct IDirect3DRMFace2           *LPDIRECT3DRMFACE2, **LPLPDIRECT3DRMFACE2;
-typedef struct IDirect3DRMLight           *LPDIRECT3DRMLIGHT, **LPLPDIRECT3DRMLIGHT;
-typedef struct IDirect3DRMTexture         *LPDIRECT3DRMTEXTURE, **LPLPDIRECT3DRMTEXTURE;
-typedef struct IDirect3DRMTexture2        *LPDIRECT3DRMTEXTURE2, **LPLPDIRECT3DRMTEXTURE2;
-typedef struct IDirect3DRMTexture3        *LPDIRECT3DRMTEXTURE3, **LPLPDIRECT3DRMTEXTURE3;
-typedef struct IDirect3DRMWrap            *LPDIRECT3DRMWRAP, **LPLPDIRECT3DRMWRAP;
-typedef struct IDirect3DRMMaterial        *LPDIRECT3DRMMATERIAL, **LPLPDIRECT3DRMMATERIAL;
-typedef struct IDirect3DRMMaterial2       *LPDIRECT3DRMMATERIAL2, **LPLPDIRECT3DRMMATERIAL2;
-typedef struct IDirect3DRMAnimation       *LPDIRECT3DRMANIMATION, **LPLPDIRECT3DRMANIMATION;
-typedef struct IDirect3DRMAnimation2      *LPDIRECT3DRMANIMATION2, **LPLPDIRECT3DRMANIMATION2;
-typedef struct IDirect3DRMAnimationSet    *LPDIRECT3DRMANIMATIONSET, **LPLPDIRECT3DRMANIMATIONSET;
-typedef struct IDirect3DRMAnimationSet2   *LPDIRECT3DRMANIMATIONSET2, **LPLPDIRECT3DRMANIMATIONSET2;
-typedef struct IDirect3DRMUserVisual      *LPDIRECT3DRMUSERVISUAL, **LPLPDIRECT3DRMUSERVISUAL;
-typedef struct IDirect3DRMShadow          *LPDIRECT3DRMSHADOW, **LPLPDIRECT3DRMSHADOW;
-typedef struct IDirect3DRMShadow2         *LPDIRECT3DRMSHADOW2, **LPLPDIRECT3DRMSHADOW2;
-typedef struct IDirect3DRMArray           *LPDIRECT3DRMARRAY, **LPLPDIRECT3DRMARRAY;
-typedef struct IDirect3DRMObjectArray     *LPDIRECT3DRMOBJECTARRAY, **LPLPDIRECT3DRMOBJECTARRAY;
-typedef struct IDirect3DRMDeviceArray     *LPDIRECT3DRMDEVICEARRAY, **LPLPDIRECT3DRMDEVICEARRAY;
-typedef struct IDirect3DRMFaceArray       *LPDIRECT3DRMFACEARRAY, **LPLPDIRECT3DRMFACEARRAY;
-typedef struct IDirect3DRMViewportArray   *LPDIRECT3DRMVIEWPORTARRAY, **LPLPDIRECT3DRMVIEWPORTARRAY;
-typedef struct IDirect3DRMFrameArray      *LPDIRECT3DRMFRAMEARRAY, **LPLPDIRECT3DRMFRAMEARRAY;
-typedef struct IDirect3DRMAnimationArray  *LPDIRECT3DRMANIMATIONARRAY, **LPLPDIRECT3DRMANIMATIONARRAY;
-typedef struct IDirect3DRMVisualArray     *LPDIRECT3DRMVISUALARRAY, **LPLPDIRECT3DRMVISUALARRAY;
-typedef struct IDirect3DRMPickedArray     *LPDIRECT3DRMPICKEDARRAY, **LPLPDIRECT3DRMPICKEDARRAY;
-typedef struct IDirect3DRMPicked2Array    *LPDIRECT3DRMPICKED2ARRAY, **LPLPDIRECT3DRMPICKED2ARRAY;
-typedef struct IDirect3DRMLightArray      *LPDIRECT3DRMLIGHTARRAY, **LPLPDIRECT3DRMLIGHTARRAY;
-typedef struct IDirect3DRMProgressiveMesh *LPDIRECT3DRMPROGRESSIVEMESH, **LPLPDIRECT3DRMPROGRESSIVEMESH;
-typedef struct IDirect3DRMClippedVisual   *LPDIRECT3DRMCLIPPEDVISUAL, **LPLPDIRECT3DRMCLIPPEDVISUAL;
-
-/* ********************************************************************
-   Types and structures
-   ******************************************************************** */
-
-typedef void (__cdecl *D3DRMOBJECTCALLBACK)(LPDIRECT3DRMOBJECT obj, LPVOID arg);
-typedef void (__cdecl *D3DRMFRAMEMOVECALLBACK)(LPDIRECT3DRMFRAME obj, LPVOID arg, D3DVALUE delta);
-typedef void (__cdecl *D3DRMFRAME3MOVECALLBACK)(LPDIRECT3DRMFRAME3 obj, LPVOID arg, D3DVALUE delta);
-typedef void (__cdecl *D3DRMUPDATECALLBACK)(LPDIRECT3DRMDEVICE obj, LPVOID arg, int, LPD3DRECT);
-typedef int (__cdecl *D3DRMUSERVISUALCALLBACK)(LPDIRECT3DRMUSERVISUAL obj, LPVOID arg,
-    D3DRMUSERVISUALREASON reason, LPDIRECT3DRMDEVICE dev, LPDIRECT3DRMVIEWPORT view);
-typedef HRESULT (__cdecl *D3DRMLOADTEXTURECALLBACK)(char *tex_name, void *arg, LPDIRECT3DRMTEXTURE *);
-typedef HRESULT (__cdecl *D3DRMLOADTEXTURE3CALLBACK)(char *tex_name, void *arg, LPDIRECT3DRMTEXTURE3 *);
-typedef void (__cdecl *D3DRMLOADCALLBACK)(LPDIRECT3DRMOBJECT object, REFIID objectguid, LPVOID arg);
-
-typedef struct _D3DRMPICKDESC
-{
-    ULONG     ulFaceIdx;
-    LONG      lGroupIdx;
-    D3DVECTOR vPosition;
-} D3DRMPICKDESC, *LPD3DRMPICKDESC;
-
-typedef struct _D3DRMPICKDESC2
-{
-    ULONG     ulFaceIdx;
-    LONG      lGroupIdx;
-    D3DVECTOR vPosition;
-    D3DVALUE  tu;
-    D3DVALUE  tv;
-    D3DVECTOR dvNormal;
-    D3DCOLOR  dcColor;
-} D3DRMPICKDESC2, *LPD3DRMPICKDESC2;
-
-/*****************************************************************************
- * IDirect3DRMObject interface
- */
-#ifdef WINE_NO_UNICODE_MACROS
-#undef GetClassName
-#endif
-#define INTERFACE IDirect3DRMObject
-DECLARE_INTERFACE_(IDirect3DRMObject,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMObject_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMObject_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMObject_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMObject_Clone(p,a,b,c)               (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMObject_AddDestroyCallback(p,a,b)    (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMObject_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMObject_SetAppData(p,a)              (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMObject_GetAppData(p)                (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMObject_SetName(p,a)                 (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMObject_GetName(p,a,b)               (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMObject_GetClassName(p,a,b)          (p)->lpVtbl->GetClassName(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMObject_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DRMObject_AddRef(p)                    (p)->AddRef()
-#define IDirect3DRMObject_Release(p)                   (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMObject_Clone(p,a,b,c)               (p)->Clone(a,b,c)
-#define IDirect3DRMObject_AddDestroyCallback(p,a,b)    (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMObject_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMObject_SetAppData(p,a)              (p)->SetAppData(a)
-#define IDirect3DRMObject_GetAppData(p)                (p)->GetAppData()
-#define IDirect3DRMObject_SetName(p,a)                 (p)->SetName(a)
-#define IDirect3DRMObject_GetName(p,a,b)               (p)->GetName(a,b)
-#define IDirect3DRMObject_GetClassName(p,a,b)          (p)->GetClassName(a,b)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMObject2 interface
- */
-#ifdef WINE_NO_UNICODE_MACROS
-#undef GetClassName
-#endif
-#define INTERFACE IDirect3DRMObject2
-DECLARE_INTERFACE_(IDirect3DRMObject2,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject2 methods ***/
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK pFunc, LPVOID pArg) PURE;
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK pFunc, LPVOID pArg) PURE;
-    STDMETHOD(GetClientData)(THIS_ DWORD id, LPVOID* ppData) PURE;
-    STDMETHOD(GetDirect3DRM)(THIS_ LPDIRECT3DRM* ppDirect3DRM) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD pSize, LPSTR pName) PURE;
-    STDMETHOD(SetClientData)(THIS_ DWORD id, LPVOID pData, DWORD flags) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR pName) PURE;
-    STDMETHOD(GetAge)(THIS_ DWORD flags, LPDWORD pAge) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMObject2_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMObject2_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMObject2_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject2 methods ***/
-#define IDirect3DRMObject2_AddDestroyCallback(p,a,b)    (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMObject2_Clone(p,a,b,c)               (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMObject2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMObject2_GetClientData(p,a,b)         (p)->lpVtbl->SetClientData(p,a,b)
-#define IDirect3DRMObject2_GetDirect3DRM(p,a)           (p)->lpVtbl->GetDirect3DRM(p,a)
-#define IDirect3DRMObject2_GetName(p,a,b)               (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMObject2_SetClientData(p,a,b,c)       (p)->lpVtbl->SetClientData(p,a,b,c)
-#define IDirect3DRMObject2_SetName(p,a)                 (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMObject2_GetAge(p,a,b)                (p)->lpVtbl->GetAge(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMObject2_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DRMObject2_AddRef(p)                    (p)->AddRef()
-#define IDirect3DRMObject2_Release(p)                   (p)->Release()
-/*** IDirect3DRMObject2 methods ***/
-#define IDirect3DRMObject2_AddDestroyCallback(p,a,b)    (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMObject2_Clone(p,a,b,c)               (p)->Clone(a,b,c)
-#define IDirect3DRMObject2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMObject2_GetClientData(p,a,b)         (p)->SetClientData(a,b)
-#define IDirect3DRMObject2_GetDirect3DRM(p,a)           (p)->GetDirect3DRM(a)
-#define IDirect3DRMObject2_GetName(p,a,b)               (p)->GetName(a,b)
-#define IDirect3DRMObject2_SetClientData(p,a,b,c)       (p)->SetClientData(a,b,c)
-#define IDirect3DRMObject2_SetName(p,a)                 (p)->SetName(a)
-#define IDirect3DRMObject2_GetAge(p,a,b)                (p)->GetAge(a,b)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMVisual interface
- */
-#define INTERFACE IDirect3DRMVisual
-DECLARE_INTERFACE_(IDirect3DRMVisual,IDirect3DRMObject)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMVisual_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMVisual_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMVisual_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMVisual_Clone(p,a,b,c)               (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMVisual_AddDestroyCallback(p,a,b)    (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMVisual_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMVisual_SetAppData(p,a)              (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMVisual_GetAppData(p)                (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMVisual_SetName(p,a)                 (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMVisual_GetName(p,a,b)               (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMVisual_GetClassName(p,a,b)          (p)->lpVtbl->GetClassName(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMVisual_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DRMVisual_AddRef(p)                    (p)->AddRef()
-#define IDirect3DRMVisual_Release(p)                   (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMVisual_Clone(p,a,b,c)               (p)->Clone(a,b,c)
-#define IDirect3DRMVisual_AddDestroyCallback(p,a,b)    (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMVisual_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMVisual_SetAppData(p,a)              (p)->SetAppData(a)
-#define IDirect3DRMVisual_GetAppData(p)                (p)->GetAppData()
-#define IDirect3DRMVisual_SetName(p,a)                 (p)->SetName(a)
-#define IDirect3DRMVisual_GetName(p,a,b)               (p)->GetName(a,b)
-#define IDirect3DRMVisual_GetClassName(p,a,b)          (p)->GetClassName(a,b)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMDevice interface
- */
-#ifdef WINE_NO_UNICODE_MACROS
-#undef GetClassName
-#endif
-#define INTERFACE IDirect3DRMDevice
-DECLARE_INTERFACE_(IDirect3DRMDevice,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK pFunc, LPVOID pArg) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK pFunc, LPVOID pArg) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMDevice methods ***/
-    STDMETHOD(Init)(THIS_ ULONG width, ULONG height) PURE;
-    STDMETHOD(InitFromD3D)(THIS_ LPDIRECT3D pD3D, LPDIRECT3DDEVICE pD3DDev) PURE;
-    STDMETHOD(InitFromClipper)(THIS_ LPDIRECTDRAWCLIPPER pDDClipper, LPGUID pGUID, int width, int height) PURE;
-    STDMETHOD(Update)(THIS) PURE;
-    STDMETHOD(AddUpdateCallback)(THIS_ D3DRMUPDATECALLBACK, LPVOID arg) PURE;
-    STDMETHOD(DeleteUpdateCallback)(THIS_ D3DRMUPDATECALLBACK, LPVOID arg) PURE;
-    STDMETHOD(SetBufferCount)(THIS_ DWORD) PURE;
-    STDMETHOD_(DWORD, GetBufferCount)(THIS) PURE;
-    STDMETHOD(SetDither)(THIS_ BOOL) PURE;
-    STDMETHOD(SetShades)(THIS_ DWORD) PURE;
-    STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
-    STDMETHOD(SetTextureQuality)(THIS_ D3DRMTEXTUREQUALITY) PURE;
-    STDMETHOD(GetViewports)(THIS_ LPDIRECT3DRMVIEWPORTARRAY *return_views) PURE;
-    STDMETHOD_(BOOL, GetDither)(THIS) PURE;
-    STDMETHOD_(DWORD, GetShades)(THIS) PURE;
-    STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
-    STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
-    STDMETHOD_(DWORD, GetTrianglesDrawn)(THIS) PURE;
-    STDMETHOD_(DWORD, GetWireframeOptions)(THIS) PURE;
-    STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
-    STDMETHOD_(D3DCOLORMODEL, GetColorModel)(THIS) PURE;
-    STDMETHOD_(D3DRMTEXTUREQUALITY, GetTextureQuality)(THIS) PURE;
-    STDMETHOD(GetDirect3DDevice)(THIS_ LPDIRECT3DDEVICE *) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMDevice_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMDevice_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMDevice_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMDevice_Clone(p,a,b,c)               (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMDevice_AddDestroyCallback(p,a,b)    (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMDevice_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMDevice_SetAppData(p,a)              (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMDevice_GetAppData(p)                (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMDevice_SetName(p,a)                 (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMDevice_GetName(p,a,b)               (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMDevice_GetClassName(p,a,b)          (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMDevice methods ***/
-#define IDirect3DRMDevice_Init(p,a,b)                  (p)->lpVtbl->Init(p,a,b)
-#define IDirect3DRMDevice_InitFromD3D(p,a,b)           (p)->lpVtbl->InitFromD3D(p,a,b)
-#define IDirect3DRMDevice_InitFromClipper(p,a,b,c,d)   (p)->lpVtbl->InitFromClipper(p,a,b,c,d)
-#define IDirect3DRMDevice_Update(p)                    (p)->lpVtbl->Update(p)
-#define IDirect3DRMDevice_AddUpdateCallback(p,a,b)     (p)->lpVtbl->AddUpdateCallback(p,a,b)
-#define IDirect3DRMDevice_DeleteUpdateCallback(p,a,b)  (p)->lpVtbl->DeleteUpdateCallback(p,a,b,c)
-#define IDirect3DRMDevice_SetBufferCount(p,a)          (p)->lpVtbl->SetBufferCount(p,a)
-#define IDirect3DRMDevice_GetBufferCount(p)            (p)->lpVtbl->GetBufferCount(p)
-#define IDirect3DRMDevice_SetDither(p,a)               (p)->lpVtbl->SetDither(p,a)
-#define IDirect3DRMDevice_SetShades(p,a)               (p)->lpVtbl->SetShades(p,a)
-#define IDirect3DRMDevice_SetQuality(p,a)              (p)->lpVtbl->SetQuality(p,a)
-#define IDirect3DRMDevice_SetTextureQuality(p,a)       (p)->lpVtbl->SetTextureQuality(p,a)
-#define IDirect3DRMDevice_GetViewports(p,a)            (p)->lpVtbl->GetViewports(p,a)
-#define IDirect3DRMDevice_GetDither(p)                 (p)->lpVtbl->GetDither(p)
-#define IDirect3DRMDevice_GetShades(p)                 (p)->lpVtbl->GetShades(p)
-#define IDirect3DRMDevice_GetHeight(p)                 (p)->lpVtbl->GetHeight(p)
-#define IDirect3DRMDevice_GetWidth(p)                  (p)->lpVtbl->GetWidth(p)
-#define IDirect3DRMDevice_GetTrianglesDrawn(p)         (p)->lpVtbl->GetTrianglesDrawn(p)
-#define IDirect3DRMDevice_GetWireframeOptions(p)       (p)->lpVtbl->GetWireframeOptions(p)
-#define IDirect3DRMDevice_GetQuality(p)                (p)->lpVtbl->GetQuality(p)
-#define IDirect3DRMDevice_GetColorModel(p)             (p)->lpVtbl->GetColorModel(p)
-#define IDirect3DRMDevice_GetTextureQuality(p)         (p)->lpVtbl->GetTextureQuality(p)
-#define IDirect3DRMDevice_GetDirect3DDevice(p,a)       (p)->lpVtbl->GetDirect3DDevice(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMDevice_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DRMDevice_AddRef(p)                    (p)->AddRef()
-#define IDirect3DRMDevice_Release(p)                   (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMDevice_Clone(p,a,b,c)               (p)->Clone(a,b,c)
-#define IDirect3DRMDevice_AddDestroyCallback(p,a,b)    (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMDevice_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMDevice_SetAppData(p,a)              (p)->SetAppData(a)
-#define IDirect3DRMDevice_GetAppData(p)                (p)->GetAppData()
-#define IDirect3DRMDevice_SetName(p,a)                 (p)->SetName(a)
-#define IDirect3DRMDevice_GetName(p,a,b)               (p)->GetName(a,b)
-#define IDirect3DRMDevice_GetClassName(p,a,b)          (p)->GetClassName(a,b)
-/*** IDirect3DRMDevice methods ***/
-#define IDirect3DRMDevice_Init(p,a,b)                  (p)->Init(p,a,b)
-#define IDirect3DRMDevice_InitFromD3D(p,a,b)           (p)->InitFromD3D(p,a,b)
-#define IDirect3DRMDevice_InitFromClipper(p,a,b,c,d)   (p)->InitFromClipper(p,a,b,c,d)
-#define IDirect3DRMDevice_Update(p)                    (p)->Update(p)
-#define IDirect3DRMDevice_AddUpdateCallback(p,a,b)     (p)->AddUpdateCallback(p,a,b)
-#define IDirect3DRMDevice_DeleteUpdateCallback(p,a,b)  (p)->DeleteUpdateCallback(p,a,b,c)
-#define IDirect3DRMDevice_SetBufferCount(p,a)          (p)->SetBufferCount(p,a)
-#define IDirect3DRMDevice_GetBufferCount(p)            (p)->GetBufferCount(p)
-#define IDirect3DRMDevice_SetDither(p,a)               (p)->SetDither(p,a)
-#define IDirect3DRMDevice_SetShades(p,a)               (p)->SetShades(p,a)
-#define IDirect3DRMDevice_SetQuality(p,a)              (p)->SetQuality(p,a)
-#define IDirect3DRMDevice_SetTextureQuality(p,a)       (p)->SetTextureQuality(p,a)
-#define IDirect3DRMDevice_GetViewports(p,a)            (p)->GetViewports(p,a)
-#define IDirect3DRMDevice_GetDither(p)                 (p)->GetDither(p)
-#define IDirect3DRMDevice_GetShades(p)                 (p)->GetShades(p)
-#define IDirect3DRMDevice_GetHeight(p)                 (p)->GetHeight(p)
-#define IDirect3DRMDevice_GetWidth(p)                  (p)->GetWidth(p)
-#define IDirect3DRMDevice_GetTrianglesDrawn(p)         (p)->GetTrianglesDrawn(p)
-#define IDirect3DRMDevice_GetWireframeOptions(p)       (p)->GetWireframeOptions(p)
-#define IDirect3DRMDevice_GetQuality(p)                (p)->GetQuality(p)
-#define IDirect3DRMDevice_GetColorModel(p)             (p)->GetColorModel(p)
-#define IDirect3DRMDevice_GetTextureQuality(p)         (p)->GetTextureQuality(p)
-#define IDirect3DRMDevice_GetDirect3DDevice(p,a)       (p)->GetDirect3DDevice(p,a)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMDevice2 interface
- */
-#ifdef WINE_NO_UNICODE_MACROS
-#undef GetClassName
-#endif
-#define INTERFACE IDirect3DRMDevice2
-DECLARE_INTERFACE_(IDirect3DRMDevice2,IDirect3DRMDevice)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK pFunc, LPVOID pArg) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK pFunc, LPVOID pArg) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMDevice methods ***/
-    STDMETHOD(Init)(THIS_ ULONG width, ULONG height) PURE;
-    STDMETHOD(InitFromD3D)(THIS_ LPDIRECT3D pD3D, LPDIRECT3DDEVICE pD3DDev) PURE;
-    STDMETHOD(InitFromClipper)(THIS_ LPDIRECTDRAWCLIPPER pDDClipper, LPGUID pGUID, int width, int height) PURE;
-    STDMETHOD(Update)(THIS) PURE;
-    STDMETHOD(AddUpdateCallback)(THIS_ D3DRMUPDATECALLBACK, LPVOID arg) PURE;
-    STDMETHOD(DeleteUpdateCallback)(THIS_ D3DRMUPDATECALLBACK, LPVOID arg) PURE;
-    STDMETHOD(SetBufferCount)(THIS_ DWORD) PURE;
-    STDMETHOD_(DWORD, GetBufferCount)(THIS) PURE;
-    STDMETHOD(SetDither)(THIS_ BOOL) PURE;
-    STDMETHOD(SetShades)(THIS_ DWORD) PURE;
-    STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
-    STDMETHOD(SetTextureQuality)(THIS_ D3DRMTEXTUREQUALITY) PURE;
-    STDMETHOD(GetViewports)(THIS_ LPDIRECT3DRMVIEWPORTARRAY *return_views) PURE;
-    STDMETHOD_(BOOL, GetDither)(THIS) PURE;
-    STDMETHOD_(DWORD, GetShades)(THIS) PURE;
-    STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
-    STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
-    STDMETHOD_(DWORD, GetTrianglesDrawn)(THIS) PURE;
-    STDMETHOD_(DWORD, GetWireframeOptions)(THIS) PURE;
-    STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
-    STDMETHOD_(D3DCOLORMODEL, GetColorModel)(THIS) PURE;
-    STDMETHOD_(D3DRMTEXTUREQUALITY, GetTextureQuality)(THIS) PURE;
-    STDMETHOD(GetDirect3DDevice)(THIS_ LPDIRECT3DDEVICE *) PURE;
-    /*** IDirect3DRMDevice2 methods ***/
-    STDMETHOD(InitFromD3D2)(THIS_ LPDIRECT3D2 pD3D, LPDIRECT3DDEVICE2 pD3DDev) PURE;
-    STDMETHOD(InitFromSurface)(THIS_ LPGUID pGUID, LPDIRECTDRAW pDD, LPDIRECTDRAWSURFACE pDDSBack) PURE;
-    STDMETHOD(SetRenderMode)(THIS_ DWORD flags) PURE;
-    STDMETHOD_(DWORD, GetRenderMode)(THIS) PURE;
-    STDMETHOD(GetDirect3DDevice2)(THIS_ LPDIRECT3DDEVICE2 *) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMDevice2_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMDevice2_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMDevice2_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMDevice2_Clone(p,a,b,c)               (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMDevice2_AddDestroyCallback(p,a,b)    (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMDevice2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMDevice2_SetAppData(p,a)              (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMDevice2_GetAppData(p)                (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMDevice2_SetName(p,a)                 (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMDevice2_GetName(p,a,b)               (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMDevice2_GetClassName(p,a,b)          (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMDevice methods ***/
-#define IDirect3DRMDevice2_Init(p,a,b)                  (p)->lpVtbl->Init(p,a,b)
-#define IDirect3DRMDevice2_InitFromD3D(p,a,b)           (p)->lpVtbl->InitFromD3D(p,a,b)
-#define IDirect3DRMDevice2_InitFromClipper(p,a,b,c,d)   (p)->lpVtbl->InitFromClipper(p,a,b,c,d)
-#define IDirect3DRMDevice2_Update(p)                    (p)->lpVtbl->Update(p)
-#define IDirect3DRMDevice2_AddUpdateCallback(p,a,b)     (p)->lpVtbl->AddUpdateCallback(p,a,b)
-#define IDirect3DRMDevice2_DeleteUpdateCallback(p,a,b)  (p)->lpVtbl->DeleteUpdateCallback(p,a,b,c)
-#define IDirect3DRMDevice2_SetBufferCount(p,a)          (p)->lpVtbl->SetBufferCount(p,a)
-#define IDirect3DRMDevice2_GetBufferCount(p)            (p)->lpVtbl->GetBufferCount(p)
-#define IDirect3DRMDevice2_SetDither(p,a)               (p)->lpVtbl->SetDither(p,a)
-#define IDirect3DRMDevice2_SetShades(p,a)               (p)->lpVtbl->SetShades(p,a)
-#define IDirect3DRMDevice2_SetQuality(p,a)              (p)->lpVtbl->SetQuality(p,a)
-#define IDirect3DRMDevice2_SetTextureQuality(p,a)       (p)->lpVtbl->SetTextureQuality(p,a)
-#define IDirect3DRMDevice2_GetViewports(p,a)            (p)->lpVtbl->GetViewports(p,a)
-#define IDirect3DRMDevice2_GetDither(p)                 (p)->lpVtbl->GetDither(p)
-#define IDirect3DRMDevice2_GetShades(p)                 (p)->lpVtbl->GetShades(p)
-#define IDirect3DRMDevice2_GetHeight(p)                 (p)->lpVtbl->GetHeight(p)
-#define IDirect3DRMDevice2_GetWidth(p)                  (p)->lpVtbl->GetWidth(p)
-#define IDirect3DRMDevice2_GetTrianglesDrawn(p)         (p)->lpVtbl->GetTrianglesDrawn(p)
-#define IDirect3DRMDevice2_GetWireframeOptions(p)       (p)->lpVtbl->GetWireframeOptions(p)
-#define IDirect3DRMDevice2_GetQuality(p)                (p)->lpVtbl->GetQuality(p)
-#define IDirect3DRMDevice2_GetColorModel(p)             (p)->lpVtbl->GetColorModel(p)
-#define IDirect3DRMDevice2_GetTextureQuality(p)         (p)->lpVtbl->GetTextureQuality(p)
-#define IDirect3DRMDevice2_GetDirect3DDevice(p,a)       (p)->lpVtbl->GetDirect3DDevice(p,a)
-/*** IDirect3DRMDevice2 methods ***/
-#define IDirect3DRMDevice2_InitFromD3D2(p,a,b)          (p)->lpVtbl->InitFromD3D2(p,a,b)
-#define IDirect3DRMDevice2_InitFromSurface(p,a,b,c)     (p)->lpVtbl->InitFromSurface(p,a,b,c)
-#define IDirect3DRMDevice2_SetRenderMode(p,a)           (p)->lpVtbl->SetRenderMode(p,a)
-#define IDirect3DRMDevice2_GetRenderMode(p)             (p)->lpVtbl->GetRenderMode(p)
-#define IDirect3DRMDevice2_GetDirect3DDevice2(p,a)      (p)->lpVtbl->GetDirect3DDevice2(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMDevice2_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DRMDevice2_AddRef(p)                    (p)->AddRef()
-#define IDirect3DRMDevice2_Release(p)                   (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMDevice2_Clone(p,a,b,c)               (p)->Clone(a,b,c)
-#define IDirect3DRMDevice2_AddDestroyCallback(p,a,b)    (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMDevice2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMDevice2_SetAppData(p,a)              (p)->SetAppData(a)
-#define IDirect3DRMDevice2_GetAppData(p)                (p)->GetAppData()
-#define IDirect3DRMDevice2_SetName(p,a)                 (p)->SetName(a)
-#define IDirect3DRMDevice2_GetName(p,a,b)               (p)->GetName(a,b)
-#define IDirect3DRMDevice2_GetClassName(p,a,b)          (p)->GetClassName(a,b)
-/*** IDirect3DRMDevice methods ***/
-#define IDirect3DRMDevice2_Init(p,a,b)                  (p)->Init(p,a,b)
-#define IDirect3DRMDevice2_InitFromD3D(p,a,b)           (p)->InitFromD3D(p,a,b)
-#define IDirect3DRMDevice2_InitFromClipper(p,a,b,c,d)   (p)->InitFromClipper(p,a,b,c,d)
-#define IDirect3DRMDevice2_Update(p)                    (p)->Update(p)
-#define IDirect3DRMDevice2_AddUpdateCallback(p,a,b)     (p)->AddUpdateCallback(p,a,b)
-#define IDirect3DRMDevice2_DeleteUpdateCallback(p,a,b)  (p)->DeleteUpdateCallback(p,a,b,c)
-#define IDirect3DRMDevice2_SetBufferCount(p,a)          (p)->SetBufferCount(p,a)
-#define IDirect3DRMDevice2_GetBufferCount(p)            (p)->GetBufferCount(p)
-#define IDirect3DRMDevice2_SetDither(p,a)               (p)->SetDither(p,a)
-#define IDirect3DRMDevice2_SetShades(p,a)               (p)->SetShades(p,a)
-#define IDirect3DRMDevice2_SetQuality(p,a)              (p)->SetQuality(p,a)
-#define IDirect3DRMDevice2_SetTextureQuality(p,a)       (p)->SetTextureQuality(p,a)
-#define IDirect3DRMDevice2_GetViewports(p,a)            (p)->GetViewports(p,a)
-#define IDirect3DRMDevice2_GetDither(p)                 (p)->GetDither(p)
-#define IDirect3DRMDevice2_GetShades(p)                 (p)->GetShades(p)
-#define IDirect3DRMDevice2_GetHeight(p)                 (p)->GetHeight(p)
-#define IDirect3DRMDevice2_GetWidth(p)                  (p)->GetWidth(p)
-#define IDirect3DRMDevice2_GetTrianglesDrawn(p)         (p)->GetTrianglesDrawn(p)
-#define IDirect3DRMDevice2_GetWireframeOptions(p)       (p)->GetWireframeOptions(p)
-#define IDirect3DRMDevice2_GetQuality(p)                (p)->GetQuality(p)
-#define IDirect3DRMDevice2_GetColorModel(p)             (p)->GetColorModel(p)
-#define IDirect3DRMDevice2_GetTextureQuality(p)         (p)->GetTextureQuality(p)
-#define IDirect3DRMDevice2_GetDirect3DDevice(p,a)       (p)->GetDirect3DDevice(p,a)
-/*** IDirect3DRMDevice2 methods ***/
-#define IDirect3DRMDevice2_InitFromD3D2(p,a,b)          (p)->InitFromD3D2(a,b)
-#define IDirect3DRMDevice2_InitFromSurface(p,a,b,c)     (p)->InitFromSurface(a,b,c)
-#define IDirect3DRMDevice2_SetRenderMode(p,a)           (p)->SetRenderMode(a)
-#define IDirect3DRMDevice2_GetRenderMode(p)             (p)->GetRenderMode()
-#define IDirect3DRMDevice2_GetDirect3DDevice2(p,a)      (p)->GetDirect3DDevice2(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMDevice3 interface
- */
-#ifdef WINE_NO_UNICODE_MACROS
-#undef GetClassName
-#endif
-#define INTERFACE IDirect3DRMDevice3
-DECLARE_INTERFACE_(IDirect3DRMDevice3,IDirect3DRMObject)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK pFunc, LPVOID pArg) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK pFunc, LPVOID pArg) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMDevice methods ***/
-    STDMETHOD(Init)(THIS_ ULONG width, ULONG height) PURE;
-    STDMETHOD(InitFromD3D)(THIS_ LPDIRECT3D pD3D, LPDIRECT3DDEVICE pD3DDev) PURE;
-    STDMETHOD(InitFromClipper)(THIS_ LPDIRECTDRAWCLIPPER pDDClipper, LPGUID pGUID, int width, int height) PURE;
-    STDMETHOD(Update)(THIS) PURE;
-    STDMETHOD(AddUpdateCallback)(THIS_ D3DRMUPDATECALLBACK, LPVOID arg) PURE;
-    STDMETHOD(DeleteUpdateCallback)(THIS_ D3DRMUPDATECALLBACK, LPVOID arg) PURE;
-    STDMETHOD(SetBufferCount)(THIS_ DWORD) PURE;
-    STDMETHOD_(DWORD, GetBufferCount)(THIS) PURE;
-    STDMETHOD(SetDither)(THIS_ BOOL) PURE;
-    STDMETHOD(SetShades)(THIS_ DWORD) PURE;
-    STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
-    STDMETHOD(SetTextureQuality)(THIS_ D3DRMTEXTUREQUALITY) PURE;
-    STDMETHOD(GetViewports)(THIS_ LPDIRECT3DRMVIEWPORTARRAY *return_views) PURE;
-    STDMETHOD_(BOOL, GetDither)(THIS) PURE;
-    STDMETHOD_(DWORD, GetShades)(THIS) PURE;
-    STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
-    STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
-    STDMETHOD_(DWORD, GetTrianglesDrawn)(THIS) PURE;
-    STDMETHOD_(DWORD, GetWireframeOptions)(THIS) PURE;
-    STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
-    STDMETHOD_(D3DCOLORMODEL, GetColorModel)(THIS) PURE;
-    STDMETHOD_(D3DRMTEXTUREQUALITY, GetTextureQuality)(THIS) PURE;
-    STDMETHOD(GetDirect3DDevice)(THIS_ LPDIRECT3DDEVICE *) PURE;
-    /*** IDirect3DRMDevice2 methods ***/
-    STDMETHOD(InitFromD3D2)(THIS_ LPDIRECT3D2 pD3D, LPDIRECT3DDEVICE2 pD3DDev) PURE;
-    STDMETHOD(InitFromSurface)(THIS_ LPGUID pGUID, LPDIRECTDRAW pDD, LPDIRECTDRAWSURFACE pDDSBack) PURE;
-    STDMETHOD(SetRenderMode)(THIS_ DWORD flags) PURE;
-    STDMETHOD_(DWORD, GetRenderMode)(THIS) PURE;
-    STDMETHOD(GetDirect3DDevice2)(THIS_ LPDIRECT3DDEVICE2 *) PURE;
-    /*** IDirect3DRMDevice3 methods ***/
-    STDMETHOD(FindPreferredTextureFormat)(THIS_ DWORD BitDepths, DWORD flags, LPDDPIXELFORMAT pDDPF) PURE;
-    STDMETHOD(RenderStateChange)(THIS_ D3DRENDERSTATETYPE drsType, DWORD val, DWORD flags) PURE;
-    STDMETHOD(LightStateChange)(THIS_ D3DLIGHTSTATETYPE drsType, DWORD val, DWORD flags) PURE;
-    STDMETHOD(GetStateChangeOptions)(THIS_ DWORD StateClass, DWORD StateNum, LPDWORD pFlags) PURE;
-    STDMETHOD(SetStateChangeOptions)(THIS_ DWORD StateClass, DWORD StateNum, DWORD flags) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMDevice3_QueryInterface(p,a,b)               (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMDevice3_AddRef(p)                           (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMDevice3_Release(p)                          (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMDevice3_Clone(p,a,b,c)                      (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMDevice3_AddDestroyCallback(p,a,b)           (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMDevice3_DeleteDestroyCallback(p,a,b)        (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMDevice3_SetAppData(p,a)                     (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMDevice3_GetAppData(p)                       (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMDevice3_SetName(p,a)                        (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMDevice3_GetName(p,a,b)                      (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMDevice3_GetClassName(p,a,b)                 (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMDevice methods ***/
-#define IDirect3DRMDevice3_Init(p,a,b)                         (p)->lpVtbl->Init(p,a,b)
-#define IDirect3DRMDevice3_InitFromD3D(p,a,b)                  (p)->lpVtbl->InitFromD3D(p,a,b)
-#define IDirect3DRMDevice3_InitFromClipper(p,a,b,c,d)          (p)->lpVtbl->InitFromClipper(p,a,b,c,d)
-#define IDirect3DRMDevice3_Update(p)                           (p)->lpVtbl->Update(p)
-#define IDirect3DRMDevice3_AddUpdateCallback(p,a,b)            (p)->lpVtbl->AddUpdateCallback(p,a,b)
-#define IDirect3DRMDevice3_DeleteUpdateCallback(p,a,b)         (p)->lpVtbl->DeleteUpdateCallback(p,a,b,c)
-#define IDirect3DRMDevice3_SetBufferCount(p,a)                 (p)->lpVtbl->SetBufferCount(p,a)
-#define IDirect3DRMDevice3_GetBufferCount(p)                   (p)->lpVtbl->GetBufferCount(p)
-#define IDirect3DRMDevice3_SetDither(p,a)                      (p)->lpVtbl->SetDither(p,a)
-#define IDirect3DRMDevice3_SetShades(p,a)                      (p)->lpVtbl->SetShades(p,a)
-#define IDirect3DRMDevice3_SetQuality(p,a)                     (p)->lpVtbl->SetQuality(p,a)
-#define IDirect3DRMDevice3_SetTextureQuality(p,a)              (p)->lpVtbl->SetTextureQuality(p,a)
-#define IDirect3DRMDevice3_GetViewports(p,a)                   (p)->lpVtbl->GetViewports(p,a)
-#define IDirect3DRMDevice3_GetDither(p)                        (p)->lpVtbl->GetDither(p)
-#define IDirect3DRMDevice3_GetShades(p)                        (p)->lpVtbl->GetShades(p)
-#define IDirect3DRMDevice3_GetHeight(p)                        (p)->lpVtbl->GetHeight(p)
-#define IDirect3DRMDevice3_GetWidth(p)                         (p)->lpVtbl->GetWidth(p)
-#define IDirect3DRMDevice3_GetTrianglesDrawn(p)                (p)->lpVtbl->GetTrianglesDrawn(p)
-#define IDirect3DRMDevice3_GetWireframeOptions(p)              (p)->lpVtbl->GetWireframeOptions(p)
-#define IDirect3DRMDevice3_GetQuality(p)                       (p)->lpVtbl->GetQuality(p)
-#define IDirect3DRMDevice3_GetColorModel(p)                    (p)->lpVtbl->GetColorModel(p)
-#define IDirect3DRMDevice3_GetTextureQuality(p)                (p)->lpVtbl->GetTextureQuality(p)
-#define IDirect3DRMDevice3_GetDirect3DDevice(p,a)              (p)->lpVtbl->GetDirect3DDevice(p,a)
-/*** IDirect3DRMDevice2 methods ***/
-#define IDirect3DRMDevice3_InitFromD3D2(p,a,b)                 (p)->lpVtbl->InitFromD3D2(p,a,b)
-#define IDirect3DRMDevice3_InitFromSurface(p,a,b,c)            (p)->lpVtbl->InitFromSurface(p,a,b,c)
-#define IDirect3DRMDevice3_SetRenderMode(p,a)                  (p)->lpVtbl->SetRenderMode(p,a)
-#define IDirect3DRMDevice3_GetRenderMode(p)                    (p)->lpVtbl->GetRenderMode(p)
-#define IDirect3DRMDevice3_GetDirect3DDevice2(p,a)             (p)->lpVtbl->GetDirect3DDevice2(p,a)
-/*** IDirect3DRMDevice3 methods ***/
-#define IDirect3DRMDevice3_FindPreferredTextureFormat(p,a,b,c) (p)->lpVtbl->FindPreferredTextureFormat(p,a,b)
-#define IDirect3DRMDevice3_RenderStateChange(p,a,b,c)          (p)->lpVtbl->RenderStateChange(p,a,b)
-#define IDirect3DRMDevice3_LightStateChange(p,a,b,c)           (p)->lpVtbl->LightStateChange(p,a,b)
-#define IDirect3DRMDevice3_GetStateChangeOptions(p,a,b,c)      (p)->lpVtbl->GetStateChangeOptions(p,a,b)
-#define IDirect3DRMDevice3_SetStateChangeOptions(p,a,b,c)      (p)->lpVtbl->SetStateChangeOptions(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMDevice3_QueryInterface(p,a,b)               (p)->QueryInterface(a,b)
-#define IDirect3DRMDevice3_AddRef(p)                           (p)->AddRef()
-#define IDirect3DRMDevice3_Release(p)                          (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMDevice3_Clone(p,a,b,c)                      (p)->Clone(a,b,c)
-#define IDirect3DRMDevice3_AddDestroyCallback(p,a,b)           (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMDevice3_DeleteDestroyCallback(p,a,b)        (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMDevice3_SetAppData(p,a)                     (p)->SetAppData(a)
-#define IDirect3DRMDevice3_GetAppData(p)                       (p)->GetAppData()
-#define IDirect3DRMDevice3_SetName(p,a)                        (p)->SetName(a)
-#define IDirect3DRMDevice3_GetName(p,a,b)                      (p)->GetName(a,b)
-#define IDirect3DRMDevice3_GetClassName(p,a,b)                 (p)->GetClassName(a,b)
-/*** IDirect3DRMDevice methods ***/
-#define IDirect3DRMDevice3_Init(p,a,b)                         (p)->Init(p,a,b)
-#define IDirect3DRMDevice3_InitFromD3D(p,a,b)                  (p)->InitFromD3D(p,a,b)
-#define IDirect3DRMDevice3_InitFromClipper(p,a,b,c,d)          (p)->InitFromClipper(p,a,b,c,d)
-#define IDirect3DRMDevice3_Update(p)                           (p)->Update(p)
-#define IDirect3DRMDevice3_AddUpdateCallback(p,a,b)            (p)->AddUpdateCallback(p,a,b)
-#define IDirect3DRMDevice3_DeleteUpdateCallback(p,a,b)         (p)->DeleteUpdateCallback(p,a,b,c)
-#define IDirect3DRMDevice3_SetBufferCount(p,a)                 (p)->SetBufferCount(p,a)
-#define IDirect3DRMDevice3_GetBufferCount(p)                   (p)->GetBufferCount(p)
-#define IDirect3DRMDevice3_SetDither(p,a)                      (p)->SetDither(p,a)
-#define IDirect3DRMDevice3_SetShades(p,a)                      (p)->SetShades(p,a)
-#define IDirect3DRMDevice3_SetQuality(p,a)                     (p)->SetQuality(p,a)
-#define IDirect3DRMDevice3_SetTextureQuality(p,a)              (p)->SetTextureQuality(p,a)
-#define IDirect3DRMDevice3_GetViewports(p,a)                   (p)->GetViewports(p,a)
-#define IDirect3DRMDevice3_GetDither(p)                        (p)->GetDither(p)
-#define IDirect3DRMDevice3_GetShades(p)                        (p)->GetShades(p)
-#define IDirect3DRMDevice3_GetHeight(p)                        (p)->GetHeight(p)
-#define IDirect3DRMDevice3_GetWidth(p)                         (p)->GetWidth(p)
-#define IDirect3DRMDevice3_GetTrianglesDrawn(p)                (p)->GetTrianglesDrawn(p)
-#define IDirect3DRMDevice3_GetWireframeOptions(p)              (p)->GetWireframeOptions(p)
-#define IDirect3DRMDevice3_GetQuality(p)                       (p)->GetQuality(p)
-#define IDirect3DRMDevice3_GetColorModel(p)                    (p)->GetColorModel(p)
-#define IDirect3DRMDevice3_GetTextureQuality(p)                (p)->GetTextureQuality(p)
-#define IDirect3DRMDevice3_GetDirect3DDevice(p,a)              (p)->GetDirect3DDevice(p,a)
-/*** IDirect3DRMDevice2 methods ***/
-#define IDirect3DRMDevice3_InitFromD3D2(p,a,b)                 (p)->InitFromD3D2(a,b)
-#define IDirect3DRMDevice3_InitFromSurface(p,a,b,c)            (p)->InitFromSurface(a,b,c)
-#define IDirect3DRMDevice3_SetRenderMode(p,a)                  (p)->SetRenderMode(a)
-#define IDirect3DRMDevice3_GetRenderMode(p)                    (p)->GetRenderMode()
-#define IDirect3DRMDevice3_GetDirect3DDevice2(p,a)             (p)->GetDirect3DDevice2(a)
-/*** IDirect3DRMDevice3 methods ***/
-#define IDirect3DRMDevice3_FindPreferredTextureFormat(p,a,b,c) (p)->FindPreferredTextureFormat(a,b,c)
-#define IDirect3DRMDevice3_RenderStateChange(p,a,b,c)          (p)->RenderStateChange(a,b,c)
-#define IDirect3DRMDevice3_LightStateChange(p,a,b,c)           (p)->LightStateChange(a,b,c)
-#define IDirect3DRMDevice3_GetStateChangeOptions(p,a,b,c)      (p)->GetStateChangeOptions(a,b,c)
-#define IDirect3DRMDevice3_SetStateChangeOptions(p,a,b,c)      (p)->SetStateChangeOptions(a,b,c)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMViewport interface
- */
-#define INTERFACE IDirect3DRMViewport
-DECLARE_INTERFACE_(IDirect3DRMViewport,IDirect3DRMObject)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMViewport methods ***/
-    STDMETHOD(Init) (THIS_ LPDIRECT3DRMDEVICE dev, LPDIRECT3DRMFRAME camera, DWORD xpos, DWORD ypos,
-        DWORD width, DWORD height) PURE;
-    STDMETHOD(Clear)(THIS) PURE;
-    STDMETHOD(Render)(THIS_ LPDIRECT3DRMFRAME) PURE;
-    STDMETHOD(SetFront)(THIS_ D3DVALUE) PURE;
-    STDMETHOD(SetBack)(THIS_ D3DVALUE) PURE;
-    STDMETHOD(SetField)(THIS_ D3DVALUE) PURE;
-    STDMETHOD(SetUniformScaling)(THIS_ BOOL) PURE;
-    STDMETHOD(SetCamera)(THIS_ LPDIRECT3DRMFRAME) PURE;
-    STDMETHOD(SetProjection)(THIS_ D3DRMPROJECTIONTYPE) PURE;
-    STDMETHOD(Transform)(THIS_ D3DRMVECTOR4D *d, D3DVECTOR *s) PURE;
-    STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DRMVECTOR4D *s) PURE;
-    STDMETHOD(Configure)(THIS_ LONG x, LONG y, DWORD width, DWORD height) PURE;
-    STDMETHOD(ForceUpdate)(THIS_ DWORD x1, DWORD y1, DWORD x2, DWORD y2) PURE;
-    STDMETHOD(SetPlane)(THIS_ D3DVALUE left, D3DVALUE right, D3DVALUE bottom, D3DVALUE top) PURE;
-    STDMETHOD(GetCamera)(THIS_ LPDIRECT3DRMFRAME *) PURE;
-    STDMETHOD(GetDevice)(THIS_ LPDIRECT3DRMDEVICE *) PURE;
-    STDMETHOD(GetPlane)(THIS_ D3DVALUE *left, D3DVALUE *right, D3DVALUE *bottom, D3DVALUE *top) PURE;
-    STDMETHOD(Pick)(THIS_ LONG x, LONG y, LPDIRECT3DRMPICKEDARRAY *return_visuals) PURE;
-    STDMETHOD_(BOOL, GetUniformScaling)(THIS) PURE;
-    STDMETHOD_(LONG, GetX)(THIS) PURE;
-    STDMETHOD_(LONG, GetY)(THIS) PURE;
-    STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
-    STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
-    STDMETHOD_(D3DVALUE, GetField)(THIS) PURE;
-    STDMETHOD_(D3DVALUE, GetBack)(THIS) PURE;
-    STDMETHOD_(D3DVALUE, GetFront)(THIS) PURE;
-    STDMETHOD_(D3DRMPROJECTIONTYPE, GetProjection)(THIS) PURE;
-    STDMETHOD(GetDirect3DViewport)(THIS_ LPDIRECT3DVIEWPORT *) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMViewport_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMViewport_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMViewport_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMViewport_Clone(p,a,b,c)               (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMViewport_AddDestroyCallback(p,a,b)    (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMViewport_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMViewport_SetAppData(p,a)              (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMViewport_GetAppData(p)                (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMViewport_SetName(p,a)                 (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMViewport_GetName(p,a,b)               (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMViewport_GetClassName(p,a,b)          (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMViewport methods ***/
-#define IDirect3DRMViewport_Init(p,a,b,c,d)              (p)->lpVtbl->Init(p,a,b,c,d)
-#define IDirect3DRMViewport_Clear(p)                     (p)->lpVtbl->Clear(p)
-#define IDirect3DRMViewport_Render(p,a)                  (p)->lpVtbl->Render(p,a)
-#define IDirect3DRMViewport_SetFront(p,a)                (p)->lpVtbl->SetFront(p,a)
-#define IDirect3DRMViewport_SetBack(p,a)                 (p)->lpVtbl->(p,a)
-#define IDirect3DRMViewport_SetField(p,a)                (p)->lpVtbl->(p,a)
-#define IDirect3DRMViewport_SetUniformScaling(p,a)       (p)->lpVtbl->SetUniformScaling(p,a)
-#define IDirect3DRMViewport_SetCamera(p,a)               (p)->lpVtbl->SetCamera(p,a)
-#define IDirect3DRMViewport_SetProjection(p,a)           (p)->lpVtbl->SetProjection(p,a)
-#define IDirect3DRMViewport_Transform(p,a,b)             (p)->lpVtbl->Transform(p,a,b)
-#define IDirect3DRMViewport_InverseTransform(p,a,b)      (p)->lpVtbl->(p,a,b)
-#define IDirect3DRMViewport_Configure(p,a,b,c,d)         (p)->lpVtbl->Configure(p,a,b,c,d)
-#define IDirect3DRMViewport_ForceUpdate(p,a,b,c,d)       (p)->lpVtbl->ForceUpdate(p,a,b,c,d)
-#define IDirect3DRMViewport_SetPlane(p,a,b,c,d)          (p)->lpVtbl->SetPlane(p,a,b,c,d)
-#define IDirect3DRMViewport_GetCamera(p,a)               (p)->lpVtbl->(p,a)
-#define IDirect3DRMViewport_GetDevice(p,a)               (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DRMViewport_GetPlane(p,a,b,c,d)          (p)->lpVtbl->GetPlane(p,a,b,c,d)
-#define IDirect3DRMViewport_Pick(p,a,b,c)                (p)->lpVtbl->Pick(p,a,b,c)
-#define IDirect3DRMViewport_GetUniformScaling(p)         (p)->lpVtbl->GetUniformScaling(p)
-#define IDirect3DRMViewport_GetX(p)                      (p)->lpVtbl->GetX(p)
-#define IDirect3DRMViewport_GetY(p)                      (p)->lpVtbl->GetY(p)
-#define IDirect3DRMViewport_GetWidth(p)                  (p)->lpVtbl->GetWidth(p)
-#define IDirect3DRMViewport_GetHeight(p)                 (p)->lpVtbl->GetHeight(p)
-#define IDirect3DRMViewport_GetField(p)                  (p)->lpVtbl->GetField(p)
-#define IDirect3DRMViewport_GetBack(p)                   (p)->lpVtbl->GetBack(p)
-#define IDirect3DRMViewport_GetFront(p)                  (p)->lpVtbl->GetFront(p)
-#define IDirect3DRMViewport_GetProjection(p)             (p)->lpVtbl->GetProjection(p)
-#define IDirect3DRMViewport_GetDirect3DViewport(p,a)     (p)->lpVtbl->GetDirect3DViewport(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMViewport_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirect3DRMViewport_AddRef(p)                    (p)->AddRef()
-#define IDirect3DRMViewport_Release(p)                   (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMViewport_Clone(p,a,b,c)               (p)->Clone(a,b,c)
-#define IDirect3DRMViewport_AddDestroyCallback(p,a,b)    (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMViewport_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMViewport_SetAppData(p,a)              (p)->SetAppData(a)
-#define IDirect3DRMViewport_GetAppData(p)                (p)->GetAppData()
-#define IDirect3DRMViewport_SetName(p,a)                 (p)->SetName(a)
-#define IDirect3DRMViewport_GetName(p,a,b)               (p)->GetName(a,b)
-#define IDirect3DRMViewport_GetClassName(p,a,b)          (p)->GetClassName(a,b)
-/*** IDirect3DRMViewport methods ***/
-#define IDirect3DRMViewport_Init(p,a,b,c,d)              (p)->Init(p,a,b,c,d)
-#define IDirect3DRMViewport_Clear(p)                     (p)->Clear(p)
-#define IDirect3DRMViewport_Render(p,a)                  (p)->Render(p,a)
-#define IDirect3DRMViewport_SetFront(p,a)                (p)->SetFront(p,a)
-#define IDirect3DRMViewport_SetBack(p,a)                 (p)->(p,a)
-#define IDirect3DRMViewport_SetField(p,a)                (p)->(p,a)
-#define IDirect3DRMViewport_SetUniformScaling(p,a)       (p)->SetUniformScaling(p,a)
-#define IDirect3DRMViewport_SetCamera(p,a)               (p)->SetCamera(p,a)
-#define IDirect3DRMViewport_SetProjection(p,a)           (p)->SetProjection(p,a)
-#define IDirect3DRMViewport_Transform(p,a,b)             (p)->Transform(p,a,b)
-#define IDirect3DRMViewport_InverseTransform(p,a,b)      (p)->(p,a,b)
-#define IDirect3DRMViewport_Configure(p,a,b,c,d)         (p)->Configure(p,a,b,c,d)
-#define IDirect3DRMViewport_ForceUpdate(p,a,b,c,d)       (p)->ForceUpdate(p,a,b,c,d)
-#define IDirect3DRMViewport_SetPlane(p,a,b,c,d)          (p)->SetPlane(p,a,b,c,d)
-#define IDirect3DRMViewport_GetCamera(p,a)               (p)->GetCamera(p,a)
-#define IDirect3DRMViewport_GetDevice(p,a)               (p)->GetDevice(p,a)
-#define IDirect3DRMViewport_GetPlane(p,a,b,c,d)          (p)->GetPlane(p,a,b,c,d)
-#define IDirect3DRMViewport_Pick(p,a,b,c)                (p)->Pick(p,a,b,c)
-#define IDirect3DRMViewport_GetUniformScaling(p)         (p)->GetUniformScaling(p)
-#define IDirect3DRMViewport_GetX(p)                      (p)->GetX(p)
-#define IDirect3DRMViewport_GetY(p)                      (p)->GetY(p)
-#define IDirect3DRMViewport_GetWidth(p)                  (p)->GetWidth(p)
-#define IDirect3DRMViewport_GetHeight(p)                 (p)->GetHeight(p)
-#define IDirect3DRMViewport_GetField(p)                  (p)->GetField(p)
-#define IDirect3DRMViewport_GetBack(p)                   (p)->GetBack(p)
-#define IDirect3DRMViewport_GetFront(p)                  (p)->GetFront(p)
-#define IDirect3DRMViewport_GetProjection(p)             (p)->GetProjection(p)
-#define IDirect3DRMViewport_GetDirect3DViewport(p,a)     (p)->GetDirect3DViewport(p,a)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMViewport2 interface
- */
-#define INTERFACE IDirect3DRMViewport2
-DECLARE_INTERFACE_(IDirect3DRMViewport2,IDirect3DRMObject)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMViewport2 methods ***/
-    STDMETHOD(Init) (THIS_ LPDIRECT3DRMDEVICE3 dev, LPDIRECT3DRMFRAME3 camera, DWORD xpos, DWORD ypos,
-        DWORD width, DWORD height) PURE;
-    STDMETHOD(Clear)(THIS_ DWORD flags) PURE;
-    STDMETHOD(Render)(THIS_ LPDIRECT3DRMFRAME3) PURE;
-    STDMETHOD(SetFront)(THIS_ D3DVALUE) PURE;
-    STDMETHOD(SetBack)(THIS_ D3DVALUE) PURE;
-    STDMETHOD(SetField)(THIS_ D3DVALUE) PURE;
-    STDMETHOD(SetUniformScaling)(THIS_ BOOL) PURE;
-    STDMETHOD(SetCamera)(THIS_ LPDIRECT3DRMFRAME3) PURE;
-    STDMETHOD(SetProjection)(THIS_ D3DRMPROJECTIONTYPE) PURE;
-    STDMETHOD(Transform)(THIS_ D3DRMVECTOR4D *d, D3DVECTOR *s) PURE;
-    STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DRMVECTOR4D *s) PURE;
-    STDMETHOD(Configure)(THIS_ LONG x, LONG y, DWORD width, DWORD height) PURE;
-    STDMETHOD(ForceUpdate)(THIS_ DWORD x1, DWORD y1, DWORD x2, DWORD y2) PURE;
-    STDMETHOD(SetPlane)(THIS_ D3DVALUE left, D3DVALUE right, D3DVALUE bottom, D3DVALUE top) PURE;
-    STDMETHOD(GetCamera)(THIS_ LPDIRECT3DRMFRAME3 *) PURE;
-    STDMETHOD(GetDevice)(THIS_ LPDIRECT3DRMDEVICE3 *) PURE;
-    STDMETHOD(GetPlane)(THIS_ D3DVALUE *left, D3DVALUE *right, D3DVALUE *bottom, D3DVALUE *top) PURE;
-    STDMETHOD(Pick)(THIS_ LONG x, LONG y, LPDIRECT3DRMPICKEDARRAY *return_visuals) PURE;
-    STDMETHOD_(BOOL, GetUniformScaling)(THIS) PURE;
-    STDMETHOD_(LONG, GetX)(THIS) PURE;
-    STDMETHOD_(LONG, GetY)(THIS) PURE;
-    STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
-    STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
-    STDMETHOD_(D3DVALUE, GetField)(THIS) PURE;
-    STDMETHOD_(D3DVALUE, GetBack)(THIS) PURE;
-    STDMETHOD_(D3DVALUE, GetFront)(THIS) PURE;
-    STDMETHOD_(D3DRMPROJECTIONTYPE, GetProjection)(THIS) PURE;
-    STDMETHOD(GetDirect3DViewport)(THIS_ LPDIRECT3DVIEWPORT *) PURE;
-    STDMETHOD(TransformVectors)(THIS_ DWORD NumVectors, LPD3DRMVECTOR4D pDstVectors,
-        LPD3DVECTOR pSrcVectors) PURE;
-    STDMETHOD(InverseTransformVectors)(THIS_ DWORD NumVectors, LPD3DVECTOR pDstVectors,
-        LPD3DRMVECTOR4D pSrcVectors) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMViewport2_QueryInterface(p,a,b)            (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMViewport2_AddRef(p)                        (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMViewport2_Release(p)                       (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMViewport_2Clone(p,a,b,c)                   (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMViewport2_AddDestroyCallback(p,a,b)        (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMViewport2_DeleteDestroyCallback(p,a,b)     (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMViewport2_SetAppData(p,a)                  (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMViewport2_GetAppData(p)                    (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMViewport2_SetName(p,a)                     (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMViewport2_GetName(p,a,b)                   (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMViewport2_GetClassName(p,a,b)              (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMViewport2 methods ***/
-#define IDirect3DRMViewport2_Init(p,a,b,c,d,e,f)              (p)->lpVtbl->Init(p,a,b,c,d,e,f)
-#define IDirect3DRMViewport2_Clear(p,a)                       (p)->lpVtbl->Clear(p,a)
-#define IDirect3DRMViewport2_Render(p,a)                      (p)->lpVtbl->Render(p,a)
-#define IDirect3DRMViewport2_SetFront(p,a)                    (p)->lpVtbl->SetFront(p,a)
-#define IDirect3DRMViewport2_SetBack(p,a)                     (p)->lpVtbl->(p,a)
-#define IDirect3DRMViewport2_SetField(p,a)                    (p)->lpVtbl->(p,a)
-#define IDirect3DRMViewport2_SetUniformScaling(p,a)           (p)->lpVtbl->SetUniformScaling(p,a)
-#define IDirect3DRMViewport2_SetCamera(p,a)                   (p)->lpVtbl->SetCamera(p,a)
-#define IDirect3DRMViewport2_SetProjection(p,a)               (p)->lpVtbl->SetProjection(p,a)
-#define IDirect3DRMViewport2_Transform(p,a,b)                 (p)->lpVtbl->Transform(p,a,b)
-#define IDirect3DRMViewport2_InverseTransform(p,a,b)          (p)->lpVtbl->(p,a,b)
-#define IDirect3DRMViewport2_Configure(p,a,b,c,d)             (p)->lpVtbl->Configure(p,a,b,c,d)
-#define IDirect3DRMViewport2_ForceUpdate(p,a,b,c,d)           (p)->lpVtbl->ForceUpdate(p,a,b,c,d)
-#define IDirect3DRMViewport2_SetPlane(p,a,b,c,d)              (p)->lpVtbl->SetPlane(p,a,b,c,d)
-#define IDirect3DRMViewport2_GetCamera(p,a)                   (p)->lpVtbl->(p,a)
-#define IDirect3DRMViewport2_GetDevice(p,a)                   (p)->lpVtbl->GetDevice(p,a)
-#define IDirect3DRMViewport2_GetPlane(p,a,b,c,d)              (p)->lpVtbl->GetPlane(p,a,b,c,d)
-#define IDirect3DRMViewport2_Pick(p,a,b,c)                    (p)->lpVtbl->Pick(p,a,b,c)
-#define IDirect3DRMViewport2_GetUniformScaling(p)             (p)->lpVtbl->GetUniformScaling(p)
-#define IDirect3DRMViewport2_GetX(p)                          (p)->lpVtbl->GetX(p)
-#define IDirect3DRMViewport2_GetY(p)                          (p)->lpVtbl->GetY(p)
-#define IDirect3DRMViewport2_GetWidth(p)                      (p)->lpVtbl->GetWidth(p)
-#define IDirect3DRMViewport2_GetHeight(p)                     (p)->lpVtbl->GetHeight(p)
-#define IDirect3DRMViewport2_GetField(p)                      (p)->lpVtbl->GetField(p)
-#define IDirect3DRMViewport2_GetBack(p)                       (p)->lpVtbl->GetBack(p)
-#define IDirect3DRMViewport2_GetFront(p)                      (p)->lpVtbl->GetFront(p)
-#define IDirect3DRMViewport2_GetProjection(p)                 (p)->lpVtbl->GetProjection(p)
-#define IDirect3DRMViewport2_GetDirect3DViewport(p,a)         (p)->lpVtbl->GetDirect3DViewport(p,a)
-#define IDirect3DRMViewport2_TransformVectors(p,a,b,c)        (p)->lpVtbl->TransformVectors(p,a,b,c)
-#define IDirect3DRMViewport2_InverseTransformVectors(p,a,b,c) (p)->lpVtbl->InverseTransformVectors(p,ab,c)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMViewport2_QueryInterface(p,a,b)            (p)->QueryInterface(a,b)
-#define IDirect3DRMViewport2_AddRef(p)                        (p)->AddRef()
-#define IDirect3DRMViewport2_Release(p)                       (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMViewport2_Clone(p,a,b,c)                   (p)->Clone(a,b,c)
-#define IDirect3DRMViewport2_AddDestroyCallback(p,a,b)        (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMViewport2_DeleteDestroyCallback(p,a,b)     (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMViewport2_SetAppData(p,a)                  (p)->SetAppData(a)
-#define IDirect3DRMViewport2_GetAppData(p)                    (p)->GetAppData()
-#define IDirect3DRMViewport2_SetName(p,a)                     (p)->SetName(a)
-#define IDirect3DRMViewport2_GetName(p,a,b)                   (p)->GetName(a,b)
-#define IDirect3DRMViewport2_GetClassName(p,a,b)              (p)->GetClassName(a,b)
-/*** IDirect3DRMViewport2 methods ***/
-#define IDirect3DRMViewport2_Init(p,a,b,c,d)                  (p)->Init(p,a,b,c,d)
-#define IDirect3DRMViewport2_Clear(p)                         (p)->Clear(p)
-#define IDirect3DRMViewport2_Render(p,a)                      (p)->Render(p,a)
-#define IDirect3DRMViewport2_SetFront(p,a)                    (p)->SetFront(p,a)
-#define IDirect3DRMViewport2_SetBack(p,a)                     (p)->(p,a)
-#define IDirect3DRMViewport2_SetField(p,a)                    (p)->(p,a)
-#define IDirect3DRMViewport2_SetUniformScaling(p,a)           (p)->SetUniformScaling(p,a)
-#define IDirect3DRMViewport2_SetCamera(p,a)                   (p)->SetCamera(p,a)
-#define IDirect3DRMViewport2_SetProjection(p,a)               (p)->SetProjection(p,a)
-#define IDirect3DRMViewport2_Transform(p,a,b)                 (p)->Transform(p,a,b)
-#define IDirect3DRMViewport2_InverseTransform(p,a,b)          (p)->(p,a,b)
-#define IDirect3DRMViewport2_Configure(p,a,b,c,d)             (p)->Configure(p,a,b,c,d)
-#define IDirect3DRMViewport2_ForceUpdate(p,a,b,c,d)           (p)->ForceUpdate(p,a,b,c,d)
-#define IDirect3DRMViewport2_SetPlane(p,a,b,c,d)              (p)->SetPlane(p,a,b,c,d)
-#define IDirect3DRMViewport2_GetCamera(p,a)                   (p)->GetCamera(p,a)
-#define IDirect3DRMViewport2_GetDevice(p,a)                   (p)->GetDevice(p,a)
-#define IDirect3DRMViewport2_GetPlane(p,a,b,c,d)              (p)->GetPlane(p,a,b,c,d)
-#define IDirect3DRMViewport2_Pick(p,a,b,c)                    (p)->Pick(p,a,b,c)
-#define IDirect3DRMViewport2_GetUniformScaling(p)             (p)->GetUniformScaling(p)
-#define IDirect3DRMViewport2_GetX(p)                          (p)->GetX(p)
-#define IDirect3DRMViewport2_GetY(p)                          (p)->GetY(p)
-#define IDirect3DRMViewport2_GetWidth(p)                      (p)->GetWidth(p)
-#define IDirect3DRMViewport2_GetHeight(p)                     (p)->GetHeight(p)
-#define IDirect3DRMViewport2_GetField(p)                      (p)->GetField(p)
-#define IDirect3DRMViewport2_GetBack(p)                       (p)->GetBack(p)
-#define IDirect3DRMViewport2_GetFront(p)                      (p)->GetFront(p)
-#define IDirect3DRMViewport2_GetProjection(p)                 (p)->GetProjection(p)
-#define IDirect3DRMViewport2_GetDirect3DViewport(p,a)         (p)->GetDirect3DViewport(p,a)
-#define IDirect3DRMViewport2_TransformVectors(p,a,b,c)        (p)->TransformVectors(a,b,c)
-#define IDirect3DRMViewport2_InverseTransformVectors(p,a,b,c) (p)->InverseTransformVectors(ab,c)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMFrame interface
- */
-#define INTERFACE IDirect3DRMFrame
-DECLARE_INTERFACE_(IDirect3DRMFrame,IDirect3DRMVisual)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMFrame methods ***/
-    STDMETHOD(AddChild)(THIS_ LPDIRECT3DRMFRAME child) PURE;
-    STDMETHOD(AddLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
-    STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg) PURE;
-    STDMETHOD(AddTransform)(THIS_ D3DRMCOMBINETYPE, D3DRMMATRIX4D) PURE;
-    STDMETHOD(AddTranslation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(AddScale)(THIS_ D3DRMCOMBINETYPE, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
-    STDMETHOD(AddRotation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
-    STDMETHOD(AddVisual)(THIS_ LPDIRECT3DRMVISUAL) PURE;
-    STDMETHOD(GetChildren)(THIS_ LPDIRECT3DRMFRAMEARRAY *children) PURE;
-    STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
-    STDMETHOD(GetLights)(THIS_ LPDIRECT3DRMLIGHTARRAY *lights) PURE;
-    STDMETHOD_(D3DRMMATERIALMODE, GetMaterialMode)(THIS) PURE;
-    STDMETHOD(GetParent)(THIS_ LPDIRECT3DRMFRAME *) PURE;
-    STDMETHOD(GetPosition)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR return_position) PURE;
-    STDMETHOD(GetRotation)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR axis, LPD3DVALUE return_theta) PURE;
-    STDMETHOD(GetScene)(THIS_ LPDIRECT3DRMFRAME *) PURE;
-    STDMETHOD_(D3DRMSORTMODE, GetSortMode)(THIS) PURE;
-    STDMETHOD(GetTexture)(THIS_ LPDIRECT3DRMTEXTURE *) PURE;
-    STDMETHOD(GetTransform)(THIS_ D3DRMMATRIX4D return_matrix) PURE;
-    STDMETHOD(GetVelocity)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR return_velocity, BOOL with_rotation) PURE;
-    STDMETHOD(GetOrientation)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR dir, LPD3DVECTOR up) PURE;
-    STDMETHOD(GetVisuals)(THIS_ LPDIRECT3DRMVISUALARRAY *visuals) PURE;
-    STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
-    STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
-    STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURECALLBACK,
-        LPVOID pArg)PURE;
-    STDMETHOD(LookAt)(THIS_ LPDIRECT3DRMFRAME target, LPDIRECT3DRMFRAME reference, D3DRMFRAMECONSTRAINT) PURE;
-    STDMETHOD(Move)(THIS_ D3DVALUE delta) PURE;
-    STDMETHOD(DeleteChild)(THIS_ LPDIRECT3DRMFRAME) PURE;
-    STDMETHOD(DeleteLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
-    STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg) PURE;
-    STDMETHOD(DeleteVisual)(THIS_ LPDIRECT3DRMVISUAL) PURE;
-    STDMETHOD_(D3DCOLOR, GetSceneBackground)(THIS) PURE;
-    STDMETHOD(GetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE *) PURE;
-    STDMETHOD_(D3DCOLOR, GetSceneFogColor)(THIS) PURE;
-    STDMETHOD_(BOOL, GetSceneFogEnable)(THIS) PURE;
-    STDMETHOD_(D3DRMFOGMODE, GetSceneFogMode)(THIS) PURE;
-    STDMETHOD(GetSceneFogParams)(THIS_ D3DVALUE *return_start, D3DVALUE *return_end, D3DVALUE *return_density) PURE;
-    STDMETHOD(SetSceneBackground)(THIS_ D3DCOLOR) PURE;
-    STDMETHOD(SetSceneBackgroundRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
-    STDMETHOD(SetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE) PURE;
-    STDMETHOD(SetSceneBackgroundImage)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
-    STDMETHOD(SetSceneFogEnable)(THIS_ BOOL) PURE;
-    STDMETHOD(SetSceneFogColor)(THIS_ D3DCOLOR) PURE;
-    STDMETHOD(SetSceneFogMode)(THIS_ D3DRMFOGMODE) PURE;
-    STDMETHOD(SetSceneFogParams)(THIS_ D3DVALUE start, D3DVALUE end, D3DVALUE density) PURE;
-    STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
-    STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
-    STDMETHOD_(D3DRMZBUFFERMODE, GetZbufferMode)(THIS) PURE;
-    STDMETHOD(SetMaterialMode)(THIS_ D3DRMMATERIALMODE) PURE;
-    STDMETHOD(SetOrientation)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
-        D3DVALUE ux, D3DVALUE uy, D3DVALUE uz) PURE;
-    STDMETHOD(SetPosition)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(SetRotation)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
-    STDMETHOD(SetSortMode)(THIS_ D3DRMSORTMODE) PURE;
-    STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
-    STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
-    STDMETHOD(SetVelocity)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, BOOL with_rotation) PURE;
-    STDMETHOD(SetZbufferMode)(THIS_ D3DRMZBUFFERMODE) PURE;
-    STDMETHOD(Transform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMFrame_QueryInterface(p,a,b)            (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMFrame_AddRef(p)                        (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMFrame_Release(p)                       (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMFrame_Clone(p,a,b,c)                   (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMFrame_AddDestroyCallback(p,a,b)        (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMFrame_DeleteDestroyCallback(p,a,b)     (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMFrame_SetAppData(p,a)                  (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMFrame_GetAppData(p)                    (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMFrame_SetName(p,a)                     (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMFrame_GetName(p,a,b)                   (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMFrame_GetClassName(p,a,b)              (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMFrame methods ***/
-#define IDirect3DRMFrame_AddChild(p,a)                    (p)->lpVtbl->AddChild(p,a)
-#define IDirect3DRMFrame_AddLight(p,a)                    (p)->lpVtbl->AddLight(p,a)
-#define IDirect3DRMFrame_AddMoveCallback(p,a,b)           (p)->lpVtbl->AddMoveCallback(p,a,b)
-#define IDirect3DRMFrame_AddTransform(p,a,b)              (p)->lpVtbl->AddTransform(p,a,b)
-#define IDirect3DRMFrame_AddTranslation(p,a,b,c,d)        (p)->lpVtbl->AddTranslation(p,a,b,c,d)
-#define IDirect3DRMFrame_AddScale(p,a,b,c,d)              (p)->lpVtbl->AddScale(p,a,b,c,d)
-#define IDirect3DRMFrame_AddRotation(p,a,b,c,d,e)         (p)->lpVtbl->AddRotation(p,a,b,c,d,e)
-#define IDirect3DRMFrame_AddVisual(p,a)                   (p)->lpVtbl->AddVisual(p,a)
-#define IDirect3DRMFrame_GetChildren(p,a)                 (p)->lpVtbl->GetChildren(p,a)
-#define IDirect3DRMFrame_GetColor(p)                      (p)->lpVtbl->GetColor(p)
-#define IDirect3DRMFrame_GetLights(p,a)                   (p)->lpVtbl->GetLights(p,a)
-#define IDirect3DRMFrame_GetMaterialMode(p)               (p)->lpVtbl->GetMaterialMode(p)
-#define IDirect3DRMFrame_GetParent(p,a)                   (p)->lpVtbl->GetParent(p,a)
-#define IDirect3DRMFrame_GetPosition(p,a,b)               (p)->lpVtbl->GetPosition(p,a,b)
-#define IDirect3DRMFrame_GetRotation(p,a,b,c)             (p)->lpVtbl->GetRotation(p,a,b,c)
-#define IDirect3DRMFrame_GetScene(p,a)                    (p)->lpVtbl->GetScene(p,a)
-#define IDirect3DRMFrame_GetSortMode(p)                   (p)->lpVtbl->GetSortMode(p)
-#define IDirect3DRMFrame_GetTexture(p,a)                  (p)->lpVtbl->GetTexture(p,a)
-#define IDirect3DRMFrame_GetTransform(p,a)                (p)->lpVtbl->GetTransform(p,a)
-#define IDirect3DRMFrame_GetVelocity(p,a,b,c)             (p)->lpVtbl->GetVelocity(p,a,b,c)
-#define IDirect3DRMFrame_GetOrientation(p,a,b,c)          (p)->lpVtbl->GetOrientation(p,a,b,c)
-#define IDirect3DRMFrame_GetVisuals(p,a)                  (p)->lpVtbl->GetVisuals(p,a)
-#define IDirect3DRMFrame_GetTextureTopology(p,a,b)        (p)->lpVtbl->GetTextureTopology(p,a,b)
-#define IDirect3DRMFrame_InverseTransform(p,a,b)          (p)->lpVtbl->InverseTransform(p,a,b)
-#define IDirect3DRMFrame_Load(p,a,b,c,d,e)                (p)->lpVtbl->Load(p,a,b,c,d,e)
-#define IDirect3DRMFrame_LookAt(p,a,b,c)                  (p)->lpVtbl->LookAt(p,a,b,c)
-#define IDirect3DRMFrame_Move(p,a)                        (p)->lpVtbl->Move(p,a)
-#define IDirect3DRMFrame_DeleteChild(p,a)                 (p)->lpVtbl->DeleteChild(p,a)
-#define IDirect3DRMFrame_DeleteLight(p,a)                 (p)->lpVtbl->DeleteLight(p,a)
-#define IDirect3DRMFrame_DeleteMoveCallback(p,a,b)        (p)->lpVtbl->DeleteMoveCallback(p,a,b)
-#define IDirect3DRMFrame_DeleteVisual(p,a)                (p)->lpVtbl->DeleteVisual(p,a)
-#define IDirect3DRMFrame_GetSceneBackground(p)            (p)->lpVtbl->GetSceneBackground(p)
-#define IDirect3DRMFrame_GetSceneBackgroundDepth(p,a)     (p)->lpVtbl->GetSceneBackgroundDepth(p,a)
-#define IDirect3DRMFrame_GetSceneFogColor(p)              (p)->lpVtbl->GetSceneFogColor(p)
-#define IDirect3DRMFrame_GetSceneFogEnable(p)             (p)->lpVtbl->GetSceneFogEnable(p)
-#define IDirect3DRMFrame_GetSceneFogMode(p)               (p)->lpVtbl->GetSceneFogMode(p)
-#define IDirect3DRMFrame_GetSceneFogParams(p,a,b,c)       (p)->lpVtbl->GetSceneFogParams(p,a,b,c)
-#define IDirect3DRMFrame_SetSceneBackground(p,a)          (p)->lpVtbl->SetSceneBackground(p,a)
-#define IDirect3DRMFrame_SetSceneBackgroundRGB(p,a,b,c)   (p)->lpVtbl->SetSceneBackgroundRGB(p,a,b,c)
-#define IDirect3DRMFrame_SetSceneBackgroundDepth(p,a)     (p)->lpVtbl->SetSceneBackgroundDepth(p,a)
-#define IDirect3DRMFrame_SetSceneBackgroundImage(p,a)     (p)->lpVtbl->SetSceneBackgroundImage(p,a)
-#define IDirect3DRMFrame_SetSceneFogEnable(p,a)           (p)->lpVtbl->SetSceneFogEnable(p,a)
-#define IDirect3DRMFrame_SetSceneFogColor(p,a)            (p)->lpVtbl->SetSceneFogColor(p,a)
-#define IDirect3DRMFrame_SetSceneFogMode(p,a)             (p)->lpVtbl->SetSceneFogMode(p,a)
-#define IDirect3DRMFrame_SetSceneFogParams(p,a,b,c)       (p)->lpVtbl->SetSceneFogParams(p,a,b,c)
-#define IDirect3DRMFrame_SetColor(p,a)                    (p)->lpVtbl->SetColor(p,a)
-#define IDirect3DRMFrame_SetColorRGB(p,a,b,c)             (p)->lpVtbl->SetColorRGB(p,a,b,c)
-#define IDirect3DRMFrame_GetZbufferMode(p)                (p)->lpVtbl->GetZbufferMode(p)
-#define IDirect3DRMFrame_SetMaterialMode(p,a)             (p)->lpVtbl->SetMaterialMode(p,a)
-#define IDirect3DRMFrame_SetOrientation(p,a,b,c,d,e,f,g)  (p)->lpVtbl->SetOrientation(p,a,b,c,d,e,f,g)
-#define IDirect3DRMFrame_SetPosition(p,a,b,c,d)           (p)->lpVtbl->SetPosition(p,a,b,c,d)
-#define IDirect3DRMFrame_SetRotation(p,a,b,c,d,e)         (p)->lpVtbl->SetRotation(p,a,b,c,d,e)
-#define IDirect3DRMFrame_SetSortMode(p,a)                 (p)->lpVtbl->SetSortMode(p,a)
-#define IDirect3DRMFrame_SetTexture(p,a)                  (p)->lpVtbl->SetTexture(p,a)
-#define IDirect3DRMFrame_SetTextureTopology(p,a,b)        (p)->lpVtbl->SetTextureTopology(p,a,b)
-#define IDirect3DRMFrame_SetVelocity(p,a,b,c,d,e)         (p)->lpVtbl->SetVelocity(p,a,b,c,d,e)
-#define IDirect3DRMFrame_SetZbufferMode(p,a)              (p)->lpVtbl->SetZbufferMode(p,a)
-#define IDirect3DRMFrame_Transform(p,a,b)                 (p)->lpVtbl->Transform(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMFrame_QueryInterface(p,a,b)            (p)->QueryInterface(a,b)
-#define IDirect3DRMFrame_AddRef(p)                        (p)->AddRef()
-#define IDirect3DRMFrame_Release(p)                       (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMFrame_Clone(p,a,b,c)                   (p)->Clone(a,b,c)
-#define IDirect3DRMFrame_AddDestroyCallback(p,a,b)        (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMFrame_DeleteDestroyCallback(p,a,b)     (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMFrame_SetAppData(p,a)                  (p)->SetAppData(a)
-#define IDirect3DRMFrame_GetAppData(p)                    (p)->GetAppData()
-#define IDirect3DRMFrame_SetName(p,a)                     (p)->SetName(a)
-#define IDirect3DRMFrame_GetName(p,a,b)                   (p)->GetName(a,b)
-#define IDirect3DRMFrame_GetClassName(p,a,b)              (p)->GetClassName(a,b)
-/*** IDirect3DRMFrame methods ***/
-#define IDirect3DRMFrame_AddChild(p,a)                    (p)->AddChild(a)
-#define IDirect3DRMFrame_AddLight(p,a)                    (p)->AddLight(a)
-#define IDirect3DRMFrame_AddMoveCallback(p,a,b)           (p)->AddMoveCallback(a,b)
-#define IDirect3DRMFrame_AddTransform(p,a,b)              (p)->AddTransform(a,b)
-#define IDirect3DRMFrame_AddTranslation(p,a,b,c,d)        (p)->AddTranslation(a,b,c,d)
-#define IDirect3DRMFrame_AddScale(p,a,b,c,d)              (p)->AddScale(a,b,c,d)
-#define IDirect3DRMFrame_AddRotation(p,a,b,c,d,e)         (p)->AddRotation(a,b,c,d,e)
-#define IDirect3DRMFrame_AddVisual(p,a)                   (p)->AddVisual(a)
-#define IDirect3DRMFrame_GetChildren(p,a)                 (p)->GetChildren(a)
-#define IDirect3DRMFrame_GetColor(p)                      (p)->GetColor()
-#define IDirect3DRMFrame_GetLights(p,a)                   (p)->GetLights(a)
-#define IDirect3DRMFrame_GetMaterialMode(p)               (p)->GetMaterialMode()
-#define IDirect3DRMFrame_GetParent(p,a)                   (p)->GetParent(a)
-#define IDirect3DRMFrame_GetPosition(p,a,b)               (p)->GetPosition(a,b)
-#define IDirect3DRMFrame_GetRotation(p,a,b,c)             (p)->GetRotation(a,b,c)
-#define IDirect3DRMFrame_GetScene(p,a)                    (p)->GetScene(a)
-#define IDirect3DRMFrame_GetSortMode(p)                   (p)->GetSortMode()
-#define IDirect3DRMFrame_GetTexture(p,a)                  (p)->GetTexture(a)
-#define IDirect3DRMFrame_GetTransform(p,a)                (p)->GetTransform(a)
-#define IDirect3DRMFrame_GetVelocity(p,a,b,c)             (p)->GetVelocity(a,b,c)
-#define IDirect3DRMFrame_GetOrientation(p,a,b,c)          (p)->GetOrientation(a,b,c)
-#define IDirect3DRMFrame_GetVisuals(p,a)                  (p)->GetVisuals(a)
-#define IDirect3DRMFrame_GetTextureTopology(p,a,b)        (p)->GetTextureTopology(a,b)
-#define IDirect3DRMFrame_InverseTransform(p,a,b)          (p)->InverseTransform(a,b)
-#define IDirect3DRMFrame_Load(p,a,b,c,d,e)                (p)->Load(a,b,c,d,e)
-#define IDirect3DRMFrame_LookAt(p,a,b,c)                  (p)->LookAt(a,b,c)
-#define IDirect3DRMFrame_Move(p,a)                        (p)->Move(a)
-#define IDirect3DRMFrame_DeleteChild(p,a)                 (p)->DeleteChild(a)
-#define IDirect3DRMFrame_DeleteLight(p,a)                 (p)->DeleteLight(a)
-#define IDirect3DRMFrame_DeleteMoveCallback(p,a,b)        (p)->DeleteMoveCallback(a,b)
-#define IDirect3DRMFrame_DeleteVisual(p,a)                (p)->DeleteVisual(a)
-#define IDirect3DRMFrame_GetSceneBackground(p)            (p)->GetSceneBackground()
-#define IDirect3DRMFrame_GetSceneBackgroundDepth(p,a)     (p)->GetSceneBackgroundDepth(a)
-#define IDirect3DRMFrame_GetSceneFogColor(p)              (p)->GetSceneFogColor()
-#define IDirect3DRMFrame_GetSceneFogEnable(p)             (p)->GetSceneFogEnable()
-#define IDirect3DRMFrame_GetSceneFogMode(p)               (p)->GetSceneFogMode()
-#define IDirect3DRMFrame_GetSceneFogParams(p,a,b,c)       (p)->GetSceneFogParams(a,b,c)
-#define IDirect3DRMFrame_SetSceneBackground(p,a)          (p)->SetSceneBackground(a)
-#define IDirect3DRMFrame_SetSceneBackgroundRGB(p,a,b,c)   (p)->SetSceneBackgroundRGB(a,b,c)
-#define IDirect3DRMFrame_SetSceneBackgroundDepth(p,a)     (p)->SetSceneBackgroundDepth(a)
-#define IDirect3DRMFrame_SetSceneBackgroundImage(p,a)     (p)->SetSceneBackgroundImage(a)
-#define IDirect3DRMFrame_SetSceneFogEnable(p,a)           (p)->SetSceneFogEnable(a)
-#define IDirect3DRMFrame_SetSceneFogColor(p,a)            (p)->SetSceneFogColor(a)
-#define IDirect3DRMFrame_SetSceneFogMode(p,a)             (p)->SetSceneFogMode(a)
-#define IDirect3DRMFrame_SetSceneFogParams(p,a,b,c)       (p)->SetSceneFogParams(a,b,c)
-#define IDirect3DRMFrame_SetColor(p,a)                    (p)->SetColor(a)
-#define IDirect3DRMFrame_SetColorRGB(p,a,b,c)             (p)->SetColorRGB(a,b,c)
-#define IDirect3DRMFrame_GetZbufferMode(p)                (p)->GetZbufferMode()
-#define IDirect3DRMFrame_SetMaterialMode(p,a)             (p)->SetMaterialMode(a)
-#define IDirect3DRMFrame_SetOrientation(p,a,b,c,d,e,f,g)  (p)->SetOrientation(a,b,c,d,e,f,g)
-#define IDirect3DRMFrame_SetPosition(p,a,b,c,d)           (p)->SetPosition(a,b,c,d)
-#define IDirect3DRMFrame_SetRotation(p,a,b,c,d,e)         (p)->SetRotation(a,b,c,d,e)
-#define IDirect3DRMFrame_SetSortMode(p,a)                 (p)->SetSortMode(a)
-#define IDirect3DRMFrame_SetTexture(p,a)                  (p)->SetTexture(a)
-#define IDirect3DRMFrame_SetTextureTopology(p,a,b)        (p)->SetTextureTopology(a,b)
-#define IDirect3DRMFrame_SetVelocity(p,a,b,c,d,e)         (p)->SetVelocity(a,b,c,d,e)
-#define IDirect3DRMFrame_SetZbufferMode(p,a)              (p)->SetZbufferMode(a)
-#define IDirect3DRMFrame_Transform(p,a,b)                 (p)->Transform(a,b)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMFrame2 interface
- */
-#define INTERFACE IDirect3DRMFrame2
-DECLARE_INTERFACE_(IDirect3DRMFrame2,IDirect3DRMFrame)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMFrame methods ***/
-    STDMETHOD(AddChild)(THIS_ LPDIRECT3DRMFRAME child) PURE;
-    STDMETHOD(AddLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
-    STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg) PURE;
-    STDMETHOD(AddTransform)(THIS_ D3DRMCOMBINETYPE, D3DRMMATRIX4D) PURE;
-    STDMETHOD(AddTranslation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(AddScale)(THIS_ D3DRMCOMBINETYPE, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
-    STDMETHOD(AddRotation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
-    STDMETHOD(AddVisual)(THIS_ LPDIRECT3DRMVISUAL) PURE;
-    STDMETHOD(GetChildren)(THIS_ LPDIRECT3DRMFRAMEARRAY *children) PURE;
-    STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
-    STDMETHOD(GetLights)(THIS_ LPDIRECT3DRMLIGHTARRAY *lights) PURE;
-    STDMETHOD_(D3DRMMATERIALMODE, GetMaterialMode)(THIS) PURE;
-    STDMETHOD(GetParent)(THIS_ LPDIRECT3DRMFRAME *) PURE;
-    STDMETHOD(GetPosition)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR return_position) PURE;
-    STDMETHOD(GetRotation)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR axis, LPD3DVALUE return_theta) PURE;
-    STDMETHOD(GetScene)(THIS_ LPDIRECT3DRMFRAME *) PURE;
-    STDMETHOD_(D3DRMSORTMODE, GetSortMode)(THIS) PURE;
-    STDMETHOD(GetTexture)(THIS_ LPDIRECT3DRMTEXTURE *) PURE;
-    STDMETHOD(GetTransform)(THIS_ D3DRMMATRIX4D return_matrix) PURE;
-    STDMETHOD(GetVelocity)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR return_velocity, BOOL with_rotation) PURE;
-    STDMETHOD(GetOrientation)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR dir, LPD3DVECTOR up) PURE;
-    STDMETHOD(GetVisuals)(THIS_ LPDIRECT3DRMVISUALARRAY *visuals) PURE;
-    STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
-    STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
-    STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURECALLBACK,
-        LPVOID pArg)PURE;
-    STDMETHOD(LookAt)(THIS_ LPDIRECT3DRMFRAME target, LPDIRECT3DRMFRAME reference, D3DRMFRAMECONSTRAINT) PURE;
-    STDMETHOD(Move)(THIS_ D3DVALUE delta) PURE;
-    STDMETHOD(DeleteChild)(THIS_ LPDIRECT3DRMFRAME) PURE;
-    STDMETHOD(DeleteLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
-    STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg) PURE;
-    STDMETHOD(DeleteVisual)(THIS_ LPDIRECT3DRMVISUAL) PURE;
-    STDMETHOD_(D3DCOLOR, GetSceneBackground)(THIS) PURE;
-    STDMETHOD(GetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE *) PURE;
-    STDMETHOD_(D3DCOLOR, GetSceneFogColor)(THIS) PURE;
-    STDMETHOD_(BOOL, GetSceneFogEnable)(THIS) PURE;
-    STDMETHOD_(D3DRMFOGMODE, GetSceneFogMode)(THIS) PURE;
-    STDMETHOD(GetSceneFogParams)(THIS_ D3DVALUE *return_start, D3DVALUE *return_end, D3DVALUE *return_density) PURE;
-    STDMETHOD(SetSceneBackground)(THIS_ D3DCOLOR) PURE;
-    STDMETHOD(SetSceneBackgroundRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
-    STDMETHOD(SetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE) PURE;
-    STDMETHOD(SetSceneBackgroundImage)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
-    STDMETHOD(SetSceneFogEnable)(THIS_ BOOL) PURE;
-    STDMETHOD(SetSceneFogColor)(THIS_ D3DCOLOR) PURE;
-    STDMETHOD(SetSceneFogMode)(THIS_ D3DRMFOGMODE) PURE;
-    STDMETHOD(SetSceneFogParams)(THIS_ D3DVALUE start, D3DVALUE end, D3DVALUE density) PURE;
-    STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
-    STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
-    STDMETHOD_(D3DRMZBUFFERMODE, GetZbufferMode)(THIS) PURE;
-    STDMETHOD(SetMaterialMode)(THIS_ D3DRMMATERIALMODE) PURE;
-    STDMETHOD(SetOrientation)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
-        D3DVALUE ux, D3DVALUE uy, D3DVALUE uz) PURE;
-    STDMETHOD(SetPosition)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(SetRotation)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
-    STDMETHOD(SetSortMode)(THIS_ D3DRMSORTMODE) PURE;
-    STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
-    STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
-    STDMETHOD(SetVelocity)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, BOOL with_rotation) PURE;
-    STDMETHOD(SetZbufferMode)(THIS_ D3DRMZBUFFERMODE) PURE;
-    STDMETHOD(Transform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
-    /*** IDirect3DRMFrame2 methods ***/
-    STDMETHOD(AddMoveCallback2)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg, DWORD flags) PURE;
-    STDMETHOD(GetBox)(THIS_ LPD3DRMBOX) PURE;
-    STDMETHOD_(BOOL, GetBoxEnable)(THIS) PURE;
-    STDMETHOD(GetAxes)(THIS_ LPD3DVECTOR dir, LPD3DVECTOR up);
-    STDMETHOD(GetMaterial)(THIS_ LPDIRECT3DRMMATERIAL *) PURE;
-    STDMETHOD_(BOOL, GetInheritAxes)(THIS);
-    STDMETHOD(GetHierarchyBox)(THIS_ LPD3DRMBOX) PURE;
-    STDMETHOD(SetBox)(THIS_ LPD3DRMBOX) PURE;
-    STDMETHOD(SetBoxEnable)(THIS_ BOOL) PURE;
-    STDMETHOD(SetAxes)(THIS_ D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz);
-    STDMETHOD(SetInheritAxes)(THIS_ BOOL inherit_from_parent);
-    STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL) PURE;
-    STDMETHOD(SetQuaternion)(THIS_ LPDIRECT3DRMFRAME reference, D3DRMQUATERNION *q) PURE;
-    STDMETHOD(RayPick)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DRMRAY ray, DWORD flags,
-        LPDIRECT3DRMPICKED2ARRAY *return_visuals) PURE;
-    STDMETHOD(Save)(THIS_ LPCSTR filename, D3DRMXOFFORMAT d3dFormat, D3DRMSAVEOPTIONS d3dSaveFlags);
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMFrame2_QueryInterface(p,a,b)            (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMFrame2_AddRef(p)                        (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMFrame2_Release(p)                       (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMFrame2_Clone(p,a,b,c)                   (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMFrame2_AddDestroyCallback(p,a,b)        (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMFrame2_DeleteDestroyCallback(p,a,b)     (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMFrame2_SetAppData(p,a)                  (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMFrame2_GetAppData(p)                    (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMFrame2_SetName(p,a)                     (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMFrame2_GetName(p,a,b)                   (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMFrame2_GetClassName(p,a,b)              (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMFrame methods ***/
-#define IDirect3DRMFrame2_AddChild(p,a)                    (p)->lpVtbl->AddChild(p,a)
-#define IDirect3DRMFrame2_AddLight(p,a)                    (p)->lpVtbl->AddLight(p,a)
-#define IDirect3DRMFrame2_AddMoveCallback(p,a,b)           (p)->lpVtbl->AddMoveCallback(p,a,b)
-#define IDirect3DRMFrame2_AddTransform(p,a,b)              (p)->lpVtbl->AddTransform(p,a,b)
-#define IDirect3DRMFrame2_AddTranslation(p,a,b,c,d)        (p)->lpVtbl->AddTranslation(p,a,b,c,d)
-#define IDirect3DRMFrame2_AddScale(p,a,b,c,d)              (p)->lpVtbl->AddScale(p,a,b,c,d)
-#define IDirect3DRMFrame2_AddRotation(p,a,b,c,d,e)         (p)->lpVtbl->AddRotation(p,a,b,c,d,e)
-#define IDirect3DRMFrame2_AddVisual(p,a)                   (p)->lpVtbl->AddVisual(p,a)
-#define IDirect3DRMFrame2_GetChildren(p,a)                 (p)->lpVtbl->GetChildren(p,a)
-#define IDirect3DRMFrame2_GetColor(p)                      (p)->lpVtbl->GetColor(p)
-#define IDirect3DRMFrame2_GetLights(p,a)                   (p)->lpVtbl->GetLights(p,a)
-#define IDirect3DRMFrame2_GetMaterialMode(p)               (p)->lpVtbl->GetMaterialMode(p)
-#define IDirect3DRMFrame2_GetParent(p,a)                   (p)->lpVtbl->GetParent(p,a)
-#define IDirect3DRMFrame2_GetPosition(p,a,b)               (p)->lpVtbl->GetPosition(p,a,b)
-#define IDirect3DRMFrame2_GetRotation(p,a,b,c)             (p)->lpVtbl->GetRotation(p,a,b,c)
-#define IDirect3DRMFrame2_GetScene(p,a)                    (p)->lpVtbl->GetScene(p,a)
-#define IDirect3DRMFrame2_GetSortMode(p)                   (p)->lpVtbl->GetSortMode(p)
-#define IDirect3DRMFrame2_GetTexture(p,a)                  (p)->lpVtbl->GetTexture(p,a)
-#define IDirect3DRMFrame2_GetTransform(p,a)                (p)->lpVtbl->GetTransform(p,a)
-#define IDirect3DRMFrame2_GetVelocity(p,a,b,c)             (p)->lpVtbl->GetVelocity(p,a,b,c)
-#define IDirect3DRMFrame2_GetOrientation(p,a,b,c)          (p)->lpVtbl->GetOrientation(p,a,b,c)
-#define IDirect3DRMFrame2_GetVisuals(p,a)                  (p)->lpVtbl->GetVisuals(p,a)
-#define IDirect3DRMFrame2_GetTextureTopology(p,a,b)        (p)->lpVtbl->GetTextureTopology(p,a,b)
-#define IDirect3DRMFrame2_InverseTransform(p,a,b)          (p)->lpVtbl->InverseTransform(p,a,b)
-#define IDirect3DRMFrame2_Load(p,a,b,c,d,e)                (p)->lpVtbl->Load(p,a,b,c,d,e)
-#define IDirect3DRMFrame2_LookAt(p,a,b,c)                  (p)->lpVtbl->LookAt(p,a,b,c)
-#define IDirect3DRMFrame2_Move(p,a)                        (p)->lpVtbl->Move(p,a)
-#define IDirect3DRMFrame2_DeleteChild(p,a)                 (p)->lpVtbl->DeleteChild(p,a)
-#define IDirect3DRMFrame2_DeleteLight(p,a)                 (p)->lpVtbl->DeleteLight(p,a)
-#define IDirect3DRMFrame2_DeleteMoveCallback(p,a,b)        (p)->lpVtbl->DeleteMoveCallback(p,a,b)
-#define IDirect3DRMFrame2_DeleteVisual(p,a)                (p)->lpVtbl->DeleteVisual(p,a)
-#define IDirect3DRMFrame2_GetSceneBackground(p)            (p)->lpVtbl->GetSceneBackground(p)
-#define IDirect3DRMFrame2_GetSceneBackgroundDepth(p,a)     (p)->lpVtbl->GetSceneBackgroundDepth(p,a)
-#define IDirect3DRMFrame2_GetSceneFogColor(p)              (p)->lpVtbl->GetSceneFogColor(p)
-#define IDirect3DRMFrame2_GetSceneFogEnable(p)             (p)->lpVtbl->GetSceneFogEnable(p)
-#define IDirect3DRMFrame2_GetSceneFogMode(p)               (p)->lpVtbl->GetSceneFogMode(p)
-#define IDirect3DRMFrame2_GetSceneFogParams(p,a,b,c)       (p)->lpVtbl->GetSceneFogParams(p,a,b,c)
-#define IDirect3DRMFrame2_SetSceneBackground(p,a)          (p)->lpVtbl->SetSceneBackground(p,a)
-#define IDirect3DRMFrame2_SetSceneBackgroundRGB(p,a,b,c)   (p)->lpVtbl->SetSceneBackgroundRGB(p,a,b,c)
-#define IDirect3DRMFrame2_SetSceneBackgroundDepth(p,a)     (p)->lpVtbl->SetSceneBackgroundDepth(p,a)
-#define IDirect3DRMFrame2_SetSceneBackgroundImage(p,a)     (p)->lpVtbl->SetSceneBackgroundImage(p,a)
-#define IDirect3DRMFrame2_SetSceneFogEnable(p,a)           (p)->lpVtbl->SetSceneFogEnable(p,a)
-#define IDirect3DRMFrame2_SetSceneFogColor(p,a)            (p)->lpVtbl->SetSceneFogColor(p,a)
-#define IDirect3DRMFrame2_SetSceneFogMode(p,a)             (p)->lpVtbl->SetSceneFogMode(p,a)
-#define IDirect3DRMFrame2_SetSceneFogParams(p,a,b,c)       (p)->lpVtbl->SetSceneFogParams(p,a,b,c)
-#define IDirect3DRMFrame2_SetColor(p,a)                    (p)->lpVtbl->SetColor(p,a)
-#define IDirect3DRMFrame2_SetColorRGB(p,a,b,c)             (p)->lpVtbl->SetColorRGB(p,a,b,c)
-#define IDirect3DRMFrame2_GetZbufferMode(p)                (p)->lpVtbl->GetZbufferMode(p)
-#define IDirect3DRMFrame2_SetMaterialMode(p,a)             (p)->lpVtbl->SetMaterialMode(p,a)
-#define IDirect3DRMFrame2_SetOrientation(p,a,b,c,d,e,f,g)  (p)->lpVtbl->SetOrientation(p,a,b,c,d,e,f,g)
-#define IDirect3DRMFrame2_SetPosition(p,a,b,c,d)           (p)->lpVtbl->SetPosition(p,a,b,c,d)
-#define IDirect3DRMFrame2_SetRotation(p,a,b,c,d,e)         (p)->lpVtbl->SetRotation(p,a,b,c,d,e)
-#define IDirect3DRMFrame2_SetSortMode(p,a)                 (p)->lpVtbl->SetSortMode(p,a)
-#define IDirect3DRMFrame2_SetTexture(p,a)                  (p)->lpVtbl->SetTexture(p,a)
-#define IDirect3DRMFrame2_SetTextureTopology(p,a,b)        (p)->lpVtbl->SetTextureTopology(p,a,b)
-#define IDirect3DRMFrame2_SetVelocity(p,a,b,c,d,e)         (p)->lpVtbl->SetVelocity(p,a,b,c,d,e)
-#define IDirect3DRMFrame2_SetZbufferMode(p,a)              (p)->lpVtbl->SetZbufferMode(p,a)
-#define IDirect3DRMFrame2_Transform(p,a,b)                 (p)->lpVtbl->Transform(p,a,b)
-/*** IDirect3DRMFrame2 methods ***/
-#define IDirect3DRMFrame2_AddMoveCallback2(p,a,b,c)        (p)->lpVtbl->AddMoveCallback2(p,a,b,c)
-#define IDirect3DRMFrame2_GetBox(p,a)                      (p)->lpVtbl->GetBox(p,a)
-#define IDirect3DRMFrame2_GetBoxEnable(p)                  (p)->lpVtbl->GetBoxEnable(p)
-#define IDirect3DRMFrame2_GetAxes(p,a,b)                   (p)->lpVtbl->GetAxes(p,a,b)
-#define IDirect3DRMFrame2_GetMaterial(p,a)                 (p)->lpVtbl->GetMaterial(p,a)
-#define IDirect3DRMFrame2_GetInheritAxes(p,a,b)            (p)->lpVtbl->GetInheritAxes(p,a,b)
-#define IDirect3DRMFrame2_GetHierarchyBox(p,a)             (p)->lpVtbl->GetHierarchyBox(p,a)
-#define IDirect3DRMFrame2_SetBox(p,a)                      (p)->lpVtbl->SetBox(p,a)
-#define IDirect3DRMFrame2_SetBoxEnable(p,a)                (p)->lpVtbl->SetBoxEnable(p,a)
-#define IDirect3DRMFrame2_SetAxes(p,a,b,c,d,e,f)           (p)->lpVtbl->SetAxes(p,a,b,c,d,e,f)
-#define IDirect3DRMFrame2_SetInheritAxes(p,a)              (p)->lpVtbl->SetInheritAxes(p,a)
-#define IDirect3DRMFrame2_SetMaterial(p,a)                 (p)->lpVtbl->SetMaterial(p,a)
-#define IDirect3DRMFrame2_SetQuaternion(p,a,b)             (p)->lpVtbl->SetQuaternion(p,a,b)
-#define IDirect3DRMFrame2_RayPick(p,a,b,c,d)               (p)->lpVtbl->RayPick(p,a,b,c,d)
-#define IDirect3DRMFrame2_Save(p,a,b,c)                    (p)->lpVtbl->Save(p,a,b,c)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMFrame2_QueryInterface(p,a,b)            (p)->QueryInterface(a,b)
-#define IDirect3DRMFrame2_AddRef(p)                        (p)->AddRef()
-#define IDirect3DRMFrame2_Release(p)                       (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMFrame2_Clone(p,a,b,c)                   (p)->Clone(a,b,c)
-#define IDirect3DRMFrame2_AddDestroyCallback(p,a,b)        (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMFrame2_DeleteDestroyCallback(p,a,b)     (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMFrame2_SetAppData(p,a)                  (p)->SetAppData(a)
-#define IDirect3DRMFrame2_GetAppData(p)                    (p)->GetAppData()
-#define IDirect3DRMFrame2_SetName(p,a)                     (p)->SetName(a)
-#define IDirect3DRMFrame2_GetName(p,a,b)                   (p)->GetName(a,b)
-#define IDirect3DRMFrame2_GetClassName(p,a,b)              (p)->GetClassName(a,b)
-/*** IDirect3DRMFrame methods ***/
-#define IDirect3DRMFrame2_AddChild(p,a)                    (p)->AddChild(a)
-#define IDirect3DRMFrame2_AddLight(p,a)                    (p)->AddLight(a)
-#define IDirect3DRMFrame2_AddMoveCallback(p,a,b)           (p)->AddMoveCallback(a,b)
-#define IDirect3DRMFrame2_AddTransform(p,a,b)              (p)->AddTransform(a,b)
-#define IDirect3DRMFrame2_AddTranslation(p,a,b,c,d)        (p)->AddTranslation(a,b,c,d)
-#define IDirect3DRMFrame2_AddScale(p,a,b,c,d)              (p)->AddScale(a,b,c,d)
-#define IDirect3DRMFrame2_AddRotation(p,a,b,c,d,e)         (p)->AddRotation(a,b,c,d,e)
-#define IDirect3DRMFrame2_AddVisual(p,a)                   (p)->AddVisual(a)
-#define IDirect3DRMFrame2_GetChildren(p,a)                 (p)->GetChildren(a)
-#define IDirect3DRMFrame2_GetColor(p)                      (p)->GetColor()
-#define IDirect3DRMFrame2_GetLights(p,a)                   (p)->GetLights(a)
-#define IDirect3DRMFrame2_GetMaterialMode(p)               (p)->GetMaterialMode()
-#define IDirect3DRMFrame2_GetParent(p,a)                   (p)->GetParent(a)
-#define IDirect3DRMFrame2_GetPosition(p,a,b)               (p)->GetPosition(a,b)
-#define IDirect3DRMFrame2_GetRotation(p,a,b,c)             (p)->GetRotation(a,b,c)
-#define IDirect3DRMFrame2_GetScene(p,a)                    (p)->GetScene(a)
-#define IDirect3DRMFrame2_GetSortMode(p)                   (p)->GetSortMode()
-#define IDirect3DRMFrame2_GetTexture(p,a)                  (p)->GetTexture(a)
-#define IDirect3DRMFrame2_GetTransform(p,a)                (p)->GetTransform(a)
-#define IDirect3DRMFrame2_GetVelocity(p,a,b,c)             (p)->GetVelocity(a,b,c)
-#define IDirect3DRMFrame2_GetOrientation(p,a,b,c)          (p)->GetOrientation(a,b,c)
-#define IDirect3DRMFrame2_GetVisuals(p,a)                  (p)->GetVisuals(a)
-#define IDirect3DRMFrame2_GetTextureTopology(p,a,b)        (p)->GetTextureTopology(a,b)
-#define IDirect3DRMFrame2_InverseTransform(p,a,b)          (p)->InverseTransform(a,b)
-#define IDirect3DRMFrame2_Load(p,a,b,c,d,e)                (p)->Load(a,b,c,d,e)
-#define IDirect3DRMFrame2_LookAt(p,a,b,c)                  (p)->LookAt(a,b,c)
-#define IDirect3DRMFrame2_Move(p,a)                        (p)->Move(a)
-#define IDirect3DRMFrame2_DeleteChild(p,a)                 (p)->DeleteChild(a)
-#define IDirect3DRMFrame2_DeleteLight(p,a)                 (p)->DeleteLight(a)
-#define IDirect3DRMFrame2_DeleteMoveCallback(p,a,b)        (p)->DeleteMoveCallback(a,b)
-#define IDirect3DRMFrame2_DeleteVisual(p,a)                (p)->DeleteVisual(a)
-#define IDirect3DRMFrame2_GetSceneBackground(p)            (p)->GetSceneBackground()
-#define IDirect3DRMFrame2_GetSceneBackgroundDepth(p,a)     (p)->GetSceneBackgroundDepth(a)
-#define IDirect3DRMFrame2_GetSceneFogColor(p)              (p)->GetSceneFogColor()
-#define IDirect3DRMFrame2_GetSceneFogEnable(p)             (p)->GetSceneFogEnable()
-#define IDirect3DRMFrame2_GetSceneFogMode(p)               (p)->GetSceneFogMode()
-#define IDirect3DRMFrame2_GetSceneFogParams(p,a,b,c)       (p)->GetSceneFogParams(a,b,c)
-#define IDirect3DRMFrame2_SetSceneBackground(p,a)          (p)->SetSceneBackground(a)
-#define IDirect3DRMFrame2_SetSceneBackgroundRGB(p,a,b,c)   (p)->SetSceneBackgroundRGB(a,b,c)
-#define IDirect3DRMFrame2_SetSceneBackgroundDepth(p,a)     (p)->SetSceneBackgroundDepth(a)
-#define IDirect3DRMFrame2_SetSceneBackgroundImage(p,a)     (p)->SetSceneBackgroundImage(a)
-#define IDirect3DRMFrame2_SetSceneFogEnable(p,a)           (p)->SetSceneFogEnable(a)
-#define IDirect3DRMFrame2_SetSceneFogColor(p,a)            (p)->SetSceneFogColor(a)
-#define IDirect3DRMFrame2_SetSceneFogMode(p,a)             (p)->SetSceneFogMode(a)
-#define IDirect3DRMFrame2_SetSceneFogParams(p,a,b,c)       (p)->SetSceneFogParams(a,b,c)
-#define IDirect3DRMFrame2_SetColor(p,a)                    (p)->SetColor(a)
-#define IDirect3DRMFrame2_SetColorRGB(p,a,b,c)             (p)->SetColorRGB(a,b,c)
-#define IDirect3DRMFrame2_GetZbufferMode(p)                (p)->GetZbufferMode()
-#define IDirect3DRMFrame2_SetMaterialMode(p,a)             (p)->SetMaterialMode(a)
-#define IDirect3DRMFrame2_SetOrientation(p,a,b,c,d,e,f,g)  (p)->SetOrientation(a,b,c,d,e,f,g)
-#define IDirect3DRMFrame2_SetPosition(p,a,b,c,d)           (p)->SetPosition(a,b,c,d)
-#define IDirect3DRMFrame2_SetRotation(p,a,b,c,d,e)         (p)->SetRotation(a,b,c,d,e)
-#define IDirect3DRMFrame2_SetSortMode(p,a)                 (p)->SetSortMode(a)
-#define IDirect3DRMFrame2_SetTexture(p,a)                  (p)->SetTexture(a)
-#define IDirect3DRMFrame2_SetTextureTopology(p,a,b)        (p)->SetTextureTopology(a,b)
-#define IDirect3DRMFrame2_SetVelocity(p,a,b,c,d,e)         (p)->SetVelocity(a,b,c,d,e)
-#define IDirect3DRMFrame2_SetZbufferMode(p,a)              (p)->SetZbufferMode(a)
-#define IDirect3DRMFrame2_Transform(p,a,b)                 (p)->Transform(a,b)
-/*** IDirect3DRMFrame2 methods ***/
-#define IDirect3DRMFrame2_AddMoveCallback2(p,a,b,c)        (p)->AddMoveCallback2(a,b,c)
-#define IDirect3DRMFrame2_GetBox(p,a)                      (p)->GetBox(a)
-#define IDirect3DRMFrame2_GetBoxEnable(p)                  (p)->GetBoxEnable()
-#define IDirect3DRMFrame2_GetAxes(p,a,b)                   (p)->GetAxes(a,b)
-#define IDirect3DRMFrame2_GetMaterial(p,a)                 (p)->GetMaterial(a)
-#define IDirect3DRMFrame2_GetInheritAxes(p,a,b)            (p)->GetInheritAxes(a,b)
-#define IDirect3DRMFrame2_GetHierarchyBox(p,a)             (p)->GetHierarchyBox(a)
-#define IDirect3DRMFrame2_SetBox(p,a)                      (p)->SetBox(a)
-#define IDirect3DRMFrame2_SetBoxEnable(p,a)                (p)->SetBoxEnable(a)
-#define IDirect3DRMFrame2_SetAxes(p,a,b,c,d,e,f)           (p)->SetAxes(a,b,c,d,e,f)
-#define IDirect3DRMFrame2_SetInheritAxes(p,a)              (p)->SetInheritAxes(a)
-#define IDirect3DRMFrame2_SetMaterial(p,a)                 (p)->SetMaterial(a)
-#define IDirect3DRMFrame2_SetQuaternion(p,a,b)             (p)->SetQuaternion(a,b)
-#define IDirect3DRMFrame2_RayPick(p,a,b,c,d)               (p)->RayPick(a,b,c,d)
-#define IDirect3DRMFrame2_Save(p,a,b,c)                    (p)->Save(a,b,c)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMFrame3 interface
- */
-#define INTERFACE IDirect3DRMFrame3
-DECLARE_INTERFACE_(IDirect3DRMFrame3,IDirect3DRMVisual)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMFrame3 methods ***/
-    STDMETHOD(AddChild)(THIS_ LPDIRECT3DRMFRAME3 child) PURE;
-    STDMETHOD(AddLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
-    STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAME3MOVECALLBACK, VOID *arg, DWORD flags) PURE;
-    STDMETHOD(AddTranslation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(AddScale)(THIS_ D3DRMCOMBINETYPE, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
-    STDMETHOD(AddRotation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
-    STDMETHOD(AddVisual)(THIS_ LPUNKNOWN) PURE;
-    STDMETHOD(GetChildren)(THIS_ LPDIRECT3DRMFRAMEARRAY *children) PURE;
-    STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
-    STDMETHOD(GetLights)(THIS_ LPDIRECT3DRMLIGHTARRAY *lights) PURE;
-    STDMETHOD_(D3DRMMATERIALMODE, GetMaterialMode)(THIS) PURE;
-    STDMETHOD(GetParent)(THIS_ LPDIRECT3DRMFRAME3 *) PURE;
-    STDMETHOD(GetPosition)(THIS_ LPDIRECT3DRMFRAME3 reference, LPD3DVECTOR return_position) PURE;
-    STDMETHOD(GetRotation)(THIS_ LPDIRECT3DRMFRAME3 reference, LPD3DVECTOR axis, LPD3DVALUE return_theta) PURE;
-    STDMETHOD(GetScene)(THIS_ LPDIRECT3DRMFRAME3 *) PURE;
-    STDMETHOD_(D3DRMSORTMODE, GetSortMode)(THIS) PURE;
-    STDMETHOD(GetTexture)(THIS_ LPDIRECT3DRMTEXTURE3 *) PURE;
-    STDMETHOD(GetTransform)(THIS_ LPDIRECT3DRMFRAME3 reference, D3DRMMATRIX4D rmMatrix) PURE;
-    STDMETHOD(GetVelocity)(THIS_ LPDIRECT3DRMFRAME3 reference, LPD3DVECTOR return_velocity,
-        BOOL with_rotation) PURE;
-    STDMETHOD(GetOrientation)(THIS_ LPDIRECT3DRMFRAME3 reference, LPD3DVECTOR dir, LPD3DVECTOR up) PURE;
-    STDMETHOD(GetVisuals)(THIS_ LPDWORD pCount, LPUNKNOWN *) PURE;
-    STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
-    STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags,
-        D3DRMLOADTEXTURE3CALLBACK, LPVOID pArg) PURE;
-    STDMETHOD(LookAt)(THIS_ LPDIRECT3DRMFRAME3 target, LPDIRECT3DRMFRAME3 reference, D3DRMFRAMECONSTRAINT) PURE;
-    STDMETHOD(Move)(THIS_ D3DVALUE delta) PURE;
-    STDMETHOD(DeleteChild)(THIS_ LPDIRECT3DRMFRAME3) PURE;
-    STDMETHOD(DeleteLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
-    STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAME3MOVECALLBACK, VOID *arg) PURE;
-    STDMETHOD(DeleteVisual)(THIS_ LPUNKNOWN) PURE;
-    STDMETHOD_(D3DCOLOR, GetSceneBackground)(THIS) PURE;
-    STDMETHOD(GetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE *) PURE;
-    STDMETHOD_(D3DCOLOR, GetSceneFogColor)(THIS) PURE;
-    STDMETHOD_(BOOL, GetSceneFogEnable)(THIS) PURE;
-    STDMETHOD_(D3DRMFOGMODE, GetSceneFogMode)(THIS) PURE;
-    STDMETHOD(GetSceneFogParams)(THIS_ D3DVALUE *return_start, D3DVALUE *return_end,
-        D3DVALUE *return_density) PURE;
-    STDMETHOD(SetSceneBackground)(THIS_ D3DCOLOR) PURE;
-    STDMETHOD(SetSceneBackgroundRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
-    STDMETHOD(SetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE) PURE;
-    STDMETHOD(SetSceneBackgroundImage)(THIS_ LPDIRECT3DRMTEXTURE3) PURE;
-    STDMETHOD(SetSceneFogEnable)(THIS_ BOOL) PURE;
-    STDMETHOD(SetSceneFogColor)(THIS_ D3DCOLOR) PURE;
-    STDMETHOD(SetSceneFogMode)(THIS_ D3DRMFOGMODE) PURE;
-    STDMETHOD(SetSceneFogParams)(THIS_ D3DVALUE start, D3DVALUE end, D3DVALUE density) PURE;
-    STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
-    STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
-    STDMETHOD_(D3DRMZBUFFERMODE, GetZbufferMode)(THIS) PURE;
-    STDMETHOD(SetMaterialMode)(THIS_ D3DRMMATERIALMODE) PURE;
-    STDMETHOD(SetOrientation)(THIS_ LPDIRECT3DRMFRAME3 reference, D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
-        D3DVALUE ux, D3DVALUE uy, D3DVALUE uz) PURE;
-    STDMETHOD(SetPosition)(THIS_ LPDIRECT3DRMFRAME3 reference, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(SetRotation)(THIS_ LPDIRECT3DRMFRAME3 reference, D3DVALUE x, D3DVALUE y, D3DVALUE z,
-        D3DVALUE theta) PURE;
-    STDMETHOD(SetSortMode)(THIS_ D3DRMSORTMODE) PURE;
-    STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE3) PURE;
-    STDMETHOD(SetVelocity)(THIS_ LPDIRECT3DRMFRAME3 reference, D3DVALUE x, D3DVALUE y, D3DVALUE z,
-        BOOL with_rotation) PURE;
-    STDMETHOD(SetZbufferMode)(THIS_ D3DRMZBUFFERMODE) PURE;
-    STDMETHOD(Transform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
-    STDMETHOD(GetBox)(THIS_ LPD3DRMBOX) PURE;
-    STDMETHOD_(BOOL, GetBoxEnable)(THIS) PURE;
-    STDMETHOD(GetAxes)(THIS_ LPD3DVECTOR dir, LPD3DVECTOR up);
-    STDMETHOD(GetMaterial)(THIS_ LPDIRECT3DRMMATERIAL2 *) PURE;
-    STDMETHOD_(BOOL, GetInheritAxes)(THIS);
-    STDMETHOD(GetHierarchyBox)(THIS_ LPD3DRMBOX) PURE;
-    STDMETHOD(SetBox)(THIS_ LPD3DRMBOX) PURE;
-    STDMETHOD(SetBoxEnable)(THIS_ BOOL) PURE;
-    STDMETHOD(SetAxes)(THIS_ D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz);
-    STDMETHOD(SetInheritAxes)(THIS_ BOOL inherit_from_parent);
-    STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL2) PURE;
-    STDMETHOD(SetQuaternion)(THIS_ LPDIRECT3DRMFRAME3 reference, D3DRMQUATERNION *q) PURE;
-    STDMETHOD(RayPick)(THIS_ LPDIRECT3DRMFRAME3 reference, LPD3DRMRAY ray, DWORD flags,
-        LPDIRECT3DRMPICKED2ARRAY *return_visuals) PURE;
-    STDMETHOD(Save)(THIS_ LPCSTR filename, D3DRMXOFFORMAT d3dFormat, D3DRMSAVEOPTIONS d3dSaveFlags);
-    STDMETHOD(TransformVectors)(THIS_ LPDIRECT3DRMFRAME3 reference, DWORD NumVectors,
-        LPD3DVECTOR pDstVectors, LPD3DVECTOR pSrcVectors) PURE;
-    STDMETHOD(InverseTransformVectors)(THIS_ LPDIRECT3DRMFRAME3 reference, DWORD NumVectors,
-        LPD3DVECTOR pDstVectors, LPD3DVECTOR pSrcVectors) PURE;
-    STDMETHOD(SetTraversalOptions)(THIS_ DWORD flags) PURE;
-    STDMETHOD(GetTraversalOptions)(THIS_ LPDWORD pFlags) PURE;
-    STDMETHOD(SetSceneFogMethod)(THIS_ DWORD flags) PURE;
-    STDMETHOD(GetSceneFogMethod)(THIS_ LPDWORD pFlags) PURE;
-    STDMETHOD(SetMaterialOverride)(THIS_ LPD3DRMMATERIALOVERRIDE) PURE;
-    STDMETHOD(GetMaterialOverride)(THIS_ LPD3DRMMATERIALOVERRIDE) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMFrame3_QueryInterface(p,a,b)              (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMFrame3_AddRef(p)                          (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMFrame3_Release(p)                         (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMFrame3_Clone(p,a,b,c)                     (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMFrame3_AddDestroyCallback(p,a,b)          (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMFrame3_DeleteDestroyCallback(p,a,b)       (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMFrame3_SetAppData(p,a)                    (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMFrame3_GetAppData(p)                      (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMFrame3_SetName(p,a)                       (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMFrame3_GetName(p,a,b)                     (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMFrame3_GetClassName(p,a,b)                (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMFrame3 methods ***/
-#define IDirect3DRMFrame3_AddChild(p,a)                      (p)->lpVtbl->AddChild(p,a)
-#define IDirect3DRMFrame3_AddLight(p,a)                      (p)->lpVtbl->AddLight(p,a)
-#define IDirect3DRMFrame3_AddMoveCallback(p,a,b,c)           (p)->lpVtbl->AddMoveCallback(p,a,b,c)
-#define IDirect3DRMFrame3_AddTransform(p,a,b)                (p)->lpVtbl->AddTransform(p,a,b)
-#define IDirect3DRMFrame3_AddTranslation(p,a,b,c,d)          (p)->lpVtbl->AddTranslation(p,a,b,c,d)
-#define IDirect3DRMFrame3_AddScale(p,a,b,c,d)                (p)->lpVtbl->AddScale(p,a,b,c,d)
-#define IDirect3DRMFrame3_AddRotation(p,a,b,c,d,e)           (p)->lpVtbl->AddRotation(p,a,b,c,d,e)
-#define IDirect3DRMFrame3_AddVisual(p,a)                     (p)->lpVtbl->AddVisual(p,a)
-#define IDirect3DRMFrame3_GetChildren(p,a)                   (p)->lpVtbl->GetChildren(p,a)
-#define IDirect3DRMFrame3_GetColor(p)                        (p)->lpVtbl->GetColor(p)
-#define IDirect3DRMFrame3_GetLights(p,a)                     (p)->lpVtbl->GetLights(p,a)
-#define IDirect3DRMFrame3_GetMaterialMode(p)                 (p)->lpVtbl->GetMaterialMode(p)
-#define IDirect3DRMFrame3_GetParent(p,a)                     (p)->lpVtbl->GetParent(p,a)
-#define IDirect3DRMFrame3_GetPosition(p,a,b)                 (p)->lpVtbl->GetPosition(p,a,b)
-#define IDirect3DRMFrame3_GetRotation(p,a,b,c)               (p)->lpVtbl->GetRotation(p,a,b,c)
-#define IDirect3DRMFrame3_GetScene(p,a)                      (p)->lpVtbl->GetScene(p,a)
-#define IDirect3DRMFrame3_GetSortMode(p)                     (p)->lpVtbl->GetSortMode(p)
-#define IDirect3DRMFrame3_GetTexture(p,a)                    (p)->lpVtbl->GetTexture(p,a)
-#define IDirect3DRMFrame3_GetTransform(p,a,b)                (p)->lpVtbl->GetTransform(p,a,b)
-#define IDirect3DRMFrame3_GetVelocity(p,a,b,c)               (p)->lpVtbl->GetVelocity(p,a,b,c)
-#define IDirect3DRMFrame3_GetOrientation(p,a,b,c)            (p)->lpVtbl->GetOrientation(p,a,b,c)
-#define IDirect3DRMFrame3_GetVisuals(p,a,b)                  (p)->lpVtbl->GetVisuals(p,a,b)
-#define IDirect3DRMFrame3_InverseTransform(p,a,b)            (p)->lpVtbl->InverseTransform(p,a,b)
-#define IDirect3DRMFrame3_Load(p,a,b,c,d,e)                  (p)->lpVtbl->Load(p,a,b,c,d,e)
-#define IDirect3DRMFrame3_LookAt(p,a,b,c)                    (p)->lpVtbl->LookAt(p,a,b,c)
-#define IDirect3DRMFrame3_Move(p,a)                          (p)->lpVtbl->Move(p,a)
-#define IDirect3DRMFrame3_DeleteChild(p,a)                   (p)->lpVtbl->DeleteChild(p,a)
-#define IDirect3DRMFrame3_DeleteLight(p,a)                   (p)->lpVtbl->DeleteLight(p,a)
-#define IDirect3DRMFrame3_DeleteMoveCallback(p,a,b)          (p)->lpVtbl->DeleteMoveCallback(p,a,b)
-#define IDirect3DRMFrame3_DeleteVisual(p,a)                  (p)->lpVtbl->DeleteVisual(p,a)
-#define IDirect3DRMFrame3_GetSceneBackground(p)              (p)->lpVtbl->GetSceneBackground(p)
-#define IDirect3DRMFrame3_GetSceneBackgroundDepth(p,a)       (p)->lpVtbl->GetSceneBackgroundDepth(p,a)
-#define IDirect3DRMFrame3_GetSceneFogColor(p)                (p)->lpVtbl->GetSceneFogColor(p)
-#define IDirect3DRMFrame3_GetSceneFogEnable(p)               (p)->lpVtbl->GetSceneFogEnable(p)
-#define IDirect3DRMFrame3_GetSceneFogMode(p)                 (p)->lpVtbl->GetSceneFogMode(p)
-#define IDirect3DRMFrame3_GetSceneFogParams(p,a,b,c)         (p)->lpVtbl->GetSceneFogParams(p,a,b,c)
-#define IDirect3DRMFrame3_SetSceneBackground(p,a)            (p)->lpVtbl->SetSceneBackground(p,a)
-#define IDirect3DRMFrame3_SetSceneBackgroundRGB(p,a,b,c)     (p)->lpVtbl->SetSceneBackgroundRGB(p,a,b,c)
-#define IDirect3DRMFrame3_SetSceneBackgroundDepth(p,a)       (p)->lpVtbl->SetSceneBackgroundDepth(p,a)
-#define IDirect3DRMFrame3_SetSceneBackgroundImage(p,a)       (p)->lpVtbl->SetSceneBackgroundImage(p,a)
-#define IDirect3DRMFrame3_SetSceneFogEnable(p,a)             (p)->lpVtbl->SetSceneFogEnable(p,a)
-#define IDirect3DRMFrame3_SetSceneFogColor(p,a)              (p)->lpVtbl->SetSceneFogColor(p,a)
-#define IDirect3DRMFrame3_SetSceneFogMode(p,a)               (p)->lpVtbl->SetSceneFogMode(p,a)
-#define IDirect3DRMFrame3_SetSceneFogParams(p,a,b,c)         (p)->lpVtbl->SetSceneFogParams(p,a,b,c)
-#define IDirect3DRMFrame3_SetColor(p,a)                      (p)->lpVtbl->SetColor(p,a)
-#define IDirect3DRMFrame3_SetColorRGB(p,a,b,c)               (p)->lpVtbl->SetColorRGB(p,a,b,c)
-#define IDirect3DRMFrame3_GetZbufferMode(p)                  (p)->lpVtbl->GetZbufferMode(p)
-#define IDirect3DRMFrame3_SetMaterialMode(p,a)               (p)->lpVtbl->SetMaterialMode(p,a)
-#define IDirect3DRMFrame3_SetOrientation(p,a,b,c,d,e,f,g)    (p)->lpVtbl->SetOrientation(p,a,b,c,d,e,f,g)
-#define IDirect3DRMFrame3_SetPosition(p,a,b,c,d)             (p)->lpVtbl->SetPosition(p,a,b,c,d)
-#define IDirect3DRMFrame3_SetRotation(p,a,b,c,d,e)           (p)->lpVtbl->SetRotation(p,a,b,c,d,e)
-#define IDirect3DRMFrame3_SetSortMode(p,a)                   (p)->lpVtbl->SetSortMode(p,a)
-#define IDirect3DRMFrame3_SetTexture(p,a)                    (p)->lpVtbl->SetTexture(p,a)
-#define IDirect3DRMFrame3_SetVelocity(p,a,b,c,d,e)           (p)->lpVtbl->SetVelocity(p,a,b,c,d,e)
-#define IDirect3DRMFrame3_SetZbufferMode(p,a)                (p)->lpVtbl->SetZbufferMode(p,a)
-#define IDirect3DRMFrame3_Transform(p,a,b)                   (p)->lpVtbl->Transform(p,a,b)
-#define IDirect3DRMFrame3_GetBox(p,a)                        (p)->lpVtbl->GetBox(p,a)
-#define IDirect3DRMFrame3_GetBoxEnable(p)                    (p)->lpVtbl->GetBoxEnable(p)
-#define IDirect3DRMFrame3_GetAxes(p,a,b)                     (p)->lpVtbl->GetAxes(p,a,b)
-#define IDirect3DRMFrame3_GetMaterial(p,a)                   (p)->lpVtbl->GetMaterial(p,a)
-#define IDirect3DRMFrame3_GetInheritAxes(p)                  (p)->lpVtbl->GetInheritAxes(p)
-#define IDirect3DRMFrame3_GetHierarchyBox(p,a)               (p)->lpVtbl->GetHierarchyBox(p,a)
-#define IDirect3DRMFrame3_SetBox(p,a)                        (p)->lpVtbl->SetBox(p,a)
-#define IDirect3DRMFrame3_SetBoxEnable(p,a)                  (p)->lpVtbl->SetBoxEnable(p,a)
-#define IDirect3DRMFrame3_SetAxes(p,a,b,c,d,e,f)             (p)->lpVtbl->SetAxes(p,a,b,c,d,e,f)
-#define IDirect3DRMFrame3_SetInheritAxes(p,a)                (p)->lpVtbl->SetInheritAxes(p,a)
-#define IDirect3DRMFrame3_SetMaterial(p,a)                   (p)->lpVtbl->SetMaterial(p,a)
-#define IDirect3DRMFrame3_SetQuaternion(p,a,b)               (p)->lpVtbl->SetQuaternion(p,a,b)
-#define IDirect3DRMFrame3_RayPick(p,a,b,c,d)                 (p)->lpVtbl->RayPick(p,a,b,c,d)
-#define IDirect3DRMFrame3_Save(p,a,b,c)                      (p)->lpVtbl->Save(p,a,b,c)
-#define IDirect3DRMFrame3_TransformVectors(p,a,b,c,d)        (p)->lpVtbl->TransformVectors(p,a,b,c,d)
-#define IDirect3DRMFrame3_InverseTransformVectors(p,a,b,c,d) (p)->lpVtbl->InverseTransformVectors(p,a,b,c,d)
-#define IDirect3DRMFrame3_SetTraversalOptions(p,a)           (p)->lpVtbl->SetTraversalOptions(p,a)
-#define IDirect3DRMFrame3_GetTraversalOptions(p,a)           (p)->lpVtbl->GetTraversalOptions(p,a)
-#define IDirect3DRMFrame3_SetSceneFogMethod(p,a)             (p)->lpVtbl->SetSceneFogMethod(p,a)
-#define IDirect3DRMFrame3_GetSceneFogMethod(p,a)             (p)->lpVtbl->GetSceneFogMethod(p,a)
-#define IDirect3DRMFrame3_SetMaterialOverride(p,a)           (p)->lpVtbl->SetMaterialOverride(p,a)
-#define IDirect3DRMFrame3_GetMaterialOverride(p,a)           (p)->lpVtbl->GetMaterialOverride(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMFrame3_QueryInterface(p,a,b)              (p)->QueryInterface(a,b)
-#define IDirect3DRMFrame3_AddRef(p)                          (p)->AddRef()
-#define IDirect3DRMFrame3_Release(p)                         (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMFrame3_Clone(p,a,b,c)                     (p)->Clone(a,b,c)
-#define IDirect3DRMFrame3_AddDestroyCallback(p,a,b)          (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMFrame3_DeleteDestroyCallback(p,a,b)       (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMFrame3_SetAppData(p,a)                    (p)->SetAppData(a)
-#define IDirect3DRMFrame3_GetAppData(p)                      (p)->GetAppData()
-#define IDirect3DRMFrame3_SetName(p,a)                       (p)->SetName(a)
-#define IDirect3DRMFrame3_GetName(p,a,b)                     (p)->GetName(a,b)
-#define IDirect3DRMFrame3_GetClassName(p,a,b)                (p)->GetClassName(a,b)
-/*** IDirect3DRMFrame3 methods ***/
-#define IDirect3DRMFrame3_AddChild(p,a)                      (p)->AddChild(a)
-#define IDirect3DRMFrame3_AddLight(p,a)                      (p)->AddLight(a)
-#define IDirect3DRMFrame3_AddMoveCallback(p,a,b,c)           (p)->AddMoveCallback(a,b,c)
-#define IDirect3DRMFrame3_AddTransform(p,a,b)                (p)->AddTransform(a,b)
-#define IDirect3DRMFrame3_AddTranslation(p,a,b,c,d)          (p)->AddTranslation(a,b,c,d)
-#define IDirect3DRMFrame3_AddScale(p,a,b,c,d)                (p)->AddScale(a,b,c,d)
-#define IDirect3DRMFrame3_AddRotation(p,a,b,c,d,e)           (p)->AddRotation(a,b,c,d,e)
-#define IDirect3DRMFrame3_AddVisual(p,a)                     (p)->AddVisual(a)
-#define IDirect3DRMFrame3_GetChildren(p,a)                   (p)->GetChildren(a)
-#define IDirect3DRMFrame3_GetColor(p)                        (p)->GetColor()
-#define IDirect3DRMFrame3_GetLights(p,a)                     (p)->GetLights(a)
-#define IDirect3DRMFrame3_GetMaterialMode(p)                 (p)->GetMaterialMode()
-#define IDirect3DRMFrame3_GetParent(p,a)                     (p)->GetParent(a)
-#define IDirect3DRMFrame3_GetPosition(p,a,b)                 (p)->GetPosition(a,b)
-#define IDirect3DRMFrame3_GetRotation(p,a,b,c)               (p)->GetRotation(a,b,c)
-#define IDirect3DRMFrame3_GetScene(p,a)                      (p)->GetScene(a)
-#define IDirect3DRMFrame3_GetSortMode(p)                     (p)->GetSortMode()
-#define IDirect3DRMFrame3_GetTexture(p,a)                    (p)->GetTexture(a)
-#define IDirect3DRMFrame3_GetTransform(p,a,b)                (p)->GetTransform(a,b)
-#define IDirect3DRMFrame3_GetVelocity(p,a,b,c)               (p)->GetVelocity(a,b,c)
-#define IDirect3DRMFrame3_GetOrientation(p,a,b,c)            (p)->GetOrientation(a,b,c)
-#define IDirect3DRMFrame3_GetVisuals(p,a,b)                  (p)->GetVisuals(a,b)
-#define IDirect3DRMFrame3_InverseTransform(p,a,b)            (p)->InverseTransform(a,b)
-#define IDirect3DRMFrame3_Load(p,a,b,c,d,e)                  (p)->Load(a,b,c,d,e)
-#define IDirect3DRMFrame3_LookAt(p,a,b,c)                    (p)->LookAt(a,b,c)
-#define IDirect3DRMFrame3_Move(p,a)                          (p)->Move(a)
-#define IDirect3DRMFrame3_DeleteChild(p,a)                   (p)->DeleteChild(a)
-#define IDirect3DRMFrame3_DeleteLight(p,a)                   (p)->DeleteLight(a)
-#define IDirect3DRMFrame3_DeleteMoveCallback(p,a,b)          (p)->DeleteMoveCallback(a,b)
-#define IDirect3DRMFrame3_DeleteVisual(p,a)                  (p)->DeleteVisual(a)
-#define IDirect3DRMFrame3_GetSceneBackground(p)              (p)->GetSceneBackground()
-#define IDirect3DRMFrame3_GetSceneBackgroundDepth(p,a)       (p)->GetSceneBackgroundDepth(a)
-#define IDirect3DRMFrame3_GetSceneFogColor(p)                (p)->GetSceneFogColor()
-#define IDirect3DRMFrame3_GetSceneFogEnable(p)               (p)->GetSceneFogEnable()
-#define IDirect3DRMFrame3_GetSceneFogMode(p)                 (p)->GetSceneFogMode()
-#define IDirect3DRMFrame3_GetSceneFogParams(p,a,b,c)         (p)->GetSceneFogParams(a,b,c)
-#define IDirect3DRMFrame3_SetSceneBackground(p,a)            (p)->SetSceneBackground(a)
-#define IDirect3DRMFrame3_SetSceneBackgroundRGB(p,a,b,c)     (p)->SetSceneBackgroundRGB(a,b,c)
-#define IDirect3DRMFrame3_SetSceneBackgroundDepth(p,a)       (p)->SetSceneBackgroundDepth(a)
-#define IDirect3DRMFrame3_SetSceneBackgroundImage(p,a)       (p)->SetSceneBackgroundImage(a)
-#define IDirect3DRMFrame3_SetSceneFogEnable(p,a)             (p)->SetSceneFogEnable(a)
-#define IDirect3DRMFrame3_SetSceneFogColor(p,a)              (p)->SetSceneFogColor(a)
-#define IDirect3DRMFrame3_SetSceneFogMode(p,a)               (p)->SetSceneFogMode(a)
-#define IDirect3DRMFrame3_SetSceneFogParams(p,a,b,c)         (p)->SetSceneFogParams(a,b,c)
-#define IDirect3DRMFrame3_SetColor(p,a)                      (p)->SetColor(a)
-#define IDirect3DRMFrame3_SetColorRGB(p,a,b,c)               (p)->SetColorRGB(a,b,c)
-#define IDirect3DRMFrame3_GetZbufferMode(p)                  (p)->GetZbufferMode()
-#define IDirect3DRMFrame3_SetMaterialMode(p,a)               (p)->SetMaterialMode(a)
-#define IDirect3DRMFrame3_SetOrientation(p,a,b,c,d,e,f,g)    (p)->SetOrientation(a,b,c,d,e,f,g)
-#define IDirect3DRMFrame3_SetPosition(p,a,b,c,d)             (p)->SetPosition(a,b,c,d)
-#define IDirect3DRMFrame3_SetRotation(p,a,b,c,d,e)           (p)->SetRotation(a,b,c,d,e)
-#define IDirect3DRMFrame3_SetSortMode(p,a)                   (p)->SetSortMode(a)
-#define IDirect3DRMFrame3_SetTexture(p,a)                    (p)->SetTexture(a)
-#define IDirect3DRMFrame3_SetVelocity(p,a,b,c,d,e)           (p)->SetVelocity(a,b,c,d,e)
-#define IDirect3DRMFrame3_SetZbufferMode(p,a)                (p)->SetZbufferMode(a)
-#define IDirect3DRMFrame3_Transform(p,a,b)                   (p)->Transform(a,b)
-#define IDirect3DRMFrame3_GetBox(p,a)                        (p)->GetBox(a)
-#define IDirect3DRMFrame3_GetBoxEnable(p)                    (p)->GetBoxEnable()
-#define IDirect3DRMFrame3_GetAxes(p,a,b)                     (p)->GetAxes(a,b)
-#define IDirect3DRMFrame3_GetMaterial(p,a)                   (p)->GetMaterial(a)
-#define IDirect3DRMFrame3_GetInheritAxes(p)                  (p)->GetInheritAxes()
-#define IDirect3DRMFrame3_GetHierarchyBox(p,a)               (p)->GetHierarchyBox(a)
-#define IDirect3DRMFrame3_SetBox(p,a)                        (p)->SetBox(a)
-#define IDirect3DRMFrame3_SetBoxEnable(p,a)                  (p)->SetBoxEnable(a)
-#define IDirect3DRMFrame3_SetAxes(p,a,b,c,d,e,f)             (p)->SetAxes(a,b,c,d,e,f)
-#define IDirect3DRMFrame3_SetInheritAxes(p,a)                (p)->SetInheritAxes(a)
-#define IDirect3DRMFrame3_SetMaterial(p,a)                   (p)->SetMaterial(a)
-#define IDirect3DRMFrame3_SetQuaternion(p,a,b)               (p)->SetQuaternion(a,b)
-#define IDirect3DRMFrame3_RayPick(p,a,b,c,d)                 (p)->RayPick(a,b,c,d)
-#define IDirect3DRMFrame3_Save(p,a,b,c)                      (p)->Save(a,b,c)
-#define IDirect3DRMFrame3_TransformVectors(p,a,b,c,d)        (p)->TransformVectors(a,b,c,d)
-#define IDirect3DRMFrame3_InverseTransformVectors(p,a,b,c,d) (p)->InverseTransformVectors(a,b,c,d)
-#define IDirect3DRMFrame3_SetTraversalOptions(p,a)           (p)->SetTraversalOptions(a)
-#define IDirect3DRMFrame3_GetTraversalOptions(p,a)           (p)->GetTraversalOptions(a)
-#define IDirect3DRMFrame3_SetSceneFogMethod(p,a)             (p)->SetSceneFogMethod(a)
-#define IDirect3DRMFrame3_GetSceneFogMethod(p,a)             (p)->GetSceneFogMethod(a)
-#define IDirect3DRMFrame3_SetMaterialOverride(p,a)           (p)->SetMaterialOverride(a)
-#define IDirect3DRMFrame3_GetMaterialOverride(p,a)           (p)->GetMaterialOverride(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMMesh interface
- */
-#define INTERFACE IDirect3DRMMesh
-DECLARE_INTERFACE_(IDirect3DRMMesh,IDirect3DRMVisual)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMMesh methods ***/
-    STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
-    STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
-    STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
-    STDMETHOD(AddGroup)(THIS_ unsigned vCount, unsigned fCount, unsigned vPerFace, unsigned *fData,
-        D3DRMGROUPINDEX *returnId) PURE;
-    STDMETHOD(SetVertices)(THIS_ D3DRMGROUPINDEX id, unsigned index, unsigned count,
-        D3DRMVERTEX *values) PURE;
-    STDMETHOD(SetGroupColor)(THIS_ D3DRMGROUPINDEX id, D3DCOLOR value) PURE;
-    STDMETHOD(SetGroupColorRGB)(THIS_ D3DRMGROUPINDEX id, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
-    STDMETHOD(SetGroupMapping)(THIS_ D3DRMGROUPINDEX id, D3DRMMAPPING value) PURE;
-    STDMETHOD(SetGroupQuality)(THIS_ D3DRMGROUPINDEX id, D3DRMRENDERQUALITY value) PURE;
-    STDMETHOD(SetGroupMaterial)(THIS_ D3DRMGROUPINDEX id, LPDIRECT3DRMMATERIAL value) PURE;
-    STDMETHOD(SetGroupTexture)(THIS_ D3DRMGROUPINDEX id, LPDIRECT3DRMTEXTURE value) PURE;
-    STDMETHOD_(unsigned, GetGroupCount)(THIS) PURE;
-    STDMETHOD(GetGroup)(THIS_ D3DRMGROUPINDEX id, unsigned *vCount, unsigned *fCount, unsigned *vPerFace,
-        DWORD *fDataSize, unsigned *fData) PURE;
-    STDMETHOD(GetVertices)(THIS_ D3DRMGROUPINDEX id, DWORD index, DWORD count, D3DRMVERTEX *returnPtr) PURE;
-    STDMETHOD_(D3DCOLOR, GetGroupColor)(THIS_ D3DRMGROUPINDEX id) PURE;
-    STDMETHOD_(D3DRMMAPPING, GetGroupMapping)(THIS_ D3DRMGROUPINDEX id) PURE;
-    STDMETHOD_(D3DRMRENDERQUALITY, GetGroupQuality)(THIS_ D3DRMGROUPINDEX id) PURE;
-    STDMETHOD(GetGroupMaterial)(THIS_ D3DRMGROUPINDEX id, LPDIRECT3DRMMATERIAL *returnPtr) PURE;
-    STDMETHOD(GetGroupTexture)(THIS_ D3DRMGROUPINDEX id, LPDIRECT3DRMTEXTURE *returnPtr) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMMesh_QueryInterface(p,a,b)              (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMMesh_AddRef(p)                          (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMMesh_Release(p)                         (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMMesh_Clone(p,a,b,c)                     (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMMesh_AddDestroyCallback(p,a,b)          (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMMesh_DeleteDestroyCallback(p,a,b)       (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMMesh_SetAppData(p,a)                    (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMMesh_GetAppData(p)                      (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMMesh_SetName(p,a)                       (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMMesh_GetName(p,a,b)                     (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMMesh_GetClassName(p,a,b)                (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMMesh methods ***/
-#define IDirect3DRMMesh_Scale(p,a,b,c)                     (p)->lpVtbl->Scale(p,a,b,c)
-#define IDirect3DRMMesh_Translate(p,a,b,c)                 (p)->lpVtbl->Translate(p,a,b,c)
-#define IDirect3DRMMesh_GetBox(p,a)                        (p)->lpVtbl->GetBox(p,a)
-#define IDirect3DRMMesh_AddGroup(p,a,b,c,d,e)              (p)->lpVtbl->AddGroup(p,a,b,c,d,e)
-#define IDirect3DRMMesh_SetVertices(p,a,b,c,d)             (p)->lpVtbl->SetVertices(p,a,b,c,d)
-#define IDirect3DRMMesh_SetGroupColor(p,a,b)               (p)->lpVtbl->SetGroupColor(p,a,b)
-#define IDirect3DRMMesh_SetGroupColorRGB(p,a,b,c,d)        (p)->lpVtbl->SetGroupColorRGB(p,a,b,c,d)
-#define IDirect3DRMMesh_SetGroupMapping(p,a,b)             (p)->lpVtbl->SetGroupMapping(p,a,b)
-#define IDirect3DRMMesh_SetGroupQuality(p,a,b)             (p)->lpVtbl->SetGroupQuality(p,a,b)
-#define IDirect3DRMMesh_SetGroupMaterial(p,a,b)            (p)->lpVtbl->SetGroupMaterial(p,a,b)
-#define IDirect3DRMMesh_SetGroupTexture(p,a,b)             (p)->lpVtbl->SetGroupTexture(p,a,b)
-#define IDirect3DRMMesh_GetGroupCount(p)                   (p)->lpVtbl->GetGroupCount(p)
-#define IDirect3DRMMesh_GetGroup(p,a,b,c,d,e,f)            (p)->lpVtbl->GetGroup(p,a,b,c,d,e,f)
-#define IDirect3DRMMesh_GetVertices(p,a,b,c,d)             (p)->lpVtbl->GetVertices(p,a,b,c,d)
-#define IDirect3DRMMesh_GetGroupColor(p,a)                 (p)->lpVtbl->GetGroupColor(p,a)
-#define IDirect3DRMMesh_GetGroupMapping(p,a)               (p)->lpVtbl->GetGroupMapping(p,a)
-#define IDirect3DRMMesh_GetGroupQuality(p,a)               (p)->lpVtbl->GetGroupQuality(p,a)
-#define IDirect3DRMMesh_GetGroupMaterial(p,a,b)            (p)->lpVtbl->GetGroupMaterial(p,a,b)
-#define IDirect3DRMMesh_GetGroupTexture(p,a,b)             (p)->lpVtbl->GetGroupTexture(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMMesh_QueryInterface(p,a,b)              (p)->QueryInterface(a,b)
-#define IDirect3DRMMesh_AddRef(p)                          (p)->AddRef()
-#define IDirect3DRMMesh_Release(p)                         (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMMesh_Clone(p,a,b,c)                     (p)->Clone(a,b,c)
-#define IDirect3DRMMesh_AddDestroyCallback(p,a,b)          (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMMesh_DeleteDestroyCallback(p,a,b)       (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMMesh_SetAppData(p,a)                    (p)->SetAppData(a)
-#define IDirect3DRMMesh_GetAppData(p)                      (p)->GetAppData()
-#define IDirect3DRMMesh_SetName(p,a)                       (p)->SetName(a)
-#define IDirect3DRMMesh_GetName(p,a,b)                     (p)->GetName(a,b)
-#define IDirect3DRMMesh_GetClassName(p,a,b)                (p)->GetClassName(a,b)
-/*** IDirect3DRMMesh methods ***/
-#define IDirect3DRMMesh_Scale(p,a,b,c)                     (p)->Scale(a,b,c)
-#define IDirect3DRMMesh_Translate(p,a,b,c)                 (p)->Translate(a,b,c)
-#define IDirect3DRMMesh_GetBox(p,a)                        (p)->GetBox(a)
-#define IDirect3DRMMesh_AddGroup(p,a,b,c,d,e)              (p)->AddGroup(a,b,c,d,e)
-#define IDirect3DRMMesh_SetVertices(p,a,b,c,d)             (p)->SetVertices(a,b,c,d)
-#define IDirect3DRMMesh_SetGroupColor(p,a,b)               (p)->SetGroupColor(a,b)
-#define IDirect3DRMMesh_SetGroupColorRGB(p,a,b,c,d)        (p)->SetGroupColorRGB(a,b,c,d)
-#define IDirect3DRMMesh_SetGroupMapping(p,a,b)             (p)->SetGroupMapping(a,b)
-#define IDirect3DRMMesh_SetGroupQuality(p,a,b)             (p)->SetGroupQuality(a,b)
-#define IDirect3DRMMesh_SetGroupMaterial(p,a,b)            (p)->SetGroupMaterial(a,b)
-#define IDirect3DRMMesh_SetGroupTexture(p,a,b)             (p)->SetGroupTexture(a,b)
-#define IDirect3DRMMesh_GetGroupCount(p)                   (p)->GetGroupCount()
-#define IDirect3DRMMesh_GetGroup(p,a,b,c,d,e,f)            (p)->GetGroup(a,b,c,d,e,f)
-#define IDirect3DRMMesh_GetVertices(p,a,b,c,d)             (p)->GetVertices(a,b,c,d)
-#define IDirect3DRMMesh_GetGroupColor(p,a)                 (p)->GetGroupColor(a)
-#define IDirect3DRMMesh_GetGroupMapping(p,a)               (p)->GetGroupMapping(a)
-#define IDirect3DRMMesh_GetGroupQuality(p,a)               (p)->GetGroupQuality(a)
-#define IDirect3DRMMesh_GetGroupMaterial(p,a,b)            (p)->lpVtbl->GetGroupMaterial(a,b)
-#define IDirect3DRMMesh_GetGroupTexture(p,a,b)             (p)->lpVtbl->GetGroupTexture(a,b)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMProgressiveMesh interface
- */
-#define INTERFACE IDirect3DRMProgressiveMesh
-DECLARE_INTERFACE_(IDirect3DRMProgressiveMesh,IDirect3DRMVisual)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMProgressiveMesh methods ***/
-    STDMETHOD(Load) (THIS_ LPVOID pObjLocation, LPVOID pObjId, D3DRMLOADOPTIONS dloLoadflags,
-        D3DRMLOADTEXTURECALLBACK pCallback, LPVOID lpArg) PURE;
-    STDMETHOD(GetLoadStatus) (THIS_ LPD3DRMPMESHLOADSTATUS pStatus) PURE;
-    STDMETHOD(SetMinRenderDetail) (THIS_ D3DVALUE d3dVal) PURE;
-    STDMETHOD(Abort) (THIS_ DWORD flags) PURE;
-    STDMETHOD(GetFaceDetail) (THIS_ LPDWORD pCount) PURE;
-    STDMETHOD(GetVertexDetail) (THIS_ LPDWORD pCount) PURE;
-    STDMETHOD(SetFaceDetail) (THIS_ DWORD count) PURE;
-    STDMETHOD(SetVertexDetail) (THIS_ DWORD count) PURE;
-    STDMETHOD(GetFaceDetailRange) (THIS_ LPDWORD pMin, LPDWORD pMax) PURE;
-    STDMETHOD(GetVertexDetailRange) (THIS_ LPDWORD pMin, LPDWORD pMax) PURE;
-    STDMETHOD(GetDetail) (THIS_ D3DVALUE *pdvVal) PURE;
-    STDMETHOD(SetDetail) (THIS_ D3DVALUE d3dVal) PURE;
-    STDMETHOD(RegisterEvents) (THIS_ HANDLE event, DWORD flags, DWORD reserved) PURE;
-    STDMETHOD(CreateMesh) (THIS_ LPDIRECT3DRMMESH *ppD3DRMMesh) PURE;
-    STDMETHOD(Duplicate) (THIS_ LPDIRECT3DRMPROGRESSIVEMESH *ppD3DRMPMesh) PURE;
-    STDMETHOD(GetBox) (THIS_ LPD3DRMBOX pBBox) PURE;
-    STDMETHOD(SetQuality) (THIS_ D3DRMRENDERQUALITY) PURE;
-    STDMETHOD(GetQuality) (THIS_ LPD3DRMRENDERQUALITY pQuality) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMProgressiveMesh_QueryInterface(p,a,b)          (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMProgressiveMesh_AddRef(p)                      (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMProgressiveMesh_Release(p)                     (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMProgressiveMesh_Clone(p,a,b,c)                 (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMProgressiveMesh_AddDestroyCallback(p,a,b)      (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMProgressiveMesh_DeleteDestroyCallback(p,a,b)   (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMProgressiveMesh_SetAppData(p,a)                (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMProgressiveMesh_GetAppData(p)                  (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMProgressiveMesh_SetName(p,a)                   (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMProgressiveMesh_GetName(p,a,b)                 (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMProgressiveMesh_GetClassName(p,a,b)            (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMProgressiveMesh methods ***/
-#define IDirect3DRMProgressiveMesh_Load(p,a,b,c,d,e)              (p)->lpVtbl->Load(p,a,b,c,d,e)
-#define IDirect3DRMProgressiveMesh_GetLoadStatus(p,a)             (p)->lpVtbl->GetLoadStatus(p,a)
-#define IDirect3DRMProgressiveMesh_SetMinRenderDetail(p,a)        (p)->lpVtbl->SetMinRenderDetail(p,a)
-#define IDirect3DRMProgressiveMesh_Abort(p,a)                     (p)->lpVtbl->Abort(p,a)
-#define IDirect3DRMProgressiveMesh_GetFaceDetail(p,a)             (p)->lpVtbl->GetFaceDetail(p,a)
-#define IDirect3DRMProgressiveMesh_GetVertexDetail(p,a)           (p)->lpVtbl->GetVertexDetail(p,a)
-#define IDirect3DRMProgressiveMesh_SetFaceDetail(p,a)             (p)->lpVtbl->SetFaceDetail(p,a)
-#define IDirect3DRMProgressiveMesh_SetVertexDetail(p,a)           (p)->lpVtbl->SetVertexDetail(p,a)
-#define IDirect3DRMProgressiveMesh_GetFaceDetailRange(p,a,b)      (p)->lpVtbl->GetFaceDetailRange(p,a,b)
-#define IDirect3DRMProgressiveMesh_GetVertexDetailRange(p,a,b)    (p)->lpVtbl->GetVertexDetailRange(p,a,b)
-#define IDirect3DRMProgressiveMesh_GetDetail(p,a)                 (p)->lpVtbl->GetDetail(p,a)
-#define IDirect3DRMProgressiveMesh_SetDetail(p,a)                 (p)->lpVtbl->SetDetail(p,a)
-#define IDirect3DRMProgressiveMesh_RegisterEvents(p,a,b,c)        (p)->lpVtbl->RegisterEvents(p,a,b,c)
-#define IDirect3DRMProgressiveMesh_CreateMesh(p,a)                (p)->lpVtbl->CreateMesh(p,a)
-#define IDirect3DRMProgressiveMesh_Duplicate(p,a)                 (p)->lpVtbl->Duplicate(p,a)
-#define IDirect3DRMProgressiveMesh_GetBox(p,a)                    (p)->lpVtbl->GetBox(p,a)
-#define IDirect3DRMProgressiveMesh_SetQuality(p,a)                (p)->lpVtbl->SetQuality(p,a)
-#define IDirect3DRMProgressiveMesh_GetQuality(p,a)                (p)->lpVtbl->GetQuality(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMProgressiveMesh_QueryInterface(p,a,b)          (p)->QueryInterface(a,b)
-#define IDirect3DRMProgressiveMesh_AddRef(p)                      (p)->AddRef()
-#define IDirect3DRMProgressiveMesh_Release(p)                     (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMProgressiveMesh_Clone(p,a,b,c)                 (p)->Clone(a,b,c)
-#define IDirect3DRMProgressiveMesh_AddDestroyCallback(p,a,b)      (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMProgressiveMesh_DeleteDestroyCallback(p,a,b)   (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMProgressiveMesh_SetAppData(p,a)                (p)->SetAppData(a)
-#define IDirect3DRMProgressiveMesh_GetAppData(p)                  (p)->GetAppData()
-#define IDirect3DRMProgressiveMesh_SetName(p,a)                   (p)->SetName(a)
-#define IDirect3DRMProgressiveMesh_GetName(p,a,b)                 (p)->GetName(a,b)
-#define IDirect3DRMProgressiveMesh_GetClassName(p,a,b)            (p)->GetClassName(a,b)
-/*** IDirect3DRMProgressiveMesh methods ***/
-#define IDirect3DRMProgressiveMesh_Load(p,a,b,c,d,e)              (p)->Load(a,b,c,d,e)
-#define IDirect3DRMProgressiveMesh_GetLoadStatus(p,a)             (p)->GetLoadStatus(a)
-#define IDirect3DRMProgressiveMesh_SetMinRenderDetail(p,a)        (p)->SetMinRenderDetail(a)
-#define IDirect3DRMProgressiveMesh_Abort(p,a)                     (p)->Abort(a)
-#define IDirect3DRMProgressiveMesh_GetFaceDetail(p,a)             (p)->GetFaceDetail(a)
-#define IDirect3DRMProgressiveMesh_GetVertexDetail(p,a)           (p)->GetVertexDetail(a)
-#define IDirect3DRMProgressiveMesh_SetFaceDetail(p,a)             (p)->SetFaceDetail(a)
-#define IDirect3DRMProgressiveMesh_SetVertexDetail(p,a)           (p)->SetVertexDetail(a)
-#define IDirect3DRMProgressiveMesh_GetFaceDetailRange(p,a,b)      (p)->GetFaceDetailRange(a,b)
-#define IDirect3DRMProgressiveMesh_GetVertexDetailRange(p,a,b)    (p)->GetVertexDetailRange(a,b)
-#define IDirect3DRMProgressiveMesh_GetDetail(p,a)                 (p)->GetDetail(a)
-#define IDirect3DRMProgressiveMesh_SetDetail(p,a)                 (p)->SetDetail(a)
-#define IDirect3DRMProgressiveMesh_RegisterEvents(p,a,b,c)        (p)->RegisterEvents(a,b,c)
-#define IDirect3DRMProgressiveMesh_CreateMesh(p,a)                (p)->CreateMesh(a)
-#define IDirect3DRMProgressiveMesh_Duplicate(p,a)                 (p)->Duplicate(a)
-#define IDirect3DRMProgressiveMesh_GetBox(p,a)                    (p)->GetBox(a)
-#define IDirect3DRMProgressiveMesh_SetQuality(p,a)                (p)->SetQuality(a)
-#define IDirect3DRMProgressiveMesh_GetQuality(p,a)                (p)->GetQuality(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMShadow interface
- */
-#define INTERFACE IDirect3DRMShadow
-DECLARE_INTERFACE_(IDirect3DRMShadow,IDirect3DRMVisual)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMShadow methods ***/
-    STDMETHOD(Init)(THIS_ LPDIRECT3DRMVISUAL visual, LPDIRECT3DRMLIGHT light,
-        D3DVALUE px, D3DVALUE py, D3DVALUE pz, D3DVALUE nx, D3DVALUE ny, D3DVALUE nz) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMShadow_QueryInterface(p,a,b)          (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMShadow_AddRef(p)                      (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMShadow_Release(p)                     (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMShadow_Clone(p,a,b,c)                 (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMShadow_AddDestroyCallback(p,a,b)      (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMShadow_DeleteDestroyCallback(p,a,b)   (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMShadow_SetAppData(p,a)                (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMShadow_GetAppData(p)                  (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMShadow_SetName(p,a)                   (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMShadow_GetName(p,a,b)                 (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMShadow_GetClassName(p,a,b)            (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMShadow methods ***/
-#define IDirect3DRMShadow_Init(p,a,b,c,d,e,f,g)          (p)->lpVtbl->Load(p,a,b,c,d,e,f,g)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMShadow_QueryInterface(p,a,b)          (p)->QueryInterface(a,b)
-#define IDirect3DRMShadow_AddRef(p)                      (p)->AddRef()
-#define IDirect3DRMShadow_Release(p)                     (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMShadow_Clone(p,a,b,c)                 (p)->Clone(a,b,c)
-#define IDirect3DRMShadow_AddDestroyCallback(p,a,b)      (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMShadow_DeleteDestroyCallback(p,a,b)   (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMShadow_SetAppData(p,a)                (p)->SetAppData(a)
-#define IDirect3DRMShadow_GetAppData(p)                  (p)->GetAppData()
-#define IDirect3DRMShadow_SetName(p,a)                   (p)->SetName(a)
-#define IDirect3DRMShadow_GetName(p,a,b)                 (p)->GetName(a,b)
-#define IDirect3DRMShadow_GetClassName(p,a,b)            (p)->GetClassName(a,b)
-/*** IDirect3DRMShadow methods ***/
-#define IDirect3DRMShadow_Init(p,a,b,c,d,e,f,g)          (p)->Load(a,b,c,d,e,f,g)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMShadow2 interface
- */
-#define INTERFACE IDirect3DRMShadow2
-DECLARE_INTERFACE_(IDirect3DRMShadow2,IDirect3DRMVisual)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMShadow methods ***/
-    STDMETHOD(Init)(THIS_ LPUNKNOWN pUNK, LPDIRECT3DRMLIGHT light,
-        D3DVALUE px, D3DVALUE py, D3DVALUE pz, D3DVALUE nx, D3DVALUE ny, D3DVALUE nz) PURE;
-    /*** IDirect3DRMShadow2 methods ***/
-    STDMETHOD(GetVisual)(THIS_ LPDIRECT3DRMVISUAL *) PURE;
-    STDMETHOD(SetVisual)(THIS_ LPUNKNOWN pUNK, DWORD) PURE;
-    STDMETHOD(GetLight)(THIS_ LPDIRECT3DRMLIGHT *) PURE;
-    STDMETHOD(SetLight)(THIS_ LPDIRECT3DRMLIGHT, DWORD) PURE;
-    STDMETHOD(GetPlane)(THIS_ LPD3DVALUE px, LPD3DVALUE py, LPD3DVALUE pz,
-        LPD3DVALUE nx, LPD3DVALUE ny, LPD3DVALUE nz) PURE;
-    STDMETHOD(SetPlane)(THIS_ D3DVALUE px, D3DVALUE py, D3DVALUE pz,
-        D3DVALUE nx, D3DVALUE ny, D3DVALUE nz, DWORD) PURE;
-    STDMETHOD(GetOptions)(THIS_ LPDWORD) PURE;
-    STDMETHOD(SetOptions)(THIS_ DWORD) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMShadow2_QueryInterface(p,a,b)          (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMShadow2_AddRef(p)                      (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMShadow2_Release(p)                     (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMShadow2_Clone(p,a,b,c)                 (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMShadow2_AddDestroyCallback(p,a,b)      (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMShadow2_DeleteDestroyCallback(p,a,b)   (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMShadow2_SetAppData(p,a)                (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMShadow2_GetAppData(p)                  (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMShadow2_SetName(p,a)                   (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMShadow2_GetName(p,a,b)                 (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMShadow2_GetClassName(p,a,b)            (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMShadow methods ***/
-#define IDirect3DRMShadow2_Init(p,a,b,c,d,e,f,g)          (p)->lpVtbl->Init(p,a,b,c,d,e,f,g)
-/*** IDirect3DRMShadow2 methods ***/
-#define IDirect3DRMShadow2_GetVisual(p,a)                 (p)->lpVtbl->GetVisual(p,a)
-#define IDirect3DRMShadow2_SetVisual(p,a,b)               (p)->lpVtbl->SetVisual(p,a,b)
-#define IDirect3DRMShadow2_GetLight(p,a)                  (p)->lpVtbl->GetLight(p,a)
-#define IDirect3DRMShadow2_SetLight(p,a,b)                (p)->lpVtbl->SetLight(p,a,b)
-#define IDirect3DRMShadow2_GetPlane(p,a,b,c,d,e,f)        (p)->lpVtbl->GetPlane(p,a,b,c,d,e,f)
-#define IDirect3DRMShadow2_SetPlane(p,a,b,c,d,e,f)        (p)->lpVtbl->SetPlane(p,a,b,c,d,e,f)
-#define IDirect3DRMShadow2_GetOptions(p,a)                (p)->lpVtbl->GetOptions(p,a)
-#define IDirect3DRMShadow2_SetOptions(p,a)                (p)->lpVtbl->SetOptions(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMShadow2_QueryInterface(p,a,b)          (p)->QueryInterface(a,b)
-#define IDirect3DRMShadow2_AddRef(p)                      (p)->AddRef()
-#define IDirect3DRMShadow2_Release(p)                     (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMShadow2_Clone(p,a,b,c)                 (p)->Clone(a,b,c)
-#define IDirect3DRMShadow2_AddDestroyCallback(p,a,b)      (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMShadow2_DeleteDestroyCallback(p,a,b)   (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMShadow2_SetAppData(p,a)                (p)->SetAppData(a)
-#define IDirect3DRMShadow2_GetAppData(p)                  (p)->GetAppData()
-#define IDirect3DRMShadow2_SetName(p,a)                   (p)->SetName(a)
-#define IDirect3DRMShadow2_GetName(p,a,b)                 (p)->GetName(a,b)
-#define IDirect3DRMShadow2_GetClassName(p,a,b)            (p)->GetClassName(a,b)
-/*** IDirect3DRMShadow methods ***/
-#define IDirect3DRMShadow2_Init(p,a,b,c,d,e,f,g)          (p)->Init(a,b,c,d,e,f,g)
-/*** IDirect3DRMShadow2 methods ***/
-#define IDirect3DRMShadow2_GetVisual(p,a)                 (p)->GetVisual(a)
-#define IDirect3DRMShadow2_SetVisual(p,a,b)               (p)->SetVisual(a,b)
-#define IDirect3DRMShadow2_GetLight(p,a)                  (p)->GetLight(a)
-#define IDirect3DRMShadow2_SetLight(p,a,b)                (p)->SetLight(a,b)
-#define IDirect3DRMShadow2_GetPlane(p,a,b,c,d,e,f)        (p)->GetPlane(a,b,c,d,e,f)
-#define IDirect3DRMShadow2_SetPlane(p,a,b,c,d,e,f)        (p)->SetPlane(a,b,c,d,e,f)
-#define IDirect3DRMShadow2_GetOptions(p,a)                (p)->GetOptions(a)
-#define IDirect3DRMShadow2_SetOptions(p,a)                (p)->lpVtbl->SetOptions(p,a)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMFace interface
- */
-#define INTERFACE IDirect3DRMFace
-DECLARE_INTERFACE_(IDirect3DRMFace,IDirect3DRMObject)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMFace methods ***/
-    STDMETHOD(AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(AddVertexAndNormalIndexed)(THIS_ DWORD vertex, DWORD normal) PURE;
-    STDMETHOD(SetColorRGB)(THIS_ D3DVALUE, D3DVALUE, D3DVALUE) PURE;
-    STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
-    STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
-    STDMETHOD(SetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE u, D3DVALUE v) PURE;
-    STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL) PURE;
-    STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
-    STDMETHOD(GetVertex)(THIS_ DWORD index, D3DVECTOR *vertex, D3DVECTOR *normal) PURE;
-    STDMETHOD(GetVertices)(THIS_ DWORD *vertex_count, D3DVECTOR *coords, D3DVECTOR *normals);
-    STDMETHOD(GetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE *u, D3DVALUE *v) PURE;
-    STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
-    STDMETHOD(GetNormal)(THIS_ D3DVECTOR *) PURE;
-    STDMETHOD(GetTexture)(THIS_ LPDIRECT3DRMTEXTURE *) PURE;
-    STDMETHOD(GetMaterial)(THIS_ LPDIRECT3DRMMATERIAL *) PURE;
-    STDMETHOD_(int, GetVertexCount)(THIS) PURE;
-    STDMETHOD_(int, GetVertexIndex)(THIS_ DWORD which) PURE;
-    STDMETHOD_(int, GetTextureCoordinateIndex)(THIS_ DWORD which) PURE;
-    STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMFace_QueryInterface(p,a,b)             (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMFace_AddRef(p)                         (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMFace_Release(p)                        (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMFace_Clone(p,a,b,c)                    (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMFace_AddDestroyCallback(p,a,b)         (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMFace_DeleteDestroyCallback(p,a,b)      (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMFace_SetAppData(p,a)                   (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMFace_GetAppData(p)                     (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMFace_SetName(p,a)                      (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMFace_GetName(p,a,b)                    (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMFace_GetClassName(p,a,b)               (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMFace methods ***/
-#define IDirect3DRMFace_AddVertex(p,a,b,c)                (p)->lpVtbl->AddVertex(p,a,b,c)
-#define IDirect3DRMFace_AddVertexAndNormalIndexed(p,a,b)  (p)->lpVtbl->AddVertexAndNormalIndexed(p,a,b)
-#define IDirect3DRMFace_SetColorRGB(p,a,b,c)              (p)->lpVtbl->SetColorRGB(p,a,b,c)
-#define IDirect3DRMFace_SetColor(p,a)                     (p)->lpVtbl->SetColor(p,a)
-#define IDirect3DRMFace_SetTexture(p,a)                   (p)->lpVtbl->SetTexture(p,a)
-#define IDirect3DRMFace_SetTextureCoordinates(p,a,b,c)    (p)->lpVtbl->SetTextureCoordinates(p,a,b,c)
-#define IDirect3DRMFace_SetMaterial(p,a)                  (p)->lpVtbl->SetMaterial(p,a)
-#define IDirect3DRMFace_SetTextureTopology(p,a,b)         (p)->lpVtbl->SetTextureTopology(p,a,b)
-#define IDirect3DRMFace_GetVertex(p,a,b,c)                (p)->lpVtbl->GetVertex(p,a,b,c)
-#define IDirect3DRMFace_GetVertices(p,a,b,c)              (p)->lpVtbl->GetVertices(p,a,b,c)
-#define IDirect3DRMFace_GetTextureCoordinates(p,a,b,c)    (p)->lpVtbl->GetTextureCoordinates(p,a,b,c)
-#define IDirect3DRMFace_GetTextureTopology(p,a,b)         (p)->lpVtbl->GetTextureTopology(p,a,b)
-#define IDirect3DRMFace_GetNormal(p,a)                    (p)->lpVtbl->GetNormal(p,a)
-#define IDirect3DRMFace_GetTexture(p,a)                   (p)->lpVtbl->GetTexture(p,a)
-#define IDirect3DRMFace_GetVertexCount(p)                 (p)->lpVtbl->GetVertexCount(p)
-#define IDirect3DRMFace_GetVertexIndex(p,a)               (p)->lpVtbl->GetVertexIndex(p,a)
-#define IDirect3DRMFace_GetTextureCoordinateIndex(p,a)    (p)->lpVtbl->GetTextureCoordinateIndex(p,a)
-#define IDirect3DRMFace_GetColor(p,a)                     (p)->lpVtbl->GetColor(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMFace_QueryInterface(p,a,b)             (p)->QueryInterface(a,b)
-#define IDirect3DRMFace_AddRef(p)                         (p)->AddRef()
-#define IDirect3DRMFace_Release(p)                        (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMFace_Clone(p,a,b,c)                    (p)->Clone(a,b,c)
-#define IDirect3DRMFace_AddDestroyCallback(p,a,b)         (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMFace_DeleteDestroyCallback(p,a,b)      (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMFace_SetAppData(p,a)                   (p)->SetAppData(a)
-#define IDirect3DRMFace_GetAppData(p)                     (p)->GetAppData()
-#define IDirect3DRMFace_SetName(p,a)                      (p)->SetName(a)
-#define IDirect3DRMFace_GetName(p,a,b)                    (p)->GetName(a,b)
-#define IDirect3DRMFace_GetClassName(p,a,b)               (p)->GetClassName(a,b)
-/*** IDirect3DRMFace methods ***/
-#define IDirect3DRMFace_AddVertex(p,a,b,c)                (p)->AddVertex(a,b,c)
-#define IDirect3DRMFace_AddVertexAndNormalIndexed(p,a,b)  (p)->AddVertexAndNormalIndexed(a,b)
-#define IDirect3DRMFace_SetColorRGB(p,a,b,c)              (p)->SetColorRGB(a,b,c)
-#define IDirect3DRMFace_SetColor(p,a)                     (p)->SetColor(a)
-#define IDirect3DRMFace_SetTexture(p,a)                   (p)->SetTexture(a)
-#define IDirect3DRMFace_SetTextureCoordinates(p,a,b,c)    (p)->SetTextureCoordinates(a,b,c)
-#define IDirect3DRMFace_SetMaterial(p,a)                  (p)->SetMaterial(a)
-#define IDirect3DRMFace_SetTextureTopology(p,a,b)         (p)->SetTextureTopology(a,b)
-#define IDirect3DRMFace_GetVertex(p,a,b,c)                (p)->GetVertex(a,b,c)
-#define IDirect3DRMFace_GetVertices(p,a,b,c)              (p)->GetVertices(a,b,c)
-#define IDirect3DRMFace_GetTextureCoordinates(p,a,b,c)    (p)->GetTextureCoordinates(a,b,c)
-#define IDirect3DRMFace_GetTextureTopology(p,a,b)         (p)->GetTextureTopology(a,b)
-#define IDirect3DRMFace_GetNormal(p,a)                    (p)->GetNormal(a)
-#define IDirect3DRMFace_GetTexture(p,a)                   (p)->GetTexture(a)
-#define IDirect3DRMFace_GetVertexCount(p)                 (p)->GetVertexCount()
-#define IDirect3DRMFace_GetVertexIndex(p,a)               (p)->GetVertexIndex(a)
-#define IDirect3DRMFace_GetTextureCoordinateIndex(p,a)    (p)->GetTextureCoordinateIndex(a)
-#define IDirect3DRMFace_GetColor(p,a)                     (p)->GetColor(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMFace2 interface
- */
-#define INTERFACE IDirect3DRMFace2
-DECLARE_INTERFACE_(IDirect3DRMFace2,IDirect3DRMObject)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMFace methods ***/
-    STDMETHOD(AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(AddVertexAndNormalIndexed)(THIS_ DWORD vertex, DWORD normal) PURE;
-    STDMETHOD(SetColorRGB)(THIS_ D3DVALUE, D3DVALUE, D3DVALUE) PURE;
-    STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
-    STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE3) PURE;
-    STDMETHOD(SetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE u, D3DVALUE v) PURE;
-    STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL2) PURE;
-    STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
-    STDMETHOD(GetVertex)(THIS_ DWORD index, D3DVECTOR *vertex, D3DVECTOR *normal) PURE;
-    STDMETHOD(GetVertices)(THIS_ DWORD *vertex_count, D3DVECTOR *coords, D3DVECTOR *normals);
-    STDMETHOD(GetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE *u, D3DVALUE *v) PURE;
-    STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
-    STDMETHOD(GetNormal)(THIS_ D3DVECTOR *) PURE;
-    STDMETHOD(GetTexture)(THIS_ LPDIRECT3DRMTEXTURE3 *) PURE;
-    STDMETHOD(GetMaterial)(THIS_ LPDIRECT3DRMMATERIAL2 *) PURE;
-    STDMETHOD_(int, GetVertexCount)(THIS) PURE;
-    STDMETHOD_(int, GetVertexIndex)(THIS_ DWORD which) PURE;
-    STDMETHOD_(int, GetTextureCoordinateIndex)(THIS_ DWORD which) PURE;
-    STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMFace2_QueryInterface(p,a,b)             (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMFace2_AddRef(p)                         (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMFace2_Release(p)                        (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMFace2_Clone(p,a,b,c)                    (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMFace2_AddDestroyCallback(p,a,b)         (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMFace2_DeleteDestroyCallback(p,a,b)      (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMFace2_SetAppData(p,a)                   (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMFace2_GetAppData(p)                     (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMFace2_SetName(p,a)                      (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMFace2_GetName(p,a,b)                    (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMFace2_GetClassName(p,a,b)               (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMFace methods ***/
-#define IDirect3DRMFace2_AddVertex(p,a,b,c)                (p)->lpVtbl->AddVertex(p,a,b,c)
-#define IDirect3DRMFace2_AddVertexAndNormalIndexed(p,a,b)  (p)->lpVtbl->AddVertexAndNormalIndexed(p,a,b)
-#define IDirect3DRMFace2_SetColorRGB(p,a,b,c)              (p)->lpVtbl->SetColorRGB(p,a,b,c)
-#define IDirect3DRMFace2_SetColor(p,a)                     (p)->lpVtbl->SetColor(p,a)
-#define IDirect3DRMFace2_SetTexture(p,a)                   (p)->lpVtbl->SetTexture(p,a)
-#define IDirect3DRMFace2_SetTextureCoordinates(p,a,b,c)    (p)->lpVtbl->SetTextureCoordinates(p,a,b,c)
-#define IDirect3DRMFace2_SetMaterial(p,a)                  (p)->lpVtbl->SetMaterial(p,a)
-#define IDirect3DRMFace2_SetTextureTopology(p,a,b)         (p)->lpVtbl->SetTextureTopology(p,a,b)
-#define IDirect3DRMFace2_GetVertex(p,a,b,c)                (p)->lpVtbl->GetVertex(p,a,b,c)
-#define IDirect3DRMFace2_GetVertices(p,a,b,c)              (p)->lpVtbl->GetVertices(p,a,b,c)
-#define IDirect3DRMFace2_GetTextureCoordinates(p,a,b,c)    (p)->lpVtbl->GetTextureCoordinates(p,a,b,c)
-#define IDirect3DRMFace2_GetTextureTopology(p,a,b)         (p)->lpVtbl->GetTextureTopology(p,a,b)
-#define IDirect3DRMFace2_GetNormal(p,a)                    (p)->lpVtbl->GetNormal(p,a)
-#define IDirect3DRMFace2_GetTexture(p,a)                   (p)->lpVtbl->GetTexture(p,a)
-#define IDirect3DRMFace2_GetVertexCount(p)                 (p)->lpVtbl->GetVertexCount(p)
-#define IDirect3DRMFace2_GetVertexIndex(p,a)               (p)->lpVtbl->GetVertexIndex(p,a)
-#define IDirect3DRMFace2_GetTextureCoordinateIndex(p,a)    (p)->lpVtbl->GetTextureCoordinateIndex(p,a)
-#define IDirect3DRMFace2_GetColor(p,a)                     (p)->lpVtbl->GetColor(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMFace2_QueryInterface(p,a,b)             (p)->QueryInterface(a,b)
-#define IDirect3DRMFace2_AddRef(p)                         (p)->AddRef()
-#define IDirect3DRMFace2_Release(p)                        (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMFace2_Clone(p,a,b,c)                    (p)->Clone(a,b,c)
-#define IDirect3DRMFace2_AddDestroyCallback(p,a,b)         (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMFace2_DeleteDestroyCallback(p,a,b)      (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMFace2_SetAppData(p,a)                   (p)->SetAppData(a)
-#define IDirect3DRMFace2_GetAppData(p)                     (p)->GetAppData()
-#define IDirect3DRMFace2_SetName(p,a)                      (p)->SetName(a)
-#define IDirect3DRMFace2_GetName(p,a,b)                    (p)->GetName(a,b)
-#define IDirect3DRMFace2_GetClassName(p,a,b)               (p)->GetClassName(a,b)
-/*** IDirect3DRMFace methods ***/
-#define IDirect3DRMFace2_AddVertex(p,a,b,c)                (p)->AddVertex(a,b,c)
-#define IDirect3DRMFace2_AddVertexAndNormalIndexed(p,a,b)  (p)->AddVertexAndNormalIndexed(a,b)
-#define IDirect3DRMFace2_SetColorRGB(p,a,b,c)              (p)->SetColorRGB(a,b,c)
-#define IDirect3DRMFace2_SetColor(p,a)                     (p)->SetColor(a)
-#define IDirect3DRMFace2_SetTexture(p,a)                   (p)->SetTexture(a)
-#define IDirect3DRMFace2_SetTextureCoordinates(p,a,b,c)    (p)->SetTextureCoordinates(a,b,c)
-#define IDirect3DRMFace2_SetMaterial(p,a)                  (p)->SetMaterial(a)
-#define IDirect3DRMFace2_SetTextureTopology(p,a,b)         (p)->SetTextureTopology(a,b)
-#define IDirect3DRMFace2_GetVertex(p,a,b,c)                (p)->GetVertex(a,b,c)
-#define IDirect3DRMFace2_GetVertices(p,a,b,c)              (p)->GetVertices(a,b,c)
-#define IDirect3DRMFace2_GetTextureCoordinates(p,a,b,c)    (p)->GetTextureCoordinates(a,b,c)
-#define IDirect3DRMFace2_GetTextureTopology(p,a,b)         (p)->GetTextureTopology(a,b)
-#define IDirect3DRMFace2_GetNormal(p,a)                    (p)->GetNormal(a)
-#define IDirect3DRMFace2_GetTexture(p,a)                   (p)->GetTexture(a)
-#define IDirect3DRMFace2_GetVertexCount(p)                 (p)->GetVertexCount()
-#define IDirect3DRMFace2_GetVertexIndex(p,a)               (p)->GetVertexIndex(a)
-#define IDirect3DRMFace2_GetTextureCoordinateIndex(p,a)    (p)->GetTextureCoordinateIndex(a)
-#define IDirect3DRMFace2_GetColor(p,a)                     (p)->GetColor(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMMeshBuilder interface
- */
-#define INTERFACE IDirect3DRMMeshBuilder
-DECLARE_INTERFACE_(IDirect3DRMMeshBuilder,IDirect3DRMVisual)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMMeshBuilder methods ***/
-    STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURECALLBACK, LPVOID pArg) PURE;
-    STDMETHOD(Save)(THIS_ const char *filename, D3DRMXOFFORMAT, D3DRMSAVEOPTIONS save) PURE;
-    STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
-    STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
-    STDMETHOD(SetColorSource)(THIS_ D3DRMCOLORSOURCE) PURE;
-    STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
-    STDMETHOD(GenerateNormals)(THIS) PURE;
-    STDMETHOD_(D3DRMCOLORSOURCE, GetColorSource)(THIS) PURE;
-    STDMETHOD(AddMesh)(THIS_ LPDIRECT3DRMMESH) PURE;
-    STDMETHOD(AddMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER) PURE;
-    STDMETHOD(AddFrame)(THIS_ LPDIRECT3DRMFRAME) PURE;
-    STDMETHOD(AddFace)(THIS_ LPDIRECT3DRMFACE) PURE;
-    STDMETHOD(AddFaces)(THIS_ DWORD vcount, D3DVECTOR *vertices, DWORD ncount, D3DVECTOR *normals, DWORD *data,
-        LPDIRECT3DRMFACEARRAY*) PURE;
-    STDMETHOD(ReserveSpace)(THIS_ DWORD vertex_Count, DWORD normal_count, DWORD face_count) PURE;
-    STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
-    STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
-    STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
-    STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL) PURE;
-    STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
-    STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
-    STDMETHOD(SetPerspective)(THIS_ BOOL) PURE;
-    STDMETHOD(SetVertex)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(SetNormal)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(SetTextureCoordinates)(THIS_ DWORD index, D3DVALUE u, D3DVALUE v) PURE;
-    STDMETHOD(SetVertexColor)(THIS_ DWORD index, D3DCOLOR) PURE;
-    STDMETHOD(SetVertexColorRGB)(THIS_ DWORD index, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
-    STDMETHOD(GetFaces)(THIS_ LPDIRECT3DRMFACEARRAY*) PURE;
-    STDMETHOD(GetVertices)(THIS_ DWORD *vcount, D3DVECTOR *vertices, DWORD *ncount, D3DVECTOR *normals,
-        DWORD *face_data_size, DWORD *face_data) PURE;
-    STDMETHOD(GetTextureCoordinates)(THIS_ DWORD index, D3DVALUE *u, D3DVALUE *v) PURE;
-    STDMETHOD_(int, AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD_(int, AddNormal)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(CreateFace)(THIS_ LPDIRECT3DRMFACE*) PURE;
-    STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
-    STDMETHOD_(BOOL, GetPerspective)(THIS) PURE;
-    STDMETHOD_(int, GetFaceCount)(THIS) PURE;
-    STDMETHOD_(int, GetVertexCount)(THIS) PURE;
-    STDMETHOD_(D3DCOLOR, GetVertexColor)(THIS_ DWORD index) PURE;
-    STDMETHOD(CreateMesh)(THIS_ LPDIRECT3DRMMESH*) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMMeshBuilder_QueryInterface(p,a,b)             (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMMeshBuilder_AddRef(p)                         (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMMeshBuilder_Release(p)                        (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMMeshBuilder_Clone(p,a,b,c)                    (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMMeshBuilder_AddDestroyCallback(p,a,b)         (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMMeshBuilder_DeleteDestroyCallback(p,a,b)      (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMMeshBuilder_SetAppData(p,a)                   (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMMeshBuilder_GetAppData(p)                     (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMMeshBuilder_SetName(p,a)                      (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMMeshBuilder_GetName(p,a,b)                    (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMMeshBuilder_GetClassName(p,a,b)               (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMMeshBuilder methods ***/
-#define IDirect3DRMMeshBuilder_Load(p,a,b,c,d,e)                 (p)->lpVtbl->Load(p,a,b,c,d,e)
-#define IDirect3DRMMeshBuilder_Save(p,a,b,c)                     (p)->lpVtbl->Save(p,a,b,c)
-#define IDirect3DRMMeshBuilder_Scale(p,a,b,c)                    (p)->lpVtbl->Scale(p,a,b,c)
-#define IDirect3DRMMeshBuilder_Translate(p,a,b,c)                (p)->lpVtbl->Translate(p,a)
-#define IDirect3DRMMeshBuilder_SetColorSource(p,a)               (p)->lpVtbl->SetColorSource(p,a,b,c)
-#define IDirect3DRMMeshBuilder_GetBox(p,a)                       (p)->lpVtbl->GetBox(p,a)
-#define IDirect3DRMMeshBuilder_GenerateNormals(p)                (p)->lpVtbl->GenerateNormals(p)
-#define IDirect3DRMMeshBuilder_GetColorSource(p)                 (p)->lpVtbl->GetColorSource(p)
-#define IDirect3DRMMeshBuilder_AddMesh(p,a)                      (p)->lpVtbl->AddMesh(p,a)
-#define IDirect3DRMMeshBuilder_AddMeshBuilder(p,a)               (p)->lpVtbl->AddMeshBuilder(p,a)
-#define IDirect3DRMMeshBuilder_AddFrame(p,a)                     (p)->lpVtbl->AddFrame(p,a)
-#define IDirect3DRMMeshBuilder_AddFace(p,a)                      (p)->lpVtbl->AddFace(p,a)
-#define IDirect3DRMMeshBuilder_AddFaces(p,a,b,c,d,e,f)           (p)->lpVtbl->AddFaces(p,a,b,c,d,e,f)
-#define IDirect3DRMMeshBuilder_ReserveSpace(p,a,b,c)             (p)->lpVtbl->ReserveSpace(p,a,b,c)
-#define IDirect3DRMMeshBuilder_SetColorRGB(p,a,b,c)              (p)->lpVtbl->SetColorRGB(p,a,b,c)
-#define IDirect3DRMMeshBuilder_SetColor(p,a)                     (p)->lpVtbl->SetColor(p,a)
-#define IDirect3DRMMeshBuilder_SetTexture(p,a)                   (p)->lpVtbl->SetTexture(p,a)
-#define IDirect3DRMMeshBuilder_SetMateria(p,a)                   (p)->lpVtbl->SetMateria(p,a)
-#define IDirect3DRMMeshBuilder_SetTextureTopology(p,a,b)         (p)->lpVtbl->SetTextureTopology(p,a,b)
-#define IDirect3DRMMeshBuilder_SetQuality(p,a)                   (p)->lpVtbl->SetQuality(p,a)
-#define IDirect3DRMMeshBuilder_SetPerspective(p,a)               (p)->lpVtbl->SetPerspective(p,a)
-#define IDirect3DRMMeshBuilder_SetVertex(p,a,b,c,d)              (p)->lpVtbl->SetVertex(p,a,b,c,d)
-#define IDirect3DRMMeshBuilder_SetNormal(p,a,b,c,d)              (p)->lpVtbl->SetNormal(p,a,b,c,d)
-#define IDirect3DRMMeshBuilder_SetTextureCoordinates(p,a,b,c)    (p)->lpVtbl->SetTextureCoordinates(p,a,b,c)
-#define IDirect3DRMMeshBuilder_SetVertexColor(p,a,b)             (p)->lpVtbl->SetVertexColor(p,a,b)
-#define IDirect3DRMMeshBuilder_SetVertexColorRGB(p,a,b,c,d)      (p)->lpVtbl->SetVertexColorRGB(p,a,b,c,d)
-#define IDirect3DRMMeshBuilder_GetFaces(p,a)                     (p)->lpVtbl->GetFaces(p,a)
-#define IDirect3DRMMeshBuilder_GetVertices(p,a,b,c,d,e,f)        (p)->lpVtbl->GetVertices(p,a,b,c,d,e,f)
-#define IDirect3DRMMeshBuilder_GetTextureCoordinates(p,a,b,c)    (p)->lpVtbl->GetTextureCoordinates(p,a,b,c)
-#define IDirect3DRMMeshBuilder_AddVertex(p,a,b,c)                (p)->lpVtbl->AddVertex(p,a,b,c)
-#define IDirect3DRMMeshBuilder_AddNormal(p,a,b,c)                (p)->lpVtbl->AddNormal(p,a,b,c)
-#define IDirect3DRMMeshBuilder_CreateFace(p,a)                   (p)->lpVtbl->CreateFace(p,a)
-#define IDirect3DRMMeshBuilder_GetQuality(p)                     (p)->lpVtbl->GetQuality(p)
-#define IDirect3DRMMeshBuilder_GetPerspective(p)                 (p)->lpVtbl->GetPerspective(p)
-#define IDirect3DRMMeshBuilder_GetFaceCount(p)                   (p)->lpVtbl->GetFaceCount(p)
-#define IDirect3DRMMeshBuilder_GetVertexCount(p)                 (p)->lpVtbl->GetVertexCount(p)
-#define IDirect3DRMMeshBuilder_GetVertexColor(p,a)               (p)->lpVtbl->GetVertexColor(p,a)
-#define IDirect3DRMMeshBuilder_CreateMesh(p,a)                   (p)->lpVtbl->CreateMesh(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMMeshBuilder_QueryInterface(p,a,b)             (p)->QueryInterface(a,b)
-#define IDirect3DRMMeshBuilder_AddRef(p)                         (p)->AddRef()
-#define IDirect3DRMMeshBuilder_Release(p)                        (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMMeshBuilder_Clone(p,a,b,c)                    (p)->Clone(a,b,c)
-#define IDirect3DRMMeshBuilder_AddDestroyCallback(p,a,b)         (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMMeshBuilder_DeleteDestroyCallback(p,a,b)      (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMMeshBuilder_SetAppData(p,a)                   (p)->SetAppData(a)
-#define IDirect3DRMMeshBuilder_GetAppData(p)                     (p)->GetAppData()
-#define IDirect3DRMMeshBuilder_SetName(p,a)                      (p)->SetName(a)
-#define IDirect3DRMMeshBuilder_GetName(p,a,b)                    (p)->GetName(a,b)
-#define IDirect3DRMMeshBuilder_GetClassName(p,a,b)               (p)->GetClassName(a,b)
-/*** IDirect3DRMMeshBuilder methods ***/
-#define IDirect3DRMMeshBuilder_Load(p,a,b,c,d,e)                 (p)->Load(a,b,c,d,e)
-#define IDirect3DRMMeshBuilder_Save(p,a,b,c)                     (p)->Save(a,b,c)
-#define IDirect3DRMMeshBuilder_Scale(p,a,b,c)                    (p)->Scale(a,b,c)
-#define IDirect3DRMMeshBuilder_Translate(p,a,b,c)                (p)->Translate(a)
-#define IDirect3DRMMeshBuilder_SetColorSource(p,a)               (p)->SetColorSource(a,b,c)
-#define IDirect3DRMMeshBuilder_GetBox(p,a)                       (p)->GetBox(a)
-#define IDirect3DRMMeshBuilder_GenerateNormals(p)                (p)->GenerateNormals()
-#define IDirect3DRMMeshBuilder_GetColorSource(p)                 (p)->GetColorSource()
-#define IDirect3DRMMeshBuilder_AddMesh(p,a)                      (p)-->AddMesh(a)
-#define IDirect3DRMMeshBuilder_AddMeshBuilder(p,a)               (p)->AddMeshBuilder(a)
-#define IDirect3DRMMeshBuilder_AddFrame(p,a)                     (p)->AddFrame(a)
-#define IDirect3DRMMeshBuilder_AddFace(p,a)                      (p)->AddFace(a)
-#define IDirect3DRMMeshBuilder_AddFaces(p,a,b,c,d,e,f)           (p)->AddFaces(a,b,c,d,e,f)
-#define IDirect3DRMMeshBuilder_ReserveSpace(p,a,b,c)             (p)->ReserveSpace(a,b,c)
-#define IDirect3DRMMeshBuilder_SetColorRGB(p,a,b,c)              (p)->SetColorRGB(a,b,c)
-#define IDirect3DRMMeshBuilder_SetColor(p,a)                     (p)->SetColor(a)
-#define IDirect3DRMMeshBuilder_SetTexture(p,a)                   (p)->SetTexture(a)
-#define IDirect3DRMMeshBuilder_SetMateria(p,a)                   (p)->SetMateria(a)
-#define IDirect3DRMMeshBuilder_SetTextureTopology(p,a,b)         (p)->SetTextureTopology(a,b)
-#define IDirect3DRMMeshBuilder_SetQuality(p,a)                   (p)->SetQuality(a)
-#define IDirect3DRMMeshBuilder_SetPerspective(p,a)               (p)->SetPerspective(a)
-#define IDirect3DRMMeshBuilder_SetVertex(p,a,b,c,d)              (p)->SetVertex(a,b,c,d)
-#define IDirect3DRMMeshBuilder_SetNormal(p,a,b,c,d)              (p)->SetNormal(a,b,c,d)
-#define IDirect3DRMMeshBuilder_SetTextureCoordinates(p,a,b,c)    (p)->SetTextureCoordinates(a,b,c)
-#define IDirect3DRMMeshBuilder_SetVertexColor(p,a,b)             (p)->SetVertexColor(a,b)
-#define IDirect3DRMMeshBuilder_SetVertexColorRGB(p,a,b,c,d)      (p)->SetVertexColorRGB(a,b,c,d)
-#define IDirect3DRMMeshBuilder_GetFaces(p,a)                     (p)->GetFaces(a)
-#define IDirect3DRMMeshBuilder_GetVertices(p,a,b,c,d,e,f)        (p)->GetVertices(a,b,c,d,e,f)
-#define IDirect3DRMMeshBuilder_GetTextureCoordinates(p,a,b,c)    (p)->GetTextureCoordinates(a,b,c)
-#define IDirect3DRMMeshBuilder_AddVertex(p,a,b,c)                (p)->AddVertex(a,b,c)
-#define IDirect3DRMMeshBuilder_AddNormal(p,a,b,c)                (p)->AddNormal(a,b,c)
-#define IDirect3DRMMeshBuilder_CreateFace(p,a)                   (p)->CreateFace(a)
-#define IDirect3DRMMeshBuilder_GetQuality(p)                     (p)->GetQuality()
-#define IDirect3DRMMeshBuilder_GetPerspective(p)                 (p)->GetPerspective()
-#define IDirect3DRMMeshBuilder_GetFaceCount(p)                   (p)->GetFaceCount()
-#define IDirect3DRMMeshBuilder_GetVertexCount(p)                 (p)->GetVertexCount()
-#define IDirect3DRMMeshBuilder_GetVertexColor(p,a)               (p)->GetVertexColor(a)
-#define IDirect3DRMMeshBuilder_CreateMesh(p,a)                   (p)->CreateMesh(a)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMMeshBuilder2 interface
- */
-#define INTERFACE IDirect3DRMMeshBuilder2
-DECLARE_INTERFACE_(IDirect3DRMMeshBuilder2,IDirect3DRMMeshBuilder)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMMeshBuilder methods ***/
-    STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURECALLBACK, LPVOID pArg) PURE;
-    STDMETHOD(Save)(THIS_ const char *filename, D3DRMXOFFORMAT, D3DRMSAVEOPTIONS save) PURE;
-    STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
-    STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
-    STDMETHOD(SetColorSource)(THIS_ D3DRMCOLORSOURCE) PURE;
-    STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
-    STDMETHOD(GenerateNormals)(THIS) PURE;
-    STDMETHOD_(D3DRMCOLORSOURCE, GetColorSource)(THIS) PURE;
-    STDMETHOD(AddMesh)(THIS_ LPDIRECT3DRMMESH) PURE;
-    STDMETHOD(AddMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER) PURE;
-    STDMETHOD(AddFrame)(THIS_ LPDIRECT3DRMFRAME) PURE;
-    STDMETHOD(AddFace)(THIS_ LPDIRECT3DRMFACE) PURE;
-    STDMETHOD(AddFaces)(THIS_ DWORD vcount, D3DVECTOR *vertices, DWORD ncount, D3DVECTOR *normals, DWORD *data,
-        LPDIRECT3DRMFACEARRAY*) PURE;
-    STDMETHOD(ReserveSpace)(THIS_ DWORD vertex_Count, DWORD normal_count, DWORD face_count) PURE;
-    STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
-    STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
-    STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
-    STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL) PURE;
-    STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
-    STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
-    STDMETHOD(SetPerspective)(THIS_ BOOL) PURE;
-    STDMETHOD(SetVertex)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(SetNormal)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(SetTextureCoordinates)(THIS_ DWORD index, D3DVALUE u, D3DVALUE v) PURE;
-    STDMETHOD(SetVertexColor)(THIS_ DWORD index, D3DCOLOR) PURE;
-    STDMETHOD(SetVertexColorRGB)(THIS_ DWORD index, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
-    STDMETHOD(GetFaces)(THIS_ LPDIRECT3DRMFACEARRAY*) PURE;
-    STDMETHOD(GetVertices)(THIS_ DWORD *vcount, D3DVECTOR *vertices, DWORD *ncount, D3DVECTOR *normals,
-        DWORD *face_data_size, DWORD *face_data) PURE;
-    STDMETHOD(GetTextureCoordinates)(THIS_ DWORD index, D3DVALUE *u, D3DVALUE *v) PURE;
-    STDMETHOD_(int, AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD_(int, AddNormal)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(CreateFace)(THIS_ LPDIRECT3DRMFACE*) PURE;
-    STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
-    STDMETHOD_(BOOL, GetPerspective)(THIS) PURE;
-    STDMETHOD_(int, GetFaceCount)(THIS) PURE;
-    STDMETHOD_(int, GetVertexCount)(THIS) PURE;
-    STDMETHOD_(D3DCOLOR, GetVertexColor)(THIS_ DWORD index) PURE;
-    STDMETHOD(CreateMesh)(THIS_ LPDIRECT3DRMMESH*) PURE;
-    /*** IDirect3DRMMeshBuilder2 methods ***/
-    STDMETHOD(GenerateNormals2)(THIS_ D3DVALUE crease, DWORD flags) PURE;
-    STDMETHOD(GetFace)(THIS_ DWORD index, LPDIRECT3DRMFACE*) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMMeshBuilder2_QueryInterface(p,a,b)            (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMMeshBuilder2_AddRef(p)                        (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMMeshBuilder2_Release(p)                       (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMMeshBuilder2_Clone(p,a,b,c)                   (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMMeshBuilder2_AddDestroyCallback(p,a,b)        (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMMeshBuilder2_DeleteDestroyCallback(p,a,b)     (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMMeshBuilder2_SetAppData(p,a)                  (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMMeshBuilder2_GetAppData(p)                    (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMMeshBuilder2_SetName(p,a)                     (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMMeshBuilder2_GetName(p,a,b)                   (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMMeshBuilder2_GetClassName(p,a,b)              (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMMeshBuilder methods ***/
-#define IDirect3DRMMeshBuilder2_Load(p,a,b,c,d,e)                (p)->lpVtbl->Load(p,a,b,c,d,e)
-#define IDirect3DRMMeshBuilder2_Save(p,a,b,c)                    (p)->lpVtbl->Save(p,a,b,c)
-#define IDirect3DRMMeshBuilder2_Scale(p,a,b,c)                   (p)->lpVtbl->Scale(p,a,b,c)
-#define IDirect3DRMMeshBuilder2_Translate(p,a,b,c)               (p)->lpVtbl->Translate(p,a)
-#define IDirect3DRMMeshBuilder2_SetColorSource(p,a)              (p)->lpVtbl->SetColorSource(p,a,b,c)
-#define IDirect3DRMMeshBuilder2_GetBox(p,a)                      (p)->lpVtbl->GetBox(p,a)
-#define IDirect3DRMMeshBuilder2_GenerateNormals(p)               (p)->lpVtbl->GenerateNormals(p)
-#define IDirect3DRMMeshBuilder2_GetColorSource(p)                (p)->lpVtbl->GetColorSource(p)
-#define IDirect3DRMMeshBuilder2_AddMesh(p,a)                     (p)->lpVtbl->AddMesh(p,a)
-#define IDirect3DRMMeshBuilder2_AddMeshBuilder(p,a)              (p)->lpVtbl->AddMeshBuilder(p,a)
-#define IDirect3DRMMeshBuilder2_AddFrame(p,a)                    (p)->lpVtbl->AddFrame(p,a)
-#define IDirect3DRMMeshBuilder2_AddFace(p,a)                     (p)->lpVtbl->AddFace(p,a)
-#define IDirect3DRMMeshBuilder2_AddFaces(p,a,b,c,d,e,f)          (p)->lpVtbl->AddFaces(p,a,b,c,d,e,f)
-#define IDirect3DRMMeshBuilder2_ReserveSpace(p,a,b,c)            (p)->lpVtbl->ReserveSpace(p,a,b,c)
-#define IDirect3DRMMeshBuilder2_SetColorRGB(p,a,b,c)             (p)->lpVtbl->SetColorRGB(p,a,b,c)
-#define IDirect3DRMMeshBuilder2_SetColor(p,a)                    (p)->lpVtbl->SetColor(p,a)
-#define IDirect3DRMMeshBuilder2_SetTexture(p,a)                  (p)->lpVtbl->SetTexture(p,a)
-#define IDirect3DRMMeshBuilder2_SetMateria(p,a)                  (p)->lpVtbl->SetMateria(p,a)
-#define IDirect3DRMMeshBuilder2_SetTextureTopology(p,a,b)        (p)->lpVtbl->SetTextureTopology(p,a,b)
-#define IDirect3DRMMeshBuilder2_SetQuality(p,a)                  (p)->lpVtbl->SetQuality(p,a)
-#define IDirect3DRMMeshBuilder2_SetPerspective(p,a)              (p)->lpVtbl->SetPerspective(p,a)
-#define IDirect3DRMMeshBuilder2_SetVertex(p,a,b,c,d)             (p)->lpVtbl->SetVertex(p,a,b,c,d)
-#define IDirect3DRMMeshBuilder2_SetNormal(p,a,b,c,d)             (p)->lpVtbl->SetNormal(p,a,b,c,d)
-#define IDirect3DRMMeshBuilder2_SetTextureCoordinates(p,a,b,c)   (p)->lpVtbl->SetTextureCoordinates(p,a,b,c)
-#define IDirect3DRMMeshBuilder2_SetVertexColor(p,a,b)            (p)->lpVtbl->SetVertexColor(p,a,b)
-#define IDirect3DRMMeshBuilder2_SetVertexColorRGB(p,a,b,c,d)     (p)->lpVtbl->SetVertexColorRGB(p,a,b,c,d)
-#define IDirect3DRMMeshBuilder2_GetFaces(p,a)                    (p)->lpVtbl->GetFaces(p,a)
-#define IDirect3DRMMeshBuilder2_GetVertices(p,a,b,c,d,e,f)       (p)->lpVtbl->GetVertices(p,a,b,c,d,e,f)
-#define IDirect3DRMMeshBuilder2_GetTextureCoordinates(p,a,b,c)   (p)->lpVtbl->GetTextureCoordinates(p,a,b,c)
-#define IDirect3DRMMeshBuilder2_AddVertex(p,a,b,c)               (p)->lpVtbl->AddVertex(p,a,b,c)
-#define IDirect3DRMMeshBuilder2_AddNormal(p,a,b,c)               (p)->lpVtbl->AddNormal(p,a,b,c)
-#define IDirect3DRMMeshBuilder2_CreateFace(p,a)                  (p)->lpVtbl->CreateFace(p,a)
-#define IDirect3DRMMeshBuilder2_GetQuality(p)                    (p)->lpVtbl->GetQuality(p)
-#define IDirect3DRMMeshBuilder2_GetPerspective(p)                (p)->lpVtbl->GetPerspective(p)
-#define IDirect3DRMMeshBuilder2_GetFaceCount(p)                  (p)->lpVtbl->GetFaceCount(p)
-#define IDirect3DRMMeshBuilder2_GetVertexCount(p)                (p)->lpVtbl->GetVertexCount(p)
-#define IDirect3DRMMeshBuilder2_GetVertexColor(p,a)              (p)->lpVtbl->GetVertexColor(p,a)
-#define IDirect3DRMMeshBuilder2_CreateMesh(p,a)                  (p)->lpVtbl->CreateMesh(p,a)
-/*** IDirect3DRMMeshBuilder2 methods ***/
-#define IDirect3DRMMeshBuilder2_GenerateNormals2(p,a,b)          (p)->lpVtbl->GenerateNormals2(p,a,b)
-#define IDirect3DRMMeshBuilder2_GetFace(p,a,b)                   (p)->lpVtbl->GetFace(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMMeshBuilder2_QueryInterface(p,a,b)            (p)->QueryInterface(a,b)
-#define IDirect3DRMMeshBuilder2_AddRef(p)                        (p)->AddRef()
-#define IDirect3DRMMeshBuilder2_Release(p)                       (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMMeshBuilder2_Clone(p,a,b,c)                   (p)->Clone(a,b,c)
-#define IDirect3DRMMeshBuilder2_AddDestroyCallback(p,a,b)        (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMMeshBuilder2_DeleteDestroyCallback(p,a,b)     (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMMeshBuilder2_SetAppData(p,a)                  (p)->SetAppData(a)
-#define IDirect3DRMMeshBuilder2_GetAppData(p)                    (p)->GetAppData()
-#define IDirect3DRMMeshBuilder2_SetName(p,a)                     (p)->SetName(a)
-#define IDirect3DRMMeshBuilder2_GetName(p,a,b)                   (p)->GetName(a,b)
-#define IDirect3DRMMeshBuilder2_GetClassName(p,a,b)              (p)->GetClassName(a,b)
-/*** IDirect3DRMMeshBuilder methods ***/
-#define IDirect3DRMMeshBuilder2_Load(p,a,b,c,d,e)                (p)->Load(a,b,c,d,e)
-#define IDirect3DRMMeshBuilder2_Save(p,a,b,c)                    (p)->Save(a,b,c)
-#define IDirect3DRMMeshBuilder2_Scale(p,a,b,c)                   (p)->Scale(a,b,c)
-#define IDirect3DRMMeshBuilder2_Translate(p,a,b,c)               (p)->Translate(a)
-#define IDirect3DRMMeshBuilder2_SetColorSource(p,a)              (p)->SetColorSource(a,b,c)
-#define IDirect3DRMMeshBuilder2_GetBox(p,a)                      (p)->GetBox(a)
-#define IDirect3DRMMeshBuilder2_GenerateNormals(p)               (p)->GenerateNormals()
-#define IDirect3DRMMeshBuilder2_GetColorSource(p)                (p)->GetColorSource()
-#define IDirect3DRMMeshBuilder2_AddMesh(p,a)                     (p)-->AddMesh(a)
-#define IDirect3DRMMeshBuilder2_AddMeshBuilder(p,a)              (p)->AddMeshBuilder(a)
-#define IDirect3DRMMeshBuilder2_AddFrame(p,a)                    (p)->AddFrame(a)
-#define IDirect3DRMMeshBuilder2_AddFace(p,a)                     (p)->AddFace(a)
-#define IDirect3DRMMeshBuilder2_AddFaces(p,a,b,c,d,e,f)          (p)->AddFaces(a,b,c,d,e,f)
-#define IDirect3DRMMeshBuilder2_ReserveSpace(p,a,b,c)            (p)->ReserveSpace(a,b,c)
-#define IDirect3DRMMeshBuilder2_SetColorRGB(p,a,b,c)             (p)->SetColorRGB(a,b,c)
-#define IDirect3DRMMeshBuilder2_SetColor(p,a)                    (p)->SetColor(a)
-#define IDirect3DRMMeshBuilder2_SetTexture(p,a)                  (p)->SetTexture(a)
-#define IDirect3DRMMeshBuilder2_SetMateria(p,a)                  (p)->SetMateria(a)
-#define IDirect3DRMMeshBuilder2_SetTextureTopology(p,a,b)        (p)->SetTextureTopology(a,b)
-#define IDirect3DRMMeshBuilder2_SetQuality(p,a)                  (p)->SetQuality(a)
-#define IDirect3DRMMeshBuilder2_SetPerspective(p,a)              (p)->SetPerspective(a)
-#define IDirect3DRMMeshBuilder2_SetVertex(p,a,b,c,d)             (p)->SetVertex(a,b,c,d)
-#define IDirect3DRMMeshBuilder2_SetNormal(p,a,b,c,d)             (p)->SetNormal(a,b,c,d)
-#define IDirect3DRMMeshBuilder2_SetTextureCoordinates(p,a,b,c)   (p)->SetTextureCoordinates(a,b,c)
-#define IDirect3DRMMeshBuilder2_SetVertexColor(p,a,b)            (p)->SetVertexColor(a,b)
-#define IDirect3DRMMeshBuilder2_SetVertexColorRGB(p,a,b,c,d)     (p)->SetVertexColorRGB(a,b,c,d)
-#define IDirect3DRMMeshBuilder2_GetFaces(p,a)                    (p)->GetFaces(a)
-#define IDirect3DRMMeshBuilder2_GetVertices(p,a,b,c,d,e,f)       (p)->GetVertices(a,b,c,d,e,f)
-#define IDirect3DRMMeshBuilder2_GetTextureCoordinates(p,a,b,c)   (p)->GetTextureCoordinates(a,b,c)
-#define IDirect3DRMMeshBuilder2_AddVertex(p,a,b,c)               (p)->AddVertex(a,b,c)
-#define IDirect3DRMMeshBuilder2_AddNormal(p,a,b,c)               (p)->AddNormal(a,b,c)
-#define IDirect3DRMMeshBuilder2_CreateFace(p,a)                  (p)->CreateFace(a)
-#define IDirect3DRMMeshBuilder2_GetQuality(p)                    (p)->GetQuality()
-#define IDirect3DRMMeshBuilder2_GetPerspective(p)                (p)->GetPerspective()
-#define IDirect3DRMMeshBuilder2_GetFaceCount(p)                  (p)->GetFaceCount()
-#define IDirect3DRMMeshBuilder2_GetVertexCount(p)                (p)->GetVertexCount()
-#define IDirect3DRMMeshBuilder2_GetVertexColor(p,a)              (p)->GetVertexColor(a)
-#define IDirect3DRMMeshBuilder2_CreateMesh(p,a)                  (p)->CreateMesh(a)
-/*** IDirect3DRMMeshBuilder2 methods ***/
-#define IDirect3DRMMeshBuilder2_GenerateNormals2(p,a,b)          (p)->GenerateNormals2(a,b)
-#define IDirect3DRMMeshBuilder2_GetFace(p,a,b)                   (p)->GetFace(a,b)
-#endif
-
-/*****************************************************************************
- * IDirect3DRMMeshBuilder3 interface
- */
-#define INTERFACE IDirect3DRMMeshBuilder3
-DECLARE_INTERFACE_(IDirect3DRMMeshBuilder3,IDirect3DRMVisual)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirect3DRMObject methods ***/
-    STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) PURE;
-    STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
-    STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
-    STDMETHOD(SetName)(THIS_ LPCSTR) PURE;
-    STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    STDMETHOD(GetClassName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
-    /*** IDirect3DRMMeshBuilder3 methods ***/
-    STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURE3CALLBACK, LPVOID pArg) PURE;
-    STDMETHOD(Save)(THIS_ const char *filename, D3DRMXOFFORMAT, D3DRMSAVEOPTIONS save) PURE;
-    STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
-    STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
-    STDMETHOD(SetColorSource)(THIS_ D3DRMCOLORSOURCE) PURE;
-    STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
-    STDMETHOD(GenerateNormals)(THIS_ D3DVALUE crease, DWORD flags) PURE;
-    STDMETHOD_(D3DRMCOLORSOURCE, GetColorSource)(THIS) PURE;
-    STDMETHOD(AddMesh)(THIS_ LPDIRECT3DRMMESH) PURE;
-    STDMETHOD(AddMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER3) PURE;
-    STDMETHOD(AddFrame)(THIS_ LPDIRECT3DRMFRAME3) PURE;
-    STDMETHOD(AddFace)(THIS_ LPDIRECT3DRMFACE2) PURE;
-    STDMETHOD(AddFaces)(THIS_ DWORD vcount, D3DVECTOR *vertices, DWORD ncount, D3DVECTOR *normals, DWORD *data,
-        LPDIRECT3DRMFACEARRAY*) PURE;
-    STDMETHOD(ReserveSpace)(THIS_ DWORD vertex_Count, DWORD normal_count, DWORD face_count) PURE;
-    STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
-    STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
-    STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE3) PURE;
-    STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL2) PURE;
-    STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
-    STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
-    STDMETHOD(SetPerspective)(THIS_ BOOL) PURE;
-    STDMETHOD(SetVertex)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(SetNormal)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(SetTextureCoordinates)(THIS_ DWORD index, D3DVALUE u, D3DVALUE v) PURE;
-    STDMETHOD(SetVertexColor)(THIS_ DWORD index, D3DCOLOR) PURE;
-    STDMETHOD(SetVertexColorRGB)(THIS_ DWORD index, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
-    STDMETHOD(GetFaces)(THIS_ LPDIRECT3DRMFACEARRAY*) PURE;
-    STDMETHOD(GetGeometry)(THIS_ DWORD *vcount, D3DVECTOR *vertices, DWORD *ncount, D3DVECTOR *normals,
-        DWORD *face_data_size, DWORD *face_data) PURE;
-    STDMETHOD(GetTextureCoordinates)(THIS_ DWORD index, D3DVALUE *u, D3DVALUE *v) PURE;
-    STDMETHOD_(int, AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD_(int, AddNormal)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
-    STDMETHOD(CreateFace)(THIS_ LPDIRECT3DRMFACE2*) PURE;
-    STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
-    STDMETHOD_(BOOL, GetPerspective)(THIS) PURE;
-    STDMETHOD_(int, GetFaceCount)(THIS) PURE;
-    STDMETHOD_(int, GetVertexCount)(THIS) PURE;
-    STDMETHOD_(D3DCOLOR, GetVertexColor)(THIS_ DWORD index) PURE;
-    STDMETHOD(CreateMesh)(THIS_ LPDIRECT3DRMMESH*) PURE;
-    STDMETHOD(GetFace)(THIS_ DWORD index, LPDIRECT3DRMFACE2 *) PURE;
-    STDMETHOD(GetVertex)(THIS_ DWORD index, LPD3DVECTOR pVector) PURE;
-    STDMETHOD(GetNormal)(THIS_ DWORD index, LPD3DVECTOR pVector) PURE;
-    STDMETHOD(DeleteVertices)(THIS_ DWORD IndexFirst, DWORD count) PURE;
-    STDMETHOD(DeleteNormals)(THIS_ DWORD IndexFirst, DWORD count) PURE;
-    STDMETHOD(DeleteFace)(THIS_ LPDIRECT3DRMFACE2) PURE;
-    STDMETHOD(Empty)(THIS_ DWORD flags) PURE;
-    STDMETHOD(Optimize)(THIS_ DWORD flags) PURE;
-    STDMETHOD(AddFacesIndexed)(THIS_ DWORD flags, DWORD *pvIndices, DWORD *pIndexFirst, DWORD *pCount) PURE;
-    STDMETHOD(CreateSubMesh)(THIS_ LPUNKNOWN *) PURE;
-    STDMETHOD(GetParentMesh)(THIS_ DWORD, LPUNKNOWN *) PURE;
-    STDMETHOD(GetSubMeshes)(THIS_ LPDWORD pCount, LPUNKNOWN *) PURE;
-    STDMETHOD(DeleteSubMesh)(THIS_ LPUNKNOWN) PURE;
-    STDMETHOD(Enable)(THIS_ DWORD) PURE;
-    STDMETHOD(GetEnable)(THIS_ DWORD *) PURE;
-    STDMETHOD(AddTriangles)(THIS_ DWORD flags, DWORD format, DWORD VertexCount, LPVOID pvData) PURE;
-    STDMETHOD(SetVertices)(THIS_ DWORD IndexFirst, DWORD count, LPD3DVECTOR) PURE;
-    STDMETHOD(GetVertices)(THIS_ DWORD IndexFirst, LPDWORD pCount, LPD3DVECTOR) PURE;
-    STDMETHOD(SetNormals)(THIS_ DWORD IndexFirst, DWORD count, LPD3DVECTOR) PURE;
-    STDMETHOD(GetNormals)(THIS_ DWORD IndexFirst, LPDWORD pCount, LPD3DVECTOR) PURE;
-    STDMETHOD_(int, GetNormalCount)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirect3DRMMeshBuilder3_QueryInterface(p,a,b)            (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirect3DRMMeshBuilder3_AddRef(p)                        (p)->lpVtbl->AddRef(p)
-#define IDirect3DRMMeshBuilder3_Release(p)                       (p)->lpVtbl->Release(p)
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMMeshBuilder3_Clone(p,a,b,c)                   (p)->lpVtbl->Clone(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_AddDestroyCallback(p,a,b)        (p)->lpVtbl->AddDestroyCallback(p,a,b)
-#define IDirect3DRMMeshBuilder3_DeleteDestroyCallback(p,a,b)     (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
-#define IDirect3DRMMeshBuilder3_SetAppData(p,a)                  (p)->lpVtbl->SetAppData(p,a)
-#define IDirect3DRMMeshBuilder3_GetAppData(p)                    (p)->lpVtbl->GetAppData(p)
-#define IDirect3DRMMeshBuilder3_SetName(p,a)                     (p)->lpVtbl->SetName(p,a)
-#define IDirect3DRMMeshBuilder3_GetName(p,a,b)                   (p)->lpVtbl->GetName(p,a,b)
-#define IDirect3DRMMeshBuilder3_GetClassName(p,a,b)              (p)->lpVtbl->GetClassName(p,a,b)
-/*** IDirect3DRMMeshBuilder3 methods ***/
-#define IDirect3DRMMeshBuilder3_Load(p,a,b,c,d,e)                (p)->lpVtbl->Load(p,a,b,c,d,e)
-#define IDirect3DRMMeshBuilder3_Save(p,a,b,c)                    (p)->lpVtbl->Save(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_Scale(p,a,b,c)                   (p)->lpVtbl->Scale(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_Translate(p,a,b,c)               (p)->lpVtbl->Translate(p,a)
-#define IDirect3DRMMeshBuilder3_SetColorSource(p,a)              (p)->lpVtbl->SetColorSource(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_GetBox(p,a)                      (p)->lpVtbl->GetBox(p,a)
-#define IDirect3DRMMeshBuilder3_GenerateNormals(p,a,b)           (p)->lpVtbl->GenerateNormals(p,a,b)
-#define IDirect3DRMMeshBuilder3_GetColorSource(p)                (p)->lpVtbl->GetColorSource(p)
-#define IDirect3DRMMeshBuilder3_AddMesh(p,a)                     (p)->lpVtbl->AddMesh(p,a)
-#define IDirect3DRMMeshBuilder3_AddMeshBuilder(p,a)              (p)->lpVtbl->AddMeshBuilder(p,a)
-#define IDirect3DRMMeshBuilder3_AddFrame(p,a)                    (p)->lpVtbl->AddFrame(p,a)
-#define IDirect3DRMMeshBuilder3_AddFace(p,a)                     (p)->lpVtbl->AddFace(p,a)
-#define IDirect3DRMMeshBuilder3_AddFaces(p,a,b,c,d,e,f)          (p)->lpVtbl->AddFaces(p,a,b,c,d,e,f)
-#define IDirect3DRMMeshBuilder3_ReserveSpace(p,a,b,c)            (p)->lpVtbl->ReserveSpace(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_SetColorRGB(p,a,b,c)             (p)->lpVtbl->SetColorRGB(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_SetColor(p,a)                    (p)->lpVtbl->SetColor(p,a)
-#define IDirect3DRMMeshBuilder3_SetTexture(p,a)                  (p)->lpVtbl->SetTexture(p,a)
-#define IDirect3DRMMeshBuilder3_SetMateria(p,a)                  (p)->lpVtbl->SetMateria(p,a)
-#define IDirect3DRMMeshBuilder3_SetTextureTopology(p,a,b)        (p)->lpVtbl->SetTextureTopology(p,a,b)
-#define IDirect3DRMMeshBuilder3_SetQuality(p,a)                  (p)->lpVtbl->SetQuality(p,a)
-#define IDirect3DRMMeshBuilder3_SetPerspective(p,a)              (p)->lpVtbl->SetPerspective(p,a)
-#define IDirect3DRMMeshBuilder3_SetVertex(p,a,b,c,d)             (p)->lpVtbl->SetVertex(p,a,b,c,d)
-#define IDirect3DRMMeshBuilder3_SetNormal(p,a,b,c,d)             (p)->lpVtbl->SetNormal(p,a,b,c,d)
-#define IDirect3DRMMeshBuilder3_SetTextureCoordinates(p,a,b,c)   (p)->lpVtbl->SetTextureCoordinates(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_SetVertexColor(p,a,b)            (p)->lpVtbl->SetVertexColor(p,a,b)
-#define IDirect3DRMMeshBuilder3_SetVertexColorRGB(p,a,b,c,d)     (p)->lpVtbl->SetVertexColorRGB(p,a,b,c,d)
-#define IDirect3DRMMeshBuilder3_GetFaces(p,a)                    (p)->lpVtbl->GetFaces(p,a)
-#define IDirect3DRMMeshBuilder3_GetGeometry(p,a,b,c,d,e,f)       (p)->lpVtbl->GetGeometry(p,a,b,c,d,e,f)
-#define IDirect3DRMMeshBuilder3_GetTextureCoordinates(p,a,b,c)   (p)->lpVtbl->GetTextureCoordinates(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_AddVertex(p,a,b,c)               (p)->lpVtbl->AddVertex(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_AddNormal(p,a,b,c)               (p)->lpVtbl->AddNormal(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_CreateFace(p,a)                  (p)->lpVtbl->CreateFace(p,a)
-#define IDirect3DRMMeshBuilder3_GetQuality(p)                    (p)->lpVtbl->GetQuality(p)
-#define IDirect3DRMMeshBuilder3_GetPerspective(p)                (p)->lpVtbl->GetPerspective(p)
-#define IDirect3DRMMeshBuilder3_GetFaceCount(p)                  (p)->lpVtbl->GetFaceCount(p)
-#define IDirect3DRMMeshBuilder3_GetVertexCount(p)                (p)->lpVtbl->GetVertexCount(p)
-#define IDirect3DRMMeshBuilder3_GetVertexColor(p,a)              (p)->lpVtbl->GetVertexColor(p,a)
-#define IDirect3DRMMeshBuilder3_CreateMesh(p,a)                  (p)->lpVtbl->CreateMesh(p,a)
-#define IDirect3DRMMeshBuilder3_GetFace(p,a,b)                   (p)->lpVtbl->GetFace(p,a,b)
-#define IDirect3DRMMeshBuilder3_GetVertex(p,a,b)                 (p)->lpVtbl->GetVertex(p,a,b)
-#define IDirect3DRMMeshBuilder3_GetNormal(p,a,b)                 (p)->lpVtbl->GetNormal(p,a,b)
-#define IDirect3DRMMeshBuilder3_DeleteVertices(p,a,b)            (p)->lpVtbl->DeleteVertices(p,a,b)
-#define IDirect3DRMMeshBuilder3_DeleteNormals(p,a,b)             (p)->lpVtbl->DeleteNormals(p,a,b)
-#define IDirect3DRMMeshBuilder3_DeleteFace(p,a)                  (p)->lpVtbl->DeleteFace(p,a)
-#define IDirect3DRMMeshBuilder3_Empty(p,a)                       (p)->lpVtbl->Empty(p,a)
-#define IDirect3DRMMeshBuilder3_Optimize(p,a)                    (p)->lpVtbl->Optimize(p,a)
-#define IDirect3DRMMeshBuilder3_AddFacesIndexed(p,a,b,c,d)       (p)->lpVtbl->AddFacesIndexed(p,a,b,c,d)
-#define IDirect3DRMMeshBuilder3_CreateSubMesh(p,a)               (p)->lpVtbl->CreateSubMesh(p,a)
-#define IDirect3DRMMeshBuilder3_GetParentMesh(p,a,b)             (p)->lpVtbl->GetParentMesh(p,a,b)
-#define IDirect3DRMMeshBuilder3_GetSubMeshes(p,a,b)              (p)->lpVtbl->GetSubMeshes(p,a,b)
-#define IDirect3DRMMeshBuilder3_DeleteSubMesh(p,a)               (p)->lpVtbl->DeleteSubMesh(p,a)
-#define IDirect3DRMMeshBuilder3_Enable(p,a)                      (p)->lpVtbl->Enable(p,a)
-#define IDirect3DRMMeshBuilder3_AddTriangles(p,a,b,c,d)          (p)->lpVtbl->AddTriangles(p,a,b,c,d)
-#define IDirect3DRMMeshBuilder3_SetVertices(p,a,b,c)             (p)->lpVtbl->SetVertices(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_GetVertices(p,a,b,c)             (p)->lpVtbl->GetVertices(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_SetNormals(p,a,b,c)              (p)->lpVtbl->SetNormals(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_GetNormals(p,a,b,c)              (p)->lpVtbl->GetNormals(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_GetNormalCount(p)                (p)->lpVtbl->GetNormalCount(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirect3DRMMeshBuilder3_QueryInterface(p,a,b)            (p)->QueryInterface(a,b)
-#define IDirect3DRMMeshBuilder3_AddRef(p)                        (p)->AddRef()
-#define IDirect3DRMMeshBuilder3_Release(p)                       (p)->Release()
-/*** IDirect3DRMObject methods ***/
-#define IDirect3DRMMeshBuilder3_Clone(p,a,b,c)                   (p)->Clone(a,b,c)
-#define IDirect3DRMMeshBuilder3_AddDestroyCallback(p,a,b)        (p)->AddDestroyCallback(a,b)
-#define IDirect3DRMMeshBuilder3_DeleteDestroyCallback(p,a,b)     (p)->DeleteDestroyCallback(a,b)
-#define IDirect3DRMMeshBuilder3_SetAppData(p,a)                  (p)->SetAppData(a)
-#define IDirect3DRMMeshBuilder3_GetAppData(p)                    (p)->GetAppData()
-#define IDirect3DRMMeshBuilder3_SetName(p,a)                     (p)->SetName(a)
-#define IDirect3DRMMeshBuilder3_GetName(p,a,b)                   (p)->GetName(a,b)
-#define IDirect3DRMMeshBuilder3_GetClassName(p,a,b)              (p)->GetClassName(a,b)
-/*** IDirect3DRMMeshBuilder3 methods ***/
-#define IDirect3DRMMeshBuilder3_Load(p,a,b,c,d,e)                (p)->Load(a,b,c,d,e)
-#define IDirect3DRMMeshBuilder3_Save(p,a,b,c)                    (p)->Save(a,b,c)
-#define IDirect3DRMMeshBuilder3_Scale(p,a,b,c)                   (p)->Scale(a,b,c)
-#define IDirect3DRMMeshBuilder3_Translate(p,a,b,c)               (p)->Translate(a)
-#define IDirect3DRMMeshBuilder3_SetColorSource(p,a)              (p)->SetColorSource(a,b,c)
-#define IDirect3DRMMeshBuilder3_GetBox(p,a)                      (p)->GetBox(a)
-#define IDirect3DRMMeshBuilder3_GenerateNormals(p,a,b)           (p)->GenerateNormals(a,b)
-#define IDirect3DRMMeshBuilder3_GetColorSource(p)                (p)->GetColorSource()
-#define IDirect3DRMMeshBuilder3_AddMesh(p,a)                     (p)-->AddMesh(a)
-#define IDirect3DRMMeshBuilder3_AddMeshBuilder(p,a)              (p)->AddMeshBuilder(a)
-#define IDirect3DRMMeshBuilder3_AddFrame(p,a)                    (p)->AddFrame(a)
-#define IDirect3DRMMeshBuilder3_AddFace(p,a)                     (p)->AddFace(a)
-#define IDirect3DRMMeshBuilder3_AddFaces(p,a,b,c,d,e,f)          (p)->AddFaces(a,b,c,d,e,f)
-#define IDirect3DRMMeshBuilder3_ReserveSpace(p,a,b,c)            (p)->ReserveSpace(a,b,c)
-#define IDirect3DRMMeshBuilder3_SetColorRGB(p,a,b,c)             (p)->SetColorRGB(a,b,c)
-#define IDirect3DRMMeshBuilder3_SetColor(p,a)                    (p)->SetColor(a)
-#define IDirect3DRMMeshBuilder3_SetTexture(p,a)                  (p)->SetTexture(a)
-#define IDirect3DRMMeshBuilder3_SetMateria(p,a)                  (p)->SetMateria(a)
-#define IDirect3DRMMeshBuilder3_SetTextureTopology(p,a,b)        (p)->SetTextureTopology(a,b)
-#define IDirect3DRMMeshBuilder3_SetQuality(p,a)                  (p)->SetQuality(a)
-#define IDirect3DRMMeshBuilder3_SetPerspective(p,a)              (p)->SetPerspective(a)
-#define IDirect3DRMMeshBuilder3_SetVertex(p,a,b,c,d)             (p)->SetVertex(a,b,c,d)
-#define IDirect3DRMMeshBuilder3_SetNormal(p,a,b,c,d)             (p)->SetNormal(a,b,c,d)
-#define IDirect3DRMMeshBuilder3_SetTextureCoordinates(p,a,b,c)   (p)->SetTextureCoordinates(a,b,c)
-#define IDirect3DRMMeshBuilder3_SetVertexColor(p,a,b)            (p)->SetVertexColor(a,b)
-#define IDirect3DRMMeshBuilder3_SetVertexColorRGB(p,a,b,c,d)     (p)->SetVertexColorRGB(a,b,c,d)
-#define IDirect3DRMMeshBuilder3_GetFaces(p,a)                    (p)->GetFaces(a)
-#define IDirect3DRMMeshBuilder3_GetGeometry(p,a,b,c,d,e,f)       (p)->GetGeometry(a,b,c,d,e,f)
-#define IDirect3DRMMeshBuilder3_GetTextureCoordinates(p,a,b,c)   (p)->GetTextureCoordinates(a,b,c)
-#define IDirect3DRMMeshBuilder3_AddVertex(p,a,b,c)               (p)->AddVertex(a,b,c)
-#define IDirect3DRMMeshBuilder3_AddNormal(p,a,b,c)               (p)->AddNormal(a,b,c)
-#define IDirect3DRMMeshBuilder3_CreateFace(p,a)                  (p)->CreateFace(a)
-#define IDirect3DRMMeshBuilder3_GetQuality(p)                    (p)->GetQuality()
-#define IDirect3DRMMeshBuilder3_GetPerspective(p)                (p)->GetPerspective()
-#define IDirect3DRMMeshBuilder3_GetFaceCount(p)                  (p)->GetFaceCount()
-#define IDirect3DRMMeshBuilder3_GetVertexCount(p)                (p)->GetVertexCount()
-#define IDirect3DRMMeshBuilder3_GetVertexColor(p,a)              (p)->GetVertexColor(a)
-#define IDirect3DRMMeshBuilder3_CreateMesh(p,a)                  (p)->CreateMesh(a)
-#define IDirect3DRMMeshBuilder3_GetFace(p,a,b)                   (p)->GetFace(p,a,b)
-#define IDirect3DRMMeshBuilder3_GetVertex(p,a,b)                 (p)->GetVertex(p,a,b)
-#define IDirect3DRMMeshBuilder3_GetNormal(p,a,b)                 (p)->GetNormal(p,a,b)
-#define IDirect3DRMMeshBuilder3_DeleteVertices(p,a,b)            (p)->DeleteVertices(p,a,b)
-#define IDirect3DRMMeshBuilder3_DeleteNormals(p,a,b)             (p)->DeleteNormals(p,a,b)
-#define IDirect3DRMMeshBuilder3_DeleteFace(p,a)                  (p)->DeleteFace(p,a)
-#define IDirect3DRMMeshBuilder3_Empty(p,a)                       (p)->Empty(p,a)
-#define IDirect3DRMMeshBuilder3_Optimize(p,a)                    (p)->Optimize(p,a)
-#define IDirect3DRMMeshBuilder3_AddFacesIndexed(p,a,b,c,d)       (p)->AddFacesIndexed(p,a,b,c,d)
-#define IDirect3DRMMeshBuilder3_CreateSubMesh(p,a)               (p)->CreateSubMesh(p,a)
-#define IDirect3DRMMeshBuilder3_GetParentMesh(p,a,b)             (p)->GetParentMesh(p,a,b)
-#define IDirect3DRMMeshBuilder3_GetSubMeshes(p,a,b)              (p)->GetSubMeshes(p,a,b)
-#define IDirect3DRMMeshBuilder3_DeleteSubMesh(p,a)               (p)->DeleteSubMesh(p,a)
-#define IDirect3DRMMeshBuilder3_Enable(p,a)                      (p)->Enable(p,a)
-#define IDirect3DRMMeshBuilder3_AddTriangles(p,a,b,c,d)          (p)->AddTriangles(p,a,b,c,d)
-#define IDirect3DRMMeshBuilder3_SetVertices(p,a,b,c)             (p)->SetVertices(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_GetVertices(p,a,b,c)             (p)->GetVertices(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_SetNormals(p,a,b,c)              (p)->SetNormals(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_GetNormals(p,a,b,c)              (p)->GetNormals(p,a,b,c)
-#define IDirect3DRMMeshBuilder3_GetNormalCount(p)                (p)->GetNormalCount(p,a)
-#endif
-
-#ifdef __cplusplus
-};
-#endif
-
-#endif /* __D3DRMOBJ_H__ */
diff --git a/misc/builddeps/win64/dx/include/d3dtypes.h b/misc/builddeps/win64/dx/include/d3dtypes.h
deleted file mode 100644 (file)
index 2ac2cff..0000000
+++ /dev/null
@@ -1,1374 +0,0 @@
-/*
- * Copyright (C) 2000 Peter Hunnisett
- *
- * 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
- */
-
-/* FIXME: Need to add C++ code for certain structs for headers - this is going to be a problem
-          if WINE continues to only use C code  - I suppose that we could always inline in
-          the header file to get around that little problem... */
-/* FIXME: We need to implement versioning on everything directx 5 and up if these headers
-          are going to be generically useful for directx stuff */
-
-#ifndef __WINE_D3DTYPES_H
-#define __WINE_D3DTYPES_H
-
-#include <_mingw_dxhelper.h>
-
-#ifndef __WINESRC__
-# include <windows.h>
-#endif
-
-#include <float.h>
-#include <ddraw.h>
-
-#define D3DVALP(val, prec)      ((float)(val))
-#define D3DVAL(val)             ((float)(val))
-#define D3DDivide(a, b)         (float)((double) (a) / (double) (b))
-#define D3DMultiply(a, b)       ((a) * (b))
-
-typedef LONG D3DFIXED;
-
-
-#ifndef RGB_MAKE
-#define CI_GETALPHA(ci)    ((ci) >> 24)
-#define CI_GETINDEX(ci)    (((ci) >> 8) & 0xffff)
-#define CI_GETFRACTION(ci) ((ci) & 0xff)
-#define CI_ROUNDINDEX(ci)  CI_GETINDEX((ci) + 0x80)
-#define CI_MASKALPHA(ci)   ((ci) & 0xffffff)
-#define CI_MAKE(a, i, f)    (((a) << 24) | ((i) << 8) | (f))
-
-#define RGBA_GETALPHA(rgb)      ((rgb) >> 24)
-#define RGBA_GETRED(rgb)        (((rgb) >> 16) & 0xff)
-#define RGBA_GETGREEN(rgb)      (((rgb) >> 8) & 0xff)
-#define RGBA_GETBLUE(rgb)       ((rgb) & 0xff)
-#define RGBA_MAKE(r, g, b, a)   ((D3DCOLOR) (((a) << 24) | ((r) << 16) | ((g) << 8) | (b)))
-
-#define D3DRGB(r, g, b) \
-    (0xff000000 | ( ((LONG)((r) * 255)) << 16) | (((LONG)((g) * 255)) << 8) | (LONG)((b) * 255))
-#define D3DRGBA(r, g, b, a) \
-    (   (((LONG)((a) * 255)) << 24) | (((LONG)((r) * 255)) << 16) \
-    |   (((LONG)((g) * 255)) << 8) | (LONG)((b) * 255) \
-    )
-
-#define RGB_GETRED(rgb)         (((rgb) >> 16) & 0xff)
-#define RGB_GETGREEN(rgb)       (((rgb) >> 8) & 0xff)
-#define RGB_GETBLUE(rgb)        ((rgb) & 0xff)
-#define RGBA_SETALPHA(rgba, x) (((x) << 24) | ((rgba) & 0x00ffffff))
-#define RGB_MAKE(r, g, b)       ((D3DCOLOR) (((r) << 16) | ((g) << 8) | (b)))
-#define RGBA_TORGB(rgba)       ((D3DCOLOR) ((rgba) & 0xffffff))
-#define RGB_TORGBA(rgb)        ((D3DCOLOR) ((rgb) | 0xff000000))
-
-#endif
-
-#define D3DENUMRET_CANCEL                        DDENUMRET_CANCEL
-#define D3DENUMRET_OK                            DDENUMRET_OK
-
-typedef HRESULT (CALLBACK *LPD3DVALIDATECALLBACK)(LPVOID lpUserArg, DWORD dwOffset);
-typedef HRESULT (CALLBACK *LPD3DENUMTEXTUREFORMATSCALLBACK)(LPDDSURFACEDESC lpDdsd, LPVOID lpContext);
-typedef HRESULT (CALLBACK *LPD3DENUMPIXELFORMATSCALLBACK)(LPDDPIXELFORMAT lpDDPixFmt, LPVOID lpContext);
-
-#ifndef DX_SHARED_DEFINES
-
-typedef float D3DVALUE,*LPD3DVALUE;
-
-#ifndef D3DCOLOR_DEFINED
-typedef DWORD D3DCOLOR, *LPD3DCOLOR;
-#define D3DCOLOR_DEFINED
-#endif
-
-#ifndef D3DVECTOR_DEFINED
-typedef struct _D3DVECTOR {
-  union {
-        D3DVALUE        x;
-    D3DVALUE dvX;
-  } DUMMYUNIONNAME1;
-  union {
-        D3DVALUE        y;
-    D3DVALUE dvY;
-  } DUMMYUNIONNAME2;
-  union {
-        D3DVALUE        z;
-    D3DVALUE dvZ;
-  } DUMMYUNIONNAME3;
-#if defined(__cplusplus) && defined(D3D_OVERLOADS)
-  /* the definitions for these methods are in d3dvec.inl */
-public:
-  /*** constructors ***/
-  _D3DVECTOR() {}
-  _D3DVECTOR(D3DVALUE f);
-  _D3DVECTOR(D3DVALUE _x, D3DVALUE _y, D3DVALUE _z);
-  _D3DVECTOR(const D3DVALUE f[3]);
-
-  /*** assignment operators ***/
-  _D3DVECTOR& operator += (const _D3DVECTOR& v);
-  _D3DVECTOR& operator -= (const _D3DVECTOR& v);
-  _D3DVECTOR& operator *= (const _D3DVECTOR& v);
-  _D3DVECTOR& operator /= (const _D3DVECTOR& v);
-  _D3DVECTOR& operator *= (D3DVALUE s);
-  _D3DVECTOR& operator /= (D3DVALUE s);
-
-  /*** unary operators ***/
-  friend _D3DVECTOR operator + (const _D3DVECTOR& v);
-  friend _D3DVECTOR operator - (const _D3DVECTOR& v);
-
-  /*** binary operators ***/
-  friend _D3DVECTOR operator + (const _D3DVECTOR& v1, const _D3DVECTOR& v2);
-  friend _D3DVECTOR operator - (const _D3DVECTOR& v1, const _D3DVECTOR& v2);
-
-  friend _D3DVECTOR operator * (const _D3DVECTOR& v, D3DVALUE s);
-  friend _D3DVECTOR operator * (D3DVALUE s, const _D3DVECTOR& v);
-  friend _D3DVECTOR operator / (const _D3DVECTOR& v, D3DVALUE s);
-
-  friend D3DVALUE SquareMagnitude(const _D3DVECTOR& v);
-  friend D3DVALUE Magnitude(const _D3DVECTOR& v);
-
-  friend _D3DVECTOR Normalize(const _D3DVECTOR& v);
-
-  friend D3DVALUE DotProduct(const _D3DVECTOR& v1, const _D3DVECTOR& v2);
-  friend _D3DVECTOR CrossProduct(const _D3DVECTOR& v1, const _D3DVECTOR& v2);
-#endif
-} D3DVECTOR;
-#define D3DVECTOR_DEFINED
-#endif
-
-#ifndef LPD3DVECTOR_DEFINED
-typedef D3DVECTOR *LPD3DVECTOR;
-#define LPD3DVECTOR_DEFINED
-#endif
-
-#define DX_SHARED_DEFINES
-#endif /* DX_SHARED_DEFINES */
-
-typedef DWORD D3DMATERIALHANDLE, *LPD3DMATERIALHANDLE;
-typedef DWORD D3DTEXTUREHANDLE,  *LPD3DTEXTUREHANDLE;
-typedef DWORD D3DMATRIXHANDLE,   *LPD3DMATRIXHANDLE;
-
-typedef struct _D3DCOLORVALUE {
-        union {
-                D3DVALUE r;
-                D3DVALUE dvR;
-        } DUMMYUNIONNAME1;
-        union {
-                D3DVALUE g;
-                D3DVALUE dvG;
-        } DUMMYUNIONNAME2;
-        union {
-                D3DVALUE b;
-                D3DVALUE dvB;
-        } DUMMYUNIONNAME3;
-        union {
-                D3DVALUE a;
-                D3DVALUE dvA;
-        } DUMMYUNIONNAME4;
-} D3DCOLORVALUE,*LPD3DCOLORVALUE;
-
-typedef struct _D3DRECT {
-  union {
-    LONG x1;
-    LONG lX1;
-  } DUMMYUNIONNAME1;
-  union {
-    LONG y1;
-    LONG lY1;
-  } DUMMYUNIONNAME2;
-  union {
-    LONG x2;
-    LONG lX2;
-  } DUMMYUNIONNAME3;
-  union {
-    LONG y2;
-    LONG lY2;
-  } DUMMYUNIONNAME4;
-} D3DRECT, *LPD3DRECT;
-
-typedef struct _D3DHVERTEX {
-    DWORD         dwFlags;
- union {
-    D3DVALUE    hx;
-    D3DVALUE    dvHX;
-  } DUMMYUNIONNAME1;
-  union {
-    D3DVALUE    hy;
-    D3DVALUE    dvHY;
-  } DUMMYUNIONNAME2;
-  union {
-    D3DVALUE    hz;
-    D3DVALUE    dvHZ;
-  } DUMMYUNIONNAME3;
-} D3DHVERTEX, *LPD3DHVERTEX;
-
-/*
- * Transformed/lit vertices
- */
-typedef struct _D3DTLVERTEX {
-  union {
-    D3DVALUE    sx;
-    D3DVALUE    dvSX;
-  } DUMMYUNIONNAME1;
-  union {
-    D3DVALUE    sy;
-    D3DVALUE    dvSY;
-  } DUMMYUNIONNAME2;
-  union {
-    D3DVALUE    sz;
-    D3DVALUE    dvSZ;
-  } DUMMYUNIONNAME3;
-  union {
-    D3DVALUE    rhw;
-    D3DVALUE    dvRHW;
-  } DUMMYUNIONNAME4;
-  union {
-    D3DCOLOR    color;
-    D3DCOLOR    dcColor;
-  } DUMMYUNIONNAME5;
-  union {
-    D3DCOLOR    specular;
-    D3DCOLOR    dcSpecular;
-  } DUMMYUNIONNAME6;
-  union {
-    D3DVALUE    tu;
-    D3DVALUE    dvTU;
-  } DUMMYUNIONNAME7;
-  union {
-    D3DVALUE    tv;
-    D3DVALUE    dvTV;
-  } DUMMYUNIONNAME8;
-#if defined(__cplusplus) && defined(D3D_OVERLOADS)
-public:
-  _D3DTLVERTEX() {}
-  _D3DTLVERTEX(const D3DVECTOR& v, float _rhw, D3DCOLOR _color, D3DCOLOR _specular, float _tu, float _tv) {
-    sx = v.x; sy = v.y; sz = v.z; rhw = _rhw;
-    color = _color; specular = _specular;
-    tu = _tu; tv = _tv;
-  }
-#endif
-} D3DTLVERTEX, *LPD3DTLVERTEX;
-
-typedef struct _D3DLVERTEX {
-  union {
-    D3DVALUE x;
-    D3DVALUE dvX;
-  } DUMMYUNIONNAME1;
-  union {
-    D3DVALUE y;
-    D3DVALUE dvY;
-  } DUMMYUNIONNAME2;
-  union {
-    D3DVALUE z;
-    D3DVALUE dvZ;
-  } DUMMYUNIONNAME3;
-  DWORD            dwReserved;
-  union {
-    D3DCOLOR     color;
-    D3DCOLOR     dcColor;
-  } DUMMYUNIONNAME4;
-  union {
-    D3DCOLOR     specular;
-    D3DCOLOR     dcSpecular;
-  } DUMMYUNIONNAME5;
-  union {
-    D3DVALUE     tu;
-    D3DVALUE     dvTU;
-  } DUMMYUNIONNAME6;
-  union {
-    D3DVALUE     tv;
-    D3DVALUE     dvTV;
-  } DUMMYUNIONNAME7;
-} D3DLVERTEX, *LPD3DLVERTEX;
-
-typedef struct _D3DVERTEX {
-  union {
-    D3DVALUE     x;
-    D3DVALUE     dvX;
-  } DUMMYUNIONNAME1;
-  union {
-    D3DVALUE     y;
-    D3DVALUE     dvY;
-  } DUMMYUNIONNAME2;
-  union {
-    D3DVALUE     z;
-    D3DVALUE     dvZ;
-  } DUMMYUNIONNAME3;
-  union {
-    D3DVALUE     nx;
-    D3DVALUE     dvNX;
-  } DUMMYUNIONNAME4;
-  union {
-    D3DVALUE     ny;
-    D3DVALUE     dvNY;
-  } DUMMYUNIONNAME5;
-  union {
-    D3DVALUE     nz;
-    D3DVALUE     dvNZ;
-  } DUMMYUNIONNAME6;
-  union {
-    D3DVALUE     tu;
-    D3DVALUE     dvTU;
-  } DUMMYUNIONNAME7;
-  union {
-    D3DVALUE     tv;
-    D3DVALUE     dvTV;
-  } DUMMYUNIONNAME8;
-#if defined(__cplusplus) && defined(D3D_OVERLOADS)
-public:
-  _D3DVERTEX() {}
-  _D3DVERTEX(const D3DVECTOR& v, const D3DVECTOR& n, float _tu, float _tv) {
-    x  = v.x; y  = v.y; z  = v.z;
-    nx = n.x; ny = n.y; nz = n.z;
-    tu = _tu; tv = _tv;
-  }
-#endif
-} D3DVERTEX, *LPD3DVERTEX;
-
-typedef struct _D3DMATRIX {
-  D3DVALUE        _11, _12, _13, _14;
-  D3DVALUE        _21, _22, _23, _24;
-  D3DVALUE        _31, _32, _33, _34;
-  D3DVALUE        _41, _42, _43, _44;
-#if defined(__cplusplus) && defined(D3D_OVERLOADS)
-  _D3DMATRIX() { }
-
-    /* This is different from MS, but avoids anonymous structs. */
-    D3DVALUE &operator () (int r, int c)
-       { return ((D3DVALUE [4][4])&_11)[r][c]; }
-    const D3DVALUE &operator() (int r, int c) const
-       { return ((const D3DVALUE [4][4])&_11)[r][c]; }
-#endif
-} D3DMATRIX, *LPD3DMATRIX;
-
-#if defined(__cplusplus) && defined(D3D_OVERLOADS)
-#include <d3dvec.inl>
-#endif
-
-typedef struct _D3DVIEWPORT {
-  DWORD       dwSize;
-  DWORD       dwX;
-  DWORD       dwY;
-  DWORD       dwWidth;
-  DWORD       dwHeight;
-  D3DVALUE    dvScaleX;
-  D3DVALUE    dvScaleY;
-  D3DVALUE    dvMaxX;
-  D3DVALUE    dvMaxY;
-  D3DVALUE    dvMinZ;
-  D3DVALUE    dvMaxZ;
-} D3DVIEWPORT, *LPD3DVIEWPORT;
-
-typedef struct _D3DVIEWPORT2 {
-  DWORD       dwSize;
-  DWORD       dwX;
-  DWORD       dwY;
-  DWORD       dwWidth;
-  DWORD       dwHeight;
-  D3DVALUE    dvClipX;
-  D3DVALUE    dvClipY;
-  D3DVALUE    dvClipWidth;
-  D3DVALUE    dvClipHeight;
-  D3DVALUE    dvMinZ;
-  D3DVALUE    dvMaxZ;
-} D3DVIEWPORT2, *LPD3DVIEWPORT2;
-
-typedef struct _D3DVIEWPORT7 {
-  DWORD       dwX;
-  DWORD       dwY;
-  DWORD       dwWidth;
-  DWORD       dwHeight;
-  D3DVALUE    dvMinZ;
-  D3DVALUE    dvMaxZ;
-} D3DVIEWPORT7, *LPD3DVIEWPORT7;
-
-#define D3DMAXUSERCLIPPLANES 32
-
-#define D3DCLIPPLANE0 (1 << 0)
-#define D3DCLIPPLANE1 (1 << 1)
-#define D3DCLIPPLANE2 (1 << 2)
-#define D3DCLIPPLANE3 (1 << 3)
-#define D3DCLIPPLANE4 (1 << 4)
-#define D3DCLIPPLANE5 (1 << 5)
-
-#define D3DCLIP_LEFT     0x00000001
-#define D3DCLIP_RIGHT    0x00000002
-#define D3DCLIP_TOP      0x00000004
-#define D3DCLIP_BOTTOM   0x00000008
-#define D3DCLIP_FRONT    0x00000010
-#define D3DCLIP_BACK     0x00000020
-#define D3DCLIP_GEN0     0x00000040
-#define D3DCLIP_GEN1     0x00000080
-#define D3DCLIP_GEN2     0x00000100
-#define D3DCLIP_GEN3     0x00000200
-#define D3DCLIP_GEN4     0x00000400
-#define D3DCLIP_GEN5     0x00000800
-
-#define D3DSTATUS_CLIPUNIONLEFT                 D3DCLIP_LEFT
-#define D3DSTATUS_CLIPUNIONRIGHT                D3DCLIP_RIGHT
-#define D3DSTATUS_CLIPUNIONTOP                  D3DCLIP_TOP
-#define D3DSTATUS_CLIPUNIONBOTTOM               D3DCLIP_BOTTOM
-#define D3DSTATUS_CLIPUNIONFRONT                D3DCLIP_FRONT
-#define D3DSTATUS_CLIPUNIONBACK                 D3DCLIP_BACK
-#define D3DSTATUS_CLIPUNIONGEN0                 D3DCLIP_GEN0
-#define D3DSTATUS_CLIPUNIONGEN1                 D3DCLIP_GEN1
-#define D3DSTATUS_CLIPUNIONGEN2                 D3DCLIP_GEN2
-#define D3DSTATUS_CLIPUNIONGEN3                 D3DCLIP_GEN3
-#define D3DSTATUS_CLIPUNIONGEN4                 D3DCLIP_GEN4
-#define D3DSTATUS_CLIPUNIONGEN5                 D3DCLIP_GEN5
-
-#define D3DSTATUS_CLIPINTERSECTIONLEFT          0x00001000
-#define D3DSTATUS_CLIPINTERSECTIONRIGHT         0x00002000
-#define D3DSTATUS_CLIPINTERSECTIONTOP           0x00004000
-#define D3DSTATUS_CLIPINTERSECTIONBOTTOM        0x00008000
-#define D3DSTATUS_CLIPINTERSECTIONFRONT         0x00010000
-#define D3DSTATUS_CLIPINTERSECTIONBACK          0x00020000
-#define D3DSTATUS_CLIPINTERSECTIONGEN0          0x00040000
-#define D3DSTATUS_CLIPINTERSECTIONGEN1          0x00080000
-#define D3DSTATUS_CLIPINTERSECTIONGEN2          0x00100000
-#define D3DSTATUS_CLIPINTERSECTIONGEN3          0x00200000
-#define D3DSTATUS_CLIPINTERSECTIONGEN4          0x00400000
-#define D3DSTATUS_CLIPINTERSECTIONGEN5          0x00800000
-#define D3DSTATUS_ZNOTVISIBLE                   0x01000000
-
-#define D3DSTATUS_CLIPUNIONALL  (               \
-            D3DSTATUS_CLIPUNIONLEFT     |       \
-            D3DSTATUS_CLIPUNIONRIGHT    |       \
-            D3DSTATUS_CLIPUNIONTOP      |       \
-            D3DSTATUS_CLIPUNIONBOTTOM   |       \
-            D3DSTATUS_CLIPUNIONFRONT    |       \
-            D3DSTATUS_CLIPUNIONBACK     |       \
-            D3DSTATUS_CLIPUNIONGEN0     |       \
-            D3DSTATUS_CLIPUNIONGEN1     |       \
-            D3DSTATUS_CLIPUNIONGEN2     |       \
-            D3DSTATUS_CLIPUNIONGEN3     |       \
-            D3DSTATUS_CLIPUNIONGEN4     |       \
-            D3DSTATUS_CLIPUNIONGEN5             \
-            )
-
-#define D3DSTATUS_CLIPINTERSECTIONALL   (               \
-            D3DSTATUS_CLIPINTERSECTIONLEFT      |       \
-            D3DSTATUS_CLIPINTERSECTIONRIGHT     |       \
-            D3DSTATUS_CLIPINTERSECTIONTOP       |       \
-            D3DSTATUS_CLIPINTERSECTIONBOTTOM    |       \
-            D3DSTATUS_CLIPINTERSECTIONFRONT     |       \
-            D3DSTATUS_CLIPINTERSECTIONBACK      |       \
-            D3DSTATUS_CLIPINTERSECTIONGEN0      |       \
-            D3DSTATUS_CLIPINTERSECTIONGEN1      |       \
-            D3DSTATUS_CLIPINTERSECTIONGEN2      |       \
-            D3DSTATUS_CLIPINTERSECTIONGEN3      |       \
-            D3DSTATUS_CLIPINTERSECTIONGEN4      |       \
-            D3DSTATUS_CLIPINTERSECTIONGEN5              \
-            )
-
-#define D3DSTATUS_DEFAULT       (                       \
-            D3DSTATUS_CLIPINTERSECTIONALL       |       \
-            D3DSTATUS_ZNOTVISIBLE)
-
-#define D3DTRANSFORM_CLIPPED       0x00000001
-#define D3DTRANSFORM_UNCLIPPED     0x00000002
-
-typedef struct _D3DTRANSFORMDATA {
-  DWORD           dwSize;
-  LPVOID          lpIn;
-  DWORD           dwInSize;
-  LPVOID          lpOut;
-  DWORD           dwOutSize;
-  LPD3DHVERTEX    lpHOut;
-  DWORD           dwClip;
-  DWORD           dwClipIntersection;
-  DWORD           dwClipUnion;
-  D3DRECT         drExtent;
-} D3DTRANSFORMDATA, *LPD3DTRANSFORMDATA;
-
-typedef struct _D3DLIGHTINGELEMENT {
-  D3DVECTOR dvPosition;
-  D3DVECTOR dvNormal;
-} D3DLIGHTINGELEMENT, *LPD3DLIGHTINGELEMENT;
-
-typedef struct _D3DMATERIAL {
-  DWORD               dwSize;
-  union {
-    D3DCOLORVALUE   diffuse;
-    D3DCOLORVALUE   dcvDiffuse;
-  } DUMMYUNIONNAME;
-  union {
-    D3DCOLORVALUE   ambient;
-    D3DCOLORVALUE   dcvAmbient;
-  } DUMMYUNIONNAME1;
-  union {
-    D3DCOLORVALUE   specular;
-    D3DCOLORVALUE   dcvSpecular;
-  } DUMMYUNIONNAME2;
-  union {
-    D3DCOLORVALUE   emissive;
-    D3DCOLORVALUE   dcvEmissive;
-  } DUMMYUNIONNAME3;
-  union {
-    D3DVALUE        power;
-    D3DVALUE        dvPower;
-  } DUMMYUNIONNAME4;
-  D3DTEXTUREHANDLE    hTexture;
-  DWORD               dwRampSize;
-} D3DMATERIAL, *LPD3DMATERIAL;
-
-typedef struct _D3DMATERIAL7 {
-  union {
-    D3DCOLORVALUE   diffuse;
-    D3DCOLORVALUE   dcvDiffuse;
-  } DUMMYUNIONNAME;
-  union {
-    D3DCOLORVALUE   ambient;
-    D3DCOLORVALUE   dcvAmbient;
-  } DUMMYUNIONNAME1;
-  union {
-    D3DCOLORVALUE   specular;
-    D3DCOLORVALUE   dcvSpecular;
-  } DUMMYUNIONNAME2;
-  union {
-    D3DCOLORVALUE   emissive;
-    D3DCOLORVALUE   dcvEmissive;
-  } DUMMYUNIONNAME3;
-  union {
-    D3DVALUE        power;
-    D3DVALUE        dvPower;
-  } DUMMYUNIONNAME4;
-} D3DMATERIAL7, *LPD3DMATERIAL7;
-
-typedef enum {
-  D3DLIGHT_POINT          = 1,
-  D3DLIGHT_SPOT           = 2,
-  D3DLIGHT_DIRECTIONAL    = 3,
-  D3DLIGHT_PARALLELPOINT  = 4,
-  D3DLIGHT_GLSPOT         = 5,
-  D3DLIGHT_FORCE_DWORD    = 0x7fffffff
-} D3DLIGHTTYPE;
-
-typedef struct _D3DLIGHT {
-    DWORD           dwSize;
-    D3DLIGHTTYPE    dltType;
-    D3DCOLORVALUE   dcvColor;
-    D3DVECTOR       dvPosition;
-    D3DVECTOR       dvDirection;
-    D3DVALUE        dvRange;
-    D3DVALUE        dvFalloff;
-    D3DVALUE        dvAttenuation0;
-    D3DVALUE        dvAttenuation1;
-    D3DVALUE        dvAttenuation2;
-    D3DVALUE        dvTheta;
-    D3DVALUE        dvPhi;
-} D3DLIGHT,*LPD3DLIGHT;
-
-typedef struct _D3DLIGHT7 {
-    D3DLIGHTTYPE    dltType;
-    D3DCOLORVALUE   dcvDiffuse;
-    D3DCOLORVALUE   dcvSpecular;
-    D3DCOLORVALUE   dcvAmbient;
-    D3DVECTOR       dvPosition;
-    D3DVECTOR       dvDirection;
-    D3DVALUE        dvRange;
-    D3DVALUE        dvFalloff;
-    D3DVALUE        dvAttenuation0;
-    D3DVALUE        dvAttenuation1;
-    D3DVALUE        dvAttenuation2;
-    D3DVALUE        dvTheta;
-    D3DVALUE        dvPhi;
-} D3DLIGHT7, *LPD3DLIGHT7;
-
-#define D3DLIGHT_ACTIVE         0x00000001
-#define D3DLIGHT_NO_SPECULAR    0x00000002
-#define D3DLIGHT_ALL (D3DLIGHT_ACTIVE | D3DLIGHT_NO_SPECULAR) /* 0x3 */
-
-#define D3DLIGHT_RANGE_MAX              ((float)sqrt(FLT_MAX))
-
-typedef struct _D3DLIGHT2 {
-  DWORD           dwSize;
-  D3DLIGHTTYPE    dltType;
-  D3DCOLORVALUE   dcvColor;
-  D3DVECTOR       dvPosition;
-  D3DVECTOR       dvDirection;
-  D3DVALUE        dvRange;
-  D3DVALUE        dvFalloff;
-  D3DVALUE        dvAttenuation0;
-  D3DVALUE        dvAttenuation1;
-  D3DVALUE        dvAttenuation2;
-  D3DVALUE        dvTheta;
-  D3DVALUE        dvPhi;
-  DWORD           dwFlags;
-} D3DLIGHT2, *LPD3DLIGHT2;
-
-typedef struct _D3DLIGHTDATA {
-  DWORD                dwSize;
-  LPD3DLIGHTINGELEMENT lpIn;
-  DWORD                dwInSize;
-  LPD3DTLVERTEX        lpOut;
-  DWORD                dwOutSize;
-} D3DLIGHTDATA, *LPD3DLIGHTDATA;
-
-#define D3DCOLOR_MONO   1
-#define D3DCOLOR_RGB    2
-
-typedef DWORD D3DCOLORMODEL;
-
-
-#ifndef D3DCLEAR_TARGET
-#define D3DCLEAR_TARGET   0x00000001
-#endif
-#ifndef D3DCLEAR_ZBUFFER
-#define D3DCLEAR_ZBUFFER  0x00000002
-#endif
-#ifndef D3DCLEAR_STENCIL
-#define D3DCLEAR_STENCIL  0x00000004
-#endif
-
-typedef enum _D3DOPCODE {
-  D3DOP_POINT           = 1,
-  D3DOP_LINE            = 2,
-  D3DOP_TRIANGLE        = 3,
-  D3DOP_MATRIXLOAD      = 4,
-  D3DOP_MATRIXMULTIPLY  = 5,
-  D3DOP_STATETRANSFORM  = 6,
-  D3DOP_STATELIGHT      = 7,
-  D3DOP_STATERENDER     = 8,
-  D3DOP_PROCESSVERTICES = 9,
-  D3DOP_TEXTURELOAD     = 10,
-  D3DOP_EXIT            = 11,
-  D3DOP_BRANCHFORWARD   = 12,
-  D3DOP_SPAN            = 13,
-  D3DOP_SETSTATUS       = 14,
-
-  D3DOP_FORCE_DWORD     = 0x7fffffff
-} D3DOPCODE;
-
-typedef struct _D3DINSTRUCTION {
-  BYTE bOpcode;
-  BYTE bSize;
-  WORD wCount;
-} D3DINSTRUCTION, *LPD3DINSTRUCTION;
-
-typedef struct _D3DTEXTURELOAD {
-  D3DTEXTUREHANDLE hDestTexture;
-  D3DTEXTUREHANDLE hSrcTexture;
-} D3DTEXTURELOAD, *LPD3DTEXTURELOAD;
-
-typedef struct _D3DPICKRECORD {
-  BYTE     bOpcode;
-  BYTE     bPad;
-  DWORD    dwOffset;
-  D3DVALUE dvZ;
-} D3DPICKRECORD, *LPD3DPICKRECORD;
-
-typedef enum {
-  D3DSHADE_FLAT         = 1,
-  D3DSHADE_GOURAUD      = 2,
-  D3DSHADE_PHONG        = 3,
-  D3DSHADE_FORCE_DWORD  = 0x7fffffff
-} D3DSHADEMODE;
-
-typedef enum {
-  D3DFILL_POINT         = 1,
-  D3DFILL_WIREFRAME     = 2,
-  D3DFILL_SOLID         = 3,
-  D3DFILL_FORCE_DWORD   = 0x7fffffff
-} D3DFILLMODE;
-
-typedef struct _D3DLINEPATTERN {
-  WORD    wRepeatFactor;
-  WORD    wLinePattern;
-} D3DLINEPATTERN;
-
-typedef enum {
-  D3DFILTER_NEAREST          = 1,
-  D3DFILTER_LINEAR           = 2,
-  D3DFILTER_MIPNEAREST       = 3,
-  D3DFILTER_MIPLINEAR        = 4,
-  D3DFILTER_LINEARMIPNEAREST = 5,
-  D3DFILTER_LINEARMIPLINEAR  = 6,
-  D3DFILTER_FORCE_DWORD      = 0x7fffffff
-} D3DTEXTUREFILTER;
-
-typedef enum {
-  D3DBLEND_ZERO            = 1,
-  D3DBLEND_ONE             = 2,
-  D3DBLEND_SRCCOLOR        = 3,
-  D3DBLEND_INVSRCCOLOR     = 4,
-  D3DBLEND_SRCALPHA        = 5,
-  D3DBLEND_INVSRCALPHA     = 6,
-  D3DBLEND_DESTALPHA       = 7,
-  D3DBLEND_INVDESTALPHA    = 8,
-  D3DBLEND_DESTCOLOR       = 9,
-  D3DBLEND_INVDESTCOLOR    = 10,
-  D3DBLEND_SRCALPHASAT     = 11,
-  D3DBLEND_BOTHSRCALPHA    = 12,
-  D3DBLEND_BOTHINVSRCALPHA = 13,
-  D3DBLEND_FORCE_DWORD     = 0x7fffffff
-} D3DBLEND;
-
-typedef enum {
-  D3DTBLEND_DECAL         = 1,
-  D3DTBLEND_MODULATE      = 2,
-  D3DTBLEND_DECALALPHA    = 3,
-  D3DTBLEND_MODULATEALPHA = 4,
-  D3DTBLEND_DECALMASK     = 5,
-  D3DTBLEND_MODULATEMASK  = 6,
-  D3DTBLEND_COPY          = 7,
-  D3DTBLEND_ADD           = 8,
-  D3DTBLEND_FORCE_DWORD   = 0x7fffffff
-} D3DTEXTUREBLEND;
-
-typedef enum _D3DTEXTUREADDRESS {
-    D3DTADDRESS_WRAP           = 1,
-    D3DTADDRESS_MIRROR         = 2,
-    D3DTADDRESS_CLAMP          = 3,
-    D3DTADDRESS_BORDER         = 4,
-    D3DTADDRESS_FORCE_DWORD    = 0x7fffffff
-} D3DTEXTUREADDRESS;
-
-typedef enum {
-  D3DCULL_NONE        = 1,
-  D3DCULL_CW          = 2,
-  D3DCULL_CCW         = 3,
-  D3DCULL_FORCE_DWORD = 0x7fffffff
-} D3DCULL;
-
-typedef enum {
-  D3DCMP_NEVER        = 1,
-  D3DCMP_LESS         = 2,
-  D3DCMP_EQUAL        = 3,
-  D3DCMP_LESSEQUAL    = 4,
-  D3DCMP_GREATER      = 5,
-  D3DCMP_NOTEQUAL     = 6,
-  D3DCMP_GREATEREQUAL = 7,
-  D3DCMP_ALWAYS       = 8,
-  D3DCMP_FORCE_DWORD  = 0x7fffffff
-} D3DCMPFUNC;
-
-typedef enum _D3DSTENCILOP {
-  D3DSTENCILOP_KEEP        = 1,
-  D3DSTENCILOP_ZERO        = 2,
-  D3DSTENCILOP_REPLACE     = 3,
-  D3DSTENCILOP_INCRSAT     = 4,
-  D3DSTENCILOP_DECRSAT     = 5,
-  D3DSTENCILOP_INVERT      = 6,
-  D3DSTENCILOP_INCR        = 7,
-  D3DSTENCILOP_DECR        = 8,
-  D3DSTENCILOP_FORCE_DWORD = 0x7fffffff
-} D3DSTENCILOP;
-
-typedef enum _D3DFOGMODE {
-  D3DFOG_NONE         = 0,
-  D3DFOG_EXP          = 1,
-  D3DFOG_EXP2         = 2,
-  D3DFOG_LINEAR       = 3,
-  D3DFOG_FORCE_DWORD  = 0x7fffffff
-} D3DFOGMODE;
-
-typedef enum _D3DZBUFFERTYPE {
-  D3DZB_FALSE        = 0,
-  D3DZB_TRUE         = 1,
-  D3DZB_USEW         = 2,
-  D3DZB_FORCE_DWORD  = 0x7fffffff
-} D3DZBUFFERTYPE;
-
-typedef enum _D3DANTIALIASMODE {
-  D3DANTIALIAS_NONE            = 0,
-  D3DANTIALIAS_SORTDEPENDENT   = 1,
-  D3DANTIALIAS_SORTINDEPENDENT = 2,
-  D3DANTIALIAS_FORCE_DWORD     = 0x7fffffff
-} D3DANTIALIASMODE;
-
-typedef enum {
-  D3DVT_VERTEX        = 1,
-  D3DVT_LVERTEX       = 2,
-  D3DVT_TLVERTEX      = 3,
-  D3DVT_FORCE_DWORD   = 0x7fffffff
-} D3DVERTEXTYPE;
-
-typedef enum {
-  D3DPT_POINTLIST     = 1,
-  D3DPT_LINELIST      = 2,
-  D3DPT_LINESTRIP     = 3,
-  D3DPT_TRIANGLELIST  = 4,
-  D3DPT_TRIANGLESTRIP = 5,
-  D3DPT_TRIANGLEFAN   = 6,
-  D3DPT_FORCE_DWORD   = 0x7fffffff
-} D3DPRIMITIVETYPE;
-
-#define D3DSTATE_OVERRIDE_BIAS      256
-
-#define D3DSTATE_OVERRIDE(type) (D3DRENDERSTATETYPE)(((DWORD) (type) + D3DSTATE_OVERRIDE_BIAS))
-
-typedef enum _D3DTRANSFORMSTATETYPE {
-    D3DTRANSFORMSTATE_WORLD         = 1,
-    D3DTRANSFORMSTATE_VIEW          = 2,
-    D3DTRANSFORMSTATE_PROJECTION    = 3,
-    D3DTRANSFORMSTATE_WORLD1        = 4,
-    D3DTRANSFORMSTATE_WORLD2        = 5,
-    D3DTRANSFORMSTATE_WORLD3        = 6,
-    D3DTRANSFORMSTATE_TEXTURE0      = 16,
-    D3DTRANSFORMSTATE_TEXTURE1      = 17,
-    D3DTRANSFORMSTATE_TEXTURE2      = 18,
-    D3DTRANSFORMSTATE_TEXTURE3      = 19,
-    D3DTRANSFORMSTATE_TEXTURE4      = 20,
-    D3DTRANSFORMSTATE_TEXTURE5      = 21,
-    D3DTRANSFORMSTATE_TEXTURE6      = 22,
-    D3DTRANSFORMSTATE_TEXTURE7      = 23,
-    D3DTRANSFORMSTATE_FORCE_DWORD   = 0x7fffffff
-} D3DTRANSFORMSTATETYPE;
-
-typedef enum {
-  D3DLIGHTSTATE_MATERIAL      = 1,
-  D3DLIGHTSTATE_AMBIENT       = 2,
-  D3DLIGHTSTATE_COLORMODEL    = 3,
-  D3DLIGHTSTATE_FOGMODE       = 4,
-  D3DLIGHTSTATE_FOGSTART      = 5,
-  D3DLIGHTSTATE_FOGEND        = 6,
-  D3DLIGHTSTATE_FOGDENSITY    = 7,
-  D3DLIGHTSTATE_COLORVERTEX   = 8,
-  D3DLIGHTSTATE_FORCE_DWORD   = 0x7fffffff
-} D3DLIGHTSTATETYPE;
-
-typedef enum {
-  D3DRENDERSTATE_TEXTUREHANDLE      = 1,
-  D3DRENDERSTATE_ANTIALIAS          = 2,
-  D3DRENDERSTATE_TEXTUREADDRESS     = 3,
-  D3DRENDERSTATE_TEXTUREPERSPECTIVE = 4,
-  D3DRENDERSTATE_WRAPU              = 5,
-  D3DRENDERSTATE_WRAPV              = 6,
-  D3DRENDERSTATE_ZENABLE            = 7,
-  D3DRENDERSTATE_FILLMODE           = 8,
-  D3DRENDERSTATE_SHADEMODE          = 9,
-  D3DRENDERSTATE_LINEPATTERN        = 10,
-  D3DRENDERSTATE_MONOENABLE         = 11,
-  D3DRENDERSTATE_ROP2               = 12,
-  D3DRENDERSTATE_PLANEMASK          = 13,
-  D3DRENDERSTATE_ZWRITEENABLE       = 14,
-  D3DRENDERSTATE_ALPHATESTENABLE    = 15,
-  D3DRENDERSTATE_LASTPIXEL          = 16,
-  D3DRENDERSTATE_TEXTUREMAG         = 17,
-  D3DRENDERSTATE_TEXTUREMIN         = 18,
-  D3DRENDERSTATE_SRCBLEND           = 19,
-  D3DRENDERSTATE_DESTBLEND          = 20,
-  D3DRENDERSTATE_TEXTUREMAPBLEND    = 21,
-  D3DRENDERSTATE_CULLMODE           = 22,
-  D3DRENDERSTATE_ZFUNC              = 23,
-  D3DRENDERSTATE_ALPHAREF           = 24,
-  D3DRENDERSTATE_ALPHAFUNC          = 25,
-  D3DRENDERSTATE_DITHERENABLE       = 26,
-  D3DRENDERSTATE_ALPHABLENDENABLE   = 27,
-  D3DRENDERSTATE_FOGENABLE          = 28,
-  D3DRENDERSTATE_SPECULARENABLE     = 29,
-  D3DRENDERSTATE_ZVISIBLE           = 30,
-  D3DRENDERSTATE_SUBPIXEL           = 31,
-  D3DRENDERSTATE_SUBPIXELX          = 32,
-  D3DRENDERSTATE_STIPPLEDALPHA      = 33,
-  D3DRENDERSTATE_FOGCOLOR           = 34,
-  D3DRENDERSTATE_FOGTABLEMODE       = 35,
-  D3DRENDERSTATE_FOGTABLESTART      = 36,
-  D3DRENDERSTATE_FOGTABLEEND        = 37,
-  D3DRENDERSTATE_FOGTABLEDENSITY    = 38,
-  D3DRENDERSTATE_FOGSTART           = 36,
-  D3DRENDERSTATE_FOGEND             = 37,
-  D3DRENDERSTATE_FOGDENSITY         = 38,
-  D3DRENDERSTATE_STIPPLEENABLE      = 39,
-  D3DRENDERSTATE_EDGEANTIALIAS      = 40,
-  D3DRENDERSTATE_COLORKEYENABLE     = 41,
-  D3DRENDERSTATE_BORDERCOLOR        = 43,
-  D3DRENDERSTATE_TEXTUREADDRESSU    = 44,
-  D3DRENDERSTATE_TEXTUREADDRESSV    = 45,
-  D3DRENDERSTATE_MIPMAPLODBIAS      = 46,
-  D3DRENDERSTATE_ZBIAS              = 47,
-  D3DRENDERSTATE_RANGEFOGENABLE     = 48,
-  D3DRENDERSTATE_ANISOTROPY         = 49,
-  D3DRENDERSTATE_FLUSHBATCH         = 50,
-  D3DRENDERSTATE_TRANSLUCENTSORTINDEPENDENT = 51,
-
-  D3DRENDERSTATE_STENCILENABLE      = 52,
-  D3DRENDERSTATE_STENCILFAIL        = 53,
-  D3DRENDERSTATE_STENCILZFAIL       = 54,
-  D3DRENDERSTATE_STENCILPASS        = 55,
-  D3DRENDERSTATE_STENCILFUNC        = 56,
-  D3DRENDERSTATE_STENCILREF         = 57,
-  D3DRENDERSTATE_STENCILMASK        = 58,
-  D3DRENDERSTATE_STENCILWRITEMASK   = 59,
-  D3DRENDERSTATE_TEXTUREFACTOR      = 60,
-
-  D3DRENDERSTATE_STIPPLEPATTERN00   = 64,
-  D3DRENDERSTATE_STIPPLEPATTERN01   = 65,
-  D3DRENDERSTATE_STIPPLEPATTERN02   = 66,
-  D3DRENDERSTATE_STIPPLEPATTERN03   = 67,
-  D3DRENDERSTATE_STIPPLEPATTERN04   = 68,
-  D3DRENDERSTATE_STIPPLEPATTERN05   = 69,
-  D3DRENDERSTATE_STIPPLEPATTERN06   = 70,
-  D3DRENDERSTATE_STIPPLEPATTERN07   = 71,
-  D3DRENDERSTATE_STIPPLEPATTERN08   = 72,
-  D3DRENDERSTATE_STIPPLEPATTERN09   = 73,
-  D3DRENDERSTATE_STIPPLEPATTERN10   = 74,
-  D3DRENDERSTATE_STIPPLEPATTERN11   = 75,
-  D3DRENDERSTATE_STIPPLEPATTERN12   = 76,
-  D3DRENDERSTATE_STIPPLEPATTERN13   = 77,
-  D3DRENDERSTATE_STIPPLEPATTERN14   = 78,
-  D3DRENDERSTATE_STIPPLEPATTERN15   = 79,
-  D3DRENDERSTATE_STIPPLEPATTERN16   = 80,
-  D3DRENDERSTATE_STIPPLEPATTERN17   = 81,
-  D3DRENDERSTATE_STIPPLEPATTERN18   = 82,
-  D3DRENDERSTATE_STIPPLEPATTERN19   = 83,
-  D3DRENDERSTATE_STIPPLEPATTERN20   = 84,
-  D3DRENDERSTATE_STIPPLEPATTERN21   = 85,
-  D3DRENDERSTATE_STIPPLEPATTERN22   = 86,
-  D3DRENDERSTATE_STIPPLEPATTERN23   = 87,
-  D3DRENDERSTATE_STIPPLEPATTERN24   = 88,
-  D3DRENDERSTATE_STIPPLEPATTERN25   = 89,
-  D3DRENDERSTATE_STIPPLEPATTERN26   = 90,
-  D3DRENDERSTATE_STIPPLEPATTERN27   = 91,
-  D3DRENDERSTATE_STIPPLEPATTERN28   = 92,
-  D3DRENDERSTATE_STIPPLEPATTERN29   = 93,
-  D3DRENDERSTATE_STIPPLEPATTERN30   = 94,
-  D3DRENDERSTATE_STIPPLEPATTERN31   = 95,
-
-  D3DRENDERSTATE_WRAP0              = 128,
-  D3DRENDERSTATE_WRAP1              = 129,
-  D3DRENDERSTATE_WRAP2              = 130,
-  D3DRENDERSTATE_WRAP3              = 131,
-  D3DRENDERSTATE_WRAP4              = 132,
-  D3DRENDERSTATE_WRAP5              = 133,
-  D3DRENDERSTATE_WRAP6              = 134,
-  D3DRENDERSTATE_WRAP7              = 135,
-  D3DRENDERSTATE_CLIPPING            = 136,
-  D3DRENDERSTATE_LIGHTING            = 137,
-  D3DRENDERSTATE_EXTENTS             = 138,
-  D3DRENDERSTATE_AMBIENT             = 139,
-  D3DRENDERSTATE_FOGVERTEXMODE       = 140,
-  D3DRENDERSTATE_COLORVERTEX         = 141,
-  D3DRENDERSTATE_LOCALVIEWER         = 142,
-  D3DRENDERSTATE_NORMALIZENORMALS    = 143,
-  D3DRENDERSTATE_COLORKEYBLENDENABLE = 144,
-  D3DRENDERSTATE_DIFFUSEMATERIALSOURCE    = 145,
-  D3DRENDERSTATE_SPECULARMATERIALSOURCE   = 146,
-  D3DRENDERSTATE_AMBIENTMATERIALSOURCE    = 147,
-  D3DRENDERSTATE_EMISSIVEMATERIALSOURCE   = 148,
-  D3DRENDERSTATE_VERTEXBLEND              = 151,
-  D3DRENDERSTATE_CLIPPLANEENABLE          = 152,
-
-  D3DRENDERSTATE_FORCE_DWORD        = 0x7fffffff
-
-  /* FIXME: We have some retired values that are being reused for DirectX 7 */
-} D3DRENDERSTATETYPE;
-
-typedef enum _D3DMATERIALCOLORSOURCE
-{
-    D3DMCS_MATERIAL = 0,
-    D3DMCS_COLOR1   = 1,
-    D3DMCS_COLOR2   = 2,
-    D3DMCS_FORCE_DWORD = 0x7fffffff
-} D3DMATERIALCOLORSOURCE;
-
-#define D3DRENDERSTATE_BLENDENABLE      D3DRENDERSTATE_ALPHABLENDENABLE
-#define D3DRENDERSTATE_WRAPBIAS                 128UL
-#define D3DWRAP_U   0x00000001L
-#define D3DWRAP_V   0x00000002L
-
-#define D3DWRAPCOORD_0   0x00000001L
-#define D3DWRAPCOORD_1   0x00000002L
-#define D3DWRAPCOORD_2   0x00000004L
-#define D3DWRAPCOORD_3   0x00000008L
-
-#define D3DRENDERSTATE_STIPPLEPATTERN(y) (D3DRENDERSTATE_STIPPLEPATTERN00 + (y))
-
-typedef struct _D3DSTATE {
-  union {
-    D3DTRANSFORMSTATETYPE dtstTransformStateType;
-    D3DLIGHTSTATETYPE     dlstLightStateType;
-    D3DRENDERSTATETYPE    drstRenderStateType;
-  } DUMMYUNIONNAME1;
-  union {
-    DWORD                 dwArg[1];
-    D3DVALUE              dvArg[1];
-  } DUMMYUNIONNAME2;
-} D3DSTATE, *LPD3DSTATE;
-
-typedef struct _D3DMATRIXLOAD {
-  D3DMATRIXHANDLE hDestMatrix;
-  D3DMATRIXHANDLE hSrcMatrix;
-} D3DMATRIXLOAD, *LPD3DMATRIXLOAD;
-
-typedef struct _D3DMATRIXMULTIPLY {
-  D3DMATRIXHANDLE hDestMatrix;
-  D3DMATRIXHANDLE hSrcMatrix1;
-  D3DMATRIXHANDLE hSrcMatrix2;
-} D3DMATRIXMULTIPLY, *LPD3DMATRIXMULTIPLY;
-
-typedef struct _D3DPROCESSVERTICES {
-  DWORD dwFlags;
-  WORD  wStart;
-  WORD  wDest;
-  DWORD dwCount;
-  DWORD dwReserved;
-} D3DPROCESSVERTICES, *LPD3DPROCESSVERTICES;
-
-#define D3DPROCESSVERTICES_TRANSFORMLIGHT       0x00000000L
-#define D3DPROCESSVERTICES_TRANSFORM            0x00000001L
-#define D3DPROCESSVERTICES_COPY                 0x00000002L
-#define D3DPROCESSVERTICES_OPMASK               0x00000007L
-
-#define D3DPROCESSVERTICES_UPDATEEXTENTS        0x00000008L
-#define D3DPROCESSVERTICES_NOCOLOR              0x00000010L
-
-typedef enum _D3DTEXTURESTAGESTATETYPE
-{
-    D3DTSS_COLOROP        =  1,
-    D3DTSS_COLORARG1      =  2,
-    D3DTSS_COLORARG2      =  3,
-    D3DTSS_ALPHAOP        =  4,
-    D3DTSS_ALPHAARG1      =  5,
-    D3DTSS_ALPHAARG2      =  6,
-    D3DTSS_BUMPENVMAT00   =  7,
-    D3DTSS_BUMPENVMAT01   =  8,
-    D3DTSS_BUMPENVMAT10   =  9,
-    D3DTSS_BUMPENVMAT11   = 10,
-    D3DTSS_TEXCOORDINDEX  = 11,
-    D3DTSS_ADDRESS        = 12,
-    D3DTSS_ADDRESSU       = 13,
-    D3DTSS_ADDRESSV       = 14,
-    D3DTSS_BORDERCOLOR    = 15,
-    D3DTSS_MAGFILTER      = 16,
-    D3DTSS_MINFILTER      = 17,
-    D3DTSS_MIPFILTER      = 18,
-    D3DTSS_MIPMAPLODBIAS  = 19,
-    D3DTSS_MAXMIPLEVEL    = 20,
-    D3DTSS_MAXANISOTROPY  = 21,
-    D3DTSS_BUMPENVLSCALE  = 22,
-    D3DTSS_BUMPENVLOFFSET = 23,
-    D3DTSS_TEXTURETRANSFORMFLAGS = 24,
-    D3DTSS_FORCE_DWORD   = 0x7fffffff
-} D3DTEXTURESTAGESTATETYPE;
-
-#define D3DTSS_TCI_PASSTHRU                             0x00000000
-#define D3DTSS_TCI_CAMERASPACENORMAL                    0x00010000
-#define D3DTSS_TCI_CAMERASPACEPOSITION                  0x00020000
-#define D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR          0x00030000
-
-typedef enum _D3DTEXTUREOP
-{
-    D3DTOP_DISABLE    = 1,
-    D3DTOP_SELECTARG1 = 2,
-    D3DTOP_SELECTARG2 = 3,
-
-    D3DTOP_MODULATE   = 4,
-    D3DTOP_MODULATE2X = 5,
-    D3DTOP_MODULATE4X = 6,
-
-    D3DTOP_ADD          =  7,
-    D3DTOP_ADDSIGNED    =  8,
-    D3DTOP_ADDSIGNED2X  =  9,
-    D3DTOP_SUBTRACT     = 10,
-    D3DTOP_ADDSMOOTH    = 11,
-
-    D3DTOP_BLENDDIFFUSEALPHA    = 12,
-    D3DTOP_BLENDTEXTUREALPHA    = 13,
-    D3DTOP_BLENDFACTORALPHA     = 14,
-    D3DTOP_BLENDTEXTUREALPHAPM  = 15,
-    D3DTOP_BLENDCURRENTALPHA    = 16,
-
-    D3DTOP_PREMODULATE            = 17,
-    D3DTOP_MODULATEALPHA_ADDCOLOR = 18,
-    D3DTOP_MODULATECOLOR_ADDALPHA = 19,
-    D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20,
-    D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21,
-
-    D3DTOP_BUMPENVMAP           = 22,
-    D3DTOP_BUMPENVMAPLUMINANCE  = 23,
-    D3DTOP_DOTPRODUCT3          = 24,
-
-    D3DTOP_FORCE_DWORD = 0x7fffffff
-} D3DTEXTUREOP;
-
-#define D3DTA_SELECTMASK        0x0000000f
-#define D3DTA_DIFFUSE           0x00000000
-#define D3DTA_CURRENT           0x00000001
-#define D3DTA_TEXTURE           0x00000002
-#define D3DTA_TFACTOR           0x00000003
-#define D3DTA_SPECULAR          0x00000004
-#define D3DTA_COMPLEMENT        0x00000010
-#define D3DTA_ALPHAREPLICATE    0x00000020
-
-typedef enum _D3DTEXTUREMAGFILTER
-{
-    D3DTFG_POINT        = 1,
-    D3DTFG_LINEAR       = 2,
-    D3DTFG_FLATCUBIC    = 3,
-    D3DTFG_GAUSSIANCUBIC = 4,
-    D3DTFG_ANISOTROPIC  = 5,
-    D3DTFG_FORCE_DWORD  = 0x7fffffff
-} D3DTEXTUREMAGFILTER;
-
-typedef enum _D3DTEXTUREMINFILTER
-{
-    D3DTFN_POINT        = 1,
-    D3DTFN_LINEAR       = 2,
-    D3DTFN_ANISOTROPIC  = 3,
-    D3DTFN_FORCE_DWORD  = 0x7fffffff
-} D3DTEXTUREMINFILTER;
-
-typedef enum _D3DTEXTUREMIPFILTER
-{
-    D3DTFP_NONE         = 1,
-    D3DTFP_POINT        = 2,
-    D3DTFP_LINEAR       = 3,
-    D3DTFP_FORCE_DWORD  = 0x7fffffff
-} D3DTEXTUREMIPFILTER;
-
-#define D3DTRIFLAG_START                        0x00000000L
-#define D3DTRIFLAG_STARTFLAT(len) (len)
-#define D3DTRIFLAG_ODD                          0x0000001eL
-#define D3DTRIFLAG_EVEN                         0x0000001fL
-
-#define D3DTRIFLAG_EDGEENABLE1                  0x00000100L
-#define D3DTRIFLAG_EDGEENABLE2                  0x00000200L
-#define D3DTRIFLAG_EDGEENABLE3                  0x00000400L
-#define D3DTRIFLAG_EDGEENABLETRIANGLE \
-        (D3DTRIFLAG_EDGEENABLE1 | D3DTRIFLAG_EDGEENABLE2 | D3DTRIFLAG_EDGEENABLE3)
-
-typedef struct _D3DTRIANGLE {
-  union {
-    WORD v1;
-    WORD wV1;
-  } DUMMYUNIONNAME1;
-  union {
-    WORD v2;
-    WORD wV2;
-  } DUMMYUNIONNAME2;
-  union {
-    WORD v3;
-    WORD wV3;
-  } DUMMYUNIONNAME3;
-  WORD     wFlags;
-} D3DTRIANGLE, *LPD3DTRIANGLE;
-
-typedef struct _D3DLINE {
-  union {
-    WORD v1;
-    WORD wV1;
-  } DUMMYUNIONNAME1;
-  union {
-    WORD v2;
-    WORD wV2;
-  } DUMMYUNIONNAME2;
-} D3DLINE, *LPD3DLINE;
-
-typedef struct _D3DSPAN {
-  WORD wCount;
-  WORD wFirst;
-} D3DSPAN, *LPD3DSPAN;
-
-typedef struct _D3DPOINT {
-  WORD wCount;
-  WORD wFirst;
-} D3DPOINT, *LPD3DPOINT;
-
-typedef struct _D3DBRANCH {
-  DWORD dwMask;
-  DWORD dwValue;
-  BOOL  bNegate;
-  DWORD dwOffset;
-} D3DBRANCH, *LPD3DBRANCH;
-
-typedef struct _D3DSTATUS {
-  DWORD   dwFlags;
-  DWORD   dwStatus;
-  D3DRECT drExtent;
-} D3DSTATUS, *LPD3DSTATUS;
-
-#define D3DSETSTATUS_STATUS   0x00000001L
-#define D3DSETSTATUS_EXTENTS  0x00000002L
-#define D3DSETSTATUS_ALL      (D3DSETSTATUS_STATUS | D3DSETSTATUS_EXTENTS)
-
-typedef struct _D3DCLIPSTATUS {
-  DWORD dwFlags;
-  DWORD dwStatus;
-  float minx, maxx;
-  float miny, maxy;
-  float minz, maxz;
-} D3DCLIPSTATUS, *LPD3DCLIPSTATUS;
-
-#define D3DCLIPSTATUS_STATUS        0x00000001L
-#define D3DCLIPSTATUS_EXTENTS2      0x00000002L
-#define D3DCLIPSTATUS_EXTENTS3      0x00000004L
-
-typedef struct {
-  DWORD        dwSize;
-  DWORD        dwTrianglesDrawn;
-  DWORD        dwLinesDrawn;
-  DWORD        dwPointsDrawn;
-  DWORD        dwSpansDrawn;
-  DWORD        dwVerticesProcessed;
-} D3DSTATS, *LPD3DSTATS;
-
-#define D3DEXECUTE_CLIPPED       0x00000001l
-#define D3DEXECUTE_UNCLIPPED     0x00000002l
-
-typedef struct _D3DEXECUTEDATA {
-  DWORD     dwSize;
-  DWORD     dwVertexOffset;
-  DWORD     dwVertexCount;
-  DWORD     dwInstructionOffset;
-  DWORD     dwInstructionLength;
-  DWORD     dwHVertexOffset;
-  D3DSTATUS dsStatus;
-} D3DEXECUTEDATA, *LPD3DEXECUTEDATA;
-
-#define D3DPAL_FREE 0x00
-#define D3DPAL_READONLY 0x40
-#define D3DPAL_RESERVED 0x80
-
-typedef struct _D3DVERTEXBUFFERDESC {
-  DWORD dwSize;
-  DWORD dwCaps;
-  DWORD dwFVF;
-  DWORD dwNumVertices;
-} D3DVERTEXBUFFERDESC, *LPD3DVERTEXBUFFERDESC;
-
-#define D3DVBCAPS_SYSTEMMEMORY      0x00000800l
-#define D3DVBCAPS_WRITEONLY         0x00010000l
-#define D3DVBCAPS_OPTIMIZED         0x80000000l
-#define D3DVBCAPS_DONOTCLIP         0x00000001l
-
-#define D3DVOP_LIGHT       (1 << 10)
-#define D3DVOP_TRANSFORM   (1 << 0)
-#define D3DVOP_CLIP        (1 << 2)
-#define D3DVOP_EXTENTS     (1 << 3)
-
-#define D3DMAXNUMVERTICES    ((1<<16) - 1)
-
-#define D3DMAXNUMPRIMITIVES  ((1<<16) - 1)
-
-#define D3DPV_DONOTCOPYDATA (1 << 0)
-
-#define D3DFVF_RESERVED0        0x001
-#define D3DFVF_POSITION_MASK    0x00E
-#define D3DFVF_XYZ              0x002
-#define D3DFVF_XYZRHW           0x004
-#define D3DFVF_XYZB1            0x006
-#define D3DFVF_XYZB2            0x008
-#define D3DFVF_XYZB3            0x00a
-#define D3DFVF_XYZB4            0x00c
-#define D3DFVF_XYZB5            0x00e
-
-#define D3DFVF_NORMAL           0x010
-#define D3DFVF_RESERVED1        0x020
-#define D3DFVF_DIFFUSE          0x040
-#define D3DFVF_SPECULAR         0x080
-#define D3DFVF_TEXCOUNT_MASK    0xf00
-#define D3DFVF_TEXCOUNT_SHIFT   8
-#define D3DFVF_TEX0             0x000
-#define D3DFVF_TEX1             0x100
-#define D3DFVF_TEX2             0x200
-#define D3DFVF_TEX3             0x300
-#define D3DFVF_TEX4             0x400
-#define D3DFVF_TEX5             0x500
-#define D3DFVF_TEX6             0x600
-#define D3DFVF_TEX7             0x700
-#define D3DFVF_TEX8             0x800
-
-#define D3DFVF_RESERVED2        0xf000
-
-#define D3DFVF_VERTEX ( D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX1 )
-#define D3DFVF_LVERTEX ( D3DFVF_XYZ | D3DFVF_RESERVED1 | D3DFVF_DIFFUSE | \
-                         D3DFVF_SPECULAR | D3DFVF_TEX1 )
-#define D3DFVF_TLVERTEX ( D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_SPECULAR | \
-                          D3DFVF_TEX1 )
-
-typedef struct _D3DDP_PTRSTRIDE {
-  LPVOID lpvData;
-  DWORD  dwStride;
-} D3DDP_PTRSTRIDE;
-
-#define D3DDP_MAXTEXCOORD 8
-
-typedef struct _D3DDRAWPRIMITIVESTRIDEDDATA  {
-  D3DDP_PTRSTRIDE position;
-  D3DDP_PTRSTRIDE normal;
-  D3DDP_PTRSTRIDE diffuse;
-  D3DDP_PTRSTRIDE specular;
-  D3DDP_PTRSTRIDE textureCoords[D3DDP_MAXTEXCOORD];
-} D3DDRAWPRIMITIVESTRIDEDDATA ,*LPD3DDRAWPRIMITIVESTRIDEDDATA;
-
-#define D3DVIS_INSIDE_FRUSTUM       0
-#define D3DVIS_INTERSECT_FRUSTUM    1
-#define D3DVIS_OUTSIDE_FRUSTUM      2
-#define D3DVIS_INSIDE_LEFT          0
-#define D3DVIS_INTERSECT_LEFT       (1 << 2)
-#define D3DVIS_OUTSIDE_LEFT         (2 << 2)
-#define D3DVIS_INSIDE_RIGHT         0
-#define D3DVIS_INTERSECT_RIGHT      (1 << 4)
-#define D3DVIS_OUTSIDE_RIGHT        (2 << 4)
-#define D3DVIS_INSIDE_TOP           0
-#define D3DVIS_INTERSECT_TOP        (1 << 6)
-#define D3DVIS_OUTSIDE_TOP          (2 << 6)
-#define D3DVIS_INSIDE_BOTTOM        0
-#define D3DVIS_INTERSECT_BOTTOM     (1 << 8)
-#define D3DVIS_OUTSIDE_BOTTOM       (2 << 8)
-#define D3DVIS_INSIDE_NEAR          0
-#define D3DVIS_INTERSECT_NEAR       (1 << 10)
-#define D3DVIS_OUTSIDE_NEAR         (2 << 10)
-#define D3DVIS_INSIDE_FAR           0
-#define D3DVIS_INTERSECT_FAR        (1 << 12)
-#define D3DVIS_OUTSIDE_FAR          (2 << 12)
-
-#define D3DVIS_MASK_FRUSTUM         (3 << 0)
-#define D3DVIS_MASK_LEFT            (3 << 2)
-#define D3DVIS_MASK_RIGHT           (3 << 4)
-#define D3DVIS_MASK_TOP             (3 << 6)
-#define D3DVIS_MASK_BOTTOM          (3 << 8)
-#define D3DVIS_MASK_NEAR            (3 << 10)
-#define D3DVIS_MASK_FAR             (3 << 12)
-
-#define D3DDEVINFOID_TEXTUREMANAGER    1
-#define D3DDEVINFOID_D3DTEXTUREMANAGER 2
-#define D3DDEVINFOID_TEXTURING         3
-
-typedef enum _D3DSTATEBLOCKTYPE
-{
-    D3DSBT_ALL           = 1,
-    D3DSBT_PIXELSTATE    = 2,
-    D3DSBT_VERTEXSTATE   = 3,
-    D3DSBT_FORCE_DWORD   = 0xffffffff
-} D3DSTATEBLOCKTYPE;
-
-typedef enum _D3DVERTEXBLENDFLAGS
-{
-    D3DVBLEND_DISABLE  = 0,
-    D3DVBLEND_1WEIGHT  = 1,
-    D3DVBLEND_2WEIGHTS = 2,
-    D3DVBLEND_3WEIGHTS = 3,
-} D3DVERTEXBLENDFLAGS;
-
-typedef enum _D3DTEXTURETRANSFORMFLAGS {
-    D3DTTFF_DISABLE         = 0,
-    D3DTTFF_COUNT1          = 1,
-    D3DTTFF_COUNT2          = 2,
-    D3DTTFF_COUNT3          = 3,
-    D3DTTFF_COUNT4          = 4,
-    D3DTTFF_PROJECTED       = 256,
-    D3DTTFF_FORCE_DWORD     = 0x7fffffff
-} D3DTEXTURETRANSFORMFLAGS;
-
-#define D3DFVF_TEXTUREFORMAT2 0
-#define D3DFVF_TEXTUREFORMAT1 3
-#define D3DFVF_TEXTUREFORMAT3 1
-#define D3DFVF_TEXTUREFORMAT4 2
-
-#define D3DFVF_TEXCOORDSIZE3(CoordIndex) (D3DFVF_TEXTUREFORMAT3 << (CoordIndex*2 + 16))
-#define D3DFVF_TEXCOORDSIZE2(CoordIndex) (D3DFVF_TEXTUREFORMAT2)
-#define D3DFVF_TEXCOORDSIZE4(CoordIndex) (D3DFVF_TEXTUREFORMAT4 << (CoordIndex*2 + 16))
-#define D3DFVF_TEXCOORDSIZE1(CoordIndex) (D3DFVF_TEXTUREFORMAT1 << (CoordIndex*2 + 16))
-
-#endif
diff --git a/misc/builddeps/win64/dx/include/d3dvec.inl b/misc/builddeps/win64/dx/include/d3dvec.inl
deleted file mode 100644 (file)
index 9418dd2..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (C) 2000 Ove Kaaven
- *
- * 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_D3DVEC_INL
-#define __WINE_D3DVEC_INL
-
-/*** constructors ***/
-
-inline _D3DVECTOR::_D3DVECTOR(D3DVALUE f)
-{
-  x = y = z = f;
-}
-
-inline _D3DVECTOR::_D3DVECTOR(D3DVALUE _x, D3DVALUE _y, D3DVALUE _z)
-{
-  x = _x; y = _y; z = _z;
-}
-
-/*** assignment operators ***/
-
-inline _D3DVECTOR& _D3DVECTOR::operator += (const _D3DVECTOR& v)
-{
-  x += v.x; y += v.y; z += v.z;
-  return *this;
-}
-
-inline _D3DVECTOR& _D3DVECTOR::operator -= (const _D3DVECTOR& v)
-{
-  x -= v.x; y -= v.y; z -= v.z;
-  return *this;
-}
-
-inline _D3DVECTOR& _D3DVECTOR::operator *= (const _D3DVECTOR& v)
-{
-  x *= v.x; y *= v.y; z *= v.z;
-  return *this;
-}
-
-inline _D3DVECTOR& _D3DVECTOR::operator /= (const _D3DVECTOR& v)
-{
-  x /= v.x; y /= v.y; z /= v.z;
-  return *this;
-}
-
-inline _D3DVECTOR& _D3DVECTOR::operator *= (D3DVALUE s)
-{
-  x *= s; y *= s; z *= s;
-  return *this;
-}
-
-inline _D3DVECTOR& _D3DVECTOR::operator /= (D3DVALUE s)
-{
-  x /= s; y /= s; z /= s;
-  return *this;
-}
-
-/*** unary operators ***/
-
-inline _D3DVECTOR operator + (const _D3DVECTOR& v)
-{
-  return v;
-}
-
-inline _D3DVECTOR operator - (const _D3DVECTOR& v)
-{
-  return _D3DVECTOR(-v.x, -v.y, -v.z);
-}
-
-/*** binary operators ***/
-
-inline _D3DVECTOR operator + (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
-{
-  return _D3DVECTOR(v1.x+v2.x, v1.y+v2.y, v1.z+v2.z);
-}
-
-inline _D3DVECTOR operator - (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
-{
-  return _D3DVECTOR(v1.x-v2.x, v1.y-v2.y, v1.z-v2.z);
-}
-
-inline _D3DVECTOR operator * (const _D3DVECTOR& v, D3DVALUE s)
-{
-  return _D3DVECTOR(v.x*s, v.y*s, v.z*s);
-}
-
-inline _D3DVECTOR operator * (D3DVALUE s, const _D3DVECTOR& v)
-{
-  return _D3DVECTOR(v.x*s, v.y*s, v.z*s);
-}
-
-inline _D3DVECTOR operator / (const _D3DVECTOR& v, D3DVALUE s)
-{
-  return _D3DVECTOR(v.x/s, v.y/s, v.z/s);
-}
-
-inline D3DVALUE SquareMagnitude(const _D3DVECTOR& v)
-{
-  return v.x*v.x + v.y*v.y + v.z*v.z; /* DotProduct(v, v) */
-}
-
-inline D3DVALUE Magnitude(const _D3DVECTOR& v)
-{
-  return sqrt(SquareMagnitude(v));
-}
-
-inline _D3DVECTOR Normalize(const _D3DVECTOR& v)
-{
-  return v / Magnitude(v);
-}
-
-inline D3DVALUE DotProduct(const _D3DVECTOR& v1, const _D3DVECTOR& v2)
-{
-  return v1.x*v2.x + v1.y*v2.y + v1.z*v2.z;
-}
-
-inline _D3DVECTOR CrossProduct(const _D3DVECTOR& v1, const _D3DVECTOR& v2)
-{
-  _D3DVECTOR res;
-  /* this is a left-handed cross product, right? */
-  res.x = v1.y * v2.z - v1.z * v2.y;
-  res.y = v1.z * v2.x - v1.x * v2.z;
-  res.z = v1.x * v2.y - v1.y * v2.x;
-  return res;
-}
-
-#endif
diff --git a/misc/builddeps/win64/dx/include/d3dx9.h b/misc/builddeps/win64/dx/include/d3dx9.h
deleted file mode 100644 (file)
index 09ae553..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2007 David Adam
- *
- * 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 __D3DX9_H__
-#define __D3DX9_H__
-
-#include <limits.h>
-
-#define D3DX_DEFAULT         ((UINT)-1)
-#define D3DX_DEFAULT_NONPOW2 ((UINT)-2)
-#define D3DX_DEFAULT_FLOAT   FLT_MAX
-#define D3DX_FROM_FILE       ((UINT)-3)
-#define D3DFMT_FROM_FILE     ((D3DFORMAT)-3)
-
-#include "d3d9.h"
-#include "d3dx9math.h"
-#include "d3dx9core.h"
-#include "d3dx9mesh.h"
-#include "d3dx9shader.h"
-#include "d3dx9effect.h"
-#include "d3dx9shape.h"
-#include "d3dx9tex.h"
-
-#define _FACDD 0x876
-#define MAKE_DDHRESULT(code) MAKE_HRESULT(1, _FACDD, code)
-
-enum _D3DXERR {
-    D3DXERR_CANNOTMODIFYINDEXBUFFER = MAKE_DDHRESULT(2900),
-    D3DXERR_INVALIDMESH             = MAKE_DDHRESULT(2901),
-    D3DXERR_CANNOTATTRSORT          = MAKE_DDHRESULT(2902),
-    D3DXERR_SKINNINGNOTSUPPORTED    = MAKE_DDHRESULT(2903),
-    D3DXERR_TOOMANYINFLUENCES       = MAKE_DDHRESULT(2904),
-    D3DXERR_INVALIDDATA             = MAKE_DDHRESULT(2905),
-    D3DXERR_LOADEDMESHASNODATA      = MAKE_DDHRESULT(2906),
-    D3DXERR_DUPLICATENAMEDFRAGMENT  = MAKE_DDHRESULT(2907),
-    D3DXERR_CANNOTREMOVELASTITEM    = MAKE_DDHRESULT(2908),
-};
-
-#endif
diff --git a/misc/builddeps/win64/dx/include/d3dx9core.h b/misc/builddeps/win64/dx/include/d3dx9core.h
deleted file mode 100644 (file)
index c1b948e..0000000
+++ /dev/null
@@ -1,496 +0,0 @@
-/*
- * Copyright (C) 2007, 2008 Tony Wasserka
- *
- * 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
- */
-
-#include <_mingw_dxhelper.h>
-#include <d3dx9.h>
-
-#ifndef __WINE_D3DX9CORE_H
-#define __WINE_D3DX9CORE_H
-
-/**********************************************
- ***************** Definitions ****************
- **********************************************/
-/* D3DX_VERSION will be completely ignored since we are
-    implementing all dlls from d3dx9_24 to d3dx9_36 */
-#define D3DX_VERSION 0x0902
-#define D3DX_SDK_VERSION 36
-#define D3DXSPRITE_DONOTSAVESTATE           1
-#define D3DXSPRITE_DONOTMODIFY_RENDERSTATE  2
-#define D3DXSPRITE_OBJECTSPACE              4
-#define D3DXSPRITE_BILLBOARD                8
-#define D3DXSPRITE_ALPHABLEND              16
-#define D3DXSPRITE_SORT_TEXTURE            32
-#define D3DXSPRITE_SORT_DEPTH_FRONTTOBACK  64
-#define D3DXSPRITE_SORT_DEPTH_BACKTOFRONT 128
-#define D3DXSPRITE_DO_NOT_ADDREF_TEXTURE  256
-
-/**********************************************
- ******************** GUIDs *******************
- **********************************************/
-DEFINE_GUID(IID_ID3DXBuffer, 0x8ba5fb08, 0x5195, 0x40e2, 0xac, 0x58, 0xd, 0x98, 0x9c, 0x3a, 0x1, 0x2);
-DEFINE_GUID(IID_ID3DXFont, 0xd79dbb70, 0x5f21, 0x4d36, 0xbb, 0xc2, 0xff, 0x52, 0x5c, 0x21, 0x3c, 0xdc);
-DEFINE_GUID(IID_ID3DXLine, 0xd379ba7f, 0x9042, 0x4ac4, 0x9f, 0x5e, 0x58, 0x19, 0x2a, 0x4c, 0x6b, 0xd8);
-DEFINE_GUID(IID_ID3DXRenderToEnvMap, 0x313f1b4b, 0xc7b0, 0x4fa2, 0x9d, 0x9d, 0x8d, 0x38, 0xb, 0x64, 0x38, 0x5e);
-DEFINE_GUID(IID_ID3DXRenderToSurface, 0x6985f346, 0x2c3d, 0x43b3, 0xbe, 0x8b, 0xda, 0xae, 0x8a, 0x3, 0xd8, 0x94);
-DEFINE_GUID(IID_ID3DXSprite, 0xba0b762d, 0x7d28, 0x43ec, 0xb9, 0xdc, 0x2f, 0x84, 0x44, 0x3b, 0x6, 0x14);
-
-/**********************************************
- ****************** typedefs ******************
- **********************************************/
-typedef struct ID3DXBuffer *LPD3DXBUFFER;
-typedef struct ID3DXFont *LPD3DXFONT;
-typedef struct ID3DXLine *LPD3DXLINE;
-typedef struct ID3DXRenderToEnvMap *LPD3DXRenderToEnvMap;
-typedef struct ID3DXRenderToSurface *LPD3DXRENDERTOSURFACE;
-typedef struct ID3DXSprite *LPD3DXSPRITE;
-
-/**********************************************
- *********** interface declarations ***********
- **********************************************/
-#define INTERFACE ID3DXBuffer
-DECLARE_INTERFACE_(ID3DXBuffer, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID *object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-    /*** ID3DXBuffer methods ***/
-    STDMETHOD_(LPVOID, GetBufferPointer)(THIS) PURE;
-    STDMETHOD_(DWORD, GetBufferSize)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define ID3DXBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define ID3DXBuffer_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define ID3DXBuffer_Release(p)            (p)->lpVtbl->Release(p)
-/*** ID3DXBuffer methods ***/
-#define ID3DXBuffer_GetBufferPointer(p)   (p)->lpVtbl->GetBufferPointer(p)
-#define ID3DXBuffer_GetBufferSize(p)      (p)->lpVtbl->GetBufferSize(p)
-#else
-/*** IUnknown methods ***/
-#define ID3DXBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define ID3DXBuffer_AddRef(p)             (p)->AddRef()
-#define ID3DXBuffer_Release(p)            (p)->Release()
-/*** ID3DXBuffer methods ***/
-#define ID3DXBuffer_GetBufferPointer(p)   (p)->GetBufferPointer()
-#define ID3DXBuffer_GetBufferSize(p)      (p)->GetBufferSize()
-#endif
-
-typedef struct _D3DXFONT_DESCA
-{
-    INT Height;
-    UINT Width;
-    UINT Weight;
-    UINT MipLevels;
-    BOOL Italic;
-    BYTE CharSet;
-    BYTE OutputPrecision;
-    BYTE Quality;
-    BYTE PitchAndFamily;
-    CHAR FaceName[LF_FACESIZE];
-} D3DXFONT_DESCA, *LPD3DXFONT_DESCA;
-
-typedef struct _D3DXFONT_DESCW
-{
-    INT Height;
-    UINT Width;
-    UINT Weight;
-    UINT MipLevels;
-    BOOL Italic;
-    BYTE CharSet;
-    BYTE OutputPrecision;
-    BYTE Quality;
-    BYTE PitchAndFamily;
-    WCHAR FaceName[LF_FACESIZE];
-} D3DXFONT_DESCW, *LPD3DXFONT_DESCW;
-
-DECL_WINELIB_TYPE_AW(D3DXFONT_DESC)
-DECL_WINELIB_TYPE_AW(LPD3DXFONT_DESC)
-
-#define INTERFACE ID3DXFont
-DECLARE_INTERFACE_(ID3DXFont, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-    /*** ID3DXFont methods ***/
-    STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9 *device) PURE;
-    STDMETHOD(GetDescA)(THIS_ D3DXFONT_DESCA *desc) PURE;
-    STDMETHOD(GetDescW)(THIS_ D3DXFONT_DESCW *desc) PURE;
-    STDMETHOD_(BOOL, GetTextMetricsA)(THIS_ TEXTMETRICA *metrics) PURE;
-    STDMETHOD_(BOOL, GetTextMetricsW)(THIS_ TEXTMETRICW *metrics) PURE;
-
-    STDMETHOD_(HDC, GetDC)(THIS) PURE;
-    STDMETHOD(GetGlyphData)(THIS_ UINT glyph, LPDIRECT3DTEXTURE9 *texture, RECT *blackbox, POINT *cellinc) PURE;
-
-    STDMETHOD(PreloadCharacters)(THIS_ UINT first, UINT last) PURE;
-    STDMETHOD(PreloadGlyphs)(THIS_ UINT first, UINT last) PURE;
-    STDMETHOD(PreloadTextA)(THIS_ LPCSTR string, INT count) PURE;
-    STDMETHOD(PreloadTextW)(THIS_ LPCWSTR string, INT count) PURE;
-
-    STDMETHOD_(INT, DrawTextA)(THIS_ LPD3DXSPRITE sprite, LPCSTR string, INT count, LPRECT rect, DWORD format, D3DCOLOR color) PURE;
-    STDMETHOD_(INT, DrawTextW)(THIS_ LPD3DXSPRITE sprite, LPCWSTR string, INT count, LPRECT rect, DWORD format, D3DCOLOR color) PURE;
-
-    STDMETHOD(OnLostDevice)(THIS) PURE;
-    STDMETHOD(OnResetDevice)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-
-/*** IUnknown methods ***/
-#define ID3DXFont_QueryInterface(p,a,b)    (p)->lpVtbl->QueryInterface(p,a,b)
-#define ID3DXFont_AddRef(p)                (p)->lpVtbl->AddRef(p)
-#define ID3DXFont_Release(p)               (p)->lpVtbl->Release(p)
-/*** ID3DXFont methods ***/
-#define ID3DXFont_GetDevice(p,a)           (p)->lpVtbl->GetDevice(p,a)
-#define ID3DXFont_GetDescA(p,a)            (p)->lpVtbl->GetDescA(p,a)
-#define ID3DXFont_GetDescW(p,a)            (p)->lpVtbl->GetDescW(p,a)
-#define ID3DXFont_GetTextMetricsA(p,a)     (p)->lpVtbl->GetTextMetricsA(p,a)
-#define ID3DXFont_GetTextMetricsW(p,a)     (p)->lpVtbl->GetTextMetricsW(p,a)
-#define ID3DXFont_GetDC(p)                 (p)->lpVtbl->GetDC(p)
-#define ID3DXFont_GetGlyphData(p,a,b,c,d)  (p)->lpVtbl->GetGlyphData(p,a,b,c,d)
-#define ID3DXFont_PreloadCharacters(p,a,b) (p)->lpVtbl->PreloadCharacters(p,a,b)
-#define ID3DXFont_PreloadGlyphs(p,a,b)     (p)->lpVtbl->PreloadGlyphs(p,a,b)
-#define ID3DXFont_PreloadTextA(p,a,b)      (p)->lpVtbl->PreloadTextA(p,a,b)
-#define ID3DXFont_PreloadTextW(p,a,b)      (p)->lpVtbl->PreloadTextW(p,a,b)
-#define ID3DXFont_DrawTextA(p,a,b,c,d,e,f) (p)->lpVtbl->DrawTextA(p,a,b,c,d,e,f)
-#define ID3DXFont_DrawTextW(p,a,b,c,d,e,f) (p)->lpVtbl->DrawTextW(p,a,b,c,d,e,f)
-#define ID3DXFont_OnLostDevice(p)          (p)->lpVtbl->OnLostDevice(p)
-#define ID3DXFont_OnResetDevice(p)         (p)->lpVtbl->OnResetDevice(p)
-#else
-/*** IUnknown methods ***/
-#define ID3DXFont_QueryInterface(p,a,b)    (p)->QueryInterface(a,b)
-#define ID3DXFont_AddRef(p)                (p)->AddRef()
-#define ID3DXFont_Release(p)               (p)->Release()
-/*** ID3DXFont methods ***/
-#define ID3DXFont_GetDevice(p,a)           (p)->GetDevice(a)
-#define ID3DXFont_GetDescA(p,a)            (p)->GetDescA(a)
-#define ID3DXFont_GetDescW(p,a)            (p)->GetDescW(a)
-#define ID3DXFont_GetTextMetricsA(p,a)     (p)->GetTextMetricsA(a)
-#define ID3DXFont_GetTextMetricsW(p,a)     (p)->GetTextMetricsW(a)
-#define ID3DXFont_GetDC(p)                 (p)->GetDC()
-#define ID3DXFont_GetGlyphData(p,a,b,c,d)  (p)->GetGlyphData(a,b,c,d)
-#define ID3DXFont_PreloadCharacters(p,a,b) (p)->PreloadCharacters(a,b)
-#define ID3DXFont_PreloadGlyphs(p,a,b)     (p)->PreloadGlyphs(a,b)
-#define ID3DXFont_PreloadTextA(p,a,b)      (p)->PreloadTextA(a,b)
-#define ID3DXFont_PreloadTextW(p,a,b)      (p)->PreloadTextW(a,b)
-#define ID3DXFont_DrawTextA(p,a,b,c,d,e,f) (p)->DrawTextA(a,b,c,d,e,f)
-#define ID3DXFont_DrawTextW(p,a,b,c,d,e,f) (p)->DrawTextW(a,b,c,d,e,f)
-#define ID3DXFont_OnLostDevice(p)          (p)->OnLostDevice()
-#define ID3DXFont_OnResetDevice(p)         (p)->OnResetDevice()
-#endif
-#define ID3DXFont_DrawText       WINELIB_NAME_AW(ID3DXFont_DrawText)
-#define ID3DXFont_GetDesc        WINELIB_NAME_AW(ID3DXFont_GetDesc)
-#define ID3DXFont_GetTextMetrics WINELIB_NAME_AW(ID3DXFont_GetTextMetrics)
-#define ID3DXFont_PreloadText    WINELIB_NAME_AW(ID3DXFont_PreloadText)
-
-#define INTERFACE ID3DXLine
-DECLARE_INTERFACE_(ID3DXLine, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /*** ID3DXLine methods ***/
-    STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9 *device) PURE;
-
-    STDMETHOD(Begin)(THIS) PURE;
-    STDMETHOD(Draw)(THIS_ CONST D3DXVECTOR2 *vertexlist, DWORD vertexlistcount, D3DCOLOR color) PURE;
-    STDMETHOD(DrawTransform)(THIS_ CONST D3DXVECTOR3 *vertexlist, DWORD vertexlistcount,
-                             CONST D3DXMATRIX *transform, D3DCOLOR color) PURE;
-    STDMETHOD(SetPattern)(THIS_ DWORD pattern) PURE;
-    STDMETHOD_(DWORD, GetPattern)(THIS) PURE;
-    STDMETHOD(SetPatternScale)(THIS_ FLOAT scale) PURE;
-    STDMETHOD_(FLOAT, GetPatternScale)(THIS) PURE;
-    STDMETHOD(SetWidth)(THIS_ FLOAT width) PURE;
-    STDMETHOD_(FLOAT, GetWidth)(THIS) PURE;
-    STDMETHOD(SetAntialias)(THIS_ BOOL antialias) PURE;
-    STDMETHOD_(BOOL, GetAntialias)(THIS) PURE;
-    STDMETHOD(SetGLLines)(THIS_ BOOL gl_lines) PURE;
-    STDMETHOD_(BOOL, GetGLLines)(THIS) PURE;
-    STDMETHOD(End)(THIS) PURE;
-
-    STDMETHOD(OnLostDevice)(THIS) PURE;
-    STDMETHOD(OnResetDevice)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define ID3DXLine_QueryInterface(p,a,b)    (p)->lpVtbl->QueryInterface(p,a,b)
-#define ID3DXLine_AddRef(p)                (p)->lpVtbl->AddRef(p)
-#define ID3DXLine_Release(p)               (p)->lpVtbl->Release(p)
-/*** ID3DXLine methods ***/
-#define ID3DXLine_GetDevice(p,a)           (p)->lpVtbl->GetDevice(p,a)
-#define ID3DXLine_Begin(p)                 (p)->lpVtbl->Begin(p)
-#define ID3DXLine_Draw(p,a,b,c)            (p)->lpVtbl->Draw(p,a,b,c)
-#define ID3DXLine_DrawTransform(p,a,b,c,d) (p)->lpVtbl->DrawTransform(p,a,b,c,d)
-#define ID3DXLine_SetPattern(p,a)          (p)->lpVtbl->SetPattern(p,a)
-#define ID3DXLine_GetPattern(p)            (p)->lpVtbl->GetPattern(p)
-#define ID3DXLine_SetPatternScale(p,a)     (p)->lpVtbl->SetPatternScale(p,a)
-#define ID3DXLine_GetPatternScale(p)       (p)->lpVtbl->GetPatternScale(p)
-#define ID3DXLine_SetWidth(p,a)            (p)->lpVtbl->SetWidth(p,a)
-#define ID3DXLine_GetWidth(p)              (p)->lpVtbl->GetWidth(p)
-#define ID3DXLine_SetAntialias(p,a)        (p)->lpVtbl->SetAntialias(p,a)
-#define ID3DXLine_GetAntialias(p)          (p)->lpVtbl->GetAntialias(p)
-#define ID3DXLine_SetGLLines(p,a)          (p)->lpVtbl->SetGLLines(p,a)
-#define ID3DXLine_GetGLLines(p)            (p)->lpVtbl->GetGLLines(p)
-#define ID3DXLine_End(p)                   (p)->lpVtbl->End(p)
-#define ID3DXLine_OnLostDevice(p)          (p)->lpVtbl->OnLostDevice(p)
-#define ID3DXLine_OnResetDevice(p)         (p)->lpVtbl->OnResetDevice(p)
-#else
-/*** IUnknown methods ***/
-#define ID3DXLine_QueryInterface(p,a,b)    (p)->QueryInterface(a,b)
-#define ID3DXLine_AddRef(p)                (p)->AddRef()
-#define ID3DXLine_Release(p)               (p)->Release()
-/*** ID3DXLine methods ***/
-#define ID3DXLine_GetDevice(p,a)           (p)->GetDevice(a)
-#define ID3DXLine_Begin(p)                 (p)->Begin()
-#define ID3DXLine_Draw(p,a,b,c)            (p)->Draw(a,b,c)
-#define ID3DXLine_DrawTransform(p,a,b,c,d) (p)->DrawTransform(a,b,c,d)
-#define ID3DXLine_SetPattern(p,a)          (p)->SetPattern(a)
-#define ID3DXLine_GetPattern(p)            (p)->GetPattern()
-#define ID3DXLine_SetPatternScale(p,a)     (p)->SetPatternScale(a)
-#define ID3DXLine_GetPatternScale(p)       (p)->GetPatternScale()
-#define ID3DXLine_SetWidth(p,a)            (p)->SetWidth(a)
-#define ID3DXLine_GetWidth(p)              (p)->GetWidth()
-#define ID3DXLine_SetAntialias(p,a)        (p)->SetAntialias(a)
-#define ID3DXLine_GetAntialias(p)          (p)->GetAntialias()
-#define ID3DXLine_SetGLLines(p,a)          (p)->SetGLLines(a)
-#define ID3DXLine_GetGLLines(p)            (p)->GetGLLines()
-#define ID3DXLine_End(p)                   (p)->End()
-#define ID3DXLine_OnLostDevice(p)          (p)->OnLostDevice()
-#define ID3DXLine_OnResetDevice(p)         (p)->OnResetDevice()
-#endif
-
-typedef struct _D3DXRTE_DESC
-{
-    UINT Size;
-    UINT MipLevels;
-    D3DFORMAT Format;
-    BOOL DepthStencil;
-    D3DFORMAT DepthStencilFormat;
-} D3DXRTE_DESC;
-
-#define INTERFACE ID3DXRenderToEnvMap
-DECLARE_INTERFACE_(ID3DXRenderToEnvMap, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /*** ID3DXRenderToEnvMap methods ***/
-    STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9 *device) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3DXRTE_DESC *desc) PURE;
-
-    STDMETHOD(BeginCube)(THIS_ LPDIRECT3DCUBETEXTURE9 cubetex) PURE;
-    STDMETHOD(BeginSphere)(THIS_ LPDIRECT3DTEXTURE9 tex) PURE;
-    STDMETHOD(BeginHemisphere)(THIS_ LPDIRECT3DTEXTURE9 texzpos, LPDIRECT3DTEXTURE9 texzneg) PURE;
-    STDMETHOD(BeginParabolic)(THIS_ LPDIRECT3DTEXTURE9 texzpos, LPDIRECT3DTEXTURE9 texzneg) PURE;
-
-    STDMETHOD(Face)(THIS_ D3DCUBEMAP_FACES face, DWORD mipfilter) PURE;
-    STDMETHOD(End)(THIS_ DWORD mipfilter) PURE;
-
-    STDMETHOD(OnLostDevice)(THIS) PURE;
-    STDMETHOD(OnResetDevice)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define ID3DXRenderToEnvMap_QueryInterface(p,a,b)  (p)->lpVtbl->QueryInterface(p,a,b)
-#define ID3DXRenderToEnvMap_AddRef(p)              (p)->lpVtbl->AddRef(p)
-#define ID3DXRenderToEnvMap_Release(p)             (p)->lpVtbl->Release(p)
-/*** ID3DXRenderToEnvMap methods ***/
-#define ID3DXRenderToEnvMap_GetDevice(p,a)         (p)->lpVtbl->GetDevice(p,a)
-#define ID3DXRenderToEnvMap_GetDesc(p,a)           (p)->lpVtbl->GetDesc(p,a)
-#define ID3DXRenderToEnvMap_BeginCube(p,a)         (p)->lpVtbl->BeginCube(p,a)
-#define ID3DXRenderToEnvMap_BeginSphere(p,a)       (p)->lpVtbl->BeginSphere(p,a)
-#define ID3DXRenderToEnvMap_BeginHemisphere(p,a,b) (p)->lpVtbl->BeginHemisphere(p,a,b)
-#define ID3DXRenderToEnvMap_BeginParabolic(p,a,b)  (p)->lpVtbl->BeginParabolic(p,a,b)
-#define ID3DXRenderToEnvMap_Face(p,a,b)            (p)->lpVtbl->Face(p,a,b)
-#define ID3DXRenderToEnvMap_End(p,a)               (p)->lpVtbl->End(p,a)
-#define ID3DXRenderToEnvMap_OnLostDevice(p)        (p)->lpVtbl->OnLostDevice(p)
-#define ID3DXRenderToEnvMap_OnLostDevice(p)        (p)->lpVtbl->OnLostDevice(p)
-#else
-/*** IUnknown methods ***/
-#define ID3DXRenderToEnvMap_QueryInterface(p,a,b)  (p)->QueryInterface(a,b)
-#define ID3DXRenderToEnvMap_AddRef(p)              (p)->AddRef()
-#define ID3DXRenderToEnvMap_Release(p)             (p)->Release()
-/*** ID3DXRenderToEnvMap methods ***/
-#define ID3DXRenderToEnvMap_GetDevice(p,a)         (p)->GetDevice(a)
-#define ID3DXRenderToEnvMap_GetDesc(p,a)           (p)->GetDesc(a)
-#define ID3DXRenderToEnvMap_BeginCube(p,a)         (p)->BeginCube(a)
-#define ID3DXRenderToEnvMap_BeginSphere(p,a)       (p)->BeginSphere(a)
-#define ID3DXRenderToEnvMap_BeginHemisphere(p,a,b) (p)->BeginHemisphere(a,b)
-#define ID3DXRenderToEnvMap_BeginParabolic(p,a,b)  (p)->BeginParabolic(a,b)
-#define ID3DXRenderToEnvMap_Face(p,a,b)            (p)->Face(a,b)
-#define ID3DXRenderToEnvMap_End(p,a)               (p)->End(a)
-#define ID3DXRenderToEnvMap_OnLostDevice(p)        (p)->OnLostDevice()
-#define ID3DXRenderToEnvMap_OnLostDevice(p)        (p)->OnLostDevice()
-#endif
-
-typedef struct _D3DXRTS_DESC
-{
-    UINT Width;
-    UINT Height;
-    D3DFORMAT Format;
-    BOOL DepthStencil;
-    D3DFORMAT DepthStencilFormat;
-} D3DXRTS_DESC;
-
-#define INTERFACE ID3DXRenderToSurface
-DECLARE_INTERFACE_(ID3DXRenderToSurface, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID *object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-    /*** ID3DXRenderToSurface methods ***/
-    STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9 *device) PURE;
-    STDMETHOD(GetDesc)(THIS_ D3DXRTS_DESC *desc) PURE;
-
-    STDMETHOD(BeginScene)(THIS_ LPDIRECT3DSURFACE9 surface, CONST D3DVIEWPORT9 *viewport) PURE;
-    STDMETHOD(EndScene)(THIS_ DWORD mipfilter) PURE;
-
-    STDMETHOD(OnLostDevice)(THIS) PURE;
-    STDMETHOD(OnResetDevice)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define ID3DXRenderToSurface_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define ID3DXRenderToSurface_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define ID3DXRenderToSurface_Release(p)            (p)->lpVtbl->Release(p)
-/*** ID3DXRenderToSurface methods ***/
-#define ID3DXRenderToSurface_GetDevice(p,a)        (p)->lpVtbl->GetDevice(p,a)
-#define ID3DXRenderToSurface_GetDesc(p,a)          (p)->lpVtbl->GetDesc(p,a)
-#define ID3DXRenderToSurface_BeginScene(p,a,b)     (p)->lpVtbl->BeginScene(p,a,b)
-#define ID3DXRenderToSurface_EndScene(p,a)         (p)->lpVtbl->EndScene(p,a)
-#define ID3DXRenderToSurface_OnLostDevice(p)       (p)->lpVtbl->OnLostDevice(p)
-#define ID3DXRenderToSurface_OnResetDevice(p)      (p)->lpVtbl->OnResetDevice(p)
-#else
-/*** IUnknown methods ***/
-#define ID3DXRenderToSurface_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define ID3DXRenderToSurface_AddRef(p)             (p)->AddRef()
-#define ID3DXRenderToSurface_Release(p)            (p)->Release()
-/*** ID3DXRenderToSurface methods ***/
-#define ID3DXRenderToSurface_GetDevice(p,a)        (p)->GetDevice(a)
-#define ID3DXRenderToSurface_GetDesc(p,a)          (p)->GetDesc(a)
-#define ID3DXRenderToSurface_BeginScene(p,a,b)     (p)->BeginScene(a,b)
-#define ID3DXRenderToSurface_EndScene(p,a)         (p)->EndScene(a)
-#define ID3DXRenderToSurface_OnLostDevice(p)       (p)->OnLostDevice()
-#define ID3DXRenderToSurface_OnResetDevice(p)      (p)->OnResetDevice()
-#endif
-
-#define INTERFACE ID3DXSprite
-DECLARE_INTERFACE_(ID3DXSprite, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-    /*** ID3DXSprite methods ***/
-    STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9 *device) PURE;
-
-    STDMETHOD(GetTransform)(THIS_ D3DXMATRIX *transform) PURE;
-    STDMETHOD(SetTransform)(THIS_ CONST D3DXMATRIX *transform) PURE;
-    STDMETHOD(SetWorldViewRH)(THIS_ CONST D3DXMATRIX *world, CONST D3DXMATRIX *view) PURE;
-    STDMETHOD(SetWorldViewLH)(THIS_ CONST D3DXMATRIX *world, CONST D3DXMATRIX *view) PURE;
-
-    STDMETHOD(Begin)(THIS_ DWORD flags) PURE;
-    STDMETHOD(Draw)(THIS_ LPDIRECT3DTEXTURE9 texture, CONST RECT *rect, CONST D3DXVECTOR3 *center, CONST D3DXVECTOR3 *position, D3DCOLOR color) PURE;
-    STDMETHOD(Flush)(THIS) PURE;
-    STDMETHOD(End)(THIS) PURE;
-
-    STDMETHOD(OnLostDevice)(THIS) PURE;
-    STDMETHOD(OnResetDevice)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define ID3DXSprite_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define ID3DXSprite_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define ID3DXSprite_Release(p)            (p)->lpVtbl->Release(p)
-/*** ID3DXSprite methods ***/
-#define ID3DXSprite_GetDevice(p,a)        (p)->lpVtbl->GetDevice(p,a)
-#define ID3DXSprite_GetTransform(p,a)     (p)->lpVtbl->GetTransform(p,a)
-#define ID3DXSprite_SetTransform(p,a)     (p)->lpVtbl->SetTransform(p,a)
-#define ID3DXSprite_SetWorldViewRH(p,a,b) (p)->lpVtbl->SetWorldViewRH(p,a,b)
-#define ID3DXSprite_SetWorldViewLH(p,a,b) (p)->lpVtbl->SetWorldViewLH(p,a,b)
-#define ID3DXSprite_Begin(p,a)            (p)->lpVtbl->Begin(p,a)
-#define ID3DXSprite_Draw(p,a,b,c,d,e)     (p)->lpVtbl->Draw(p,a,b,c,d,e)
-#define ID3DXSprite_Flush(p)              (p)->lpVtbl->Flush(p)
-#define ID3DXSprite_End(p)                (p)->lpVtbl->End(p)
-#define ID3DXSprite_OnLostDevice(p)       (p)->lpVtbl->OnLostDevice(p)
-#define ID3DXSprite_OnResetDevice(p)      (p)->lpVtbl->OnResetDevice(p)
-#else
-/*** IUnknown methods ***/
-#define ID3DXSprite_QueryInterface(p,a,b)    (p)->QueryInterface(a,b)
-#define ID3DXSprite_AddRef(p)                (p)->AddRef()
-#define ID3DXSprite_Release(p)               (p)->Release()
-/*** ID3DXSprite methods ***/
-#define ID3DXSprite_GetDevice(p,a)        (p)->GetDevice(a)
-#define ID3DXSprite_GetTransform(p,a)     (p)->GetTransform(a)
-#define ID3DXSprite_SetTransform(p,a)     (p)->SetTransform(a)
-#define ID3DXSprite_SetWorldViewRH(p,a,b) (p)->SetWorldViewRH(a,b)
-#define ID3DXSprite_SetWorldViewLH(p,a,b) (p)->SetWorldViewLH(a,b)
-#define ID3DXSprite_Begin(p,a)            (p)->Begin(a)
-#define ID3DXSprite_Draw(p,a,b,c,d,e)     (p)->Draw(a,b,c,d,e)
-#define ID3DXSprite_Flush(p)              (p)->Flush()
-#define ID3DXSprite_End(p)                (p)->End()
-#define ID3DXSprite_OnLostDevice(p)       (p)->OnLostDevice()
-#define ID3DXSprite_OnResetDevice(p)      (p)->OnResetDevice()
-#endif
-
-/**********************************************
- ****************** functions *****************
- **********************************************/
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-BOOL    WINAPI D3DXCheckVersion(UINT d3dsdkvers, UINT d3dxsdkvers);
-HRESULT WINAPI D3DXCreateFontA(LPDIRECT3DDEVICE9 device, INT height, UINT width, UINT weight, UINT miplevels, BOOL italic, DWORD charset,
-                               DWORD precision, DWORD quality, DWORD pitchandfamily, LPCSTR facename, LPD3DXFONT *font);
-HRESULT WINAPI D3DXCreateFontW(LPDIRECT3DDEVICE9 device, INT height, UINT width, UINT weight, UINT miplevels, BOOL italic, DWORD charset,
-                               DWORD precision, DWORD quality, DWORD pitchandfamily, LPCWSTR facename, LPD3DXFONT *font);
-#define        D3DXCreateFont WINELIB_NAME_AW(D3DXCreateFont)
-HRESULT WINAPI D3DXCreateFontIndirectA(LPDIRECT3DDEVICE9 device, CONST D3DXFONT_DESCA *desc, LPD3DXFONT *font);
-HRESULT WINAPI D3DXCreateFontIndirectW(LPDIRECT3DDEVICE9 device, CONST D3DXFONT_DESCW *desc, LPD3DXFONT *font);
-#define        D3DXCreateFontIndirect WINELIB_NAME_AW(D3DXCreateFontIndirect)
-HRESULT WINAPI D3DXCreateLine(LPDIRECT3DDEVICE9 device, LPD3DXLINE *line);
-HRESULT WINAPI D3DXCreateRenderToEnvMap(LPDIRECT3DDEVICE9 device, UINT size, UINT miplevels, D3DFORMAT format, BOOL stencil, D3DFORMAT stencil_format, LPD3DXRenderToEnvMap *rtem);
-HRESULT WINAPI D3DXCreateRenderToSurface(LPDIRECT3DDEVICE9 device, UINT width, UINT height, D3DFORMAT format, BOOL stencil, D3DFORMAT stencil_format, LPD3DXRENDERTOSURFACE *rts);
-HRESULT WINAPI D3DXCreateSprite(LPDIRECT3DDEVICE9 device, LPD3DXSPRITE *sprite);
-BOOL    WINAPI D3DXDebugMute(BOOL mute);
-UINT    WINAPI D3DXGetDriverLevel(LPDIRECT3DDEVICE9 device);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __WINE_D3DX9CORE_H */
diff --git a/misc/builddeps/win64/dx/include/d3dx9effect.h b/misc/builddeps/win64/dx/include/d3dx9effect.h
deleted file mode 100644 (file)
index 3bb2878..0000000
+++ /dev/null
@@ -1,394 +0,0 @@
-/*
- * Copyright 2010 Christian Costa
- *
- * 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
- */
-
-#include <d3dx9.h>
-
-#ifndef __D3DX9EFFECT_H__
-#define __D3DX9EFFECT_H__
-
-typedef struct _D3DXEFFECT_DESC {
-    LPCSTR Creator;
-    UINT Parameters;
-    UINT Techniques;
-    UINT Functions;
-} D3DXEFFECT_DESC;
-
-typedef struct _D3DXPARAMETER_DESC {
-    LPCSTR Name;
-    LPCSTR Semantic;
-    D3DXPARAMETER_CLASS Class;
-    D3DXPARAMETER_TYPE Type;
-    UINT Rows;
-    UINT Columns;
-    UINT Elements;
-    UINT Annotations;
-    UINT StructMembers;
-    DWORD Flags;
-    UINT Bytes;
-} D3DXPARAMETER_DESC;
-
-typedef struct _D3DXTECHNIQUE_DESC {
-    LPCSTR Name;
-    UINT Passes;
-    UINT Annotations;
-} D3DXTECHNIQUE_DESC;
-
-typedef struct _D3DXPASS_DESC {
-    LPCSTR Name;
-    UINT Annotations;
-    CONST DWORD *pVertexShaderFunction;
-    CONST DWORD *pPixelShaderFunction;
-} D3DXPASS_DESC;
-
-typedef struct _D3DXFUNCTION_DESC {
-    LPCSTR Name;
-    UINT Annotations;
-} D3DXFUNCTION_DESC;
-
-typedef struct ID3DXEffectPool *LPD3DXEFFECTPOOL;
-
-DEFINE_GUID(IID_ID3DXEffectPool, 0x9537ab04, 0x3250, 0x412e, 0x82, 0x13, 0xfc, 0xd2, 0xf8, 0x67, 0x79, 0x33);
-
-#undef INTERFACE
-#define INTERFACE ID3DXEffectPool
-
-DECLARE_INTERFACE_(ID3DXEffectPool, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID* object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-};
-
-typedef struct ID3DXBaseEffect *LPD3DXBASEEFFECT;
-
-DEFINE_GUID(IID_ID3DXBaseEffect, 0x17c18ac, 0x103f, 0x4417, 0x8c, 0x51, 0x6b, 0xf6, 0xef, 0x1e, 0x56, 0xbe);
-
-#undef INTERFACE
-#define INTERFACE ID3DXBaseEffect
-
-DECLARE_INTERFACE_(ID3DXBaseEffect, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID* object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-    /*** ID3DXBaseEffect methods ***/
-    STDMETHOD(GetDesc)(THIS_ D3DXEFFECT_DESC* desc) PURE;
-    STDMETHOD(GetParameterDesc)(THIS_ D3DXHANDLE parameter, D3DXPARAMETER_DESC* desc) PURE;
-    STDMETHOD(GetTechniqueDesc)(THIS_ D3DXHANDLE technique, D3DXTECHNIQUE_DESC* desc) PURE;
-    STDMETHOD(GetPassDesc)(THIS_ D3DXHANDLE pass, D3DXPASS_DESC* desc) PURE;
-    STDMETHOD(GetFunctionDesc)(THIS_ D3DXHANDLE shader, D3DXFUNCTION_DESC* desc) PURE;
-    STDMETHOD_(D3DXHANDLE, GetParameter)(THIS_ D3DXHANDLE parameter, UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetParameterByName)(THIS_ D3DXHANDLE parameter, LPCSTR name) PURE;
-    STDMETHOD_(D3DXHANDLE, GetParameterBySemantic)(THIS_ D3DXHANDLE parameter, LPCSTR semantic) PURE;
-    STDMETHOD_(D3DXHANDLE, GetParameterElement)(THIS_ D3DXHANDLE parameter, UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetTechnique)(THIS_ UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetTechniqueByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(D3DXHANDLE, GetPass)(THIS_ D3DXHANDLE technique, UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetPassByName)(THIS_ D3DXHANDLE technique, LPCSTR name) PURE;
-    STDMETHOD_(D3DXHANDLE, GetFunction)(THIS_ UINT index);
-    STDMETHOD_(D3DXHANDLE, GetFunctionByName)(THIS_ LPCSTR name);
-    STDMETHOD_(D3DXHANDLE, GetAnnotation)(THIS_ D3DXHANDLE object, UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetAnnotationByName)(THIS_ D3DXHANDLE object, LPCSTR name) PURE;
-    STDMETHOD(SetValue)(THIS_ D3DXHANDLE parameter, LPCVOID data, UINT bytes) PURE;
-    STDMETHOD(GetValue)(THIS_ D3DXHANDLE parameter, LPVOID data, UINT bytes) PURE;
-    STDMETHOD(SetBool)(THIS_ D3DXHANDLE parameter, BOOL b) PURE;
-    STDMETHOD(GetBool)(THIS_ D3DXHANDLE parameter, BOOL* b) PURE;
-    STDMETHOD(SetBoolArray)(THIS_ D3DXHANDLE parameter, CONST BOOL* b, UINT count) PURE;
-    STDMETHOD(GetBoolArray)(THIS_ D3DXHANDLE parameter, BOOL* b, UINT count) PURE;
-    STDMETHOD(SetInt)(THIS_ D3DXHANDLE parameter, INT n) PURE;
-    STDMETHOD(GetInt)(THIS_ D3DXHANDLE parameter, INT* n) PURE;
-    STDMETHOD(SetIntArray)(THIS_ D3DXHANDLE parameter, CONST INT* n, UINT count) PURE;
-    STDMETHOD(GetIntArray)(THIS_ D3DXHANDLE parameter, INT* n, UINT count) PURE;
-    STDMETHOD(SetFloat)(THIS_ D3DXHANDLE parameter, FLOAT f) PURE;
-    STDMETHOD(GetFloat)(THIS_ D3DXHANDLE parameter, FLOAT* f) PURE;
-    STDMETHOD(SetFloatArray)(THIS_ D3DXHANDLE parameter, CONST FLOAT* f, UINT count) PURE;
-    STDMETHOD(GetFloatArray)(THIS_ D3DXHANDLE parameter, FLOAT* f, UINT count) PURE;
-    STDMETHOD(SetVector)(THIS_ D3DXHANDLE parameter, CONST D3DXVECTOR4* vector) PURE;
-    STDMETHOD(GetVector)(THIS_ D3DXHANDLE parameter, D3DXVECTOR4* vector) PURE;
-    STDMETHOD(SetVectorArray)(THIS_ D3DXHANDLE parameter, CONST D3DXVECTOR4* vector, UINT count) PURE;
-    STDMETHOD(GetVectorArray)(THIS_ D3DXHANDLE parameter, D3DXVECTOR4* vector, UINT count) PURE;
-    STDMETHOD(SetMatrix)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix) PURE;
-    STDMETHOD(GetMatrix)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix) PURE;
-    STDMETHOD(SetMatrixArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix, UINT count) PURE;
-    STDMETHOD(GetMatrixArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix, UINT count) PURE;
-    STDMETHOD(SetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX** matrix, UINT count) PURE;
-    STDMETHOD(GetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX** matrix, UINT count) PURE;
-    STDMETHOD(SetMatrixTranspose)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix) PURE;
-    STDMETHOD(GetMatrixTranspose)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix) PURE;
-    STDMETHOD(SetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix, UINT count) PURE;
-    STDMETHOD(GetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix, UINT count) PURE;
-    STDMETHOD(SetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX** matrix, UINT count) PURE;
-    STDMETHOD(GetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX** matrix, UINT count) PURE;
-    STDMETHOD(SetString)(THIS_ D3DXHANDLE parameter, LPCSTR string) PURE;
-    STDMETHOD(GetString)(THIS_ D3DXHANDLE parameter, LPCSTR* string) PURE;
-    STDMETHOD(SetTexture)(THIS_ D3DXHANDLE parameter, LPDIRECT3DBASETEXTURE9 texture) PURE;
-    STDMETHOD(GetTexture)(THIS_ D3DXHANDLE parameter, LPDIRECT3DBASETEXTURE9* texture) PURE;
-    STDMETHOD(SetPixelShader)(THIS_ D3DXHANDLE parameter, LPDIRECT3DPIXELSHADER9 pshader) PURE;
-    STDMETHOD(GetPixelShader)(THIS_ D3DXHANDLE parameter, LPDIRECT3DPIXELSHADER9* pshader) PURE;
-    STDMETHOD(SetVertexShader)(THIS_ D3DXHANDLE parameter, LPDIRECT3DVERTEXSHADER9 vshader) PURE;
-    STDMETHOD(GetVertexShader)(THIS_ D3DXHANDLE parameter, LPDIRECT3DVERTEXSHADER9* vshader) PURE;
-    STDMETHOD(SetArrayRange)(THIS_ D3DXHANDLE parameter, UINT start, UINT end) PURE;
-};
-
-typedef struct ID3DXEffectStateManager *LPD3DXEFFECTSTATEMANAGER;
-
-DEFINE_GUID(IID_ID3DXEffectStateManager, 0x79aab587, 0x6dbc, 0x4fa7, 0x82, 0xde, 0x37, 0xfa, 0x17, 0x81, 0xc5, 0xce);
-
-#undef INTERFACE
-#define INTERFACE ID3DXEffectStateManager
-
-DECLARE_INTERFACE_(ID3DXEffectStateManager, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID* object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-    /*** ID3DXEffectStateManager methods ***/
-    STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE state, CONST D3DMATRIX* matrix) PURE;
-    STDMETHOD(SetMaterial)(THIS_ CONST D3DMATERIAL9* material) PURE;
-    STDMETHOD(SetLight)(THIS_ DWORD index, CONST D3DLIGHT9* light) PURE;
-    STDMETHOD(LightEnable)(THIS_ DWORD index, BOOL enable) PURE;
-    STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE state, DWORD value) PURE;
-    STDMETHOD(SetTexture)(THIS_ DWORD stage, LPDIRECT3DBASETEXTURE9 texture) PURE;
-    STDMETHOD(SetTextureStageState)(THIS_ DWORD stage, D3DTEXTURESTAGESTATETYPE type, DWORD value) PURE;
-    STDMETHOD(SetSamplerState)(THIS_ DWORD sampler, D3DSAMPLERSTATETYPE type, DWORD value) PURE;
-    STDMETHOD(SetNPatchMode)(THIS_ FLOAT num_segments) PURE;
-    STDMETHOD(SetFVF)(THIS_ DWORD format) PURE;
-    STDMETHOD(SetVertexShader)(THIS_ LPDIRECT3DVERTEXSHADER9 shader) PURE;
-    STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT register_index, CONST FLOAT* constant_data, UINT register_count) PURE;
-    STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT register_index, CONST INT* constant_data, UINT register_count) PURE;
-    STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT register_index, CONST BOOL* constant_data, UINT register_count) PURE;
-    STDMETHOD(SetPixelShader)(THIS_ LPDIRECT3DPIXELSHADER9 shader) PURE;
-    STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT register_index, CONST FLOAT* constant_data, UINT register_count) PURE;
-    STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT register_index, CONST INT * constant_data, UINT register_count) PURE;
-    STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT register_index, CONST BOOL* constant_data, UINT register_count) PURE;
-};
-
-typedef struct ID3DXEffect *LPD3DXEFFECT;
-
-DEFINE_GUID(IID_ID3DXEffect, 0xf6ceb4b3, 0x4e4c, 0x40dd, 0xb8, 0x83, 0x8d, 0x8d, 0xe5, 0xea, 0xc, 0xd5);
-
-#undef INTERFACE
-#define INTERFACE ID3DXEffect
-
-DECLARE_INTERFACE_(ID3DXEffect, ID3DXBaseEffect)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID* object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-    /*** ID3DXBaseEffect methods ***/
-    STDMETHOD(GetDesc)(THIS_ D3DXEFFECT_DESC* desc) PURE;
-    STDMETHOD(GetParameterDesc)(THIS_ D3DXHANDLE parameter, D3DXPARAMETER_DESC* desc) PURE;
-    STDMETHOD(GetTechniqueDesc)(THIS_ D3DXHANDLE technique, D3DXTECHNIQUE_DESC* desc) PURE;
-    STDMETHOD(GetPassDesc)(THIS_ D3DXHANDLE pass, D3DXPASS_DESC* desc) PURE;
-    STDMETHOD(GetFunctionDesc)(THIS_ D3DXHANDLE shader, D3DXFUNCTION_DESC* desc) PURE;
-    STDMETHOD_(D3DXHANDLE, GetParameter)(THIS_ D3DXHANDLE parameter, UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetParameterByName)(THIS_ D3DXHANDLE parameter, LPCSTR name) PURE;
-    STDMETHOD_(D3DXHANDLE, GetParameterBySemantic)(THIS_ D3DXHANDLE parameter, LPCSTR semantic) PURE;
-    STDMETHOD_(D3DXHANDLE, GetParameterElement)(THIS_ D3DXHANDLE parameter, UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetTechnique)(THIS_ UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetTechniqueByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(D3DXHANDLE, GetPass)(THIS_ D3DXHANDLE technique, UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetPassByName)(THIS_ D3DXHANDLE technique, LPCSTR name) PURE;
-    STDMETHOD_(D3DXHANDLE, GetFunction)(THIS_ UINT index);
-    STDMETHOD_(D3DXHANDLE, GetFunctionByName)(THIS_ LPCSTR name);
-    STDMETHOD_(D3DXHANDLE, GetAnnotation)(THIS_ D3DXHANDLE object, UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetAnnotationByName)(THIS_ D3DXHANDLE object, LPCSTR name) PURE;
-    STDMETHOD(SetValue)(THIS_ D3DXHANDLE parameter, LPCVOID data, UINT bytes) PURE;
-    STDMETHOD(GetValue)(THIS_ D3DXHANDLE parameter, LPVOID data, UINT bytes) PURE;
-    STDMETHOD(SetBool)(THIS_ D3DXHANDLE parameter, BOOL b) PURE;
-    STDMETHOD(GetBool)(THIS_ D3DXHANDLE parameter, BOOL* b) PURE;
-    STDMETHOD(SetBoolArray)(THIS_ D3DXHANDLE parameter, CONST BOOL* b, UINT count) PURE;
-    STDMETHOD(GetBoolArray)(THIS_ D3DXHANDLE parameter, BOOL* b, UINT count) PURE;
-    STDMETHOD(SetInt)(THIS_ D3DXHANDLE parameter, INT n) PURE;
-    STDMETHOD(GetInt)(THIS_ D3DXHANDLE parameter, INT* n) PURE;
-    STDMETHOD(SetIntArray)(THIS_ D3DXHANDLE parameter, CONST INT* n, UINT count) PURE;
-    STDMETHOD(GetIntArray)(THIS_ D3DXHANDLE parameter, INT* n, UINT count) PURE;
-    STDMETHOD(SetFloat)(THIS_ D3DXHANDLE parameter, FLOAT f) PURE;
-    STDMETHOD(GetFloat)(THIS_ D3DXHANDLE parameter, FLOAT* f) PURE;
-    STDMETHOD(SetFloatArray)(THIS_ D3DXHANDLE parameter, CONST FLOAT* f, UINT count) PURE;
-    STDMETHOD(GetFloatArray)(THIS_ D3DXHANDLE parameter, FLOAT* f, UINT count) PURE;
-    STDMETHOD(SetVector)(THIS_ D3DXHANDLE parameter, CONST D3DXVECTOR4* vector) PURE;
-    STDMETHOD(GetVector)(THIS_ D3DXHANDLE parameter, D3DXVECTOR4* vector) PURE;
-    STDMETHOD(SetVectorArray)(THIS_ D3DXHANDLE parameter, CONST D3DXVECTOR4* vector, UINT count) PURE;
-    STDMETHOD(GetVectorArray)(THIS_ D3DXHANDLE parameter, D3DXVECTOR4* vector, UINT count) PURE;
-    STDMETHOD(SetMatrix)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix) PURE;
-    STDMETHOD(GetMatrix)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix) PURE;
-    STDMETHOD(SetMatrixArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix, UINT count) PURE;
-    STDMETHOD(GetMatrixArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix, UINT count) PURE;
-    STDMETHOD(SetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX** matrix, UINT count) PURE;
-    STDMETHOD(GetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX** matrix, UINT count) PURE;
-    STDMETHOD(SetMatrixTranspose)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix) PURE;
-    STDMETHOD(GetMatrixTranspose)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix) PURE;
-    STDMETHOD(SetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix, UINT count) PURE;
-    STDMETHOD(GetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix, UINT count) PURE;
-    STDMETHOD(SetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX** matrix, UINT count) PURE;
-    STDMETHOD(GetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX** matrix, UINT count) PURE;
-    STDMETHOD(SetString)(THIS_ D3DXHANDLE parameter, LPCSTR string) PURE;
-    STDMETHOD(GetString)(THIS_ D3DXHANDLE parameter, LPCSTR* string) PURE;
-    STDMETHOD(SetTexture)(THIS_ D3DXHANDLE parameter, LPDIRECT3DBASETEXTURE9 texture) PURE;
-    STDMETHOD(GetTexture)(THIS_ D3DXHANDLE parameter, LPDIRECT3DBASETEXTURE9* texture) PURE;
-    STDMETHOD(GetPixelShader)(THIS_ D3DXHANDLE parameter, LPDIRECT3DPIXELSHADER9* pshader) PURE;
-    STDMETHOD(GetVertexShader)(THIS_ D3DXHANDLE parameter, LPDIRECT3DVERTEXSHADER9* vshader) PURE;
-    STDMETHOD(SetArrayRange)(THIS_ D3DXHANDLE parameter, UINT start, UINT end) PURE;
-    /*** ID3DXEffect methods ***/
-    STDMETHOD(GetPool)(THIS_ LPD3DXEFFECTPOOL* pool) PURE;
-    STDMETHOD(SetTechnique)(THIS_ D3DXHANDLE technique) PURE;
-    STDMETHOD_(D3DXHANDLE, GetCurrentTechnique)(THIS) PURE;
-    STDMETHOD(ValidateTechnique)(THIS_ D3DXHANDLE technique) PURE;
-    STDMETHOD(FindNextValidTechnique)(THIS_ D3DXHANDLE technique, D3DXHANDLE* next_technique) PURE;
-    STDMETHOD_(BOOL, IsParameterUsed)(THIS_ D3DXHANDLE parameter, D3DXHANDLE technique) PURE;
-    STDMETHOD(Begin)(THIS_ UINT *passes, DWORD flags) PURE;
-    STDMETHOD(BeginPass)(THIS_ UINT pass) PURE;
-    STDMETHOD(CommitChanges)(THIS) PURE;
-    STDMETHOD(EndPass)(THIS) PURE;
-    STDMETHOD(End)(THIS) PURE;
-    STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9* device) PURE;
-    STDMETHOD(OnLostDevice)(THIS) PURE;
-    STDMETHOD(OnResetDevice)(THIS) PURE;
-    STDMETHOD(SetStateManager)(THIS_ LPD3DXEFFECTSTATEMANAGER manager) PURE;
-    STDMETHOD(GetStateManager)(THIS_ LPD3DXEFFECTSTATEMANAGER* manager) PURE;
-    STDMETHOD(BeginParameterBlock)(THIS) PURE;
-    STDMETHOD_(D3DXHANDLE, EndParameterBlock)(THIS) PURE;
-    STDMETHOD(ApplyParameterBlock)(THIS_ D3DXHANDLE parameter_block) PURE;
-    STDMETHOD(DeleteParameterBlock)(THIS_ D3DXHANDLE parameter_block) PURE;
-    STDMETHOD(CloneEffect)(THIS_ LPDIRECT3DDEVICE9 device, LPD3DXEFFECT* effect) PURE;
-    STDMETHOD(SetRawValue)(THIS_ D3DXHANDLE parameter, LPCVOID data, UINT byte_offset, UINT bytes) PURE;
-};
-
-typedef struct ID3DXEffectCompiler *LPD3DXEFFECTCOMPILER;
-
-DEFINE_GUID(IID_ID3DXEffectCompiler, 0x51b8a949, 0x1a31, 0x47e6, 0xbe, 0xa0, 0x4b, 0x30, 0xdb, 0x53, 0xf1, 0xe0);
-
-#undef INTERFACE
-#define INTERFACE ID3DXEffectCompiler
-
-DECLARE_INTERFACE_(ID3DXEffectCompiler, ID3DXBaseEffect)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID* object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-    /*** ID3DXBaseEffect methods ***/
-    STDMETHOD(GetDesc)(THIS_ D3DXEFFECT_DESC* desc) PURE;
-    STDMETHOD(GetParameterDesc)(THIS_ D3DXHANDLE parameter, D3DXPARAMETER_DESC* desc) PURE;
-    STDMETHOD(GetTechniqueDesc)(THIS_ D3DXHANDLE technique, D3DXTECHNIQUE_DESC* desc) PURE;
-    STDMETHOD(GetPassDesc)(THIS_ D3DXHANDLE pass, D3DXPASS_DESC* desc) PURE;
-    STDMETHOD(GetFunctionDesc)(THIS_ D3DXHANDLE shader, D3DXFUNCTION_DESC* desc) PURE;
-    STDMETHOD_(D3DXHANDLE, GetParameter)(THIS_ D3DXHANDLE parameter, UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetParameterByName)(THIS_ D3DXHANDLE parameter, LPCSTR name) PURE;
-    STDMETHOD_(D3DXHANDLE, GetParameterBySemantic)(THIS_ D3DXHANDLE parameter, LPCSTR semantic) PURE;
-    STDMETHOD_(D3DXHANDLE, GetParameterElement)(THIS_ D3DXHANDLE parameter, UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetTechnique)(THIS_ UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetTechniqueByName)(THIS_ LPCSTR name) PURE;
-    STDMETHOD_(D3DXHANDLE, GetPass)(THIS_ D3DXHANDLE technique, UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetPassByName)(THIS_ D3DXHANDLE technique, LPCSTR name) PURE;
-    STDMETHOD_(D3DXHANDLE, GetFunction)(THIS_ UINT index);
-    STDMETHOD_(D3DXHANDLE, GetFunctionByName)(THIS_ LPCSTR name);
-    STDMETHOD_(D3DXHANDLE, GetAnnotation)(THIS_ D3DXHANDLE object, UINT index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetAnnotationByName)(THIS_ D3DXHANDLE object, LPCSTR name) PURE;
-    STDMETHOD(SetValue)(THIS_ D3DXHANDLE parameter, LPCVOID data, UINT bytes) PURE;
-    STDMETHOD(GetValue)(THIS_ D3DXHANDLE parameter, LPVOID data, UINT bytes) PURE;
-    STDMETHOD(SetBool)(THIS_ D3DXHANDLE parameter, BOOL b) PURE;
-    STDMETHOD(GetBool)(THIS_ D3DXHANDLE parameter, BOOL* b) PURE;
-    STDMETHOD(SetBoolArray)(THIS_ D3DXHANDLE parameter, CONST BOOL* b, UINT count) PURE;
-    STDMETHOD(GetBoolArray)(THIS_ D3DXHANDLE parameter, BOOL* b, UINT count) PURE;
-    STDMETHOD(SetInt)(THIS_ D3DXHANDLE parameter, INT n) PURE;
-    STDMETHOD(GetInt)(THIS_ D3DXHANDLE parameter, INT* n) PURE;
-    STDMETHOD(SetIntArray)(THIS_ D3DXHANDLE parameter, CONST INT* n, UINT count) PURE;
-    STDMETHOD(GetIntArray)(THIS_ D3DXHANDLE parameter, INT* n, UINT count) PURE;
-    STDMETHOD(SetFloat)(THIS_ D3DXHANDLE parameter, FLOAT f) PURE;
-    STDMETHOD(GetFloat)(THIS_ D3DXHANDLE parameter, FLOAT* f) PURE;
-    STDMETHOD(SetFloatArray)(THIS_ D3DXHANDLE parameter, CONST FLOAT* f, UINT count) PURE;
-    STDMETHOD(GetFloatArray)(THIS_ D3DXHANDLE parameter, FLOAT* f, UINT count) PURE;
-    STDMETHOD(SetVector)(THIS_ D3DXHANDLE parameter, CONST D3DXVECTOR4* vector) PURE;
-    STDMETHOD(GetVector)(THIS_ D3DXHANDLE parameter, D3DXVECTOR4* vector) PURE;
-    STDMETHOD(SetVectorArray)(THIS_ D3DXHANDLE parameter, CONST D3DXVECTOR4* vector, UINT count) PURE;
-    STDMETHOD(GetVectorArray)(THIS_ D3DXHANDLE parameter, D3DXVECTOR4* vector, UINT count) PURE;
-    STDMETHOD(SetMatrix)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix) PURE;
-    STDMETHOD(GetMatrix)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix) PURE;
-    STDMETHOD(SetMatrixArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix, UINT count) PURE;
-    STDMETHOD(GetMatrixArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix, UINT count) PURE;
-    STDMETHOD(SetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX** matrix, UINT count) PURE;
-    STDMETHOD(GetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX** matrix, UINT count) PURE;
-    STDMETHOD(SetMatrixTranspose)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix) PURE;
-    STDMETHOD(GetMatrixTranspose)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix) PURE;
-    STDMETHOD(SetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix, UINT count) PURE;
-    STDMETHOD(GetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix, UINT count) PURE;
-    STDMETHOD(SetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX** matrix, UINT count) PURE;
-    STDMETHOD(GetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX** matrix, UINT count) PURE;
-    STDMETHOD(SetString)(THIS_ D3DXHANDLE parameter, LPCSTR string) PURE;
-    STDMETHOD(GetString)(THIS_ D3DXHANDLE parameter, LPCSTR* string) PURE;
-    STDMETHOD(SetTexture)(THIS_ D3DXHANDLE parameter, LPDIRECT3DBASETEXTURE9 texture) PURE;
-    STDMETHOD(GetTexture)(THIS_ D3DXHANDLE parameter, LPDIRECT3DBASETEXTURE9* texture) PURE;
-    STDMETHOD(SetPixelShader)(THIS_ D3DXHANDLE parameter, LPDIRECT3DPIXELSHADER9 pshader) PURE;
-    STDMETHOD(GetPixelShader)(THIS_ D3DXHANDLE parameter, LPDIRECT3DPIXELSHADER9* pshader) PURE;
-    STDMETHOD(SetVertexShader)(THIS_ D3DXHANDLE parameter, LPDIRECT3DVERTEXSHADER9 vshader) PURE;
-    STDMETHOD(GetVertexShader)(THIS_ D3DXHANDLE parameter, LPDIRECT3DVERTEXSHADER9* vshader) PURE;
-    STDMETHOD(SetArrayRange)(THIS_ D3DXHANDLE parameter, UINT start, UINT end) PURE;
-    /*** ID3DXEffectCompiler methods ***/
-    STDMETHOD(SetLiteral)(THIS_ D3DXHANDLE parameter, BOOL literal) PURE;
-    STDMETHOD(GetLiteral)(THIS_ D3DXHANDLE parameter, BOOL* literal) PURE;
-    STDMETHOD(CompileEffect)(THIS_ DWORD flags, LPD3DXBUFFER* effect, LPD3DXBUFFER* error_msgs) PURE;
-    STDMETHOD(CompileShader)(THIS_ D3DXHANDLE function, LPCSTR target, DWORD flags, LPD3DXBUFFER* shader,
-        LPD3DXBUFFER* error_msgs, LPD3DXCONSTANTTABLE* constant_table) PURE;
-};
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-HRESULT WINAPI D3DXCreateEffectPool(LPD3DXEFFECTPOOL* pool);
-
-HRESULT WINAPI D3DXCreateEffect(LPDIRECT3DDEVICE9 device,
-                                LPCVOID srcdata,
-                                UINT srcdatalen,
-                                CONST D3DXMACRO* defines,
-                                LPD3DXINCLUDE include,
-                                DWORD flags,
-                                LPD3DXEFFECTPOOL pool,
-                                LPD3DXEFFECT* effect,
-                                LPD3DXBUFFER* compilation_errors);
-
-HRESULT WINAPI D3DXCreateEffectEx(LPDIRECT3DDEVICE9 device,
-                                  LPCVOID srcdata,
-                                  UINT srcdatalen,
-                                  CONST D3DXMACRO* defines,
-                                  LPD3DXINCLUDE include,
-                                  LPCSTR skip_constants,
-                                  DWORD flags,
-                                  LPD3DXEFFECTPOOL pool,
-                                  LPD3DXEFFECT* effect,
-                                  LPD3DXBUFFER* compilation_errors);
-
-HRESULT WINAPI D3DXCreateEffectCompiler(LPCSTR srcdata,
-                                        UINT srcdatalen,
-                                        CONST D3DXMACRO* defines,
-                                        LPD3DXINCLUDE include,
-                                        DWORD flags,
-                                        LPD3DXEFFECTCOMPILER* compiler,
-                                        LPD3DXBUFFER* parse_errors);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __D3DX9EFFECT_H__ */
diff --git a/misc/builddeps/win64/dx/include/d3dx9math.h b/misc/builddeps/win64/dx/include/d3dx9math.h
deleted file mode 100644 (file)
index f842e3e..0000000
+++ /dev/null
@@ -1,432 +0,0 @@
-/*
- * Copyright (C) 2007 David Adam
- * Copyright (C) 2007 Tony Wasserka
- *
- * 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
- */
-
-#include <d3dx9.h>
-
-#ifndef __D3DX9MATH_H__
-#define __D3DX9MATH_H__
-
-#include <math.h>
-
-#define D3DX_PI    ((FLOAT)3.141592654)
-#define D3DX_1BYPI ((FLOAT)0.318309886)
-
-#define D3DXToRadian(degree) ((degree) * (D3DX_PI / 180.0f))
-#define D3DXToDegree(radian) ((radian) * (180.0f / D3DX_PI))
-
-
-
-typedef struct D3DXVECTOR2
-{
-#ifdef __cplusplus
-    D3DXVECTOR2();
-    D3DXVECTOR2(CONST FLOAT *pf);
-    D3DXVECTOR2(FLOAT fx, FLOAT fy);
-
-    operator FLOAT* ();
-    operator CONST FLOAT* () const;
-
-    D3DXVECTOR2& operator += (CONST D3DXVECTOR2&);
-    D3DXVECTOR2& operator -= (CONST D3DXVECTOR2&);
-    D3DXVECTOR2& operator *= (FLOAT);
-    D3DXVECTOR2& operator /= (FLOAT);
-
-    D3DXVECTOR2 operator + () const;
-    D3DXVECTOR2 operator - () const;
-
-    D3DXVECTOR2 operator + (CONST D3DXVECTOR2&) const;
-    D3DXVECTOR2 operator - (CONST D3DXVECTOR2&) const;
-    D3DXVECTOR2 operator * (FLOAT) const;
-    D3DXVECTOR2 operator / (FLOAT) const;
-
-    friend D3DXVECTOR2 operator * (FLOAT, CONST D3DXVECTOR2&);
-
-    BOOL operator == (CONST D3DXVECTOR2&) const;
-    BOOL operator != (CONST D3DXVECTOR2&) const;
-#endif /* __cplusplus */
-    FLOAT x, y;
-} D3DXVECTOR2, *LPD3DXVECTOR2;
-
-#ifdef __cplusplus
-typedef struct D3DXVECTOR3 : public D3DVECTOR
-{
-    D3DXVECTOR3();
-    D3DXVECTOR3(CONST FLOAT *pf);
-    D3DXVECTOR3(CONST D3DVECTOR& v);
-    D3DXVECTOR3(FLOAT fx, FLOAT fy, FLOAT fz);
-
-    operator FLOAT* ();
-    operator CONST FLOAT* () const;
-
-    D3DXVECTOR3& operator += (CONST D3DXVECTOR3&);
-    D3DXVECTOR3& operator -= (CONST D3DXVECTOR3&);
-    D3DXVECTOR3& operator *= (FLOAT);
-    D3DXVECTOR3& operator /= (FLOAT);
-
-    D3DXVECTOR3 operator + () const;
-    D3DXVECTOR3 operator - () const;
-
-    D3DXVECTOR3 operator + (CONST D3DXVECTOR3&) const;
-    D3DXVECTOR3 operator - (CONST D3DXVECTOR3&) const;
-    D3DXVECTOR3 operator * (FLOAT) const;
-    D3DXVECTOR3 operator / (FLOAT) const;
-
-    friend D3DXVECTOR3 operator * (FLOAT, CONST struct D3DXVECTOR3&);
-
-    BOOL operator == (CONST D3DXVECTOR3&) const;
-    BOOL operator != (CONST D3DXVECTOR3&) const;
-} D3DXVECTOR3, *LPD3DXVECTOR3;
-#else /* !__cplusplus */
-typedef struct _D3DVECTOR D3DXVECTOR3, *LPD3DXVECTOR3;
-#endif /* !__cplusplus */
-
-typedef struct D3DXVECTOR4
-{
-#ifdef __cplusplus
-    D3DXVECTOR4();
-    D3DXVECTOR4(CONST FLOAT *pf);
-    D3DXVECTOR4(FLOAT fx, FLOAT fy, FLOAT fz, FLOAT fw);
-
-    operator FLOAT* ();
-    operator CONST FLOAT* () const;
-
-    D3DXVECTOR4& operator += (CONST D3DXVECTOR4&);
-    D3DXVECTOR4& operator -= (CONST D3DXVECTOR4&);
-    D3DXVECTOR4& operator *= (FLOAT);
-    D3DXVECTOR4& operator /= (FLOAT);
-
-    D3DXVECTOR4 operator + () const;
-    D3DXVECTOR4 operator - () const;
-
-    D3DXVECTOR4 operator + (CONST D3DXVECTOR4&) const;
-    D3DXVECTOR4 operator - (CONST D3DXVECTOR4&) const;
-    D3DXVECTOR4 operator * (FLOAT) const;
-    D3DXVECTOR4 operator / (FLOAT) const;
-
-    friend D3DXVECTOR4 operator * (FLOAT, CONST D3DXVECTOR4&);
-
-    BOOL operator == (CONST D3DXVECTOR4&) const;
-    BOOL operator != (CONST D3DXVECTOR4&) const;
-#endif /* __cplusplus */
-    FLOAT x, y, z, w;
-} D3DXVECTOR4, *LPD3DXVECTOR4;
-
-#ifdef __cplusplus
-typedef struct D3DXMATRIX : public D3DMATRIX
-{
-    D3DXMATRIX();
-    D3DXMATRIX(CONST FLOAT *pf);
-    D3DXMATRIX(CONST D3DMATRIX& mat);
-    D3DXMATRIX(FLOAT f11, FLOAT f12, FLOAT f13, FLOAT f14,
-               FLOAT f21, FLOAT f22, FLOAT f23, FLOAT f24,
-               FLOAT f31, FLOAT f32, FLOAT f33, FLOAT f34,
-               FLOAT f41, FLOAT f42, FLOAT f43, FLOAT f44);
-
-    FLOAT& operator () (UINT row, UINT col);
-    FLOAT operator () (UINT row, UINT col) const;
-
-    operator FLOAT* ();
-    operator CONST FLOAT* () const;
-
-    D3DXMATRIX& operator *= (CONST D3DXMATRIX&);
-    D3DXMATRIX& operator += (CONST D3DXMATRIX&);
-    D3DXMATRIX& operator -= (CONST D3DXMATRIX&);
-    D3DXMATRIX& operator *= (FLOAT);
-    D3DXMATRIX& operator /= (FLOAT);
-
-    D3DXMATRIX operator + () const;
-    D3DXMATRIX operator - () const;
-
-    D3DXMATRIX operator * (CONST D3DXMATRIX&) const;
-    D3DXMATRIX operator + (CONST D3DXMATRIX&) const;
-    D3DXMATRIX operator - (CONST D3DXMATRIX&) const;
-    D3DXMATRIX operator * (FLOAT) const;
-    D3DXMATRIX operator / (FLOAT) const;
-
-    friend D3DXMATRIX operator * (FLOAT, CONST D3DXMATRIX&);
-
-    BOOL operator == (CONST D3DXMATRIX&) const;
-    BOOL operator != (CONST D3DXMATRIX&) const;
-} D3DXMATRIX, *LPD3DXMATRIX;
-#else /* !__cplusplus */
-typedef struct _D3DMATRIX D3DXMATRIX, *LPD3DXMATRIX;
-#endif /* !__cplusplus */
-
-typedef struct D3DXQUATERNION
-{
-#ifdef __cplusplus
-    D3DXQUATERNION();
-    D3DXQUATERNION(CONST FLOAT *pf);
-    D3DXQUATERNION(FLOAT fx, FLOAT fy, FLOAT fz, FLOAT fw);
-
-    operator FLOAT* ();
-    operator CONST FLOAT* () const;
-
-    D3DXQUATERNION& operator += (CONST D3DXQUATERNION&);
-    D3DXQUATERNION& operator -= (CONST D3DXQUATERNION&);
-    D3DXQUATERNION& operator *= (CONST D3DXQUATERNION&);
-    D3DXQUATERNION& operator *= (FLOAT);
-    D3DXQUATERNION& operator /= (FLOAT);
-
-    D3DXQUATERNION  operator + () const;
-    D3DXQUATERNION  operator - () const;
-
-    D3DXQUATERNION operator + (CONST D3DXQUATERNION&) const;
-    D3DXQUATERNION operator - (CONST D3DXQUATERNION&) const;
-    D3DXQUATERNION operator * (CONST D3DXQUATERNION&) const;
-    D3DXQUATERNION operator * (FLOAT) const;
-    D3DXQUATERNION operator / (FLOAT) const;
-
-    friend D3DXQUATERNION operator * (FLOAT, CONST D3DXQUATERNION&);
-
-    BOOL operator == (CONST D3DXQUATERNION&) const;
-    BOOL operator != (CONST D3DXQUATERNION&) const;
-#endif /* __cplusplus */
-    FLOAT x, y, z, w;
-} D3DXQUATERNION, *LPD3DXQUATERNION;
-
-typedef struct D3DXPLANE
-{
-#ifdef __cplusplus
-    D3DXPLANE();
-    D3DXPLANE(CONST FLOAT *pf);
-    D3DXPLANE(FLOAT fa, FLOAT fb, FLOAT fc, FLOAT fd);
-
-    operator FLOAT* ();
-    operator CONST FLOAT* () const;
-
-    D3DXPLANE operator + () const;
-    D3DXPLANE operator - () const;
-
-    BOOL operator == (CONST D3DXPLANE&) const;
-    BOOL operator != (CONST D3DXPLANE&) const;
-#endif /* __cplusplus */
-    FLOAT a, b, c, d;
-} D3DXPLANE, *LPD3DXPLANE;
-
-typedef struct D3DXCOLOR
-{
-#ifdef __cplusplus
-    D3DXCOLOR();
-    D3DXCOLOR(DWORD col);
-    D3DXCOLOR(CONST FLOAT *pf);
-    D3DXCOLOR(CONST D3DCOLORVALUE& col);
-    D3DXCOLOR(FLOAT fr, FLOAT fg, FLOAT fb, FLOAT fa);
-
-    operator DWORD () const;
-
-    operator FLOAT* ();
-    operator CONST FLOAT* () const;
-
-    operator D3DCOLORVALUE* ();
-    operator CONST D3DCOLORVALUE* () const;
-
-    operator D3DCOLORVALUE& ();
-    operator CONST D3DCOLORVALUE& () const;
-
-    D3DXCOLOR& operator += (CONST D3DXCOLOR&);
-    D3DXCOLOR& operator -= (CONST D3DXCOLOR&);
-    D3DXCOLOR& operator *= (FLOAT);
-    D3DXCOLOR& operator /= (FLOAT);
-
-    D3DXCOLOR operator + () const;
-    D3DXCOLOR operator - () const;
-
-    D3DXCOLOR operator + (CONST D3DXCOLOR&) const;
-    D3DXCOLOR operator - (CONST D3DXCOLOR&) const;
-    D3DXCOLOR operator * (FLOAT) const;
-    D3DXCOLOR operator / (FLOAT) const;
-
-    friend D3DXCOLOR operator * (FLOAT, CONST D3DXCOLOR&);
-
-    BOOL operator == (CONST D3DXCOLOR&) const;
-    BOOL operator != (CONST D3DXCOLOR&) const;
-#endif /* __cplusplus */
-    FLOAT r, g, b, a;
-} D3DXCOLOR, *LPD3DXCOLOR;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-D3DXCOLOR* WINAPI D3DXColorAdjustContrast(D3DXCOLOR *pout, CONST D3DXCOLOR *pc, FLOAT s);
-D3DXCOLOR* WINAPI D3DXColorAdjustSaturation(D3DXCOLOR *pout, CONST D3DXCOLOR *pc, FLOAT s);
-
-FLOAT WINAPI D3DXFresnelTerm(FLOAT costheta, FLOAT refractionindex);
-
-D3DXMATRIX* WINAPI D3DXMatrixAffineTransformation(D3DXMATRIX *pout, FLOAT scaling, CONST D3DXVECTOR3 *rotationcenter, CONST D3DXQUATERNION *rotation, CONST D3DXVECTOR3 *translation);
-D3DXMATRIX* WINAPI D3DXMatrixAffineTransformation2D(D3DXMATRIX *pout, FLOAT scaling, CONST D3DXVECTOR2 *protationcenter, FLOAT rotation, CONST D3DXVECTOR2 *ptranslation);
-HRESULT WINAPI D3DXMatrixDecompose(D3DXVECTOR3 *poutscale, D3DXQUATERNION *poutrotation, D3DXVECTOR3 *pouttranslation, CONST D3DXMATRIX *pm);
-FLOAT WINAPI D3DXMatrixDeterminant(CONST D3DXMATRIX *pm);
-D3DXMATRIX* WINAPI D3DXMatrixInverse(D3DXMATRIX *pout, FLOAT *pdeterminant, CONST D3DXMATRIX *pm);
-D3DXMATRIX* WINAPI D3DXMatrixLookAtLH(D3DXMATRIX *pout, CONST D3DXVECTOR3 *peye, CONST D3DXVECTOR3 *pat, CONST D3DXVECTOR3 *pup);
-D3DXMATRIX* WINAPI D3DXMatrixLookAtRH(D3DXMATRIX *pout, CONST D3DXVECTOR3 *peye, CONST D3DXVECTOR3 *pat, CONST D3DXVECTOR3 *pup);
-D3DXMATRIX* WINAPI D3DXMatrixMultiply(D3DXMATRIX *pout, CONST D3DXMATRIX *pm1, CONST D3DXMATRIX *pm2);
-D3DXMATRIX* WINAPI D3DXMatrixMultiplyTranspose(D3DXMATRIX *pout, CONST D3DXMATRIX *pm1, CONST D3DXMATRIX *pm2);
-D3DXMATRIX* WINAPI D3DXMatrixOrthoLH(D3DXMATRIX *pout, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf);
-D3DXMATRIX* WINAPI D3DXMatrixOrthoOffCenterLH(D3DXMATRIX *pout, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf);
-D3DXMATRIX* WINAPI D3DXMatrixOrthoOffCenterRH(D3DXMATRIX *pout, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf);
-D3DXMATRIX* WINAPI D3DXMatrixOrthoLH(D3DXMATRIX *pout, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf);
-D3DXMATRIX* WINAPI D3DXMatrixOrthoRH(D3DXMATRIX *pout, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf);
-D3DXMATRIX* WINAPI D3DXMatrixPerspectiveFovLH(D3DXMATRIX *pout, FLOAT fovy, FLOAT aspect, FLOAT zn, FLOAT zf);
-D3DXMATRIX* WINAPI D3DXMatrixPerspectiveFovRH(D3DXMATRIX *pout, FLOAT fovy, FLOAT aspect, FLOAT zn, FLOAT zf);
-D3DXMATRIX* WINAPI D3DXMatrixPerspectiveLH(D3DXMATRIX *pout, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf);
-D3DXMATRIX* WINAPI D3DXMatrixPerspectiveOffCenterLH(D3DXMATRIX *pout, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf);
-D3DXMATRIX* WINAPI D3DXMatrixPerspectiveOffCenterRH(D3DXMATRIX *pout, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf);
-D3DXMATRIX* WINAPI D3DXMatrixPerspectiveRH(D3DXMATRIX *pout, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf);
-D3DXMATRIX* WINAPI D3DXMatrixReflect(D3DXMATRIX *pout, CONST D3DXPLANE *pplane);
-D3DXMATRIX* WINAPI D3DXMatrixRotationAxis(D3DXMATRIX *pout, CONST D3DXVECTOR3 *pv, FLOAT angle);
-D3DXMATRIX* WINAPI D3DXMatrixRotationQuaternion(D3DXMATRIX *pout, CONST D3DXQUATERNION *pq);
-D3DXMATRIX* WINAPI D3DXMatrixRotationX(D3DXMATRIX *pout, FLOAT angle);
-D3DXMATRIX* WINAPI D3DXMatrixRotationY(D3DXMATRIX *pout, FLOAT angle);
-D3DXMATRIX* WINAPI D3DXMatrixRotationYawPitchRoll(D3DXMATRIX *pout, FLOAT yaw, FLOAT pitch, FLOAT roll);
-D3DXMATRIX* WINAPI D3DXMatrixRotationZ(D3DXMATRIX *pout, FLOAT angle);
-D3DXMATRIX* WINAPI D3DXMatrixScaling(D3DXMATRIX *pout, FLOAT sx, FLOAT sy, FLOAT sz);
-D3DXMATRIX* WINAPI D3DXMatrixShadow(D3DXMATRIX *pout, CONST D3DXVECTOR4 *plight, CONST D3DXPLANE *pPlane);
-D3DXMATRIX* WINAPI D3DXMatrixTransformation(D3DXMATRIX *pout, CONST D3DXVECTOR3 *pscalingcenter, CONST D3DXQUATERNION *pscalingrotation, CONST D3DXVECTOR3 *pscaling, CONST D3DXVECTOR3 *protationcenter, CONST D3DXQUATERNION *protation, CONST D3DXVECTOR3 *ptranslation);
-D3DXMATRIX* WINAPI D3DXMatrixTransformation2D(D3DXMATRIX *pout, CONST D3DXVECTOR2 *pscalingcenter, FLOAT scalingrotation, CONST D3DXVECTOR2 *pscaling, CONST D3DXVECTOR2 *protationcenter, FLOAT rotation, CONST D3DXVECTOR2 *ptranslation);
-D3DXMATRIX* WINAPI D3DXMatrixTranslation(D3DXMATRIX *pout, FLOAT x, FLOAT y, FLOAT z);
-D3DXMATRIX* WINAPI D3DXMatrixTranspose(D3DXMATRIX *pout, CONST D3DXMATRIX *pm);
-
-D3DXPLANE* WINAPI D3DXPlaneFromPointNormal(D3DXPLANE *pout, CONST D3DXVECTOR3 *pvpoint, CONST D3DXVECTOR3 *pvnormal);
-D3DXPLANE* WINAPI D3DXPlaneFromPoints(D3DXPLANE *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2, CONST D3DXVECTOR3 *pv3);
-D3DXVECTOR3* WINAPI D3DXPlaneIntersectLine(D3DXVECTOR3 *pout, CONST D3DXPLANE *pp, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2);
-D3DXPLANE* WINAPI D3DXPlaneNormalize(D3DXPLANE *pout, CONST D3DXPLANE *pp);
-D3DXPLANE* WINAPI D3DXPlaneTransform(D3DXPLANE *pout, CONST D3DXPLANE *pplane, CONST D3DXMATRIX *pm);
-D3DXPLANE* WINAPI D3DXPlaneTransformArray(D3DXPLANE *pout, UINT outstride, CONST D3DXPLANE *pplane, UINT pstride, CONST D3DXMATRIX *pm, UINT n);
-
-D3DXQUATERNION* WINAPI D3DXQuaternionBaryCentric(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq1, CONST D3DXQUATERNION *pq2, CONST D3DXQUATERNION *pq3, FLOAT f, FLOAT g);
-D3DXQUATERNION* WINAPI D3DXQuaternionExp(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq);
-D3DXQUATERNION* WINAPI D3DXQuaternionInverse(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq);
-D3DXQUATERNION* WINAPI D3DXQuaternionLn(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq);
-D3DXQUATERNION* WINAPI D3DXQuaternionMultiply(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq1, CONST D3DXQUATERNION *pq2);
-D3DXQUATERNION* WINAPI D3DXQuaternionNormalize(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq);
-D3DXQUATERNION* WINAPI D3DXQuaternionRotationAxis(D3DXQUATERNION *pout, CONST D3DXVECTOR3 *pv, FLOAT angle);
-D3DXQUATERNION* WINAPI D3DXQuaternionRotationMatrix(D3DXQUATERNION *pout, CONST D3DXMATRIX *pm);
-D3DXQUATERNION* WINAPI D3DXQuaternionRotationYawPitchRoll(D3DXQUATERNION *pout, FLOAT yaw, FLOAT pitch, FLOAT roll);
-D3DXQUATERNION* WINAPI D3DXQuaternionSlerp(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq1, CONST D3DXQUATERNION *pq2, FLOAT t);
-D3DXQUATERNION* WINAPI D3DXQuaternionSquad(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq1, CONST D3DXQUATERNION *pq2, CONST D3DXQUATERNION *pq3, CONST D3DXQUATERNION *pq4, FLOAT t);
-void WINAPI D3DXQuaternionToAxisAngle(CONST D3DXQUATERNION *pq, D3DXVECTOR3 *paxis, FLOAT *pangle);
-
-D3DXVECTOR2* WINAPI D3DXVec2BaryCentric(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2, CONST D3DXVECTOR2 *pv3, FLOAT f, FLOAT g);
-D3DXVECTOR2* WINAPI D3DXVec2CatmullRom(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv0, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2, CONST D3DXVECTOR2 *pv3, FLOAT s);
-D3DXVECTOR2* WINAPI D3DXVec2Hermite(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pt1, CONST D3DXVECTOR2 *pv2, CONST D3DXVECTOR2 *pt2, FLOAT s);
-D3DXVECTOR2* WINAPI D3DXVec2Normalize(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv);
-D3DXVECTOR4* WINAPI D3DXVec2Transform(D3DXVECTOR4 *pout, CONST D3DXVECTOR2 *pv, CONST D3DXMATRIX *pm);
-D3DXVECTOR4* WINAPI D3DXVec2TransformArray(D3DXVECTOR4 *pout, UINT outstride, CONST D3DXVECTOR2 *pv, UINT vstride, CONST D3DXMATRIX *pm, UINT n);
-D3DXVECTOR2* WINAPI D3DXVec2TransformCoord(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv, CONST D3DXMATRIX *pm);
-D3DXVECTOR2* WINAPI D3DXVec2TransformCoordArray(D3DXVECTOR2 *pout, UINT outstride, CONST D3DXVECTOR2 *pv, UINT vstride, CONST D3DXMATRIX *pm, UINT n);
-D3DXVECTOR2* WINAPI D3DXVec2TransformNormal(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv, CONST D3DXMATRIX *pm);
-D3DXVECTOR2* WINAPI D3DXVec2TransformNormalArray(D3DXVECTOR2 *pout, UINT outstride, CONST D3DXVECTOR2 *pv, UINT vstride, CONST D3DXMATRIX *pm, UINT n);
-
-D3DXVECTOR3* WINAPI D3DXVec3BaryCentric(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2, CONST D3DXVECTOR3 *pv3, FLOAT f, FLOAT g);
-D3DXVECTOR3* WINAPI D3DXVec3CatmullRom( D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv0, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2, CONST D3DXVECTOR3 *pv3, FLOAT s);
-D3DXVECTOR3* WINAPI D3DXVec3Hermite(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pt1, CONST D3DXVECTOR3 *pv2, CONST D3DXVECTOR3 *pt2, FLOAT s);
-D3DXVECTOR3* WINAPI D3DXVec3Normalize(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv);
-D3DXVECTOR3* WINAPI D3DXVec3Project(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv, CONST D3DVIEWPORT9 *pviewport, CONST D3DXMATRIX *pprojection, CONST D3DXMATRIX *pview, CONST D3DXMATRIX *pworld);
-D3DXVECTOR3* WINAPI D3DXVec3ProjectArray(D3DXVECTOR3 *pout, UINT outstride, CONST D3DXVECTOR3 *pv, UINT vstride, CONST D3DVIEWPORT9 *pviewport, CONST D3DXMATRIX *pprojection, CONST D3DXMATRIX *pview, CONST D3DXMATRIX *pworld, UINT n);
-D3DXVECTOR4* WINAPI D3DXVec3Transform(D3DXVECTOR4 *pout, CONST D3DXVECTOR3 *pv, CONST D3DXMATRIX *pm);
-D3DXVECTOR4* WINAPI D3DXVec3TransformArray(D3DXVECTOR4 *pout, UINT outstride, CONST D3DXVECTOR3 *pv, UINT vstride, CONST D3DXMATRIX *pm, UINT n);
-D3DXVECTOR3* WINAPI D3DXVec3TransformCoord(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv, CONST D3DXMATRIX *pm);
-D3DXVECTOR3* WINAPI D3DXVec3TransformCoordArray(D3DXVECTOR3 *pout, UINT outstride, CONST D3DXVECTOR3 *pv, UINT vstride, CONST D3DXMATRIX *pm, UINT n);
-D3DXVECTOR3* WINAPI D3DXVec3TransformNormal(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv, CONST D3DXMATRIX *pm);
-D3DXVECTOR3* WINAPI D3DXVec3TransformNormalArray(D3DXVECTOR3 *pout, UINT outstride, CONST D3DXVECTOR3 *pv, UINT vstride, CONST D3DXMATRIX *pm, UINT n);
-D3DXVECTOR3* WINAPI D3DXVec3Unproject(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv, CONST D3DVIEWPORT9 *pviewport, CONST D3DXMATRIX *pprojection, CONST D3DXMATRIX *pview, CONST D3DXMATRIX *pworld);
-D3DXVECTOR3* WINAPI D3DXVec3UnprojectArray(D3DXVECTOR3 *pout, UINT outstride, CONST D3DXVECTOR3 *pv, UINT vstride, CONST D3DVIEWPORT9 *pviewport, CONST D3DXMATRIX *pprojection, CONST D3DXMATRIX *pview, CONST D3DXMATRIX *pworld, UINT n);
-
-D3DXVECTOR4* WINAPI D3DXVec4BaryCentric(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2, CONST D3DXVECTOR4 *pv3, FLOAT f, FLOAT g);
-D3DXVECTOR4* WINAPI D3DXVec4CatmullRom(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv0, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2, CONST D3DXVECTOR4 *pv3, FLOAT s);
-D3DXVECTOR4* WINAPI D3DXVec4Cross(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2, CONST D3DXVECTOR4 *pv3);
-D3DXVECTOR4* WINAPI D3DXVec4Hermite(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pt1, CONST D3DXVECTOR4 *pv2, CONST D3DXVECTOR4 *pt2, FLOAT s);
-D3DXVECTOR4* WINAPI D3DXVec4Normalize(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv);
-D3DXVECTOR4* WINAPI D3DXVec4Transform(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv, CONST D3DXMATRIX *pm);
-D3DXVECTOR4* WINAPI D3DXVec4TransformArray(D3DXVECTOR4 *pout, UINT outstride, CONST D3DXVECTOR4 *pv, UINT vstride, CONST D3DXMATRIX *pm, UINT n);
-
-#ifdef __cplusplus
-}
-#endif
-
-typedef interface ID3DXMatrixStack *LPD3DXMATRIXSTACK;
-
-DEFINE_GUID(IID_ID3DXMatrixStack,
-0xc7885ba7, 0xf990, 0x4fe7, 0x92, 0x2d, 0x85, 0x15, 0xe4, 0x77, 0xdd, 0x85);
-
-#undef INTERFACE
-#define INTERFACE ID3DXMatrixStack
-
-DECLARE_INTERFACE_(ID3DXMatrixStack, IUnknown)
-{
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    STDMETHOD(Pop)(THIS) PURE;
-    STDMETHOD(Push)(THIS) PURE;
-    STDMETHOD(LoadIdentity)(THIS) PURE;
-    STDMETHOD(LoadMatrix)(THIS_ CONST D3DXMATRIX* pM ) PURE;
-    STDMETHOD(MultMatrix)(THIS_ CONST D3DXMATRIX* pM ) PURE;
-    STDMETHOD(MultMatrixLocal)(THIS_ CONST D3DXMATRIX* pM ) PURE;
-    STDMETHOD(RotateAxis)(THIS_ CONST D3DXVECTOR3* pV, FLOAT Angle) PURE;
-    STDMETHOD(RotateAxisLocal)(THIS_ CONST D3DXVECTOR3* pV, FLOAT Angle) PURE;
-    STDMETHOD(RotateYawPitchRoll)(THIS_ FLOAT Yaw, FLOAT Pitch, FLOAT Roll) PURE;
-    STDMETHOD(RotateYawPitchRollLocal)(THIS_ FLOAT Yaw, FLOAT Pitch, FLOAT Roll) PURE;
-    STDMETHOD(Scale)(THIS_ FLOAT x, FLOAT y, FLOAT z) PURE;
-    STDMETHOD(ScaleLocal)(THIS_ FLOAT x, FLOAT y, FLOAT z) PURE;
-    STDMETHOD(Translate)(THIS_ FLOAT x, FLOAT y, FLOAT z ) PURE;
-    STDMETHOD(TranslateLocal)(THIS_ FLOAT x, FLOAT y, FLOAT z) PURE;
-    STDMETHOD_(D3DXMATRIX*, GetTop)(THIS) PURE;
-};
-
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-
-#define ID3DXMatrixStack_QueryInterface(p,a,b)            (p)->lpVtbl->QueryInterface(p,a,b)
-#define ID3DXMatrixStack_AddRef(p)                        (p)->lpVtbl->AddRef(p)
-#define ID3DXMatrixStack_Release(p)                       (p)->lpVtbl->Release(p)
-#define ID3DXMatrixStack_Pop(p)                           (p)->lpVtbl->Pop(p)
-#define ID3DXMatrixStack_Push(p)                          (p)->lpVtbl->Push(p)
-#define ID3DXMatrixStack_LoadIdentity(p)                  (p)->lpVtbl->LoadIdentity(p)
-#define ID3DXMatrixStack_LoadMatrix(p,a)                  (p)->lpVtbl->LoadMatrix(p,a)
-#define ID3DXMatrixStack_MultMatrix(p,a)                  (p)->lpVtbl->MultMatrix(p,a)
-#define ID3DXMatrixStack_MultMatrixLocal(p,a)             (p)->lpVtbl->MultMatrixLocal(p,a)
-#define ID3DXMatrixStack_RotateAxis(p,a,b)                (p)->lpVtbl->RotateAxis(p,a,b)
-#define ID3DXMatrixStack_RotateAxisLocal(p,a,b)           (p)->lpVtbl->RotateAxisLocal(p,a,b)
-#define ID3DXMatrixStack_RotateYawPitchRoll(p,a,b,c)      (p)->lpVtbl->RotateYawPitchRoll(p,a,b,c)
-#define ID3DXMatrixStack_RotateYawPitchRollLocal(p,a,b,c) (p)->lpVtbl->RotateYawPitchRollLocal(p,a,b,c)
-#define ID3DXMatrixStack_Scale(p,a,b,c)                   (p)->lpVtbl->Scale(p,a,b,c)
-#define ID3DXMatrixStack_ScaleLocal(p,a,b,c)              (p)->lpVtbl->ScaleLocal(p,a,b,c)
-#define ID3DXMatrixStack_Translate(p,a,b,c)               (p)->lpVtbl->Translate(p,a,b,c)
-#define ID3DXMatrixStack_TranslateLocal(p,a,b,c)          (p)->lpVtbl->TranslateLocal(p,a,b,c)
-#define ID3DXMatrixStack_GetTop(p)                        (p)->lpVtbl->GetTop(p)
-
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-HRESULT WINAPI D3DXCreateMatrixStack(DWORD flags, LPD3DXMATRIXSTACK* ppstack);
-
-#ifdef __cplusplus
-}
-#endif
-
-#include <d3dx9math.inl>
-
-#endif /* __D3DX9MATH_H__ */
diff --git a/misc/builddeps/win64/dx/include/d3dx9math.inl b/misc/builddeps/win64/dx/include/d3dx9math.inl
deleted file mode 100644 (file)
index 3cd078a..0000000
+++ /dev/null
@@ -1,1268 +0,0 @@
-/*
- * Copyright (C) 2007 David Adam
- * Copyright (C) 2007 Tony Wasserka
- *
- * 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 __D3DX9MATH_INL__
-#define __D3DX9MATH_INL__
-
-/* constructors & operators */
-#ifdef __cplusplus
-
-inline D3DXVECTOR2::D3DXVECTOR2()
-{
-}
-
-inline D3DXVECTOR2::D3DXVECTOR2(CONST FLOAT *pf)
-{
-    if(!pf) return;
-    x = pf[0];
-    y = pf[1];
-}
-
-inline D3DXVECTOR2::D3DXVECTOR2(FLOAT fx, FLOAT fy)
-{
-    x = fx;
-    y = fy;
-}
-
-inline D3DXVECTOR2::operator FLOAT* ()
-{
-    return (FLOAT*)&x;
-}
-
-inline D3DXVECTOR2::operator CONST FLOAT* () const
-{
-    return (CONST FLOAT*)&x;
-}
-
-inline D3DXVECTOR2& D3DXVECTOR2::operator += (CONST D3DXVECTOR2& v)
-{
-    x += v.x;
-    y += v.y;
-    return *this;
-}
-
-inline D3DXVECTOR2& D3DXVECTOR2::operator -= (CONST D3DXVECTOR2& v)
-{
-    x -= v.x;
-    y -= v.y;
-    return *this;
-}
-
-inline D3DXVECTOR2& D3DXVECTOR2::operator *= (FLOAT f)
-{
-    x *= f;
-    y *= f;
-    return *this;
-}
-
-inline D3DXVECTOR2& D3DXVECTOR2::operator /= (FLOAT f)
-{
-    x /= f;
-    y /= f;
-    return *this;
-}
-
-inline D3DXVECTOR2 D3DXVECTOR2::operator + () const
-{
-    return *this;
-}
-
-inline D3DXVECTOR2 D3DXVECTOR2::operator - () const
-{
-    return D3DXVECTOR2(-x, -y);
-}
-
-inline D3DXVECTOR2 D3DXVECTOR2::operator + (CONST D3DXVECTOR2& v) const
-{
-    return D3DXVECTOR2(x + v.x, y + v.y);
-}
-
-inline D3DXVECTOR2 D3DXVECTOR2::operator - (CONST D3DXVECTOR2& v) const
-{
-    return D3DXVECTOR2(x - v.x, y - v.y);
-}
-
-inline D3DXVECTOR2 D3DXVECTOR2::operator * (FLOAT f) const
-{
-    return D3DXVECTOR2(x * f, y * f);
-}
-
-inline D3DXVECTOR2 D3DXVECTOR2::operator / (FLOAT f) const
-{
-    return D3DXVECTOR2(x / f, y / f);
-}
-
-inline D3DXVECTOR2 operator * (FLOAT f, CONST D3DXVECTOR2& v)
-{
-    return D3DXVECTOR2(f * v.x, f * v.y);
-}
-
-inline BOOL D3DXVECTOR2::operator == (CONST D3DXVECTOR2& v) const
-{
-    return x == v.x && y == v.y;
-}
-
-inline BOOL D3DXVECTOR2::operator != (CONST D3DXVECTOR2& v) const
-{
-    return x != v.x || y != v.y;
-}
-
-inline D3DXVECTOR3::D3DXVECTOR3()
-{
-}
-
-inline D3DXVECTOR3::D3DXVECTOR3(CONST FLOAT *pf)
-{
-    if(!pf) return;
-    x = pf[0];
-    y = pf[1];
-    z = pf[2];
-}
-
-inline D3DXVECTOR3::D3DXVECTOR3(CONST D3DVECTOR& v)
-{
-    x = v.x;
-    y = v.y;
-    z = v.z;
-}
-
-inline D3DXVECTOR3::D3DXVECTOR3(FLOAT fx, FLOAT fy, FLOAT fz)
-{
-    x = fx;
-    y = fy;
-    z = fz;
-}
-
-inline D3DXVECTOR3::operator FLOAT* ()
-{
-    return (FLOAT*)&x;
-}
-
-inline D3DXVECTOR3::operator CONST FLOAT* () const
-{
-    return (CONST FLOAT*)&x;
-}
-
-inline D3DXVECTOR3& D3DXVECTOR3::operator += (CONST D3DXVECTOR3& v)
-{
-    x += v.x;
-    y += v.y;
-    z += v.z;
-    return *this;
-}
-
-inline D3DXVECTOR3& D3DXVECTOR3::operator -= (CONST D3DXVECTOR3& v)
-{
-    x -= v.x;
-    y -= v.y;
-    z -= v.z;
-    return *this;
-}
-
-inline D3DXVECTOR3& D3DXVECTOR3::operator *= (FLOAT f)
-{
-    x *= f;
-    y *= f;
-    z *= f;
-    return *this;
-}
-
-inline D3DXVECTOR3& D3DXVECTOR3::operator /= (FLOAT f)
-{
-    x /= f;
-    y /= f;
-    z /= f;
-    return *this;
-}
-
-inline D3DXVECTOR3 D3DXVECTOR3::operator + () const
-{
-    return *this;
-}
-
-inline D3DXVECTOR3 D3DXVECTOR3::operator - () const
-{
-    return D3DXVECTOR3(-x, -y, -z);
-}
-
-inline D3DXVECTOR3 D3DXVECTOR3::operator + (CONST D3DXVECTOR3& v) const
-{
-    return D3DXVECTOR3(x + v.x, y + v.y, z + v.z);
-}
-
-inline D3DXVECTOR3 D3DXVECTOR3::operator - (CONST D3DXVECTOR3& v) const
-{
-    return D3DXVECTOR3(x - v.x, y - v.y, z - v.z);
-}
-
-inline D3DXVECTOR3 D3DXVECTOR3::operator * (FLOAT f) const
-{
-    return D3DXVECTOR3(x * f, y * f, z * f);
-}
-
-inline D3DXVECTOR3 D3DXVECTOR3::operator / (FLOAT f) const
-{
-    return D3DXVECTOR3(x / f, y / f, z / f);
-}
-
-inline D3DXVECTOR3 operator * (FLOAT f, CONST D3DXVECTOR3& v)
-{
-    return D3DXVECTOR3(f * v.x, f * v.y, f * v.z);
-}
-
-inline BOOL D3DXVECTOR3::operator == (CONST D3DXVECTOR3& v) const
-{
-    return x == v.x && y == v.y && z == v.z;
-}
-
-inline BOOL D3DXVECTOR3::operator != (CONST D3DXVECTOR3& v) const
-{
-    return x != v.x || y != v.y || z != v.z;
-}
-
-inline D3DXVECTOR4::D3DXVECTOR4()
-{
-}
-
-inline D3DXVECTOR4::D3DXVECTOR4(CONST FLOAT *pf)
-{
-    if(!pf) return;
-    x = pf[0];
-    y = pf[1];
-    z = pf[2];
-    w = pf[3];
-}
-
-inline D3DXVECTOR4::D3DXVECTOR4(FLOAT fx, FLOAT fy, FLOAT fz, FLOAT fw)
-{
-    x = fx;
-    y = fy;
-    z = fz;
-    w = fw;
-}
-
-inline D3DXVECTOR4::operator FLOAT* ()
-{
-    return (FLOAT*)&x;
-}
-
-inline D3DXVECTOR4::operator CONST FLOAT* () const
-{
-    return (CONST FLOAT*)&x;
-}
-
-inline D3DXVECTOR4& D3DXVECTOR4::operator += (CONST D3DXVECTOR4& v)
-{
-    x += v.x;
-    y += v.y;
-    z += v.z;
-    w += v.w;
-    return *this;
-}
-
-inline D3DXVECTOR4& D3DXVECTOR4::operator -= (CONST D3DXVECTOR4& v)
-{
-    x -= v.x;
-    y -= v.y;
-    z -= v.z;
-    w -= v.w;
-    return *this;
-}
-
-inline D3DXVECTOR4& D3DXVECTOR4::operator *= (FLOAT f)
-{
-    x *= f;
-    y *= f;
-    z *= f;
-    w *= f;
-    return *this;
-}
-
-inline D3DXVECTOR4& D3DXVECTOR4::operator /= (FLOAT f)
-{
-    x /= f;
-    y /= f;
-    z /= f;
-    w /= f;
-    return *this;
-}
-
-inline D3DXVECTOR4 D3DXVECTOR4::operator + () const
-{
-    return *this;
-}
-
-inline D3DXVECTOR4 D3DXVECTOR4::operator - () const
-{
-    return D3DXVECTOR4(-x, -y, -z, -w);
-}
-
-inline D3DXVECTOR4 D3DXVECTOR4::operator + (CONST D3DXVECTOR4& v) const
-{
-    return D3DXVECTOR4(x + v.x, y + v.y, z + v.z, w + v.w);
-}
-
-inline D3DXVECTOR4 D3DXVECTOR4::operator - (CONST D3DXVECTOR4& v) const
-{
-    return D3DXVECTOR4(x - v.x, y - v.y, z - v.z, w - v.w);
-}
-
-inline D3DXVECTOR4 D3DXVECTOR4::operator * (FLOAT f) const
-{
-    return D3DXVECTOR4(x * f, y * f, z * f, w * f);
-}
-
-inline D3DXVECTOR4 D3DXVECTOR4::operator / (FLOAT f) const
-{
-    return D3DXVECTOR4(x / f, y / f, z / f, w / f);
-}
-
-inline D3DXVECTOR4 operator * (FLOAT f, CONST D3DXVECTOR4& v)
-{
-    return D3DXVECTOR4(f * v.x, f * v.y, f * v.z, f * v.w);
-}
-
-inline BOOL D3DXVECTOR4::operator == (CONST D3DXVECTOR4& v) const
-{
-    return x == v.x && y == v.y && z == v.z && w == v.w;
-}
-
-inline BOOL D3DXVECTOR4::operator != (CONST D3DXVECTOR4& v) const
-{
-    return x != v.x || y != v.y || z != v.z || w != v.w;
-}
-
-inline D3DXMATRIX::D3DXMATRIX()
-{
-}
-
-inline D3DXMATRIX::D3DXMATRIX(CONST FLOAT *pf)
-{
-    if(!pf) return;
-    memcpy(&_11, pf, sizeof(D3DXMATRIX));
-}
-
-inline D3DXMATRIX::D3DXMATRIX(CONST D3DMATRIX& mat)
-{
-    memcpy(&_11, &mat, sizeof(D3DXMATRIX));
-}
-
-inline D3DXMATRIX::D3DXMATRIX(FLOAT f11, FLOAT f12, FLOAT f13, FLOAT f14,
-                              FLOAT f21, FLOAT f22, FLOAT f23, FLOAT f24,
-                              FLOAT f31, FLOAT f32, FLOAT f33, FLOAT f34,
-                              FLOAT f41, FLOAT f42, FLOAT f43, FLOAT f44)
-{
-    _11 = f11; _12 = f12; _13 = f13; _14 = f14;
-    _21 = f21; _22 = f22; _23 = f23; _24 = f24;
-    _31 = f31; _32 = f32; _33 = f33; _34 = f34;
-    _41 = f41; _42 = f42; _43 = f43; _44 = f44;
-}
-
-inline FLOAT& D3DXMATRIX::operator () (UINT row, UINT col)
-{
-    return m[row][col];
-}
-
-inline FLOAT D3DXMATRIX::operator () (UINT row, UINT col) const
-{
-    return m[row][col];
-}
-
-inline D3DXMATRIX::operator FLOAT* ()
-{
-    return (FLOAT*)&_11;
-}
-
-inline D3DXMATRIX::operator CONST FLOAT* () const
-{
-    return (CONST FLOAT*)&_11;
-}
-
-inline D3DXMATRIX& D3DXMATRIX::operator *= (CONST D3DXMATRIX& mat)
-{
-    D3DXMatrixMultiply(this, this, &mat);
-    return *this;
-}
-
-inline D3DXMATRIX& D3DXMATRIX::operator += (CONST D3DXMATRIX& mat)
-{
-    _11 += mat._11; _12 += mat._12; _13 += mat._13; _14 += mat._14;
-    _21 += mat._21; _22 += mat._22; _23 += mat._23; _24 += mat._24;
-    _31 += mat._31; _32 += mat._32; _33 += mat._33; _34 += mat._34;
-    _41 += mat._41; _42 += mat._42; _43 += mat._43; _44 += mat._44;
-    return *this;
-}
-
-inline D3DXMATRIX& D3DXMATRIX::operator -= (CONST D3DXMATRIX& mat)
-{
-    _11 -= mat._11; _12 -= mat._12; _13 -= mat._13; _14 -= mat._14;
-    _21 -= mat._21; _22 -= mat._22; _23 -= mat._23; _24 -= mat._24;
-    _31 -= mat._31; _32 -= mat._32; _33 -= mat._33; _34 -= mat._34;
-    _41 -= mat._41; _42 -= mat._42; _43 -= mat._43; _44 -= mat._44;
-    return *this;
-}
-
-inline D3DXMATRIX& D3DXMATRIX::operator *= (FLOAT f)
-{
-    _11 *= f; _12 *= f; _13 *= f; _14 *= f;
-    _21 *= f; _22 *= f; _23 *= f; _24 *= f;
-    _31 *= f; _32 *= f; _33 *= f; _34 *= f;
-    _41 *= f; _42 *= f; _43 *= f; _44 *= f;
-    return *this;
-}
-
-inline D3DXMATRIX& D3DXMATRIX::operator /= (FLOAT f)
-{
-    FLOAT inv = 1.0f / f;
-    _11 *= inv; _12 *= inv; _13 *= inv; _14 *= inv;
-    _21 *= inv; _22 *= inv; _23 *= inv; _24 *= inv;
-    _31 *= inv; _32 *= inv; _33 *= inv; _34 *= inv;
-    _41 *= inv; _42 *= inv; _43 *= inv; _44 *= inv;
-    return *this;
-}
-
-inline D3DXMATRIX D3DXMATRIX::operator + () const
-{
-    return *this;
-}
-
-inline D3DXMATRIX D3DXMATRIX::operator - () const
-{
-    return D3DXMATRIX(-_11, -_12, -_13, -_14,
-                      -_21, -_22, -_23, -_24,
-                      -_31, -_32, -_33, -_34,
-                      -_41, -_42, -_43, -_44);
-}
-
-inline D3DXMATRIX D3DXMATRIX::operator * (CONST D3DXMATRIX& mat) const
-{
-    D3DXMATRIX buf;
-    D3DXMatrixMultiply(&buf, this, &mat);
-    return buf;
-}
-
-inline D3DXMATRIX D3DXMATRIX::operator + (CONST D3DXMATRIX& mat) const
-{
-    return D3DXMATRIX(_11 + mat._11, _12 + mat._12, _13 + mat._13, _14 + mat._14,
-                      _21 + mat._21, _22 + mat._22, _23 + mat._23, _24 + mat._24,
-                      _31 + mat._31, _32 + mat._32, _33 + mat._33, _34 + mat._34,
-                      _41 + mat._41, _42 + mat._42, _43 + mat._43, _44 + mat._44);
-}
-
-inline D3DXMATRIX D3DXMATRIX::operator - (CONST D3DXMATRIX& mat) const
-{
-    return D3DXMATRIX(_11 - mat._11, _12 - mat._12, _13 - mat._13, _14 - mat._14,
-                      _21 - mat._21, _22 - mat._22, _23 - mat._23, _24 - mat._24,
-                      _31 - mat._31, _32 - mat._32, _33 - mat._33, _34 - mat._34,
-                      _41 - mat._41, _42 - mat._42, _43 - mat._43, _44 - mat._44);
-}
-
-inline D3DXMATRIX D3DXMATRIX::operator * (FLOAT f) const
-{
-    return D3DXMATRIX(_11 * f, _12 * f, _13 * f, _14 * f,
-                      _21 * f, _22 * f, _23 * f, _24 * f,
-                      _31 * f, _32 * f, _33 * f, _34 * f,
-                      _41 * f, _42 * f, _43 * f, _44 * f);
-}
-
-inline D3DXMATRIX D3DXMATRIX::operator / (FLOAT f) const
-{
-    FLOAT inv = 1.0f / f;
-    return D3DXMATRIX(_11 * inv, _12 * inv, _13 * inv, _14 * inv,
-                      _21 * inv, _22 * inv, _23 * inv, _24 * inv,
-                      _31 * inv, _32 * inv, _33 * inv, _34 * inv,
-                      _41 * inv, _42 * inv, _43 * inv, _44 * inv);
-}
-
-inline D3DXMATRIX operator * (FLOAT f, CONST D3DXMATRIX& mat)
-{
-    return D3DXMATRIX(f * mat._11, f * mat._12, f * mat._13, f * mat._14,
-                      f * mat._21, f * mat._22, f * mat._23, f * mat._24,
-                      f * mat._31, f * mat._32, f * mat._33, f * mat._34,
-                      f * mat._41, f * mat._42, f * mat._43, f * mat._44);
-}
-
-inline BOOL D3DXMATRIX::operator == (CONST D3DXMATRIX& mat) const
-{
-    return (memcmp(this, &mat, sizeof(D3DXMATRIX)) == 0);
-}
-
-inline BOOL D3DXMATRIX::operator != (CONST D3DXMATRIX& mat) const
-{
-    return (memcmp(this, &mat, sizeof(D3DXMATRIX)) != 0);
-}
-
-inline D3DXQUATERNION::D3DXQUATERNION()
-{
-}
-
-inline D3DXQUATERNION::D3DXQUATERNION(CONST FLOAT *pf)
-{
-    if(!pf) return;
-    x = pf[0];
-    y = pf[1];
-    z = pf[2];
-    w = pf[3];
-}
-
-inline D3DXQUATERNION::D3DXQUATERNION(FLOAT fx, FLOAT fy, FLOAT fz, FLOAT fw)
-{
-    x = fx;
-    y = fy;
-    z = fz;
-    w = fw;
-}
-
-inline D3DXQUATERNION::operator FLOAT* ()
-{
-    return (FLOAT*)&x;
-}
-
-inline D3DXQUATERNION::operator CONST FLOAT* () const
-{
-    return (CONST FLOAT*)&x;
-}
-
-inline D3DXQUATERNION& D3DXQUATERNION::operator += (CONST D3DXQUATERNION& quat)
-{
-    x += quat.x;
-    y += quat.y;
-    z += quat.z;
-    w += quat.w;
-    return *this;
-}
-
-inline D3DXQUATERNION& D3DXQUATERNION::operator -= (CONST D3DXQUATERNION& quat)
-{
-    x -= quat.x;
-    y -= quat.y;
-    z -= quat.z;
-    w -= quat.w;
-    return *this;
-}
-
-/* TODO: uncomment this when D3DXQuaternionMultiply has been implemented
-inline D3DXQUATERNION& D3DXQUATERNION::operator *= (CONST D3DXQUATERNION& quat)
-{
-    D3DXQuaternionMultiply(this, this, &quat);
-    return *this;
-}
-*/
-
-inline D3DXQUATERNION& D3DXQUATERNION::operator *= (FLOAT f)
-{
-    x *= f;
-    y *= f;
-    z *= f;
-    w *= f;
-    return *this;
-}
-
-inline D3DXQUATERNION& D3DXQUATERNION::operator /= (FLOAT f)
-{
-    FLOAT inv = 1.0f / f;
-    x *= inv;
-    y *= inv;
-    z *= inv;
-    w *= inv;
-    return *this;
-}
-
-inline D3DXQUATERNION D3DXQUATERNION::operator + () const
-{
-    return *this;
-}
-
-inline D3DXQUATERNION D3DXQUATERNION::operator - () const
-{
-    return D3DXQUATERNION(-x, -y, -z, -w);
-}
-
-inline D3DXQUATERNION D3DXQUATERNION::operator + (CONST D3DXQUATERNION& quat) const
-{
-    return D3DXQUATERNION(x + quat.x, y + quat.y, z + quat.z, w + quat.w);
-}
-
-inline D3DXQUATERNION D3DXQUATERNION::operator - (CONST D3DXQUATERNION& quat) const
-{
-    return D3DXQUATERNION(x - quat.x, y - quat.y, z - quat.z, w - quat.w);
-}
-
-/* TODO: uncomment this when D3DXQuaternionMultiply has been implemented
-inline D3DXQUATERNION D3DXQUATERNION::operator * (CONST D3DXQUATERNION& quat) const
-{
-    D3DXQUATERNION buf;
-    D3DXQuaternionMultiply(&buf, this, &quat);
-    return buf;
-}
-*/
-
-inline D3DXQUATERNION D3DXQUATERNION::operator * (FLOAT f) const
-{
-    return D3DXQUATERNION(x * f, y * f, z * f, w * f);
-}
-
-inline D3DXQUATERNION D3DXQUATERNION::operator / (FLOAT f) const
-{
-    FLOAT inv = 1.0f / f;
-    return D3DXQUATERNION(x * inv, y * inv, z * inv, w * inv);
-}
-
-inline D3DXQUATERNION operator * (FLOAT f, CONST D3DXQUATERNION& quat)
-{
-    return D3DXQUATERNION(f * quat.x, f * quat.y, f * quat.z, f * quat.w);
-}
-
-inline BOOL D3DXQUATERNION::operator == (CONST D3DXQUATERNION& quat) const
-{
-    return x == quat.x && y == quat.y && z == quat.z && w == quat.w;
-}
-
-inline BOOL D3DXQUATERNION::operator != (CONST D3DXQUATERNION& quat) const
-{
-    return x != quat.x || y != quat.y || z != quat.z || w != quat.w;
-}
-
-inline D3DXPLANE::D3DXPLANE()
-{
-}
-
-inline D3DXPLANE::D3DXPLANE(CONST FLOAT *pf)
-{
-    if(!pf) return;
-    a = pf[0];
-    b = pf[1];
-    c = pf[2];
-    d = pf[3];
-}
-
-inline D3DXPLANE::D3DXPLANE(FLOAT fa, FLOAT fb, FLOAT fc, FLOAT fd)
-{
-    a = fa;
-    b = fb;
-    c = fc;
-    d = fd;
-}
-
-inline D3DXPLANE::operator FLOAT* ()
-{
-    return (FLOAT*)&a;
-}
-
-inline D3DXPLANE::operator CONST FLOAT* () const
-{
-    return (CONST FLOAT*)&a;
-}
-
-inline D3DXPLANE D3DXPLANE::operator + () const
-{
-    return *this;
-}
-
-inline D3DXPLANE D3DXPLANE::operator - () const
-{
-    return D3DXPLANE(-a, -b, -c, -d);
-}
-
-inline BOOL D3DXPLANE::operator == (CONST D3DXPLANE& pl) const
-{
-    return a == pl.a && b == pl.b && c == pl.c && d == pl.d;
-}
-
-inline BOOL D3DXPLANE::operator != (CONST D3DXPLANE& pl) const
-{
-    return a != pl.a || b != pl.b || c != pl.c || d != pl.d;
-}
-
-inline D3DXCOLOR::D3DXCOLOR()
-{
-}
-
-inline D3DXCOLOR::D3DXCOLOR(DWORD col)
-{
-    CONST FLOAT f = 1.0f / 255.0f;
-    r = f * (FLOAT)(unsigned char)(col >> 16);
-    g = f * (FLOAT)(unsigned char)(col >>  8);
-    b = f * (FLOAT)(unsigned char)col;
-    a = f * (FLOAT)(unsigned char)(col >> 24);
-}
-
-inline D3DXCOLOR::D3DXCOLOR(CONST FLOAT *pf)
-{
-    if(!pf) return;
-    r = pf[0];
-    g = pf[1];
-    b = pf[2];
-    a = pf[3];
-}
-
-inline D3DXCOLOR::D3DXCOLOR(CONST D3DCOLORVALUE& col)
-{
-    r = col.r;
-    g = col.g;
-    b = col.b;
-    a = col.a;
-}
-
-inline D3DXCOLOR::D3DXCOLOR(FLOAT fr, FLOAT fg, FLOAT fb, FLOAT fa)
-{
-    r = fr;
-    g = fg;
-    b = fb;
-    a = fa;
-}
-
-inline D3DXCOLOR::operator DWORD () const
-{
-    DWORD _r = r >= 1.0f ? 0xff : r <= 0.0f ? 0x00 : (DWORD)(r * 255.0f + 0.5f);
-    DWORD _g = g >= 1.0f ? 0xff : g <= 0.0f ? 0x00 : (DWORD)(g * 255.0f + 0.5f);
-    DWORD _b = b >= 1.0f ? 0xff : b <= 0.0f ? 0x00 : (DWORD)(b * 255.0f + 0.5f);
-    DWORD _a = a >= 1.0f ? 0xff : a <= 0.0f ? 0x00 : (DWORD)(a * 255.0f + 0.5f);
-
-    return (_a << 24) | (_r << 16) | (_g << 8) | _b;
-}
-
-inline D3DXCOLOR::operator FLOAT * ()
-{
-    return (FLOAT*)&r;
-}
-
-inline D3DXCOLOR::operator CONST FLOAT * () const
-{
-    return (CONST FLOAT*)&r;
-}
-
-inline D3DXCOLOR::operator D3DCOLORVALUE * ()
-{
-    return (D3DCOLORVALUE*)&r;
-}
-
-inline D3DXCOLOR::operator CONST D3DCOLORVALUE * () const
-{
-    return (CONST D3DCOLORVALUE*)&r;
-}
-
-inline D3DXCOLOR::operator D3DCOLORVALUE& ()
-{
-    return *((D3DCOLORVALUE*)&r);
-}
-
-inline D3DXCOLOR::operator CONST D3DCOLORVALUE& () const
-{
-    return *((CONST D3DCOLORVALUE*)&r);
-}
-
-inline D3DXCOLOR& D3DXCOLOR::operator += (CONST D3DXCOLOR& col)
-{
-    r += col.r;
-    g += col.g;
-    b += col.b;
-    a += col.a;
-    return *this;
-}
-
-inline D3DXCOLOR& D3DXCOLOR::operator -= (CONST D3DXCOLOR& col)
-{
-    r -= col.r;
-    g -= col.g;
-    b -= col.b;
-    a -= col.a;
-    return *this;
-}
-
-inline D3DXCOLOR& D3DXCOLOR::operator *= (FLOAT f)
-{
-    r *= f;
-    g *= f;
-    b *= f;
-    a *= f;
-    return *this;
-}
-
-inline D3DXCOLOR& D3DXCOLOR::operator /= (FLOAT f)
-{
-    FLOAT inv = 1.0f / f;
-    r *= inv;
-    g *= inv;
-    b *= inv;
-    a *= inv;
-    return *this;
-}
-
-inline D3DXCOLOR D3DXCOLOR::operator + () const
-{
-    return *this;
-}
-
-inline D3DXCOLOR D3DXCOLOR::operator - () const
-{
-    return D3DXCOLOR(-r, -g, -b, -a);
-}
-
-inline D3DXCOLOR D3DXCOLOR::operator + (CONST D3DXCOLOR& col) const
-{
-    return D3DXCOLOR(r + col.r, g + col.g, b + col.b, a + col.a);
-}
-
-inline D3DXCOLOR D3DXCOLOR::operator - (CONST D3DXCOLOR& col) const
-{
-    return D3DXCOLOR(r - col.r, g - col.g, b - col.b, a - col.a);
-}
-
-inline D3DXCOLOR D3DXCOLOR::operator * (FLOAT f) const
-{
-    return D3DXCOLOR(r * f, g * f, b * f, a * f);
-}
-
-inline D3DXCOLOR D3DXCOLOR::operator / (FLOAT f) const
-{
-    FLOAT inv = 1.0f / f;
-    return D3DXCOLOR(r * inv, g * inv, b * inv, a * inv);
-}
-
-inline D3DXCOLOR operator * (FLOAT f, CONST D3DXCOLOR& col)
-{
-    return D3DXCOLOR(f * col.r, f * col.g, f * col.b, f * col.a);
-}
-
-inline BOOL D3DXCOLOR::operator == (CONST D3DXCOLOR& col) const
-{
-    return r == col.r && g == col.g && b == col.b && a == col.a;
-}
-
-inline BOOL D3DXCOLOR::operator != (CONST D3DXCOLOR& col) const
-{
-    return r != col.r || g != col.g || b != col.b || a != col.a;
-}
-
-#endif /* __cplusplus */
-
-/*_______________D3DXCOLOR_____________________*/
-
-static inline D3DXCOLOR* D3DXColorAdd(D3DXCOLOR *pout, CONST D3DXCOLOR *pc1, CONST D3DXCOLOR *pc2)
-{
-    if ( !pout || !pc1 || !pc2 ) return NULL;
-    pout->r = (pc1->r) + (pc2->r);
-    pout->g = (pc1->g) + (pc2->g);
-    pout->b = (pc1->b) + (pc2->b);
-    pout->a = (pc1->a) + (pc2->a);
-    return pout;
-}
-
-static inline D3DXCOLOR* D3DXColorLerp(D3DXCOLOR *pout, CONST D3DXCOLOR *pc1, CONST D3DXCOLOR *pc2, FLOAT s)
-{
-    if ( !pout || !pc1 || !pc2 ) return NULL;
-    pout->r = (1-s) * (pc1->r) + s *(pc2->r);
-    pout->g = (1-s) * (pc1->g) + s *(pc2->g);
-    pout->b = (1-s) * (pc1->b) + s *(pc2->b);
-    pout->a = (1-s) * (pc1->a) + s *(pc2->a);
-    return pout;
-}
-
-static inline D3DXCOLOR* D3DXColorModulate(D3DXCOLOR *pout, CONST D3DXCOLOR *pc1, CONST D3DXCOLOR *pc2)
-{
-    if ( !pout || !pc1 || !pc2 ) return NULL;
-    pout->r = (pc1->r) * (pc2->r);
-    pout->g = (pc1->g) * (pc2->g);
-    pout->b = (pc1->b) * (pc2->b);
-    pout->a = (pc1->a) * (pc2->a);
-    return pout;
-}
-
-static inline D3DXCOLOR* D3DXColorNegative(D3DXCOLOR *pout, CONST D3DXCOLOR *pc)
-{
-    if ( !pout || !pc ) return NULL;
-    pout->r = 1.0f - pc->r;
-    pout->g = 1.0f - pc->g;
-    pout->b = 1.0f - pc->b;
-    pout->a = pc->a;
-    return pout;
-}
-
-static inline D3DXCOLOR* D3DXColorScale(D3DXCOLOR *pout, CONST D3DXCOLOR *pc, FLOAT s)
-{
-    if ( !pout || !pc ) return NULL;
-    pout->r = s* (pc->r);
-    pout->g = s* (pc->g);
-    pout->b = s* (pc->b);
-    pout->a = s* (pc->a);
-    return pout;
-}
-
-static inline D3DXCOLOR* D3DXColorSubtract(D3DXCOLOR *pout, CONST D3DXCOLOR *pc1, CONST D3DXCOLOR *pc2)
-{
-    if ( !pout || !pc1 || !pc2 ) return NULL;
-    pout->r = (pc1->r) - (pc2->r);
-    pout->g = (pc1->g) - (pc2->g);
-    pout->b = (pc1->b) - (pc2->b);
-    pout->a = (pc1->a) - (pc2->a);
-    return pout;
-}
-
-/*_______________D3DXVECTOR2________________________*/
-
-static inline D3DXVECTOR2* D3DXVec2Add(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = pv1->x + pv2->x;
-    pout->y = pv1->y + pv2->y;
-    return pout;
-}
-
-static inline FLOAT D3DXVec2CCW(CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2)
-{
-    if ( !pv1 || !pv2) return 0.0f;
-    return ( (pv1->x) * (pv2->y) - (pv1->y) * (pv2->x) );
-}
-
-static inline FLOAT D3DXVec2Dot(CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2)
-{
-    if ( !pv1 || !pv2) return 0.0f;
-    return ( (pv1->x * pv2->x + pv1->y * pv2->y) );
-}
-
-static inline FLOAT D3DXVec2Length(CONST D3DXVECTOR2 *pv)
-{
-    if (!pv) return 0.0f;
-    return sqrt( (pv->x) * (pv->x) + (pv->y) * (pv->y) );
-}
-
-static inline FLOAT D3DXVec2LengthSq(CONST D3DXVECTOR2 *pv)
-{
-    if (!pv) return 0.0f;
-    return( (pv->x) * (pv->x) + (pv->y) * (pv->y) );
-}
-
-static inline D3DXVECTOR2* D3DXVec2Lerp(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2, FLOAT s)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = (1-s) * (pv1->x) + s * (pv2->x);
-    pout->y = (1-s) * (pv1->y) + s * (pv2->y);
-    return pout;
-}
-
-static inline D3DXVECTOR2* D3DXVec2Maximize(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = max(pv1->x , pv2->x);
-    pout->y = max(pv1->y , pv2->y);
-    return pout;
-}
-
-static inline D3DXVECTOR2* D3DXVec2Minimize(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = min(pv1->x , pv2->x);
-    pout->y = min(pv1->y , pv2->y);
-    return pout;
-}
-
-static inline D3DXVECTOR2* D3DXVec2Scale(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv, FLOAT s)
-{
-    if ( !pout || !pv) return NULL;
-    pout->x = s * (pv->x);
-    pout->y = s * (pv->y);
-    return pout;
-}
-
-static inline D3DXVECTOR2* D3DXVec2Subtract(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = pv1->x - pv2->x;
-    pout->y = pv1->y - pv2->y;
-    return pout;
-}
-
-/*__________________D3DXVECTOR3_______________________*/
-
-static inline D3DXVECTOR3* D3DXVec3Add(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = pv1->x + pv2->x;
-    pout->y = pv1->y + pv2->y;
-    pout->z = pv1->z + pv2->z;
-    return pout;
-}
-
-static inline D3DXVECTOR3* D3DXVec3Cross(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = (pv1->y) * (pv2->z) - (pv1->z) * (pv2->y);
-    pout->y = (pv1->z) * (pv2->x) - (pv1->x) * (pv2->z);
-    pout->z = (pv1->x) * (pv2->y) - (pv1->y) * (pv2->x);
-    return pout;
-}
-
-static inline FLOAT D3DXVec3Dot(CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2)
-{
-    if ( !pv1 || !pv2 ) return 0.0f;
-    return (pv1->x) * (pv2->x) + (pv1->y) * (pv2->y) + (pv1->z) * (pv2->z);
-}
-
-static inline FLOAT D3DXVec3Length(CONST D3DXVECTOR3 *pv)
-{
-    if (!pv) return 0.0f;
-    return sqrt( (pv->x) * (pv->x) + (pv->y) * (pv->y) + (pv->z) * (pv->z) );
-}
-
-static inline FLOAT D3DXVec3LengthSq(CONST D3DXVECTOR3 *pv)
-{
-    if (!pv) return 0.0f;
-    return (pv->x) * (pv->x) + (pv->y) * (pv->y) + (pv->z) * (pv->z);
-}
-
-static inline D3DXVECTOR3* D3DXVec3Lerp(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2, FLOAT s)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = (1-s) * (pv1->x) + s * (pv2->x);
-    pout->y = (1-s) * (pv1->y) + s * (pv2->y);
-    pout->z = (1-s) * (pv1->z) + s * (pv2->z);
-    return pout;
-}
-
-static inline D3DXVECTOR3* D3DXVec3Maximize(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = max(pv1->x , pv2->x);
-    pout->y = max(pv1->y , pv2->y);
-    pout->z = max(pv1->z , pv2->z);
-    return pout;
-}
-
-static inline D3DXVECTOR3* D3DXVec3Minimize(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = min(pv1->x , pv2->x);
-    pout->y = min(pv1->y , pv2->y);
-    pout->z = min(pv1->z , pv2->z);
-    return pout;
-}
-
-static inline D3DXVECTOR3* D3DXVec3Scale(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv, FLOAT s)
-{
-    if ( !pout || !pv) return NULL;
-    pout->x = s * (pv->x);
-    pout->y = s * (pv->y);
-    pout->z = s * (pv->z);
-    return pout;
-}
-
-static inline D3DXVECTOR3* D3DXVec3Subtract(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = pv1->x - pv2->x;
-    pout->y = pv1->y - pv2->y;
-    pout->z = pv1->z - pv2->z;
-    return pout;
-}
-/*__________________D3DXVECTOR4_______________________*/
-
-static inline D3DXVECTOR4* D3DXVec4Add(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = pv1->x + pv2->x;
-    pout->y = pv1->y + pv2->y;
-    pout->z = pv1->z + pv2->z;
-    pout->w = pv1->w + pv2->w;
-    return pout;
-}
-
-static inline FLOAT D3DXVec4Dot(CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2)
-{
-    if (!pv1 || !pv2 ) return 0.0f;
-    return (pv1->x) * (pv2->x) + (pv1->y) * (pv2->y) + (pv1->z) * (pv2->z) + (pv1->w) * (pv2->w);
-}
-
-static inline FLOAT D3DXVec4Length(CONST D3DXVECTOR4 *pv)
-{
-    if (!pv) return 0.0f;
-    return sqrt( (pv->x) * (pv->x) + (pv->y) * (pv->y) + (pv->z) * (pv->z) + (pv->w) * (pv->w) );
-}
-
-static inline FLOAT D3DXVec4LengthSq(CONST D3DXVECTOR4 *pv)
-{
-    if (!pv) return 0.0f;
-    return (pv->x) * (pv->x) + (pv->y) * (pv->y) + (pv->z) * (pv->z) + (pv->w) * (pv->w);
-}
-
-static inline D3DXVECTOR4* D3DXVec4Lerp(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2, FLOAT s)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = (1-s) * (pv1->x) + s * (pv2->x);
-    pout->y = (1-s) * (pv1->y) + s * (pv2->y);
-    pout->z = (1-s) * (pv1->z) + s * (pv2->z);
-    pout->w = (1-s) * (pv1->w) + s * (pv2->w);
-    return pout;
-}
-
-
-static inline D3DXVECTOR4* D3DXVec4Maximize(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = max(pv1->x , pv2->x);
-    pout->y = max(pv1->y , pv2->y);
-    pout->z = max(pv1->z , pv2->z);
-    pout->w = max(pv1->w , pv2->w);
-    return pout;
-}
-
-static inline D3DXVECTOR4* D3DXVec4Minimize(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = min(pv1->x , pv2->x);
-    pout->y = min(pv1->y , pv2->y);
-    pout->z = min(pv1->z , pv2->z);
-    pout->w = min(pv1->w , pv2->w);
-    return pout;
-}
-
-static inline D3DXVECTOR4* D3DXVec4Scale(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv, FLOAT s)
-{
-    if ( !pout || !pv) return NULL;
-    pout->x = s * (pv->x);
-    pout->y = s * (pv->y);
-    pout->z = s * (pv->z);
-    pout->w = s * (pv->w);
-    return pout;
-}
-
-static inline D3DXVECTOR4* D3DXVec4Subtract(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2)
-{
-    if ( !pout || !pv1 || !pv2) return NULL;
-    pout->x = pv1->x - pv2->x;
-    pout->y = pv1->y - pv2->y;
-    pout->z = pv1->z - pv2->z;
-    pout->w = pv1->w - pv2->w;
-    return pout;
-}
-
-/*__________________D3DXMatrix____________________*/
-#ifdef NONAMELESSUNION
-# define D3DX_U(x)  (x).u
-#else
-# define D3DX_U(x)  (x)
-#endif
-
-static inline D3DXMATRIX* D3DXMatrixIdentity(D3DXMATRIX *pout)
-{
-    if ( !pout ) return NULL;
-    D3DX_U(*pout).m[0][1] = 0.0f;
-    D3DX_U(*pout).m[0][2] = 0.0f;
-    D3DX_U(*pout).m[0][3] = 0.0f;
-    D3DX_U(*pout).m[1][0] = 0.0f;
-    D3DX_U(*pout).m[1][2] = 0.0f;
-    D3DX_U(*pout).m[1][3] = 0.0f;
-    D3DX_U(*pout).m[2][0] = 0.0f;
-    D3DX_U(*pout).m[2][1] = 0.0f;
-    D3DX_U(*pout).m[2][3] = 0.0f;
-    D3DX_U(*pout).m[3][0] = 0.0f;
-    D3DX_U(*pout).m[3][1] = 0.0f;
-    D3DX_U(*pout).m[3][2] = 0.0f;
-    D3DX_U(*pout).m[0][0] = 1.0f;
-    D3DX_U(*pout).m[1][1] = 1.0f;
-    D3DX_U(*pout).m[2][2] = 1.0f;
-    D3DX_U(*pout).m[3][3] = 1.0f;
-    return pout;
-}
-
-static inline BOOL D3DXMatrixIsIdentity(D3DXMATRIX *pm)
-{
-    int i,j;
-    D3DXMATRIX testmatrix;
-
-    if ( !pm ) return FALSE;
-    D3DXMatrixIdentity(&testmatrix);
-    for (i=0; i<4; i++)
-    {
-     for (j=0; j<4; j++)
-     {
-      if ( D3DX_U(*pm).m[i][j] != D3DX_U(testmatrix).m[i][j] ) return FALSE;
-     }
-    }
-    return TRUE;
-}
-#undef D3DX_U
-
-/*__________________D3DXPLANE____________________*/
-
-static inline FLOAT D3DXPlaneDot(CONST D3DXPLANE *pp, CONST D3DXVECTOR4 *pv)
-{
-    if ( !pp || !pv ) return 0.0f;
-    return ( (pp->a) * (pv->x) + (pp->b) * (pv->y) + (pp->c) * (pv->z) + (pp->d) * (pv->w) );
-}
-
-static inline FLOAT D3DXPlaneDotCoord(CONST D3DXPLANE *pp, CONST D3DXVECTOR4 *pv)
-{
-    if ( !pp || !pv ) return 0.0f;
-    return ( (pp->a) * (pv->x) + (pp->b) * (pv->y) + (pp->c) * (pv->z) + (pp->d) );
-}
-
-static inline FLOAT D3DXPlaneDotNormal(CONST D3DXPLANE *pp, CONST D3DXVECTOR4 *pv)
-{
-    if ( !pp || !pv ) return 0.0f;
-    return ( (pp->a) * (pv->x) + (pp->b) * (pv->y) + (pp->c) * (pv->z) );
-}
-
-/*__________________D3DXQUATERNION____________________*/
-
-static inline D3DXQUATERNION* D3DXQuaternionConjugate(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq)
-{
-    if ( !pout || !pq) return NULL;
-    pout->x = -pq->x;
-    pout->y = -pq->y;
-    pout->z = -pq->z;
-    pout->w = pq->w;
-    return pout;
-}
-
-static inline FLOAT D3DXQuaternionDot(CONST D3DXQUATERNION *pq1, CONST D3DXQUATERNION *pq2)
-{
-    if ( !pq1 || !pq2 ) return 0.0f;
-    return (pq1->x) * (pq2->x) + (pq1->y) * (pq2->y) + (pq1->z) * (pq2->z) + (pq1->w) * (pq2->w);
-}
-
-static inline D3DXQUATERNION* D3DXQuaternionIdentity(D3DXQUATERNION *pout)
-{
-    if ( !pout) return NULL;
-    pout->x = 0.0f;
-    pout->y = 0.0f;
-    pout->z = 0.0f;
-    pout->w = 1.0f;
-    return pout;
-}
-
-static inline BOOL D3DXQuaternionIsIdentity(D3DXQUATERNION *pq)
-{
-    if ( !pq) return FALSE;
-    return ( (pq->x == 0.0f) && (pq->y == 0.0f) && (pq->z == 0.0f) && (pq->w == 1.0f) );
-}
-
-static inline FLOAT D3DXQuaternionLength(CONST D3DXQUATERNION *pq)
-{
-    if (!pq) return 0.0f;
-    return sqrt( (pq->x) * (pq->x) + (pq->y) * (pq->y) + (pq->z) * (pq->z) + (pq->w) * (pq->w) );
-}
-
-static inline FLOAT D3DXQuaternionLengthSq(CONST D3DXQUATERNION *pq)
-{
-    if (!pq) return 0.0f;
-    return (pq->x) * (pq->x) + (pq->y) * (pq->y) + (pq->z) * (pq->z) + (pq->w) * (pq->w);
-}
-
-#endif
diff --git a/misc/builddeps/win64/dx/include/d3dx9mesh.h b/misc/builddeps/win64/dx/include/d3dx9mesh.h
deleted file mode 100644 (file)
index 5773d24..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (C) 2009 David Adam
- * Copyright (C) 2010 Tony Wasserka
- *
- * 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
- */
-
-#include <d3dx9.h>
-
-#ifndef __WINE_D3DX9MESH_H
-#define __WINE_D3DX9MESH_H
-
-DEFINE_GUID(IID_ID3DXBaseMesh, 0x7ed943dd, 0x52e8, 0x40b5, 0xa8, 0xd8, 0x76, 0x68, 0x5c, 0x40, 0x63, 0x30);
-DEFINE_GUID(IID_ID3DXMesh,     0x4020e5c2, 0x1403, 0x4929, 0x88, 0x3f, 0xe2, 0xe8, 0x49, 0xfa, 0xc1, 0x95);
-
-enum _MAX_FVF_DECL_SIZE
-{
-    MAX_FVF_DECL_SIZE = MAXD3DDECLLENGTH + 1
-};
-
-typedef struct ID3DXBaseMesh* LPD3DXBASEMESH;
-typedef struct ID3DXMesh* LPD3DXMESH;
-
-typedef struct _D3DXATTRIBUTERANGE {
-    DWORD AttribId;
-    DWORD FaceStart;
-    DWORD FaceCount;
-    DWORD VertexStart;
-    DWORD VertexCount;
-} D3DXATTRIBUTERANGE;
-
-typedef D3DXATTRIBUTERANGE* LPD3DXATTRIBUTERANGE;
-
-#undef INTERFACE
-#define INTERFACE ID3DXBaseMesh
-
-DECLARE_INTERFACE_(ID3DXBaseMesh, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID* object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-    /*** ID3DXBaseMesh ***/
-    STDMETHOD(DrawSubset)(THIS_ DWORD attrib_id) PURE;
-    STDMETHOD_(DWORD, GetNumFaces)(THIS) PURE;
-    STDMETHOD_(DWORD, GetNumVertices)(THIS) PURE;
-    STDMETHOD_(DWORD, GetFVF)(THIS) PURE;
-    STDMETHOD(GetDeclaration)(THIS_ D3DVERTEXELEMENT9 declaration[MAX_FVF_DECL_SIZE]) PURE;
-    STDMETHOD_(DWORD, GetNumBytesPerVertex)(THIS) PURE;
-    STDMETHOD_(DWORD, GetOptions)(THIS) PURE;
-    STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9* device) PURE;
-    STDMETHOD(CloneMeshFVF)(THIS_ DWORD options, DWORD fvf, LPDIRECT3DDEVICE9 device, LPD3DXMESH* clone_mesh) PURE;
-    STDMETHOD(CloneMesh)(THIS_ DWORD options, CONST D3DVERTEXELEMENT9* declaration, LPDIRECT3DDEVICE9 device,
-        LPD3DXMESH* clone_mesh) PURE;
-    STDMETHOD(GetVertexBuffer)(THIS_ LPDIRECT3DVERTEXBUFFER9* vertex_buffer) PURE;
-    STDMETHOD(GetIndexBuffer)(THIS_ LPDIRECT3DINDEXBUFFER9* index_buffer) PURE;
-    STDMETHOD(LockVertexBuffer)(THIS_ DWORD flags, LPVOID* data) PURE;
-    STDMETHOD(UnlockVertexBuffer)(THIS) PURE;
-    STDMETHOD(LockIndexBuffer)(THIS_ DWORD flags, LPVOID* data) PURE;
-    STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
-    STDMETHOD(GetAttributeTable)(THIS_ D3DXATTRIBUTERANGE* attrib_table, DWORD* attrib_table_size) PURE;
-    STDMETHOD(ConvertPointRepsToAdjacency)(THIS_ CONST DWORD* point_reps, DWORD* adjacency) PURE;
-    STDMETHOD(ConvertAdjacencyToPointReps)(THIS_ CONST DWORD* adjacency, DWORD* point_reps) PURE;
-    STDMETHOD(GenerateAdjacency)(THIS_ FLOAT epsilon, DWORD* adjacency) PURE;
-    STDMETHOD(UpdateSemantics)(THIS_ D3DVERTEXELEMENT9 declaration[MAX_FVF_DECL_SIZE]) PURE;
-};
-
-
-#undef INTERFACE
-#define INTERFACE ID3DXMesh
-
-DECLARE_INTERFACE_(ID3DXMesh, ID3DXBaseMesh)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID* object) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-    /*** ID3DXBaseMesh ***/
-    STDMETHOD(DrawSubset)(THIS_ DWORD attrib_id) PURE;
-    STDMETHOD_(DWORD, GetNumFaces)(THIS) PURE;
-    STDMETHOD_(DWORD, GetNumVertices)(THIS) PURE;
-    STDMETHOD_(DWORD, GetFVF)(THIS) PURE;
-    STDMETHOD(GetDeclaration)(THIS_ D3DVERTEXELEMENT9 declaration[MAX_FVF_DECL_SIZE]) PURE;
-    STDMETHOD_(DWORD, GetNumBytesPerVertex)(THIS) PURE;
-    STDMETHOD_(DWORD, GetOptions)(THIS) PURE;
-    STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9* device) PURE;
-    STDMETHOD(CloneMeshFVF)(THIS_ DWORD options, DWORD fvf, LPDIRECT3DDEVICE9 device, LPD3DXMESH* clone_mesh) PURE;
-    STDMETHOD(CloneMesh)(THIS_ DWORD options, CONST D3DVERTEXELEMENT9* declaration, LPDIRECT3DDEVICE9 device,
-        LPD3DXMESH* clone_mesh) PURE;
-    STDMETHOD(GetVertexBuffer)(THIS_ LPDIRECT3DVERTEXBUFFER9* vertex_buffer) PURE;
-    STDMETHOD(GetIndexBuffer)(THIS_ LPDIRECT3DINDEXBUFFER9* index_buffer) PURE;
-    STDMETHOD(LockVertexBuffer)(THIS_ DWORD flags, LPVOID* data) PURE;
-    STDMETHOD(UnlockVertexBuffer)(THIS) PURE;
-    STDMETHOD(LockIndexBuffer)(THIS_ DWORD flags, LPVOID* data) PURE;
-    STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
-    STDMETHOD(GetAttributeTable)(THIS_ D3DXATTRIBUTERANGE* attrib_table, DWORD* attrib_table_size) PURE;
-    STDMETHOD(ConvertPointRepsToAdjacency)(THIS_ CONST DWORD* point_reps, DWORD* adjacency) PURE;
-    STDMETHOD(ConvertAdjacencyToPointReps)(THIS_ CONST DWORD* adjacency, DWORD* point_reps) PURE;
-    STDMETHOD(GenerateAdjacency)(THIS_ FLOAT epsilon, DWORD* adjacency) PURE;
-    STDMETHOD(UpdateSemantics)(THIS_ D3DVERTEXELEMENT9 declaration[MAX_FVF_DECL_SIZE]) PURE;
-    /*** ID3DXMesh ***/
-    STDMETHOD(LockAttributeBuffer)(THIS_ DWORD flags, DWORD** data) PURE;
-    STDMETHOD(UnlockAttributeBuffer)(THIS) PURE;
-    STDMETHOD(Optimize)(THIS_ DWORD flags, CONST DWORD* adjacency_in, DWORD* adjacency_out,
-        DWORD* face_remap, LPD3DXBUFFER* vertex_remap, LPD3DXMESH* opt_mesh) PURE;
-    STDMETHOD(OptimizeInplace)(THIS_ DWORD flags, CONST DWORD* adjacency_in, DWORD* adjacency_out,
-                     DWORD* face_remap, LPD3DXBUFFER* vertex_remap) PURE;
-    STDMETHOD(SetAttributeTable)(THIS_ CONST D3DXATTRIBUTERANGE* attrib_table, DWORD attrib_table_size) PURE;
-};
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-HRESULT WINAPI D3DXCreateBuffer(DWORD, LPD3DXBUFFER*);
-UINT    WINAPI D3DXGetDeclVertexSize(const D3DVERTEXELEMENT9 *decl, DWORD stream_idx);
-UINT    WINAPI D3DXGetFVFVertexSize(DWORD);
-BOOL    WINAPI D3DXBoxBoundProbe(CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *);
-BOOL    WINAPI D3DXSphereBoundProbe(CONST D3DXVECTOR3 *,FLOAT,CONST D3DXVECTOR3 *,CONST D3DXVECTOR3 *);
-HRESULT WINAPI D3DXComputeBoundingBox(CONST D3DXVECTOR3 *, DWORD, DWORD, D3DXVECTOR3 *, D3DXVECTOR3 *);
-HRESULT WINAPI D3DXComputeBoundingSphere(CONST D3DXVECTOR3 *, DWORD, DWORD, D3DXVECTOR3 *, FLOAT *);
-HRESULT WINAPI D3DXDeclaratorFromFVF(DWORD, D3DVERTEXELEMENT9[MAX_FVF_DECL_SIZE]);
-BOOL    WINAPI D3DXIntersectTri(CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3*, FLOAT *, FLOAT *, FLOAT *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __WINE_D3DX9MESH_H */
diff --git a/misc/builddeps/win64/dx/include/d3dx9shader.h b/misc/builddeps/win64/dx/include/d3dx9shader.h
deleted file mode 100644 (file)
index c8380bc..0000000
+++ /dev/null
@@ -1,349 +0,0 @@
-/*
- * Copyright 2008 Luis Busquets
- *
- * 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
- */
-
-#include "d3dx9.h"
-
-#ifndef __D3DX9SHADER_H__
-#define __D3DX9SHADER_H__
-
-#define D3DXSHADER_DEBUG                          0x1
-#define D3DXSHADER_SKIPVALIDATION                 0x2
-#define D3DXSHADER_SKIPOPTIMIZATION               0x4
-#define D3DXSHADER_PACKMATRIX_ROWMAJOR            0x8
-#define D3DXSHADER_PACKMATRIX_COLUMNMAJOR         0x10
-#define D3DXSHADER_PARTIALPRECISION               0x20
-#define D3DXSHADER_FORCE_VS_SOFTWARE_NOOPT        0x40
-#define D3DXSHADER_FORCE_PS_SOFTWARE_NOOPT        0x80
-#define D3DXSHADER_NO_PRESHADER                   0x100
-#define D3DXSHADER_AVOID_FLOW_CONTROL             0x200
-#define D3DXSHADER_PREFER_FLOW_CONTROL            0x400
-#define D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY 0x1000
-#define D3DXSHADER_IEEE_STRICTNESS                0x2000
-
-#define D3DXSHADER_OPTIMIZATION_LEVEL0            0x4000
-#define D3DXSHADER_OPTIMIZATION_LEVEL1            0x0
-#define D3DXSHADER_OPTIMIZATION_LEVEL2            0xC000
-#define D3DXSHADER_OPTIMIZATION_LEVEL3            0x8000
-
-#define D3DXSHADER_USE_LEGACY_D3DX9_31_DLL        0x10000
-
-typedef LPCSTR D3DXHANDLE;
-
-typedef enum _D3DXREGISTER_SET
-{
-    D3DXRS_BOOL,
-    D3DXRS_INT4,
-    D3DXRS_FLOAT4,
-    D3DXRS_SAMPLER,
-    D3DXRS_FORCE_DWORD = 0x7fffffff
-} D3DXREGISTER_SET, *LPD3DXREGISTER_SET;
-
-typedef enum D3DXPARAMETER_CLASS
-{
-    D3DXPC_SCALAR,
-    D3DXPC_VECTOR,
-    D3DXPC_MATRIX_ROWS,
-    D3DXPC_MATRIX_COLUMNS,
-    D3DXPC_OBJECT,
-    D3DXPC_STRUCT,
-    D3DXPC_FORCE_DWORD = 0x7fffffff,
-} D3DXPARAMETER_CLASS, *LPD3DXPARAMETER_CLASS;
-
-typedef enum D3DXPARAMETER_TYPE
-{
-    D3DXPT_VOID,
-    D3DXPT_BOOL,
-    D3DXPT_INT,
-    D3DXPT_FLOAT,
-    D3DXPT_STRING,
-    D3DXPT_TEXTURE,
-    D3DXPT_TEXTURE1D,
-    D3DXPT_TEXTURE2D,
-    D3DXPT_TEXTURE3D,
-    D3DXPT_TEXTURECUBE,
-    D3DXPT_SAMPLER,
-    D3DXPT_SAMPLER1D,
-    D3DXPT_SAMPLER2D,
-    D3DXPT_SAMPLER3D,
-    D3DXPT_SAMPLERCUBE,
-    D3DXPT_PIXELSHADER,
-    D3DXPT_VERTEXSHADER,
-    D3DXPT_PIXELFRAGMENT,
-    D3DXPT_VERTEXFRAGMENT,
-    D3DXPT_UNSUPPORTED,
-    D3DXPT_FORCE_DWORD = 0x7fffffff,
-} D3DXPARAMETER_TYPE, *LPD3DXPARAMETER_TYPE;
-
-typedef struct _D3DXCONSTANTTABLE_DESC
-{
-    LPCSTR Creator;
-    DWORD Version;
-    UINT Constants;
-} D3DXCONSTANTTABLE_DESC, *LPD3DXCONSTANTTABLE_DESC;
-
-typedef struct _D3DXCONSTANT_DESC
-{
-    LPCSTR Name;
-    D3DXREGISTER_SET RegisterSet;
-    UINT RegisterIndex;
-    UINT RegisterCount;
-    D3DXPARAMETER_CLASS Class;
-    D3DXPARAMETER_TYPE Type;
-    UINT Rows;
-    UINT Columns;
-    UINT Elements;
-    UINT StructMembers;
-    UINT Bytes;
-    LPCVOID DefaultValue;
-} D3DXCONSTANT_DESC, *LPD3DXCONSTANT_DESC;
-
-DEFINE_GUID(IID_ID3DXConstantTable, 0x9dca3190, 0x38b9, 0x4fc3, 0x92, 0xe3, 0x39, 0xc6, 0xdd, 0xfb, 0x35, 0x8b);
-
-#undef INTERFACE
-#define INTERFACE ID3DXConstantTable
-
-DECLARE_INTERFACE_(ID3DXConstantTable, ID3DXBuffer)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-    /*** ID3DXBuffer methods ***/
-    STDMETHOD_(LPVOID, GetBufferPointer)(THIS) PURE;
-    STDMETHOD_(DWORD, GetBufferSize)(THIS) PURE;
-    /*** ID3DXConstantTable methods ***/
-    STDMETHOD(GetDesc)(THIS_ D3DXCONSTANTTABLE_DESC *pDesc) PURE;
-    STDMETHOD(GetConstantDesc)(THIS_ D3DXHANDLE hConstant, D3DXCONSTANT_DESC *pConstantDesc, UINT *pCount) PURE;
-    STDMETHOD_(UINT, GetSamplerIndex)(THIS_ D3DXHANDLE hConstant) PURE;
-    STDMETHOD_(D3DXHANDLE, GetConstant)(THIS_ D3DXHANDLE hConstant, UINT Index) PURE;
-    STDMETHOD_(D3DXHANDLE, GetConstantByName)(THIS_ D3DXHANDLE hConstant, LPCSTR pName) PURE;
-    STDMETHOD_(D3DXHANDLE, GetConstantElement)(THIS_ D3DXHANDLE hConstant, UINT Index) PURE;
-    STDMETHOD(SetDefaults)(THIS_ LPDIRECT3DDEVICE9 pDevice) PURE;
-    STDMETHOD(SetValue)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, LPCVOID pData, UINT Bytes) PURE;
-    STDMETHOD(SetBool)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, BOOL b) PURE;
-    STDMETHOD(SetBoolArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST BOOL* pb, UINT Count) PURE;
-    STDMETHOD(SetInt)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, INT n) PURE;
-    STDMETHOD(SetIntArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST INT* pn, UINT Count) PURE;
-    STDMETHOD(SetFloat)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, FLOAT f) PURE;
-    STDMETHOD(SetFloatArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST FLOAT* pf, UINT Count) PURE;
-    STDMETHOD(SetVector)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXVECTOR4* pVector) PURE;
-    STDMETHOD(SetVectorArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXVECTOR4* pVector, UINT Count) PURE;
-    STDMETHOD(SetMatrix)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXMATRIX* pMatrix) PURE;
-    STDMETHOD(SetMatrixArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXMATRIX* pMatrix, UINT Count) PURE;
-    STDMETHOD(SetMatrixPointerArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXMATRIX** ppMatrix, UINT Count) PURE;
-    STDMETHOD(SetMatrixTranspose)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXMATRIX* pMatrix) PURE;
-    STDMETHOD(SetMatrixTransposeArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXMATRIX* pMatrix, UINT Count) PURE;
-    STDMETHOD(SetMatrixTransposePointerArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXMATRIX** ppMatrix, UINT Count) PURE;
-};
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define ID3DXConstantTable_QueryInterface(p,a,b)                      (p)->lpVtbl->QueryInterface(p,a,b)
-#define ID3DXConstantTable_AddRef(p)                                  (p)->lpVtbl->AddRef(p)
-#define ID3DXConstantTable_Release(p)                                 (p)->lpVtbl->Release(p)
-/*** ID3DXBuffer methods ***/
-#define ID3DXConstantTable_GetBufferPointer(p)                        (p)->lpVtbl->GetBufferPointer(p)
-#define ID3DXConstantTable_GetBufferSize(p)                           (p)->lpVtbl->GetBufferSize(p)
-/*** ID3DXConstantTable methods ***/
-#define ID3DXConstantTable_GetDesc(p,a)                               (p)->lpVtbl->GetDesc(p,a)
-#define ID3DXConstantTable_GetConstantDesc(p,a,b,c)                   (p)->lpVtbl->GetConstantDesc(p,a,b,c)
-#define ID3DXConstantTable_GetSamplerIndex(p,a)                       (p)->lpVtbl->GetSamplerIndex(p,a)
-#define ID3DXConstantTable_GetConstant(p,a,b)                         (p)->lpVtbl->GetConstant(p,a,b)
-#define ID3DXConstantTable_GetConstantByName(p,a,b)                   (p)->lpVtbl->GetConstantByName(p,a,b)
-#define ID3DXConstantTable_GetConstantElement(p,a,b)                  (p)->lpVtbl->GetConstantElement(p,a,b)
-#define ID3DXConstantTable_SetDefaults(p,a)                           (p)->lpVtbl->SetDefaults(p,a)
-#define ID3DXConstantTable_SetValue(p,a,b,c,d)                        (p)->lpVtbl->SetValue(p,a,b,c,d)
-#define ID3DXConstantTable_SetBool(p,a,b,c)                           (p)->lpVtbl->SetBool(p,a,b,c)
-#define ID3DXConstantTable_SetBoolArray(p,a,b,c,d)                    (p)->lpVtbl->SetBoolArray(p,a,b,c,d)
-#define ID3DXConstantTable_SetInt(p,a,b,c)                            (p)->lpVtbl->SetInt(p,a,b,c)
-#define ID3DXConstantTable_SetIntArray(p,a,b,c,d)                     (p)->lpVtbl->SetIntArray(p,a,b,c,d)
-#define ID3DXConstantTable_SetFloat(p,a,b,c)                          (p)->lpVtbl->SetFloat(p,a,b,c)
-#define ID3DXConstantTable_SetFloatArray(p,a,b,c,d)                   (p)->lpVtbl->SetFloatArray(p,a,b,c,d)
-#define ID3DXConstantTable_SetVector(p,a,b,c)                         (p)->lpVtbl->SetVector(p,a,b,c)
-#define ID3DXConstantTable_SetVectorArray(p,a,b,c,d)                  (p)->lpVtbl->SetVectorArray(p,a,b,c,d)
-#define ID3DXConstantTable_SetMatrix(p,a,b,c)                         (p)->lpVtbl->SetMatrix(p,a,b,c)
-#define ID3DXConstantTable_SetMatrixArray(p,a,b,c,d)                  (p)->lpVtbl->SetMatrixArray(p,a,b,c,d)
-#define ID3DXConstantTable_SetMatrixPointerArray(p,a,b,c,d)           (p)->lpVtbl->SetMatrixPointerArray(p,a,b,c,d)
-#define ID3DXConstantTable_SetMatrixTranspose(p,a,b,c)                (p)->lpVtbl->SetMatrixTranspose(p,a,b,c)
-#define ID3DXConstantTable_SetMatrixTransposeArray(p,a,b,c,d)         (p)->lpVtbl->SetMatrixTransposeArray(p,a,b,c,d)
-#define ID3DXConstantTable_SetMatrixTransposePointerArray(p,a,b,c,d)  (p)->lpVtbl->SetMatrixTransposePointerArray(p,a,b,c,d)
-#else
-/*** IUnknown methods ***/
-#define ID3DXConstantTable_QueryInterface(p,a,b)                      (p)->QueryInterface(a,b)
-#define ID3DXConstantTable_AddRef(p)                                  (p)->AddRef()
-#define ID3DXConstantTable_Release(p)                                 (p)->Release()
-/*** ID3DXBuffer methods ***/
-#define ID3DXConstantTable_GetBufferPointer(p)                        (p)->GetBufferPointer()
-#define ID3DXConstantTable_GetBufferSize(p)                           (p)->GetBufferSize()
-/*** ID3DXConstantTable methods ***/
-#define ID3DXConstantTable_GetDesc(p,a)                               (p)->GetDesc(a)
-#define ID3DXConstantTable_GetConstantDesc(p,a,b,c)                   (p)->GetConstantDesc(a,b,c)
-#define ID3DXConstantTable_GetSamplerIndex(p,a)                       (p)->GetConstantDesc(a)
-#define ID3DXConstantTable_GetConstant(p,a,b)                         (p)->GetConstant(a,b)
-#define ID3DXConstantTable_GetConstantByName(p,a,b)                   (p)->GetConstantByName(a,b)
-#define ID3DXConstantTable_GetConstantElement(p,a,b)                  (p)->GetConstantElement(a,b)
-#define ID3DXConstantTable_SetDefaults(p,a)                           (p)->SetDefaults(a)
-#define ID3DXConstantTable_SetValue(p,a,b,c,d)                        (p)->SetValue(a,b,c,d)
-#define ID3DXConstantTable_SetBool(p,a,b,c)                           (p)->SetBool(a,b,c)
-#define ID3DXConstantTable_SetBoolArray(p,a,b,c,d)                    (p)->SetBoolArray(a,b,c,d)
-#define ID3DXConstantTable_SetInt(p,a,b,c)                            (p)->SetInt(a,b,c)
-#define ID3DXConstantTable_SetIntArray(p,a,b,c,d)                     (p)->SetIntArray(a,b,c,d)
-#define ID3DXConstantTable_SetFloat(p,a,b,c)                          (p)->SetFloat(a,b,c)
-#define ID3DXConstantTable_SetFloatArray(p,a,b,c,d)                   (p)->SetFloatArray(a,b,c,d)
-#define ID3DXConstantTable_SetVector(p,a,b,c)                         (p)->SetVector(a,b,c)
-#define ID3DXConstantTable_SetVectorArray(p,a,b,c,d)                  (p)->SetVectorArray(a,b,c,d)
-#define ID3DXConstantTable_SetMatrix(p,a,b,c)                         (p)->SetMatrix(a,b,c)
-#define ID3DXConstantTable_SetMatrixArray(p,a,b,c,d)                  (p)->SetMatrixArray(a,b,c,d)
-#define ID3DXConstantTable_SetMatrixPointerArray(p,a,b,c,d)           (p)->SetMatrixPointerArray(a,b,c,d)
-#define ID3DXConstantTable_SetMatrixTranspose(p,a,b,c)                (p)->SetMatrixTranspose(a,b,c)
-#define ID3DXConstantTable_SetMatrixTransposeArray(p,a,b,c,d)         (p)->SetMatrixTransposeArray(a,b,c,d)
-#define ID3DXConstantTable_SetMatrixTransposePointerArray(p,a,b,c,d)  (p)->SetMatrixTransposePointerArray(a,b,c,d)
-#endif
-
-typedef struct ID3DXConstantTable *LPD3DXCONSTANTTABLE;
-
-typedef struct _D3DXMACRO {
-    LPCSTR Name;
-    LPCSTR Definition;
-} D3DXMACRO, *LPD3DXMACRO;
-
-typedef struct _D3DXSEMANTIC {
-    UINT Usage;
-    UINT UsageIndex;
-} D3DXSEMANTIC, *LPD3DXSEMANTIC;
-
-typedef enum _D3DXINCLUDE_TYPE
-{
-    D3DXINC_LOCAL,
-    D3DXINC_SYSTEM,
-    D3DXINC_FORCE_DWORD = 0x7fffffff,
-} D3DXINCLUDE_TYPE, *LPD3DXINCLUDE_TYPE;
-
-#undef INTERFACE
-#define INTERFACE ID3DXInclude
-
-DECLARE_INTERFACE(ID3DXInclude)
-{
-    STDMETHOD(Open)(THIS_ D3DXINCLUDE_TYPE include_type, LPCSTR filename, LPCVOID parent_data, LPCVOID *data, UINT *bytes) PURE;
-    STDMETHOD(Close)(THIS_ LPCVOID data) PURE;
-};
-
-#define ID3DXInclude_Open(p,a,b,c,d,e)  (p)->lpVtbl->Open(p,a,b,c,d,e)
-#define ID3DXInclude_Close(p,a)         (p)->lpVtbl->Close(p,a)
-
-typedef struct ID3DXInclude *LPD3DXINCLUDE;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-LPCSTR WINAPI D3DXGetPixelShaderProfile(LPDIRECT3DDEVICE9 device);
-UINT WINAPI D3DXGetShaderSize(const DWORD *byte_code);
-DWORD WINAPI D3DXGetShaderVersion(const DWORD *byte_code);
-LPCSTR WINAPI D3DXGetVertexShaderProfile(LPDIRECT3DDEVICE9 device);
-HRESULT WINAPI D3DXFindShaderComment(CONST DWORD* byte_code, DWORD fourcc, LPCVOID* data, UINT* size);
-
-HRESULT WINAPI D3DXAssembleShaderFromFileA(LPCSTR filename,
-                                           CONST D3DXMACRO* defines,
-                                           LPD3DXINCLUDE include,
-                                           DWORD flags,
-                                           LPD3DXBUFFER* shader,
-                                           LPD3DXBUFFER* error_messages);
-
-HRESULT WINAPI D3DXAssembleShaderFromFileW(LPCWSTR filename,
-                                           CONST D3DXMACRO* defines,
-                                           LPD3DXINCLUDE include,
-                                           DWORD flags,
-                                           LPD3DXBUFFER* shader,
-                                           LPD3DXBUFFER* error_messages);
-
-HRESULT WINAPI D3DXAssembleShaderFromResourceA(HMODULE module,
-                                               LPCSTR resource,
-                                               CONST D3DXMACRO* defines,
-                                               LPD3DXINCLUDE include,
-                                               DWORD flags,
-                                               LPD3DXBUFFER* shader,
-                                               LPD3DXBUFFER* error_messages);
-
-HRESULT WINAPI D3DXAssembleShaderFromResourceW(HMODULE module,
-                                               LPCWSTR resource,
-                                               CONST D3DXMACRO* defines,
-                                               LPD3DXINCLUDE include,
-                                               DWORD flags,
-                                               LPD3DXBUFFER* shader,
-                                               LPD3DXBUFFER* error_messages);
-
-HRESULT WINAPI D3DXAssembleShader(LPCSTR data,
-                                  UINT data_len,
-                                  CONST D3DXMACRO* defines,
-                                  LPD3DXINCLUDE include,
-                                  DWORD flags,
-                                  LPD3DXBUFFER* shader,
-                                  LPD3DXBUFFER* error_messages);
-
-HRESULT WINAPI D3DXGetShaderConstantTableEx(CONST DWORD* byte_code,
-                                            DWORD flags,
-                                            LPD3DXCONSTANTTABLE* constant_table);
-
-HRESULT WINAPI D3DXGetShaderConstantTable(CONST DWORD* byte_code,
-                                          LPD3DXCONSTANTTABLE* constant_table);
-
-#ifdef __cplusplus
-}
-#endif
-
-typedef struct _D3DXSHADER_CONSTANTTABLE
-{
-    DWORD Size;
-    DWORD Creator;
-    DWORD Version;
-    DWORD Constants;
-    DWORD ConstantInfo;
-    DWORD Flags;
-    DWORD Target;
-} D3DXSHADER_CONSTANTTABLE, *LPD3DXSHADER_CONSTANTTABLE;
-
-typedef struct _D3DXSHADER_CONSTANTINFO
-{
-    DWORD Name;
-    WORD  RegisterSet;
-    WORD  RegisterIndex;
-    WORD  RegisterCount;
-    WORD  Reserved;
-    DWORD TypeInfo;
-    DWORD DefaultValue;
-} D3DXSHADER_CONSTANTINFO, *LPD3DXSHADER_CONSTANTINFO;
-
-typedef struct _D3DXSHADER_TYPEINFO
-{
-    WORD  Class;
-    WORD  Type;
-    WORD  Rows;
-    WORD  Columns;
-    WORD  Elements;
-    WORD  StructMembers;
-    DWORD StructMemberInfo;
-} D3DXSHADER_TYPEINFO, *LPD3DXSHADER_TYPEINFO;
-
-typedef struct _D3DXSHADER_STRUCTMEMBERINFO
-{
-    DWORD Name;
-    DWORD TypeInfo;
-} D3DXSHADER_STRUCTMEMBERINFO, *LPD3DXSHADER_STRUCTMEMBERINFO;
-
-#endif /* __D3DX9SHADER_H__ */
diff --git a/misc/builddeps/win64/dx/include/d3dx9shape.h b/misc/builddeps/win64/dx/include/d3dx9shape.h
deleted file mode 100644 (file)
index e1bf231..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright 2010 Christian Costa
- *
- * 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
- */
-
-#include "d3dx9.h"
-
-#ifndef __D3DX9SHAPE_H__
-#define __D3DX9SHAPE_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-HRESULT WINAPI D3DXCreateBox(LPDIRECT3DDEVICE9 device,
-                             FLOAT width,
-                             FLOAT height,
-                             FLOAT depth,
-                             LPD3DXMESH* mesh,
-                             LPD3DXBUFFER* adjacency);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __D3DX9SHAPE_H__ */
diff --git a/misc/builddeps/win64/dx/include/d3dx9tex.h b/misc/builddeps/win64/dx/include/d3dx9tex.h
deleted file mode 100644 (file)
index 019a4da..0000000
+++ /dev/null
@@ -1,698 +0,0 @@
-/*
- * Copyright (C) 2008 Tony Wasserka
- *
- * 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
- */
-
-#include <_mingw_dxhelper.h>
-#include <d3dx9.h>
-
-#ifndef __WINE_D3DX9TEX_H
-#define __WINE_D3DX9TEX_H
-
-/**********************************************
- ***************** Definitions ****************
- **********************************************/
-#define D3DX_FILTER_NONE                 0x00000001
-#define D3DX_FILTER_POINT                0x00000002
-#define D3DX_FILTER_LINEAR               0x00000003
-#define D3DX_FILTER_TRIANGLE             0x00000004
-#define D3DX_FILTER_BOX                  0x00000005
-#define D3DX_FILTER_MIRROR_U             0x00010000
-#define D3DX_FILTER_MIRROR_V             0x00020000
-#define D3DX_FILTER_MIRROR_W             0x00040000
-#define D3DX_FILTER_MIRROR               0x00070000
-#define D3DX_FILTER_DITHER               0x00080000
-#define D3DX_FILTER_DITHER_DIFFUSION     0x00100000
-#define D3DX_FILTER_SRGB_IN              0x00200000
-#define D3DX_FILTER_SRGB_OUT             0x00400000
-#define D3DX_FILTER_SRGB                 0x00600000
-
-#define D3DX_NORMALMAP_MIRROR_U          0x00010000
-#define D3DX_NORMALMAP_MIRROR_V          0x00020000
-#define D3DX_NORMALMAP_MIRROR            0x00030000
-#define D3DX_NORMALMAP_INVERTSIGN        0x00080000
-#define D3DX_NORMALMAP_COMPUTE_OCCLUSION 0x00100000
-
-#define D3DX_CHANNEL_RED                 0x00000001
-#define D3DX_CHANNEL_BLUE                0x00000002
-#define D3DX_CHANNEL_GREEN               0x00000004
-#define D3DX_CHANNEL_ALPHA               0x00000008
-#define D3DX_CHANNEL_LUMINANCE           0x00000010
-
-/**********************************************
- **************** Typedefs ****************
- **********************************************/
-typedef enum _D3DXIMAGE_FILEFORMAT
-{
-    D3DXIFF_BMP,
-    D3DXIFF_JPG,
-    D3DXIFF_TGA,
-    D3DXIFF_PNG,
-    D3DXIFF_DDS,
-    D3DXIFF_PPM,
-    D3DXIFF_DIB,
-    D3DXIFF_FORCE_DWORD = 0x7fffffff
-} D3DXIMAGE_FILEFORMAT;
-
-typedef struct _D3DXIMAGE_INFO
-{
-    UINT Width;
-    UINT Height;
-    UINT Depth;
-    UINT MipLevels;
-    D3DFORMAT Format;
-    D3DRESOURCETYPE ResourceType;
-    D3DXIMAGE_FILEFORMAT ImageFileFormat;
-} D3DXIMAGE_INFO;
-
-/**********************************************
- ****************** Functions *****************
- **********************************************/
-/* Typedefs for callback functions */
-typedef VOID (WINAPI *LPD3DXFILL2D)(D3DXVECTOR4 *out, CONST D3DXVECTOR2 *texcoord, CONST D3DXVECTOR2 *texelsize, LPVOID data);
-typedef VOID (WINAPI *LPD3DXFILL3D)(D3DXVECTOR4 *out, CONST D3DXVECTOR3 *texcoord, CONST D3DXVECTOR3 *texelsize, LPVOID data);
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Image Information */
-HRESULT WINAPI D3DXGetImageInfoFromFileA(LPCSTR file, D3DXIMAGE_INFO *info);
-HRESULT WINAPI D3DXGetImageInfoFromFileW(LPCWSTR file, D3DXIMAGE_INFO *info);
-#define        D3DXGetImageInfoFromFile WINELIB_NAME_AW(D3DXGetImageInfoFromFile)
-
-HRESULT WINAPI D3DXGetImageInfoFromResourceA(HMODULE module, LPCSTR resource, D3DXIMAGE_INFO *info);
-HRESULT WINAPI D3DXGetImageInfoFromResourceW(HMODULE module, LPCWSTR resource, D3DXIMAGE_INFO *info);
-#define        D3DXGetImageInfoFromResource WINELIB_NAME_AW(D3DXGetImageInfoFromResource)
-
-HRESULT WINAPI D3DXGetImageInfoFromFileInMemory(LPCVOID data, UINT datasize, D3DXIMAGE_INFO *info);
-
-
-/* Surface Loading/Saving */
-HRESULT WINAPI D3DXLoadSurfaceFromFileA(       LPDIRECT3DSURFACE9 destsurface,
-                                               CONST PALETTEENTRY *destpalette,
-                                               CONST RECT *destrect,
-                                               LPCSTR srcfile,
-                                               CONST RECT *srcrect,
-                                               DWORD filter,
-                                               D3DCOLOR colorkey,
-                                               D3DXIMAGE_INFO *srcinfo);
-
-HRESULT WINAPI D3DXLoadSurfaceFromFileW(       LPDIRECT3DSURFACE9 destsurface,
-                                               CONST PALETTEENTRY *destpalette,
-                                               CONST RECT *destrect,
-                                               LPCWSTR srcfile,
-                                               CONST RECT *srcrect,
-                                               DWORD filter,
-                                               D3DCOLOR colorkey,
-                                               D3DXIMAGE_INFO *srcinfo);
-#define        D3DXLoadSurfaceFromFile WINELIB_NAME_AW(D3DXLoadSurfaceFromFile)
-
-HRESULT WINAPI D3DXLoadSurfaceFromResourceA(   LPDIRECT3DSURFACE9 destsurface,
-                                               CONST PALETTEENTRY *destpalette,
-                                               CONST RECT *destrect,
-                                               HMODULE srcmodule,
-                                               LPCSTR resource,
-                                               CONST RECT *srcrect,
-                                               DWORD filter,
-                                               D3DCOLOR colorkey,
-                                               D3DXIMAGE_INFO *srcinfo);
-
-HRESULT WINAPI D3DXLoadSurfaceFromResourceW(   LPDIRECT3DSURFACE9 destsurface,
-                                               CONST PALETTEENTRY *destpalette,
-                                               CONST RECT *destrect,
-                                               HMODULE srcmodule,
-                                               LPCWSTR resource,
-                                               CONST RECT *srcrect,
-                                               DWORD filter,
-                                               D3DCOLOR colorkey,
-                                               D3DXIMAGE_INFO *srcinfo);
-#define        D3DXLoadSurfaceFromResource WINELIB_NAME_AW(D3DXLoadSurfaceFromResource)
-
-HRESULT WINAPI D3DXLoadSurfaceFromFileInMemory(LPDIRECT3DSURFACE9 destsurface,
-                                               CONST PALETTEENTRY *destpalette,
-                                               CONST RECT*destrect,
-                                               LPCVOID srcdata,
-                                               UINT srcdatasize,
-                                               CONST RECT *srcrect,
-                                               DWORD filter,
-                                               D3DCOLOR colorkey,
-                                               D3DXIMAGE_INFO *srcinfo);
-
-HRESULT WINAPI D3DXLoadSurfaceFromSurface(     LPDIRECT3DSURFACE9 destsurface,
-                                               CONST PALETTEENTRY *destpalette,
-                                               CONST RECT *destrect,
-                                               LPDIRECT3DSURFACE9 srcsurface,
-                                               CONST PALETTEENTRY *srcpalette,
-                                               CONST RECT *srcrect,
-                                               DWORD filter,
-                                               D3DCOLOR colorkey);
-
-HRESULT WINAPI D3DXLoadSurfaceFromMemory(      LPDIRECT3DSURFACE9 destsurface,
-                                               CONST PALETTEENTRY *destpalette,
-                                               CONST RECT *destrect,
-                                               LPCVOID srcmemory,
-                                               D3DFORMAT srcformat,
-                                               UINT srcpitch,
-                                               CONST PALETTEENTRY *srcpalette,
-                                               CONST RECT *srcrect,
-                                               DWORD filter,
-                                               D3DCOLOR colorkey);
-
-HRESULT WINAPI D3DXSaveSurfaceToFileA(         LPCSTR destfile,
-                                               D3DXIMAGE_FILEFORMAT destformat,
-                                               LPDIRECT3DSURFACE9 srcsurface,
-                                               CONST PALETTEENTRY *srcpalette,
-                                               CONST RECT *srcrect);
-
-HRESULT WINAPI D3DXSaveSurfaceToFileW(         LPCWSTR destfile,
-                                               D3DXIMAGE_FILEFORMAT destformat,
-                                               LPDIRECT3DSURFACE9 srcsurface,
-                                               CONST PALETTEENTRY *srcpalette,
-                                               CONST RECT *srcrect);
-#define        D3DXSaveSurfaceToFile WINELIB_NAME_AW(D3DXSaveSurfaceToFile)
-
-
-/* Volume Loading/Saving */
-HRESULT WINAPI D3DXLoadVolumeFromFileA(       LPDIRECT3DVOLUME9 destvolume,
-                                              CONST PALETTEENTRY *destpalette,
-                                              CONST D3DBOX *destbox,
-                                              LPCSTR srcfile,
-                                              CONST D3DBOX *srcbox,
-                                              DWORD filter,
-                                              D3DCOLOR colorkey,
-                                              D3DXIMAGE_INFO *srcinfo);
-
-HRESULT WINAPI D3DXLoadVolumeFromFileW(       LPDIRECT3DVOLUME9 destVolume,
-                                              CONST PALETTEENTRY *destpalette,
-                                              CONST D3DBOX *destbox,
-                                              LPCWSTR srcfile,
-                                              CONST D3DBOX *srcbox,
-                                              DWORD filter,
-                                              D3DCOLOR colorkey,
-                                              D3DXIMAGE_INFO *srcinfo);
-#define        D3DXLoadVolumeFromFile WINELIB_NAME_AW(D3DXLoadVolumeFromFile)
-
-HRESULT WINAPI D3DXLoadVolumeFromResourceA(   LPDIRECT3DVOLUME9 destVolume,
-                                              CONST PALETTEENTRY *destpalette,
-                                              CONST D3DBOX *destbox,
-                                              HMODULE srcmodule,
-                                              LPCSTR resource,
-                                              CONST D3DBOX *srcbox,
-                                              DWORD filter,
-                                              D3DCOLOR colorkey,
-                                              D3DXIMAGE_INFO *srcinfo);
-
-HRESULT WINAPI D3DXLoadVolumeFromResourceW(   LPDIRECT3DVOLUME9 destVolume,
-                                              CONST PALETTEENTRY *destpalette,
-                                              CONST D3DBOX *destbox,
-                                              HMODULE srcmodule,
-                                              LPCWSTR resource,
-                                              CONST D3DBOX *srcbox,
-                                              DWORD filter,
-                                              D3DCOLOR colorkey,
-                                              D3DXIMAGE_INFO *srcinfo);
-#define        D3DXLoadVolumeFromResource WINELIB_NAME_AW(D3DXLoadVolumeFromResource)
-
-HRESULT WINAPI D3DXLoadVolumeFromFileInMemory(LPDIRECT3DVOLUME9 destvolume,
-                                              CONST PALETTEENTRY *destpalette,
-                                              CONST D3DBOX *destbox,
-                                              LPCVOID srcdata,
-                                              UINT srcdatasize,
-                                              CONST D3DBOX *srcbox,
-                                              DWORD filter,
-                                              D3DCOLOR colorkey,
-                                              D3DXIMAGE_INFO *srcinfo);
-
-HRESULT WINAPI D3DXLoadVolumeFromVolume(      LPDIRECT3DVOLUME9 destvolume,
-                                              CONST PALETTEENTRY *destpalette,
-                                              CONST D3DBOX *destbox,
-                                              LPDIRECT3DVOLUME9 srcvolume,
-                                              CONST PALETTEENTRY *srcpalette,
-                                              CONST D3DBOX *srcbox,
-                                              DWORD filter,
-                                              D3DCOLOR colorkey);
-
-HRESULT WINAPI D3DXLoadVolumeFromMemory(      LPDIRECT3DVOLUME9 destvolume,
-                                              CONST PALETTEENTRY *destpalette,
-                                              CONST D3DBOX *destbox,
-                                              LPCVOID srcmemory,
-                                              D3DFORMAT srcformat,
-                                              UINT srcrowpitch,
-                                              UINT srcslicepitch,
-                                              CONST PALETTEENTRY *srcpalette,
-                                              CONST D3DBOX *srcbox,
-                                              DWORD filter,
-                                              D3DCOLOR colorkey);
-
-HRESULT WINAPI D3DXSaveVolumeToFileA(         LPCSTR destfile,
-                                              D3DXIMAGE_FILEFORMAT destformat,
-                                              LPDIRECT3DVOLUME9 srcvolume,
-                                              CONST PALETTEENTRY *srcpalette,
-                                              CONST D3DBOX *srcbox);
-
-HRESULT WINAPI D3DXSaveVolumeToFileW(         LPCWSTR destfile,
-                                              D3DXIMAGE_FILEFORMAT destformat,
-                                              LPDIRECT3DVOLUME9 srcvolume,
-                                              CONST PALETTEENTRY *srcpalette,
-                                              CONST D3DBOX *srcbox);
-#define        D3DXSaveVolumeToFile WINELIB_NAME_AW(D3DXSaveVolumeToFile)
-
-
-/* Texture, cube texture and volume texture creation */
-HRESULT WINAPI D3DXCheckTextureRequirements(      LPDIRECT3DDEVICE9 device,
-                                                  UINT *width,
-                                                  UINT *height,
-                                                  UINT *miplevels,
-                                                  DWORD usage,
-                                                  D3DFORMAT *format,
-                                                  D3DPOOL pool);
-HRESULT WINAPI D3DXCheckCubeTextureRequirements(  LPDIRECT3DDEVICE9 device,
-                                                  UINT *size,
-                                                  UINT *miplevels,
-                                                  DWORD usage,
-                                                  D3DFORMAT *format,
-                                                  D3DPOOL pool);
-
-HRESULT WINAPI D3DXCheckVolumeTextureRequirements(LPDIRECT3DDEVICE9 device,
-                                                  UINT *width,
-                                                  UINT *height,
-                                                  UINT *depth,
-                                                  UINT *miplevels,
-                                                  DWORD usage,
-                                                  D3DFORMAT *format,
-                                                  D3DPOOL pool);
-
-HRESULT WINAPI D3DXCreateTexture(      LPDIRECT3DDEVICE9 device,
-                                       UINT width,
-                                       UINT height,
-                                       UINT miplevels,
-                                       DWORD usage,
-                                       D3DFORMAT format,
-                                       D3DPOOL pool,
-                                       LPDIRECT3DTEXTURE9 *texture);
-
-HRESULT WINAPI D3DXCreateCubeTexture(  LPDIRECT3DDEVICE9 device,
-                                       UINT size,
-                                       UINT miplevels,
-                                       DWORD usage,
-                                       D3DFORMAT format,
-                                       D3DPOOL pool,
-                                       LPDIRECT3DCUBETEXTURE9 *cube);
-
-HRESULT WINAPI D3DXCreateVolumeTexture(LPDIRECT3DDEVICE9 device,
-                                       UINT width,
-                                       UINT height,
-                                       UINT depth,
-                                       UINT miplevels,
-                                       DWORD usage,
-                                       D3DFORMAT format,
-                                       D3DPOOL pool,
-                                       LPDIRECT3DVOLUMETEXTURE9 *volume);
-
-HRESULT WINAPI D3DXCreateTextureFromFileA(      LPDIRECT3DDEVICE9 device,
-                                                LPCSTR srcfile,
-                                                LPDIRECT3DTEXTURE9 *texture);
-
-HRESULT WINAPI D3DXCreateTextureFromFileW(      LPDIRECT3DDEVICE9 device,
-                                                LPCWSTR srcfile,
-                                                LPDIRECT3DTEXTURE9 *texture);
-#define        D3DXCreateTextureFromFile WINELIB_NAME_AW(D3DXCreateTextureFromFile)
-
-HRESULT WINAPI D3DXCreateCubeTextureFromFileA(  LPDIRECT3DDEVICE9 device,
-                                                LPCSTR srcfile,
-                                                LPDIRECT3DCUBETEXTURE9 *cube);
-
-HRESULT WINAPI D3DXCreateCubeTextureFromFileW(  LPDIRECT3DDEVICE9 device,
-                                                LPCWSTR srcfile,
-                                                LPDIRECT3DCUBETEXTURE9 *cube);
-#define        D3DXCreateCubeTextureFromFile WINELIB_NAME_AW(D3DXCreateCubeTextureFromFile)
-
-HRESULT WINAPI D3DXCreateVolumeTextureFromFileA(LPDIRECT3DDEVICE9 device,
-                                                LPCSTR srcfile,
-                                                LPDIRECT3DVOLUMETEXTURE9 *volume);
-
-HRESULT WINAPI D3DXCreateVolumeTextureFromFileW(LPDIRECT3DDEVICE9 device,
-                                                LPCWSTR srcfile,
-                                                LPDIRECT3DVOLUMETEXTURE9 *volume);
-#define        D3DXCreateVolumeTextureFromFile WINELIB_NAME_AW(D3DXCreateVolumeTextureFromFile)
-
-HRESULT WINAPI D3DXCreateTextureFromResourceA(      LPDIRECT3DDEVICE9 device,
-                                                    HMODULE srcmodule,
-                                                    LPCSTR resource,
-                                                    LPDIRECT3DTEXTURE9 *texture);
-
-HRESULT WINAPI D3DXCreateTextureFromResourceW(      LPDIRECT3DDEVICE9 device,
-                                                    HMODULE srcmodule,
-                                                    LPCWSTR resource,
-                                                    LPDIRECT3DTEXTURE9 *texture);
-#define        D3DXCreateTextureFromResource WINELIB_NAME_AW(D3DXCreateTextureFromResource)
-
-HRESULT WINAPI D3DXCreateCubeTextureFromResourceA(  LPDIRECT3DDEVICE9 device,
-                                                    HMODULE srcmodule,
-                                                    LPCSTR resource,
-                                                    LPDIRECT3DCUBETEXTURE9 *cube);
-HRESULT WINAPI D3DXCreateCubeTextureFromResourceW(  LPDIRECT3DDEVICE9 device,
-                                                    HMODULE srcmodule,
-                                                    LPCWSTR resource,
-                                                    LPDIRECT3DCUBETEXTURE9 *cube);
-#define        D3DXCreateCubeTextureFromResource WINELIB_NAME_AW(D3DXCreateCubeTextureFromResource)
-
-HRESULT WINAPI D3DXCreateVolumeTextureFromResourceA(LPDIRECT3DDEVICE9 device,
-                                                    HMODULE srcmodule,
-                                                    LPCSTR resource,
-                                                    LPDIRECT3DVOLUMETEXTURE9 *volume);
-HRESULT WINAPI D3DXCreateVolumeTextureFromResourceW(LPDIRECT3DDEVICE9 device,
-                                                    HMODULE srcmodule,
-                                                    LPCWSTR resource,
-                                                    LPDIRECT3DVOLUMETEXTURE9 *volume);
-#define        D3DXCreateVolumeTextureFromResource WINELIB_NAME_AW(D3DXCreateVolumeTextureFromResource)
-
-HRESULT WINAPI D3DXCreateTextureFromFileExA(      LPDIRECT3DDEVICE9 device,
-                                                  LPCSTR srcfile,
-                                                  UINT width,
-                                                  UINT height,
-                                                  UINT miplevels,
-                                                  DWORD usage,
-                                                  D3DFORMAT format,
-                                                  D3DPOOL pool,
-                                                  DWORD filter,
-                                                  DWORD mipfilter,
-                                                  D3DCOLOR colorkey,
-                                                  D3DXIMAGE_INFO *srcinfo,
-                                                  PALETTEENTRY *palette,
-                                                  LPDIRECT3DTEXTURE9 *texture);
-
-HRESULT WINAPI D3DXCreateTextureFromFileExW(      LPDIRECT3DDEVICE9 device,
-                                                  LPCWSTR srcfile,
-                                                  UINT width,
-                                                  UINT height,
-                                                  UINT miplevels,
-                                                  DWORD usage,
-                                                  D3DFORMAT format,
-                                                  D3DPOOL pool,
-                                                  DWORD filter,
-                                                  DWORD mipfilter,
-                                                  D3DCOLOR colorkey,
-                                                  D3DXIMAGE_INFO *srcinfo,
-                                                  PALETTEENTRY *palette,
-                                                  LPDIRECT3DTEXTURE9 *texture);
-#define        D3DXCreateTextureFromFileEx WINELIB_NAME_AW(D3DXCreateTextureFromFileEx)
-
-HRESULT WINAPI D3DXCreateCubeTextureFromFileExA(  LPDIRECT3DDEVICE9 device,
-                                                  LPCSTR srcfile,
-                                                  UINT size,
-                                                  UINT miplevels,
-                                                  DWORD usage,
-                                                  D3DFORMAT format,
-                                                  D3DPOOL pool,
-                                                  DWORD filter,
-                                                  DWORD mipfilter,
-                                                  D3DCOLOR colorkey,
-                                                  D3DXIMAGE_INFO *srcinfo,
-                                                  PALETTEENTRY *palette,
-                                                  LPDIRECT3DCUBETEXTURE9 *cube);
-
-HRESULT WINAPI D3DXCreateCubeTextureFromFileExW(  LPDIRECT3DDEVICE9 device,
-                                                  LPCWSTR srcfile,
-                                                  UINT size,
-                                                  UINT miplevels,
-                                                  DWORD usage,
-                                                  D3DFORMAT format,
-                                                  D3DPOOL pool,
-                                                  DWORD filter,
-                                                  DWORD mipfilter,
-                                                  D3DCOLOR colorkey,
-                                                  D3DXIMAGE_INFO *srcinfo,
-                                                  PALETTEENTRY *palette,
-                                                  LPDIRECT3DCUBETEXTURE9 *cube);
-#define        D3DXCreateCubeTextureFromFileEx WINELIB_NAME_AW(D3DXCreateCubeTextureFromFileEx)
-
-HRESULT WINAPI D3DXCreateVolumeTextureFromFileExA(LPDIRECT3DDEVICE9 device,
-                                                  LPCSTR srcfile,
-                                                  UINT width,
-                                                  UINT height,
-                                                  UINT depth,
-                                                  UINT miplevels,
-                                                  DWORD usage,
-                                                  D3DFORMAT format,
-                                                  D3DPOOL pool,
-                                                  DWORD filter,
-                                                  DWORD mipfilter,
-                                                  D3DCOLOR colorkey,
-                                                  D3DXIMAGE_INFO *srcinfo,
-                                                  PALETTEENTRY *palette,
-                                                  LPDIRECT3DVOLUMETEXTURE9 *volume);
-
-HRESULT WINAPI D3DXCreateVolumeTextureFromFileExW(LPDIRECT3DDEVICE9 device,
-                                                  LPCWSTR srcfile,
-                                                  UINT width,
-                                                  UINT height,
-                                                  UINT depth,
-                                                  UINT miplevels,
-                                                  DWORD usage,
-                                                  D3DFORMAT format,
-                                                  D3DPOOL pool,
-                                                  DWORD filter,
-                                                  DWORD mipfilter,
-                                                  D3DCOLOR colorkey,
-                                                  D3DXIMAGE_INFO *srcinfo,
-                                                  PALETTEENTRY *palette,
-                                                  LPDIRECT3DVOLUMETEXTURE9 *volume);
-#define        D3DXCreateVolumeTextureFromFileEx WINELIB_NAME_AW(D3DXCreateVolumeTextureFromFileEx)
-
-HRESULT WINAPI D3DXCreateTextureFromResourceExA(      LPDIRECT3DDEVICE9 device,
-                                                      HMODULE srcmodule,
-                                                      LPCSTR resource,
-                                                      UINT width,
-                                                      UINT height,
-                                                      UINT miplevels,
-                                                      DWORD usage,
-                                                      D3DFORMAT format,
-                                                      D3DPOOL pool,
-                                                      DWORD filter,
-                                                      DWORD mipfilter,
-                                                      D3DCOLOR colorkey,
-                                                      D3DXIMAGE_INFO *srcinfo,
-                                                      PALETTEENTRY *palette,
-                                                      LPDIRECT3DTEXTURE9 *texture);
-
-HRESULT WINAPI D3DXCreateTextureFromResourceExW(      LPDIRECT3DDEVICE9 device,
-                                                      HMODULE srcmodule,
-                                                      LPCWSTR resource,
-                                                      UINT width,
-                                                      UINT height,
-                                                      UINT miplevels,
-                                                      DWORD usage,
-                                                      D3DFORMAT format,
-                                                      D3DPOOL pool,
-                                                      DWORD filter,
-                                                      DWORD mipfilter,
-                                                      D3DCOLOR colorkey,
-                                                      D3DXIMAGE_INFO *srcinfo,
-                                                      PALETTEENTRY *palette,
-                                                      LPDIRECT3DTEXTURE9 *texture);
-#define        D3DXCreateTextureFromResourceEx WINELIB_NAME_AW(D3DXCreateTextureFromResourceEx)
-
-HRESULT WINAPI D3DXCreateCubeTextureFromResourceExA(  LPDIRECT3DDEVICE9 device,
-                                                      HMODULE srcmodule,
-                                                      LPCSTR resource,
-                                                      UINT size,
-                                                      UINT miplevels,
-                                                      DWORD usage,
-                                                      D3DFORMAT format,
-                                                      D3DPOOL pool,
-                                                      DWORD filter,
-                                                      DWORD mipfilter,
-                                                      D3DCOLOR colorkey,
-                                                      D3DXIMAGE_INFO *srcinfo,
-                                                      PALETTEENTRY *palette,
-                                                      LPDIRECT3DCUBETEXTURE9 *cube);
-
-HRESULT WINAPI D3DXCreateCubeTextureFromResourceExW(  LPDIRECT3DDEVICE9 device,
-                                                      HMODULE srcmodule,
-                                                      LPCWSTR resource,
-                                                      UINT size,
-                                                      UINT miplevels,
-                                                      DWORD usage,
-                                                      D3DFORMAT format,
-                                                      D3DPOOL pool,
-                                                      DWORD filter,
-                                                      DWORD mipfilter,
-                                                      D3DCOLOR colorkey,
-                                                      D3DXIMAGE_INFO *srcinfo,
-                                                      PALETTEENTRY *palette,
-                                                      LPDIRECT3DCUBETEXTURE9 *cube);
-#define        D3DXCreateCubeTextureFromResourceEx WINELIB_NAME_AW(D3DXCreateCubeTextureFromResourceEx)
-
-HRESULT WINAPI D3DXCreateVolumeTextureFromResourceExA(LPDIRECT3DDEVICE9 device,
-                                                      HMODULE srcmodule,
-                                                      LPCSTR resource,
-                                                      UINT width,
-                                                      UINT height,
-                                                      UINT depth,
-                                                      UINT miplevels,
-                                                      DWORD usage,
-                                                      D3DFORMAT format,
-                                                      D3DPOOL pool,
-                                                      DWORD filter,
-                                                      DWORD mipfilter,
-                                                      D3DCOLOR colorkey,
-                                                      D3DXIMAGE_INFO *srcinfo,
-                                                      PALETTEENTRY *palette,
-                                                      LPDIRECT3DVOLUMETEXTURE9 *volume);
-
-HRESULT WINAPI D3DXCreateVolumeTextureFromResourceExW(LPDIRECT3DDEVICE9 device,
-                                                      HMODULE srcmodule,
-                                                      LPCWSTR resource,
-                                                      UINT width,
-                                                      UINT height,
-                                                      UINT depth,
-                                                      UINT miplevels,
-                                                      DWORD usage,
-                                                      D3DFORMAT format,
-                                                      D3DPOOL pool,
-                                                      DWORD filter,
-                                                      DWORD mipfilter,
-                                                      D3DCOLOR colorkey,
-                                                      D3DXIMAGE_INFO *srcinfo,
-                                                      PALETTEENTRY *palette,
-                                                      LPDIRECT3DVOLUMETEXTURE9 *volume);
-#define        D3DXCreateVolumeTextureFromResourceEx WINELIB_NAME_AW(D3DXCreateVolumeTextureFromResourceEx)
-
-HRESULT WINAPI D3DXCreateTextureFromFileInMemory(      LPDIRECT3DDEVICE9 device,
-                                                       LPCVOID srcdata,
-                                                       UINT srcdatasize,
-                                                       LPDIRECT3DTEXTURE9* texture);
-
-HRESULT WINAPI D3DXCreateCubeTextureFromFileInMemory(  LPDIRECT3DDEVICE9 device,
-                                                       LPCVOID srcdata,
-                                                       UINT srcdatasize,
-                                                       LPDIRECT3DCUBETEXTURE9* cube);
-
-HRESULT WINAPI D3DXCreateVolumeTextureFromFileInMemory(LPDIRECT3DDEVICE9 device,
-                                                       LPCVOID srcdata,
-                                                       UINT srcdatasize,
-                                                       LPDIRECT3DVOLUMETEXTURE9 *volume);
-
-HRESULT WINAPI D3DXCreateTextureFromFileInMemoryEx(      LPDIRECT3DDEVICE9 device,
-                                                         LPCVOID srcdata,
-                                                         UINT srcdatasize,
-                                                         UINT width,
-                                                         UINT height,
-                                                         UINT miplevels,
-                                                         DWORD usage,
-                                                         D3DFORMAT format,
-                                                         D3DPOOL pool,
-                                                         DWORD filter,
-                                                         DWORD mipfilter,
-                                                         D3DCOLOR colorkey,
-                                                         D3DXIMAGE_INFO *srcinfo,
-                                                         PALETTEENTRY *palette,
-                                                         LPDIRECT3DTEXTURE9 *texture);
-
-HRESULT WINAPI D3DXCreateCubeTextureFromFileInMemoryEx(  LPDIRECT3DDEVICE9 device,
-                                                         LPCVOID srcdata,
-                                                         UINT srcdatasize,
-                                                         UINT size,
-                                                         UINT miplevels,
-                                                         DWORD usage,
-                                                         D3DFORMAT format,
-                                                         D3DPOOL pool,
-                                                         DWORD filter,
-                                                         DWORD mipfilter,
-                                                         D3DCOLOR colorkey,
-                                                         D3DXIMAGE_INFO *srcinfo,
-                                                         PALETTEENTRY *palette,
-                                                         LPDIRECT3DCUBETEXTURE9 *cube);
-
-HRESULT WINAPI D3DXCreateVolumeTextureFromFileInMemoryEx(LPDIRECT3DDEVICE9 device,
-                                                         LPCVOID srcdata,
-                                                         UINT srcdatasize,
-                                                         UINT width,
-                                                         UINT height,
-                                                         UINT depth,
-                                                         UINT miplevels,
-                                                         DWORD usage,
-                                                         D3DFORMAT format,
-                                                         D3DPOOL pool,
-                                                         DWORD filter,
-                                                         DWORD mipfilter,
-                                                         D3DCOLOR colorkey,
-                                                         D3DXIMAGE_INFO *srcinfo,
-                                                         PALETTEENTRY *palette,
-                                                         LPDIRECT3DVOLUMETEXTURE9 *volume);
-
-HRESULT WINAPI D3DXSaveTextureToFileA(LPCSTR destfile,
-                                      D3DXIMAGE_FILEFORMAT destformat,
-                                      LPDIRECT3DBASETEXTURE9 srctexture,
-                                      CONST PALETTEENTRY *srcpalette);
-HRESULT WINAPI D3DXSaveTextureToFileW(LPCWSTR destfile,
-                                      D3DXIMAGE_FILEFORMAT destformat,
-                                      LPDIRECT3DBASETEXTURE9 srctexture,
-                                      CONST PALETTEENTRY *srcpalette);
-#define        D3DXSaveTextureToFile WINELIB_NAME_AW(D3DXSaveTextureToFile)
-
-
-/* Other functions */
-HRESULT WINAPI D3DXFilterTexture(      LPDIRECT3DBASETEXTURE9 texture,
-                                       CONST PALETTEENTRY *palette,
-                                       UINT srclevel,
-                                       DWORD filter);
-#define D3DXFilterCubeTexture D3DXFilterTexture
-#define D3DXFilterVolumeTexture D3DXFilterTexture
-
-HRESULT WINAPI D3DXFillTexture(        LPDIRECT3DTEXTURE9 texture,
-                                       LPD3DXFILL2D function,
-                                       LPVOID data);
-
-HRESULT WINAPI D3DXFillCubeTexture(    LPDIRECT3DCUBETEXTURE9 cube,
-                                       LPD3DXFILL3D function,
-                                       LPVOID data);
-
-HRESULT WINAPI D3DXFillVolumeTexture(  LPDIRECT3DVOLUMETEXTURE9 volume,
-                                       LPD3DXFILL3D function,
-                                       LPVOID data);
-
-HRESULT WINAPI D3DXFillTextureTX(      LPDIRECT3DTEXTURE9 texture,
-                                       CONST DWORD *function,
-                                       CONST D3DXVECTOR4 *constants,
-                                       UINT numconstants);
-
-HRESULT WINAPI D3DXFillCubeTextureTX(  LPDIRECT3DCUBETEXTURE9 cube,
-                                       CONST DWORD *function,
-                                       CONST D3DXVECTOR4 *constants,
-                                       UINT numconstants);
-
-HRESULT WINAPI D3DXFillVolumeTextureTX(LPDIRECT3DVOLUMETEXTURE9 volume,
-                                       CONST DWORD *function,
-                                       CONST D3DXVECTOR4 *constants,
-                                       UINT numconstants);
-
-HRESULT WINAPI D3DXComputeNormalMap(   LPDIRECT3DTEXTURE9 texture,
-                                       LPDIRECT3DTEXTURE9 srctexture,
-                                       CONST PALETTEENTRY *srcpalette,
-                                       DWORD flags,
-                                       DWORD channel,
-                                       FLOAT amplitude);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __WINE_D3DX9TEX_H */
diff --git a/misc/builddeps/win64/dx/include/ddraw.h b/misc/builddeps/win64/dx/include/ddraw.h
deleted file mode 100644 (file)
index feaec69..0000000
+++ /dev/null
@@ -1,4844 +0,0 @@
-/*==========================================================================;
- *
- *  Copyright (C) 1994-1997 Microsoft Corporation.  All Rights Reserved.
- *
- *  File:      ddraw.h
- *  Content:   DirectDraw include file
- *
- ***************************************************************************/
-
-#ifndef __DDRAW_INCLUDED__
-#define __DDRAW_INCLUDED__
-
-/*
- * If you wish an application built against the newest version of DirectDraw
- * to run against an older DirectDraw run time then define DIRECTDRAW_VERSION
- * to be the earlies version of DirectDraw you wish to run against. For,
- * example if you wish an application to run against a DX 3 runtime define
- * DIRECTDRAW_VERSION to be 0x0300.
- */
-#ifndef   DIRECTDRAW_VERSION
-#define   DIRECTDRAW_VERSION 0x0600
-#endif /* DIRECTDRAW_VERSION */
-
-#if defined( _WIN32 )  && !defined( _NO_COM )
-#define COM_NO_WINDOWS_H
-#include <objbase.h>
-#else
-#define IUnknown           void
-#if !defined( NT_BUILD_ENVIRONMENT ) && !defined(WINNT)
-       #define CO_E_NOTINITIALIZED 0x800401F0L
-#endif
-#endif
-
-#define _FACDD 0x876
-#define MAKE_DDHRESULT( code ) MAKE_HRESULT( 1, _FACDD, code )
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-//
-// For compilers that don't support nameless unions, do a
-//
-// #define NONAMELESSUNION
-//
-// before #include <ddraw.h>
-//
-#ifndef DUMMYUNIONNAMEN
-#if defined(__cplusplus) || !defined(NONAMELESSUNION)
-#define DUMMYUNIONNAMEN(n)
-#else
-#define DUMMYUNIONNAMEN(n)      u##n
-#endif
-#endif
-
-#ifndef MAKEFOURCC
-    #define MAKEFOURCC(ch0, ch1, ch2, ch3)                              \
-                ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) |   \
-                ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 ))
-#endif //defined(MAKEFOURCC)
-
-/*
- * FOURCC codes for DX compressed-texture pixel formats
- */
-#define FOURCC_DXT1  (MAKEFOURCC('D','X','T','1'))
-#define FOURCC_DXT2  (MAKEFOURCC('D','X','T','2'))
-#define FOURCC_DXT3  (MAKEFOURCC('D','X','T','3'))
-#define FOURCC_DXT4  (MAKEFOURCC('D','X','T','4'))
-#define FOURCC_DXT5  (MAKEFOURCC('D','X','T','5'))
-
-/*
- * GUIDS used by DirectDraw objects
- */
-#if defined( _WIN32 ) && !defined( _NO_COM )
-
-DEFINE_GUID( CLSID_DirectDraw,                 0xD7B70EE0,0x4340,0x11CF,0xB0,0x63,0x00,0x20,0xAF,0xC2,0xCD,0x35 );
-DEFINE_GUID( CLSID_DirectDrawClipper,           0x593817A0,0x7DB3,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xb9,0x33,0x56 );
-DEFINE_GUID( IID_IDirectDraw,                  0x6C14DB80,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 );
-DEFINE_GUID( IID_IDirectDraw2,                  0xB3A6F3E0,0x2B43,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xB9,0x33,0x56 );
-DEFINE_GUID( IID_IDirectDraw4,                  0x9c59509a,0x39bd,0x11d1,0x8c,0x4a,0x00,0xc0,0x4f,0xd9,0x30,0xc5 );
-DEFINE_GUID( IID_IDirectDrawSurface,           0x6C14DB81,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 );
-DEFINE_GUID( IID_IDirectDrawSurface2,          0x57805885,0x6eec,0x11cf,0x94,0x41,0xa8,0x23,0x03,0xc1,0x0e,0x27 );
-DEFINE_GUID( IID_IDirectDrawSurface3,           0xDA044E00,0x69B2,0x11D0,0xA1,0xD5,0x00,0xAA,0x00,0xB8,0xDF,0xBB );
-DEFINE_GUID( IID_IDirectDrawSurface4,           0x0B2B8630,0xAD35,0x11D0,0x8E,0xA6,0x00,0x60,0x97,0x97,0xEA,0x5B );
-
-DEFINE_GUID( IID_IDirectDrawPalette,           0x6C14DB84,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 );
-DEFINE_GUID( IID_IDirectDrawClipper,           0x6C14DB85,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 );
-DEFINE_GUID( IID_IDirectDrawColorControl,      0x4B9F0EE0,0x0D7E,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8 );
-DEFINE_GUID( IID_IDirectDrawGammaControl,       0x69C11C3E,0xB46B,0x11D1,0xAD,0x7A,0x00,0xC0,0x4F,0xC2,0x9B,0x4E );
-
-#endif
-
-/*============================================================================
- *
- * DirectDraw Structures
- *
- * Various structures used to invoke DirectDraw.
- *
- *==========================================================================*/
-
-struct IDirectDraw;
-struct IDirectDrawSurface;
-struct IDirectDrawPalette;
-struct IDirectDrawClipper;
-
-typedef struct IDirectDraw              FAR *LPDIRECTDRAW;
-typedef struct IDirectDraw2             FAR *LPDIRECTDRAW2;
-typedef struct IDirectDraw4             FAR *LPDIRECTDRAW4;
-typedef struct IDirectDrawSurface       FAR *LPDIRECTDRAWSURFACE;
-typedef struct IDirectDrawSurface2      FAR *LPDIRECTDRAWSURFACE2;
-typedef struct IDirectDrawSurface3      FAR *LPDIRECTDRAWSURFACE3;
-typedef struct IDirectDrawSurface4      FAR *LPDIRECTDRAWSURFACE4;
-
-typedef struct IDirectDrawPalette              FAR *LPDIRECTDRAWPALETTE;
-typedef struct IDirectDrawClipper              FAR *LPDIRECTDRAWCLIPPER;
-typedef struct IDirectDrawColorControl         FAR *LPDIRECTDRAWCOLORCONTROL;
-typedef struct IDirectDrawGammaControl          FAR *LPDIRECTDRAWGAMMACONTROL;
-
-typedef struct _DDFXROP                        FAR *LPDDFXROP;
-typedef struct _DDSURFACEDESC          FAR *LPDDSURFACEDESC;
-typedef struct _DDSURFACEDESC2         FAR *LPDDSURFACEDESC2;
-typedef struct _DDCOLORCONTROL                 FAR *LPDDCOLORCONTROL;
-
-/*
- * API's
- */
-#if (defined (WIN32) || defined( _WIN32 ) ) && !defined( _NO_COM )
-//#if defined( _WIN32 ) && !defined( _NO_ENUM )
-    typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKA)(GUID FAR *, LPSTR, LPSTR, LPVOID);
-    typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKW)(GUID FAR *, LPWSTR, LPWSTR, LPVOID);
-    extern HRESULT WINAPI DirectDrawEnumerateW( LPDDENUMCALLBACKW lpCallback, LPVOID lpContext );
-    extern HRESULT WINAPI DirectDrawEnumerateA( LPDDENUMCALLBACKA lpCallback, LPVOID lpContext );
-    /*
-     * Protect against old SDKs
-     */
-    #ifndef SM_CMONITORS
-        #define HMONITOR    HANDLE
-    #endif
-    typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKEXA)(GUID FAR *, LPSTR, LPSTR, LPVOID, HMONITOR);
-    typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKEXW)(GUID FAR *, LPWSTR, LPWSTR, LPVOID, HMONITOR);
-    extern HRESULT WINAPI DirectDrawEnumerateExW( LPDDENUMCALLBACKEXW lpCallback, LPVOID lpContext, DWORD dwFlags);
-    extern HRESULT WINAPI DirectDrawEnumerateExA( LPDDENUMCALLBACKEXA lpCallback, LPVOID lpContext, DWORD dwFlags);
-    typedef HRESULT (WINAPI * LPDIRECTDRAWENUMERATEEXA)( LPDDENUMCALLBACKEXA lpCallback, LPVOID lpContext, DWORD dwFlags);
-    typedef HRESULT (WINAPI * LPDIRECTDRAWENUMERATEEXW)( LPDDENUMCALLBACKEXW lpCallback, LPVOID lpContext, DWORD dwFlags);
-
-    #ifdef UNICODE
-       typedef LPDDENUMCALLBACKW           LPDDENUMCALLBACK;
-       #define DirectDrawEnumerate         DirectDrawEnumerateW
-       typedef LPDDENUMCALLBACKEXW         LPDDENUMCALLBACKEX;
-       typedef LPDIRECTDRAWENUMERATEEXW        LPDIRECTDRAWENUMERATEEX;
-       #define DirectDrawEnumerateEx       DirectDrawEnumerateExW
-    #else
-       typedef LPDDENUMCALLBACKA           LPDDENUMCALLBACK;
-       #define DirectDrawEnumerate         DirectDrawEnumerateA
-       typedef LPDDENUMCALLBACKEXA         LPDDENUMCALLBACKEX;
-       typedef LPDIRECTDRAWENUMERATEEXA        LPDIRECTDRAWENUMERATEEX;
-        #define DirectDrawEnumerateEx      DirectDrawEnumerateExA
-    #endif
-    extern HRESULT WINAPI DirectDrawCreate( GUID FAR *lpGUID, LPDIRECTDRAW FAR *lplpDD, IUnknown FAR *pUnkOuter );
-    extern HRESULT WINAPI DirectDrawCreateClipper( DWORD dwFlags, LPDIRECTDRAWCLIPPER FAR *lplpDDClipper, IUnknown FAR *pUnkOuter );
-#endif
-/*
- * Flags for DirectDrawEnumerateEx
- * DirectDrawEnumerateEx supercedes DirectDrawEnumerate. You must use GetProcAddress to
- * obtain a function pointer (of type LPDIRECTDRAWENUMERATEEX) to DirectDrawEnumerateEx.
- * By default, only the primary display device is enumerated.
- * DirectDrawEnumerate is equivalent to DirectDrawEnumerate(,,DDENUM_NONDISPLAYDEVICES)
- */
-
-/*
- * This flag causes enumeration of any GDI display devices which are part of
- * the Windows Desktop
- */
-#define DDENUM_ATTACHEDSECONDARYDEVICES     0x00000001L
-
-/*
- * This flag causes enumeration of any GDI display devices which are not
- * part of the Windows Desktop
- */
-#define DDENUM_DETACHEDSECONDARYDEVICES     0x00000002L
-
-/*
- * This flag causes enumeration of non-display devices
- */
-#define DDENUM_NONDISPLAYDEVICES            0x00000004L
-
-
-#define REGSTR_KEY_DDHW_DESCRIPTION    "Description"
-#define REGSTR_KEY_DDHW_DRIVERNAME     "DriverName"
-#define REGSTR_PATH_DDHW               "Hardware\\DirectDrawDrivers"
-
-#define DDCREATE_HARDWAREONLY          0x00000001l
-#define DDCREATE_EMULATIONONLY         0x00000002l
-
-#if defined(WINNT) || !defined(WIN32)
-typedef long HRESULT;
-#endif
-
-//#ifndef WINNT
-typedef HRESULT (FAR PASCAL * LPDDENUMMODESCALLBACK)(LPDDSURFACEDESC, LPVOID);
-typedef HRESULT (FAR PASCAL * LPDDENUMMODESCALLBACK2)(LPDDSURFACEDESC2, LPVOID);
-typedef HRESULT (FAR PASCAL * LPDDENUMSURFACESCALLBACK)(LPDIRECTDRAWSURFACE, LPDDSURFACEDESC, LPVOID);
-typedef HRESULT (FAR PASCAL * LPDDENUMSURFACESCALLBACK2)(LPDIRECTDRAWSURFACE4, LPDDSURFACEDESC2, LPVOID);
-//#endif
-
-/*
- * Generic pixel format with 8-bit RGB and alpha components
- */
-typedef struct _DDRGBA
-{
-    BYTE red;
-    BYTE green;
-    BYTE blue;
-    BYTE alpha;
-} DDRGBA;
-
-typedef DDRGBA FAR *LPDDRGBA;
-
-/*
- * DDCOLORKEY
- */
-typedef struct _DDCOLORKEY
-{
-    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
-} DDCOLORKEY;
-
-typedef DDCOLORKEY FAR* LPDDCOLORKEY;
-
-/*
- * DDBLTFX
- * Used to pass override information to the DIRECTDRAWSURFACE callback Blt.
- */
-typedef struct _DDBLTFX
-{
-    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
-       LPDIRECTDRAWSURFACE lpDDSZBufferDest;   // Surface to use as Z buffer for dest
-    } DUMMYUNIONNAMEN(1);
-    DWORD      dwZSrcConstBitDepth;            // Bit depth used to specify Z constant for source
-    union
-    {
-       DWORD   dwZSrcConst;                    // Constant to use as Z buffer for src
-       LPDIRECTDRAWSURFACE lpDDSZBufferSrc;    // Surface to use as Z buffer for src
-    } DUMMYUNIONNAMEN(2);
-    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
-       LPDIRECTDRAWSURFACE lpDDSAlphaDest;     // Surface to use as Alpha Channel
-    } DUMMYUNIONNAMEN(3);
-    DWORD      dwAlphaSrcConstBitDepth;        // Bit depth used to specify alpha constant for source
-    union
-    {
-       DWORD   dwAlphaSrcConst;                // Constant to use as Alpha Channel
-       LPDIRECTDRAWSURFACE lpDDSAlphaSrc;      // Surface to use as Alpha Channel
-    } DUMMYUNIONNAMEN(4);
-    union
-    {
-       DWORD   dwFillColor;                    // color in RGB or Palettized
-       DWORD   dwFillDepth;                    // depth value for z-buffer
-       DWORD   dwFillPixel;                    // pixel value for RGBA or RGBZ
-       LPDIRECTDRAWSURFACE lpDDSPattern;       // Surface to use as pattern
-    } DUMMYUNIONNAMEN(5);
-    DDCOLORKEY ddckDestColorkey;               // DestColorkey override
-    DDCOLORKEY ddckSrcColorkey;                // SrcColorkey override
-} DDBLTFX;
-
-typedef DDBLTFX FAR* LPDDBLTFX;
-
-
-/*
- * DDSCAPS
- */
-typedef struct _DDSCAPS
-{
-    DWORD      dwCaps;         // capabilities of surface wanted
-} DDSCAPS;
-
-typedef DDSCAPS FAR* LPDDSCAPS;
-
-
-/*
- * DDOSCAPS
- */
-typedef struct _DDOSCAPS
-{
-    DWORD      dwCaps;         // capabilities of surface wanted
-} DDOSCAPS;
-
-typedef DDOSCAPS FAR* LPDDOSCAPS;
-
-/*
- * This structure is used internally by DirectDraw.
- */
-typedef struct _DDSCAPSEX
-{
-    DWORD       dwCaps2;
-    DWORD       dwCaps3;
-    DWORD       dwCaps4;
-} DDSCAPSEX, FAR * LPDDSCAPSEX;
-
-/*
- * DDSCAPS2
- */
-typedef struct _DDSCAPS2
-{
-    DWORD      dwCaps;         // capabilities of surface wanted
-    DWORD       dwCaps2;
-    DWORD       dwCaps3;
-    DWORD       dwCaps4;
-} DDSCAPS2;
-
-typedef DDSCAPS2 FAR* LPDDSCAPS2;
-
-/*
- * DDCAPS
- */
-#define DD_ROP_SPACE           (256/32)        // space required to store ROP array
-
-/*
- * This structure is the DDCAPS structure as it was in version 2 and 3 of Direct X.
- * It is present for back compatability.
- */
-typedef struct _DDCAPS_DX3
-{
-    DWORD      dwSize;                 // size of the DDDRIVERCAPS structure
-    DWORD      dwCaps;                 // driver specific capabilities
-    DWORD      dwCaps2;                // more driver specific capabilites
-    DWORD      dwCKeyCaps;             // color key capabilities of the surface
-    DWORD      dwFXCaps;               // driver specific stretching and effects capabilites
-    DWORD      dwFXAlphaCaps;          // alpha driver specific capabilities
-    DWORD      dwPalCaps;              // palette capabilities
-    DWORD      dwSVCaps;               // stereo vision capabilities
-    DWORD      dwAlphaBltConstBitDepths;       // DDBD_2,4,8
-    DWORD      dwAlphaBltPixelBitDepths;       // DDBD_1,2,4,8
-    DWORD      dwAlphaBltSurfaceBitDepths;     // DDBD_1,2,4,8
-    DWORD      dwAlphaOverlayConstBitDepths;   // DDBD_2,4,8
-    DWORD      dwAlphaOverlayPixelBitDepths;   // DDBD_1,2,4,8
-    DWORD      dwAlphaOverlaySurfaceBitDepths; // DDBD_1,2,4,8
-    DWORD      dwZBufferBitDepths;             // DDBD_8,16,24,32
-    DWORD      dwVidMemTotal;          // total amount of video memory
-    DWORD      dwVidMemFree;           // amount of free video memory
-    DWORD      dwMaxVisibleOverlays;   // maximum number of visible overlays
-    DWORD      dwCurrVisibleOverlays;  // current number of visible overlays
-    DWORD      dwNumFourCCCodes;       // number of four cc codes
-    DWORD      dwAlignBoundarySrc;     // source rectangle alignment
-    DWORD      dwAlignSizeSrc;         // source rectangle byte size
-    DWORD      dwAlignBoundaryDest;    // dest rectangle alignment
-    DWORD      dwAlignSizeDest;        // dest rectangle byte size
-    DWORD      dwAlignStrideAlign;     // stride alignment
-    DWORD      dwRops[DD_ROP_SPACE];   // ROPS supported
-    DDSCAPS    ddsCaps;                // DDSCAPS structure has all the general capabilities
-    DWORD      dwMinOverlayStretch;    // minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-    DWORD      dwMaxOverlayStretch;    // maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-    DWORD      dwMinLiveVideoStretch;  // minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-    DWORD      dwMaxLiveVideoStretch;  // maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-    DWORD      dwMinHwCodecStretch;    // minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-    DWORD      dwMaxHwCodecStretch;    // maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-    DWORD      dwReserved1;            // reserved
-    DWORD      dwReserved2;            // reserved
-    DWORD      dwReserved3;            // reserved
-    DWORD      dwSVBCaps;              // driver specific capabilities for System->Vmem blts
-    DWORD      dwSVBCKeyCaps;          // driver color key capabilities for System->Vmem blts
-    DWORD      dwSVBFXCaps;            // driver FX capabilities for System->Vmem blts
-    DWORD      dwSVBRops[DD_ROP_SPACE];// ROPS supported for System->Vmem blts
-    DWORD      dwVSBCaps;              // driver specific capabilities for Vmem->System blts
-    DWORD      dwVSBCKeyCaps;          // driver color key capabilities for Vmem->System blts
-    DWORD      dwVSBFXCaps;            // driver FX capabilities for Vmem->System blts
-    DWORD      dwVSBRops[DD_ROP_SPACE];// ROPS supported for Vmem->System blts
-    DWORD      dwSSBCaps;              // driver specific capabilities for System->System blts
-    DWORD      dwSSBCKeyCaps;          // driver color key capabilities for System->System blts
-    DWORD      dwSSBFXCaps;            // driver FX capabilities for System->System blts
-    DWORD      dwSSBRops[DD_ROP_SPACE];// ROPS supported for System->System blts
-    DWORD      dwReserved4;            // reserved
-    DWORD      dwReserved5;            // reserved
-    DWORD      dwReserved6;            // reserved
-} DDCAPS_DX3;
-typedef DDCAPS_DX3 FAR* LPDDCAPS_DX3;
-
-/*
- * This structure is the DDCAPS structure as it was in version 5 of Direct X.
- * It is present for back compatability.
- */
-typedef struct _DDCAPS_DX5
-{
-/*  0*/ DWORD  dwSize;                 // size of the DDDRIVERCAPS structure
-/*  4*/ DWORD  dwCaps;                 // driver specific capabilities
-/*  8*/ DWORD  dwCaps2;                // more driver specific capabilites
-/*  c*/ DWORD  dwCKeyCaps;             // color key capabilities of the surface
-/* 10*/ DWORD  dwFXCaps;               // driver specific stretching and effects capabilites
-/* 14*/ DWORD  dwFXAlphaCaps;          // alpha driver specific capabilities
-/* 18*/ DWORD  dwPalCaps;              // palette capabilities
-/* 1c*/ DWORD  dwSVCaps;               // stereo vision capabilities
-/* 20*/ DWORD  dwAlphaBltConstBitDepths;       // DDBD_2,4,8
-/* 24*/ DWORD  dwAlphaBltPixelBitDepths;       // DDBD_1,2,4,8
-/* 28*/ DWORD  dwAlphaBltSurfaceBitDepths;     // DDBD_1,2,4,8
-/* 2c*/ DWORD  dwAlphaOverlayConstBitDepths;   // DDBD_2,4,8
-/* 30*/ DWORD  dwAlphaOverlayPixelBitDepths;   // DDBD_1,2,4,8
-/* 34*/ DWORD  dwAlphaOverlaySurfaceBitDepths; // DDBD_1,2,4,8
-/* 38*/ DWORD  dwZBufferBitDepths;             // DDBD_8,16,24,32
-/* 3c*/ DWORD  dwVidMemTotal;          // total amount of video memory
-/* 40*/ DWORD  dwVidMemFree;           // amount of free video memory
-/* 44*/ DWORD  dwMaxVisibleOverlays;   // maximum number of visible overlays
-/* 48*/ DWORD  dwCurrVisibleOverlays;  // current number of visible overlays
-/* 4c*/ DWORD  dwNumFourCCCodes;       // number of four cc codes
-/* 50*/ DWORD  dwAlignBoundarySrc;     // source rectangle alignment
-/* 54*/ DWORD  dwAlignSizeSrc;         // source rectangle byte size
-/* 58*/ DWORD  dwAlignBoundaryDest;    // dest rectangle alignment
-/* 5c*/ DWORD  dwAlignSizeDest;        // dest rectangle byte size
-/* 60*/ DWORD  dwAlignStrideAlign;     // stride alignment
-/* 64*/ DWORD  dwRops[DD_ROP_SPACE];   // ROPS supported
-/* 84*/ DDSCAPS        ddsCaps;                // DDSCAPS structure has all the general capabilities
-/* 88*/ DWORD  dwMinOverlayStretch;    // minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-/* 8c*/ DWORD  dwMaxOverlayStretch;    // maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-/* 90*/ DWORD  dwMinLiveVideoStretch;  // minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-/* 94*/ DWORD  dwMaxLiveVideoStretch;  // maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-/* 98*/ DWORD  dwMinHwCodecStretch;    // minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-/* 9c*/ DWORD  dwMaxHwCodecStretch;    // maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-/* a0*/ DWORD  dwReserved1;            // reserved
-/* a4*/ DWORD  dwReserved2;            // reserved
-/* a8*/ DWORD  dwReserved3;            // reserved
-/* ac*/ DWORD  dwSVBCaps;              // driver specific capabilities for System->Vmem blts
-/* b0*/ DWORD  dwSVBCKeyCaps;          // driver color key capabilities for System->Vmem blts
-/* b4*/ DWORD  dwSVBFXCaps;            // driver FX capabilities for System->Vmem blts
-/* b8*/ DWORD  dwSVBRops[DD_ROP_SPACE];// ROPS supported for System->Vmem blts
-/* d8*/ DWORD  dwVSBCaps;              // driver specific capabilities for Vmem->System blts
-/* dc*/ DWORD  dwVSBCKeyCaps;          // driver color key capabilities for Vmem->System blts
-/* e0*/ DWORD  dwVSBFXCaps;            // driver FX capabilities for Vmem->System blts
-/* e4*/ DWORD  dwVSBRops[DD_ROP_SPACE];// ROPS supported for Vmem->System blts
-/*104*/ DWORD  dwSSBCaps;              // driver specific capabilities for System->System blts
-/*108*/ DWORD  dwSSBCKeyCaps;          // driver color key capabilities for System->System blts
-/*10c*/ DWORD  dwSSBFXCaps;            // driver FX capabilities for System->System blts
-/*110*/ DWORD  dwSSBRops[DD_ROP_SPACE];// ROPS supported for System->System blts
-// Members added for DX5:
-/*130*/ DWORD  dwMaxVideoPorts;        // maximum number of usable video ports
-/*134*/ DWORD  dwCurrVideoPorts;       // current number of video ports used
-/*138*/ DWORD  dwSVBCaps2;             // more driver specific capabilities for System->Vmem blts
-/*13c*/ DWORD  dwNLVBCaps;               // driver specific capabilities for non-local->local vidmem blts
-/*140*/ DWORD  dwNLVBCaps2;              // more driver specific capabilities non-local->local vidmem blts
-/*144*/ DWORD  dwNLVBCKeyCaps;           // driver color key capabilities for non-local->local vidmem blts
-/*148*/ DWORD  dwNLVBFXCaps;             // driver FX capabilities for non-local->local blts
-/*14c*/ DWORD  dwNLVBRops[DD_ROP_SPACE]; // ROPS supported for non-local->local blts
-} DDCAPS_DX5;
-typedef DDCAPS_DX5 FAR* LPDDCAPS_DX5;
-
-typedef struct _DDCAPS_DX6
-{
-/*  0*/ DWORD  dwSize;                 // size of the DDDRIVERCAPS structure
-/*  4*/ DWORD  dwCaps;                 // driver specific capabilities
-/*  8*/ DWORD  dwCaps2;                // more driver specific capabilites
-/*  c*/ DWORD  dwCKeyCaps;             // color key capabilities of the surface
-/* 10*/ DWORD  dwFXCaps;               // driver specific stretching and effects capabilites
-/* 14*/ DWORD  dwFXAlphaCaps;          // alpha caps
-/* 18*/ DWORD  dwPalCaps;              // palette capabilities
-/* 1c*/ DWORD  dwSVCaps;               // stereo vision capabilities
-/* 20*/ DWORD  dwAlphaBltConstBitDepths;       // DDBD_2,4,8
-/* 24*/ DWORD  dwAlphaBltPixelBitDepths;       // DDBD_1,2,4,8
-/* 28*/ DWORD  dwAlphaBltSurfaceBitDepths;     // DDBD_1,2,4,8
-/* 2c*/ DWORD  dwAlphaOverlayConstBitDepths;   // DDBD_2,4,8
-/* 30*/ DWORD  dwAlphaOverlayPixelBitDepths;   // DDBD_1,2,4,8
-/* 34*/ DWORD  dwAlphaOverlaySurfaceBitDepths; // DDBD_1,2,4,8
-/* 38*/ DWORD  dwZBufferBitDepths;             // DDBD_8,16,24,32
-/* 3c*/ DWORD  dwVidMemTotal;          // total amount of video memory
-/* 40*/ DWORD  dwVidMemFree;           // amount of free video memory
-/* 44*/ DWORD  dwMaxVisibleOverlays;   // maximum number of visible overlays
-/* 48*/ DWORD  dwCurrVisibleOverlays;  // current number of visible overlays
-/* 4c*/ DWORD  dwNumFourCCCodes;       // number of four cc codes
-/* 50*/ DWORD  dwAlignBoundarySrc;     // source rectangle alignment
-/* 54*/ DWORD  dwAlignSizeSrc;         // source rectangle byte size
-/* 58*/ DWORD  dwAlignBoundaryDest;    // dest rectangle alignment
-/* 5c*/ DWORD  dwAlignSizeDest;        // dest rectangle byte size
-/* 60*/ DWORD  dwAlignStrideAlign;     // stride alignment
-/* 64*/ DWORD  dwRops[DD_ROP_SPACE];   // ROPS supported
-/* 84*/ DDSCAPS        ddsOldCaps;             // Was DDSCAPS  ddsCaps. ddsCaps is of type DDSCAPS2 for DX6
-/* 88*/ DWORD  dwMinOverlayStretch;    // minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-/* 8c*/ DWORD  dwMaxOverlayStretch;    // maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-/* 90*/ DWORD  dwMinLiveVideoStretch;  // minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-/* 94*/ DWORD  dwMaxLiveVideoStretch;  // maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-/* 98*/ DWORD  dwMinHwCodecStretch;    // minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-/* 9c*/ DWORD  dwMaxHwCodecStretch;    // maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
-/* a0*/ DWORD  dwReserved1;            // reserved
-/* a4*/ DWORD  dwReserved2;            // reserved
-/* a8*/ DWORD  dwReserved3;            // reserved
-/* ac*/ DWORD  dwSVBCaps;              // driver specific capabilities for System->Vmem blts
-/* b0*/ DWORD  dwSVBCKeyCaps;          // driver color key capabilities for System->Vmem blts
-/* b4*/ DWORD  dwSVBFXCaps;            // driver FX capabilities for System->Vmem blts
-/* b8*/ DWORD  dwSVBRops[DD_ROP_SPACE];// ROPS supported for System->Vmem blts
-/* d8*/ DWORD  dwVSBCaps;              // driver specific capabilities for Vmem->System blts
-/* dc*/ DWORD  dwVSBCKeyCaps;          // driver color key capabilities for Vmem->System blts
-/* e0*/ DWORD  dwVSBFXCaps;            // driver FX capabilities for Vmem->System blts
-/* e4*/ DWORD  dwVSBRops[DD_ROP_SPACE];// ROPS supported for Vmem->System blts
-/*104*/ DWORD  dwSSBCaps;              // driver specific capabilities for System->System blts
-/*108*/ DWORD  dwSSBCKeyCaps;          // driver color key capabilities for System->System blts
-/*10c*/ DWORD  dwSSBFXCaps;            // driver FX capabilities for System->System blts
-/*110*/ DWORD  dwSSBRops[DD_ROP_SPACE];// ROPS supported for System->System blts
-/*130*/ DWORD  dwMaxVideoPorts;        // maximum number of usable video ports
-/*134*/ DWORD  dwCurrVideoPorts;       // current number of video ports used
-/*138*/ DWORD  dwSVBCaps2;             // more driver specific capabilities for System->Vmem blts
-/*13c*/ DWORD  dwNLVBCaps;               // driver specific capabilities for non-local->local vidmem blts
-/*140*/ DWORD  dwNLVBCaps2;              // more driver specific capabilities non-local->local vidmem blts
-/*144*/ DWORD  dwNLVBCKeyCaps;           // driver color key capabilities for non-local->local vidmem blts
-/*148*/ DWORD  dwNLVBFXCaps;             // driver FX capabilities for non-local->local blts
-/*14c*/ DWORD  dwNLVBRops[DD_ROP_SPACE]; // ROPS supported for non-local->local blts
-// Members added for DX6 release
-/*16c*/ DDSCAPS2 ddsCaps;               // Surface Caps
-} DDCAPS_DX6;
-typedef DDCAPS_DX6 FAR* LPDDCAPS_DX6;
-
-
-#if DIRECTDRAW_VERSION <= 0x300
-    typedef DDCAPS_DX3 DDCAPS;
-#elif DIRECTDRAW_VERSION <= 0x500
-    typedef DDCAPS_DX5 DDCAPS;
-#else
-    typedef DDCAPS_DX6 DDCAPS;
-#endif
-
-typedef DDCAPS FAR* LPDDCAPS;
-
-
-
-/*
- * DDPIXELFORMAT
- */
-typedef struct _DDPIXELFORMAT
-{
-    DWORD      dwSize;                 // size of structure
-    DWORD      dwFlags;                // pixel format flags
-    DWORD      dwFourCC;               // (FOURCC code)
-    union
-    {
-       DWORD   dwRGBBitCount;          // how many bits per pixel
-       DWORD   dwYUVBitCount;          // how many bits per pixel
-       DWORD   dwZBufferBitDepth;      // how many total bits/pixel in z buffer (including any stencil bits)
-       DWORD   dwAlphaBitDepth;        // how many bits for alpha channels
-       DWORD   dwLuminanceBitCount;    // how many bits per pixel
-        DWORD   dwBumpBitCount;         // how many bits per "buxel", total
-    } DUMMYUNIONNAMEN(1);
-    union
-    {
-       DWORD   dwRBitMask;             // mask for red bit
-       DWORD   dwYBitMask;             // mask for Y bits
-       DWORD   dwStencilBitDepth;      // how many stencil bits (note: dwZBufferBitDepth-dwStencilBitDepth is total Z-only bits)
-       DWORD   dwLuminanceBitMask;     // mask for luminance bits
-        DWORD   dwBumpDuBitMask;        // mask for bump map U delta bits
-    } DUMMYUNIONNAMEN(2);
-    union
-    {
-       DWORD   dwGBitMask;             // mask for green bits
-       DWORD   dwUBitMask;             // mask for U bits
-       DWORD   dwZBitMask;             // mask for Z bits
-        DWORD   dwBumpDvBitMask;        // mask for bump map V delta bits
-    } DUMMYUNIONNAMEN(3);
-    union
-    {
-       DWORD   dwBBitMask;             // mask for blue bits
-       DWORD   dwVBitMask;             // mask for V bits
-       DWORD   dwStencilBitMask;       // mask for stencil bits
-        DWORD   dwBumpLuminanceBitMask; // mask for luminance in bump map
-    } DUMMYUNIONNAMEN(4);
-    union
-    {
-       DWORD   dwRGBAlphaBitMask;      // mask for alpha channel
-       DWORD   dwYUVAlphaBitMask;      // mask for alpha channel
-        DWORD   dwLuminanceAlphaBitMask;// mask for alpha channel
-       DWORD   dwRGBZBitMask;          // mask for Z channel
-       DWORD   dwYUVZBitMask;          // mask for Z channel
-    } DUMMYUNIONNAMEN(5);
-} DDPIXELFORMAT;
-
-typedef DDPIXELFORMAT FAR* LPDDPIXELFORMAT;
-
-/*
- * DDOVERLAYFX
- */
-typedef struct _DDOVERLAYFX
-{
-    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
-       LPDIRECTDRAWSURFACE lpDDSAlphaDest;     // Surface to use as alpha channel for dest
-    } DUMMYUNIONNAMEN(1);
-    DWORD      dwAlphaSrcConstBitDepth;        // Bit depth used to specify alpha constant for source
-    union
-    {
-       DWORD   dwAlphaSrcConst;                // Constant to use as alpha channel for src
-       LPDIRECTDRAWSURFACE lpDDSAlphaSrc;      // Surface to use as alpha channel for src
-    } DUMMYUNIONNAMEN(2);
-    DDCOLORKEY dckDestColorkey;                // DestColorkey override
-    DDCOLORKEY dckSrcColorkey;                 // DestColorkey override
-    DWORD       dwDDFX;                         // Overlay FX
-    DWORD      dwFlags;                        // flags
-} DDOVERLAYFX;
-
-typedef DDOVERLAYFX FAR *LPDDOVERLAYFX;
-
-
-/*
- * DDBLTBATCH: BltBatch entry structure
- */
-typedef struct _DDBLTBATCH
-{
-    LPRECT             lprDest;
-    LPDIRECTDRAWSURFACE        lpDDSSrc;
-    LPRECT             lprSrc;
-    DWORD              dwFlags;
-    LPDDBLTFX          lpDDBltFx;
-} DDBLTBATCH;
-
-typedef DDBLTBATCH FAR * LPDDBLTBATCH;
-
-
-/*
- * DDGAMMARAMP
- */
-typedef struct _DDGAMMARAMP
-{
-    WORD                red[256];
-    WORD                green[256];
-    WORD                blue[256];
-} DDGAMMARAMP;
-typedef DDGAMMARAMP FAR * LPDDGAMMARAMP;
-
-/*
- *  This is the structure within which DirectDraw returns data about the current graphics driver and chipset
- */
-
-#define MAX_DDDEVICEID_STRING          512
-
-typedef struct tagDDDEVICEIDENTIFIER
-{
-    /*
-     * These elements are for presentation to the user only. They should not be used to identify particular
-     * drivers, since this is unreliable and many different strings may be associated with the same
-     * device, and the same driver from different vendors.
-     */
-    char    szDriver[MAX_DDDEVICEID_STRING];
-    char    szDescription[MAX_DDDEVICEID_STRING];
-
-    /*
-     * This element is the version of the DirectDraw/3D driver. It is legal to do <, > comparisons
-     * on the whole 64 bits. Caution should be exercised if you use this element to identify problematic
-     * drivers. It is recommended that guidDeviceIdentifier is used for this purpose.
-     *
-     * This version has the form:
-     *  wProduct = HIWORD(liDriverVersion.HighPart)
-     *  wVersion = LOWORD(liDriverVersion.HighPart)
-     *  wSubVersion = HIWORD(liDriverVersion.LowPart)
-     *  wBuild = LOWORD(liDriverVersion.LowPart)
-     */
-#ifdef _WIN32
-    LARGE_INTEGER liDriverVersion;      /* Defined for applications and other 32 bit components */
-#else
-    DWORD   dwDriverVersionLowPart;     /* Defined for 16 bit driver components */
-    DWORD   dwDriverVersionHighPart;
-#endif
-
-
-    /*
-     * These elements can be used to identify particular chipsets. Use with extreme caution. 
-     *   dwVendorId     Identifies the manufacturer. May be zero if unknown.
-     *   dwDeviceId     Identifies the type of chipset. May be zero if unknown.
-     *   dwSubSysId     Identifies the subsystem, typically this means the particular board. May be zero if unknown.
-     *   dwRevision     Identifies the revision level of the chipset. May be zero if unknown.
-     */
-    DWORD   dwVendorId;
-    DWORD   dwDeviceId;
-    DWORD   dwSubSysId;
-    DWORD   dwRevision;
-
-    /*
-     * This element can be used to check changes in driver/chipset. This GUID is a unique identifier for the
-     * driver/chipset pair. Use this element if you wish to track changes to the driver/chipset in order to
-     * reprofile the graphics subsystem.
-     * This element can also be used to identify particular problematic drivers.
-     */
-    GUID    guidDeviceIdentifier;
-} DDDEVICEIDENTIFIER, * LPDDDEVICEIDENTIFIER;
-
-/*
- * Flags for the IDirectDraw4::GetDeviceIdentifier method
- */
-
-/*
- * This flag causes GetDeviceIdentifier to return information about the host (typically 2D) adapter in a system equipped
- * with a stacked secondary 3D adapter. Such an adapter appears to the application as if it were part of the
- * host adapter, but is typically physcially located on a separate card. The stacked secondary's information is
- * returned when GetDeviceIdentifier's dwFlags field is zero, since this most accurately reflects the qualities
- * of the DirectDraw object involved.
- */
-#define DDGDI_GETHOSTIDENTIFIER         0x00000001L
-
-
-
-/*
- * callbacks
- */
-typedef DWORD  (FAR PASCAL *LPCLIPPERCALLBACK)(LPDIRECTDRAWCLIPPER lpDDClipper, HWND hWnd, DWORD code, LPVOID lpContext );
-#ifdef STREAMING
-typedef DWORD  (FAR PASCAL *LPSURFACESTREAMINGCALLBACK)(DWORD);
-#endif
-
-
-/*
- * INTERACES FOLLOW:
- *     IDirectDraw
- *     IDirectDrawClipper
- *     IDirectDrawPalette
- *     IDirectDrawSurface
- */
-
-/*
- * IDirectDraw
- */
-#if defined( _WIN32 ) && !defined( _NO_COM )
-#undef INTERFACE
-#define INTERFACE IDirectDraw
-DECLARE_INTERFACE_( IDirectDraw, IUnknown )
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    /*** IDirectDraw methods ***/
-    STDMETHOD(Compact)(THIS) PURE;
-    STDMETHOD(CreateClipper)(THIS_ DWORD, LPDIRECTDRAWCLIPPER FAR*, IUnknown FAR * ) PURE;
-    STDMETHOD(CreatePalette)(THIS_ DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE FAR*, IUnknown FAR * ) PURE;
-    STDMETHOD(CreateSurface)(THIS_  LPDDSURFACEDESC, LPDIRECTDRAWSURFACE FAR *, IUnknown FAR *) PURE;
-    STDMETHOD(DuplicateSurface)( THIS_ LPDIRECTDRAWSURFACE, LPDIRECTDRAWSURFACE FAR * ) PURE;
-    STDMETHOD(EnumDisplayModes)( THIS_ DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK ) PURE;
-    STDMETHOD(EnumSurfaces)(THIS_ DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK ) PURE;
-    STDMETHOD(FlipToGDISurface)(THIS) PURE;
-    STDMETHOD(GetCaps)( THIS_ LPDDCAPS, LPDDCAPS) PURE;
-    STDMETHOD(GetDisplayMode)( THIS_ LPDDSURFACEDESC) PURE;
-    STDMETHOD(GetFourCCCodes)(THIS_  LPDWORD, LPDWORD ) PURE;
-    STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE FAR *) PURE;
-    STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD) PURE;
-    STDMETHOD(GetScanLine)(THIS_ LPDWORD) PURE;
-    STDMETHOD(GetVerticalBlankStatus)(THIS_ LPBOOL ) PURE;
-    STDMETHOD(Initialize)(THIS_ GUID FAR *) PURE;
-    STDMETHOD(RestoreDisplayMode)(THIS) PURE;
-    STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD) PURE;
-    STDMETHOD(SetDisplayMode)(THIS_ DWORD, DWORD,DWORD) PURE;
-    STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD, HANDLE ) PURE;
-};
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectDraw_QueryInterface(p, a, b)         (p)->lpVtbl->QueryInterface(p, a, b)
-#define IDirectDraw_AddRef(p)                       (p)->lpVtbl->AddRef(p)
-#define IDirectDraw_Release(p)                      (p)->lpVtbl->Release(p)
-#define IDirectDraw_Compact(p)                      (p)->lpVtbl->Compact(p)
-#define IDirectDraw_CreateClipper(p, a, b, c)       (p)->lpVtbl->CreateClipper(p, a, b, c)
-#define IDirectDraw_CreatePalette(p, a, b, c, d)    (p)->lpVtbl->CreatePalette(p, a, b, c, d)
-#define IDirectDraw_CreateSurface(p, a, b, c)       (p)->lpVtbl->CreateSurface(p, a, b, c)
-#define IDirectDraw_DuplicateSurface(p, a, b)       (p)->lpVtbl->DuplicateSurface(p, a, b)
-#define IDirectDraw_EnumDisplayModes(p, a, b, c, d) (p)->lpVtbl->EnumDisplayModes(p, a, b, c, d)
-#define IDirectDraw_EnumSurfaces(p, a, b, c, d)     (p)->lpVtbl->EnumSurfaces(p, a, b, c, d)
-#define IDirectDraw_FlipToGDISurface(p)             (p)->lpVtbl->FlipToGDISurface(p)
-#define IDirectDraw_GetCaps(p, a, b)                (p)->lpVtbl->GetCaps(p, a, b)
-#define IDirectDraw_GetDisplayMode(p, a)            (p)->lpVtbl->GetDisplayMode(p, a)
-#define IDirectDraw_GetFourCCCodes(p, a, b)         (p)->lpVtbl->GetFourCCCodes(p, a, b)
-#define IDirectDraw_GetGDISurface(p, a)             (p)->lpVtbl->GetGDISurface(p, a)
-#define IDirectDraw_GetMonitorFrequency(p, a)       (p)->lpVtbl->GetMonitorFrequency(p, a)
-#define IDirectDraw_GetScanLine(p, a)               (p)->lpVtbl->GetScanLine(p, a)
-#define IDirectDraw_GetVerticalBlankStatus(p, a)    (p)->lpVtbl->GetVerticalBlankStatus(p, a)
-#define IDirectDraw_Initialize(p, a)                (p)->lpVtbl->Initialize(p, a)
-#define IDirectDraw_RestoreDisplayMode(p)           (p)->lpVtbl->RestoreDisplayMode(p)
-#define IDirectDraw_SetCooperativeLevel(p, a, b)    (p)->lpVtbl->SetCooperativeLevel(p, a, b)
-#define IDirectDraw_SetDisplayMode(p, a, b, c)      (p)->lpVtbl->SetDisplayMode(p, a, b, c)
-#define IDirectDraw_WaitForVerticalBlank(p, a, b)   (p)->lpVtbl->WaitForVerticalBlank(p, a, b)
-#else
-#define IDirectDraw_QueryInterface(p, a, b)         (p)->QueryInterface(a, b)
-#define IDirectDraw_AddRef(p)                       (p)->AddRef()
-#define IDirectDraw_Release(p)                      (p)->Release()
-#define IDirectDraw_Compact(p)                      (p)->Compact()
-#define IDirectDraw_CreateClipper(p, a, b, c)       (p)->CreateClipper(a, b, c)
-#define IDirectDraw_CreatePalette(p, a, b, c, d)    (p)->CreatePalette(a, b, c, d)
-#define IDirectDraw_CreateSurface(p, a, b, c)       (p)->CreateSurface(a, b, c)
-#define IDirectDraw_DuplicateSurface(p, a, b)       (p)->DuplicateSurface(a, b)
-#define IDirectDraw_EnumDisplayModes(p, a, b, c, d) (p)->EnumDisplayModes(a, b, c, d)
-#define IDirectDraw_EnumSurfaces(p, a, b, c, d)     (p)->EnumSurfaces(a, b, c, d)
-#define IDirectDraw_FlipToGDISurface(p)             (p)->FlipToGDISurface()
-#define IDirectDraw_GetCaps(p, a, b)                (p)->GetCaps(a, b)
-#define IDirectDraw_GetDisplayMode(p, a)            (p)->GetDisplayMode(a)
-#define IDirectDraw_GetFourCCCodes(p, a, b)         (p)->GetFourCCCodes(a, b)
-#define IDirectDraw_GetGDISurface(p, a)             (p)->GetGDISurface(a)
-#define IDirectDraw_GetMonitorFrequency(p, a)       (p)->GetMonitorFrequency(a)
-#define IDirectDraw_GetScanLine(p, a)               (p)->GetScanLine(a)
-#define IDirectDraw_GetVerticalBlankStatus(p, a)    (p)->GetVerticalBlankStatus(a)
-#define IDirectDraw_Initialize(p, a)                (p)->Initialize(a)
-#define IDirectDraw_RestoreDisplayMode(p)           (p)->RestoreDisplayMode()
-#define IDirectDraw_SetCooperativeLevel(p, a, b)    (p)->SetCooperativeLevel(a, b)
-#define IDirectDraw_SetDisplayMode(p, a, b, c)      (p)->SetDisplayMode(a, b, c)
-#define IDirectDraw_WaitForVerticalBlank(p, a, b)   (p)->WaitForVerticalBlank(a, b)
-#endif
-
-#endif
-
-#if defined( _WIN32 ) && !defined( _NO_COM )
-#undef INTERFACE
-#define INTERFACE IDirectDraw2
-DECLARE_INTERFACE_( IDirectDraw2, IUnknown )
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    /*** IDirectDraw methods ***/
-    STDMETHOD(Compact)(THIS) PURE;
-    STDMETHOD(CreateClipper)(THIS_ DWORD, LPDIRECTDRAWCLIPPER FAR*, IUnknown FAR * ) PURE;
-    STDMETHOD(CreatePalette)(THIS_ DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE FAR*, IUnknown FAR * ) PURE;
-    STDMETHOD(CreateSurface)(THIS_  LPDDSURFACEDESC, LPDIRECTDRAWSURFACE FAR *, IUnknown FAR *) PURE;
-    STDMETHOD(DuplicateSurface)( THIS_ LPDIRECTDRAWSURFACE, LPDIRECTDRAWSURFACE FAR * ) PURE;
-    STDMETHOD(EnumDisplayModes)( THIS_ DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK ) PURE;
-    STDMETHOD(EnumSurfaces)(THIS_ DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK ) PURE;
-    STDMETHOD(FlipToGDISurface)(THIS) PURE;
-    STDMETHOD(GetCaps)( THIS_ LPDDCAPS, LPDDCAPS) PURE;
-    STDMETHOD(GetDisplayMode)( THIS_ LPDDSURFACEDESC) PURE;
-    STDMETHOD(GetFourCCCodes)(THIS_  LPDWORD, LPDWORD ) PURE;
-    STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE FAR *) PURE;
-    STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD) PURE;
-    STDMETHOD(GetScanLine)(THIS_ LPDWORD) PURE;
-    STDMETHOD(GetVerticalBlankStatus)(THIS_ LPBOOL ) PURE;
-    STDMETHOD(Initialize)(THIS_ GUID FAR *) PURE;
-    STDMETHOD(RestoreDisplayMode)(THIS) PURE;
-    STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD) PURE;
-    STDMETHOD(SetDisplayMode)(THIS_ DWORD, DWORD,DWORD, DWORD, DWORD) PURE;
-    STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD, HANDLE ) PURE;
-    /*** Added in the v2 interface ***/
-    STDMETHOD(GetAvailableVidMem)(THIS_ LPDDSCAPS, LPDWORD, LPDWORD) PURE;
-};
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectDraw2_QueryInterface(p, a, b)         (p)->lpVtbl->QueryInterface(p, a, b)
-#define IDirectDraw2_AddRef(p)                       (p)->lpVtbl->AddRef(p)
-#define IDirectDraw2_Release(p)                      (p)->lpVtbl->Release(p)
-#define IDirectDraw2_Compact(p)                      (p)->lpVtbl->Compact(p)
-#define IDirectDraw2_CreateClipper(p, a, b, c)       (p)->lpVtbl->CreateClipper(p, a, b, c)
-#define IDirectDraw2_CreatePalette(p, a, b, c, d)    (p)->lpVtbl->CreatePalette(p, a, b, c, d)
-#define IDirectDraw2_CreateSurface(p, a, b, c)       (p)->lpVtbl->CreateSurface(p, a, b, c)
-#define IDirectDraw2_DuplicateSurface(p, a, b)       (p)->lpVtbl->DuplicateSurface(p, a, b)
-#define IDirectDraw2_EnumDisplayModes(p, a, b, c, d) (p)->lpVtbl->EnumDisplayModes(p, a, b, c, d)
-#define IDirectDraw2_EnumSurfaces(p, a, b, c, d)     (p)->lpVtbl->EnumSurfaces(p, a, b, c, d)
-#define IDirectDraw2_FlipToGDISurface(p)             (p)->lpVtbl->FlipToGDISurface(p)
-#define IDirectDraw2_GetCaps(p, a, b)                (p)->lpVtbl->GetCaps(p, a, b)
-#define IDirectDraw2_GetDisplayMode(p, a)            (p)->lpVtbl->GetDisplayMode(p, a)
-#define IDirectDraw2_GetFourCCCodes(p, a, b)         (p)->lpVtbl->GetFourCCCodes(p, a, b)
-#define IDirectDraw2_GetGDISurface(p, a)             (p)->lpVtbl->GetGDISurface(p, a)
-#define IDirectDraw2_GetMonitorFrequency(p, a)       (p)->lpVtbl->GetMonitorFrequency(p, a)
-#define IDirectDraw2_GetScanLine(p, a)               (p)->lpVtbl->GetScanLine(p, a)
-#define IDirectDraw2_GetVerticalBlankStatus(p, a)    (p)->lpVtbl->GetVerticalBlankStatus(p, a)
-#define IDirectDraw2_Initialize(p, a)                (p)->lpVtbl->Initialize(p, a)
-#define IDirectDraw2_RestoreDisplayMode(p)           (p)->lpVtbl->RestoreDisplayMode(p)
-#define IDirectDraw2_SetCooperativeLevel(p, a, b)    (p)->lpVtbl->SetCooperativeLevel(p, a, b)
-#define IDirectDraw2_SetDisplayMode(p, a, b, c, d, e) (p)->lpVtbl->SetDisplayMode(p, a, b, c, d, e)
-#define IDirectDraw2_WaitForVerticalBlank(p, a, b)   (p)->lpVtbl->WaitForVerticalBlank(p, a, b)
-#define IDirectDraw2_GetAvailableVidMem(p, a, b, c)  (p)->lpVtbl->GetAvailableVidMem(p, a, b, c)
-#else
-#define IDirectDraw2_QueryInterface(p, a, b)         (p)->QueryInterface(a, b)
-#define IDirectDraw2_AddRef(p)                       (p)->AddRef()
-#define IDirectDraw2_Release(p)                      (p)->Release()
-#define IDirectDraw2_Compact(p)                      (p)->Compact()
-#define IDirectDraw2_CreateClipper(p, a, b, c)       (p)->CreateClipper(a, b, c)
-#define IDirectDraw2_CreatePalette(p, a, b, c, d)    (p)->CreatePalette(a, b, c, d)
-#define IDirectDraw2_CreateSurface(p, a, b, c)       (p)->CreateSurface(a, b, c)
-#define IDirectDraw2_DuplicateSurface(p, a, b)       (p)->DuplicateSurface(a, b)
-#define IDirectDraw2_EnumDisplayModes(p, a, b, c, d) (p)->EnumDisplayModes(a, b, c, d)
-#define IDirectDraw2_EnumSurfaces(p, a, b, c, d)     (p)->EnumSurfaces(a, b, c, d)
-#define IDirectDraw2_FlipToGDISurface(p)             (p)->FlipToGDISurface()
-#define IDirectDraw2_GetCaps(p, a, b)                (p)->GetCaps(a, b)
-#define IDirectDraw2_GetDisplayMode(p, a)            (p)->GetDisplayMode(a)
-#define IDirectDraw2_GetFourCCCodes(p, a, b)         (p)->GetFourCCCodes(a, b)
-#define IDirectDraw2_GetGDISurface(p, a)             (p)->GetGDISurface(a)
-#define IDirectDraw2_GetMonitorFrequency(p, a)       (p)->GetMonitorFrequency(a)
-#define IDirectDraw2_GetScanLine(p, a)               (p)->GetScanLine(a)
-#define IDirectDraw2_GetVerticalBlankStatus(p, a)    (p)->GetVerticalBlankStatus(a)
-#define IDirectDraw2_Initialize(p, a)                (p)->Initialize(a)
-#define IDirectDraw2_RestoreDisplayMode(p)           (p)->RestoreDisplayMode()
-#define IDirectDraw2_SetCooperativeLevel(p, a, b)    (p)->SetCooperativeLevel(a, b)
-#define IDirectDraw2_SetDisplayMode(p, a, b, c, d, e) (p)->SetDisplayMode(a, b, c, d, e)
-#define IDirectDraw2_WaitForVerticalBlank(p, a, b)   (p)->WaitForVerticalBlank(a, b)
-#define IDirectDraw2_GetAvailableVidMem(p, a, b, c)  (p)->GetAvailableVidMem(a, b, c)
-#endif
-
-#endif
-
-#if defined( _WIN32 ) && !defined( _NO_COM )
-#undef INTERFACE
-#define INTERFACE IDirectDraw4
-DECLARE_INTERFACE_( IDirectDraw4, IUnknown )
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    /*** IDirectDraw methods ***/
-    STDMETHOD(Compact)(THIS) PURE;
-    STDMETHOD(CreateClipper)(THIS_ DWORD, LPDIRECTDRAWCLIPPER FAR*, IUnknown FAR * ) PURE;
-    STDMETHOD(CreatePalette)(THIS_ DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE FAR*, IUnknown FAR * ) PURE;
-    STDMETHOD(CreateSurface)(THIS_  LPDDSURFACEDESC2, LPDIRECTDRAWSURFACE4 FAR *, IUnknown FAR *) PURE;
-    STDMETHOD(DuplicateSurface)( THIS_ LPDIRECTDRAWSURFACE4, LPDIRECTDRAWSURFACE4 FAR * ) PURE;
-    STDMETHOD(EnumDisplayModes)( THIS_ DWORD, LPDDSURFACEDESC2, LPVOID, LPDDENUMMODESCALLBACK2 ) PURE;
-    STDMETHOD(EnumSurfaces)(THIS_ DWORD, LPDDSURFACEDESC2, LPVOID,LPDDENUMSURFACESCALLBACK2 ) PURE;
-    STDMETHOD(FlipToGDISurface)(THIS) PURE;
-    STDMETHOD(GetCaps)( THIS_ LPDDCAPS, LPDDCAPS) PURE;
-    STDMETHOD(GetDisplayMode)( THIS_ LPDDSURFACEDESC2) PURE;
-    STDMETHOD(GetFourCCCodes)(THIS_  LPDWORD, LPDWORD ) PURE;
-    STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE4 FAR *) PURE;
-    STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD) PURE;
-    STDMETHOD(GetScanLine)(THIS_ LPDWORD) PURE;
-    STDMETHOD(GetVerticalBlankStatus)(THIS_ LPBOOL ) PURE;
-    STDMETHOD(Initialize)(THIS_ GUID FAR *) PURE;
-    STDMETHOD(RestoreDisplayMode)(THIS) PURE;
-    STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD) PURE;
-    STDMETHOD(SetDisplayMode)(THIS_ DWORD, DWORD,DWORD, DWORD, DWORD) PURE;
-    STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD, HANDLE ) PURE;
-    /*** Added in the v2 interface ***/
-    STDMETHOD(GetAvailableVidMem)(THIS_ LPDDSCAPS2, LPDWORD, LPDWORD) PURE;
-    /*** Added in the V4 Interface ***/
-    STDMETHOD(GetSurfaceFromDC) (THIS_ HDC, LPDIRECTDRAWSURFACE4 *) PURE;
-    STDMETHOD(RestoreAllSurfaces)(THIS) PURE;
-    STDMETHOD(TestCooperativeLevel)(THIS) PURE;
-    STDMETHOD(GetDeviceIdentifier)(THIS_ LPDDDEVICEIDENTIFIER, DWORD ) PURE;
-};
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectDraw4_QueryInterface(p, a, b)         (p)->lpVtbl->QueryInterface(p, a, b)
-#define IDirectDraw4_AddRef(p)                       (p)->lpVtbl->AddRef(p)
-#define IDirectDraw4_Release(p)                      (p)->lpVtbl->Release(p)
-#define IDirectDraw4_Compact(p)                      (p)->lpVtbl->Compact(p)
-#define IDirectDraw4_CreateClipper(p, a, b, c)       (p)->lpVtbl->CreateClipper(p, a, b, c)
-#define IDirectDraw4_CreatePalette(p, a, b, c, d)    (p)->lpVtbl->CreatePalette(p, a, b, c, d)
-#define IDirectDraw4_CreateSurface(p, a, b, c)       (p)->lpVtbl->CreateSurface(p, a, b, c)
-#define IDirectDraw4_DuplicateSurface(p, a, b)       (p)->lpVtbl->DuplicateSurface(p, a, b)
-#define IDirectDraw4_EnumDisplayModes(p, a, b, c, d) (p)->lpVtbl->EnumDisplayModes(p, a, b, c, d)
-#define IDirectDraw4_EnumSurfaces(p, a, b, c, d)     (p)->lpVtbl->EnumSurfaces(p, a, b, c, d)
-#define IDirectDraw4_FlipToGDISurface(p)             (p)->lpVtbl->FlipToGDISurface(p)
-#define IDirectDraw4_GetCaps(p, a, b)                (p)->lpVtbl->GetCaps(p, a, b)
-#define IDirectDraw4_GetDisplayMode(p, a)            (p)->lpVtbl->GetDisplayMode(p, a)
-#define IDirectDraw4_GetFourCCCodes(p, a, b)         (p)->lpVtbl->GetFourCCCodes(p, a, b)
-#define IDirectDraw4_GetGDISurface(p, a)             (p)->lpVtbl->GetGDISurface(p, a)
-#define IDirectDraw4_GetMonitorFrequency(p, a)       (p)->lpVtbl->GetMonitorFrequency(p, a)
-#define IDirectDraw4_GetScanLine(p, a)               (p)->lpVtbl->GetScanLine(p, a)
-#define IDirectDraw4_GetVerticalBlankStatus(p, a)    (p)->lpVtbl->GetVerticalBlankStatus(p, a)
-#define IDirectDraw4_Initialize(p, a)                (p)->lpVtbl->Initialize(p, a)
-#define IDirectDraw4_RestoreDisplayMode(p)           (p)->lpVtbl->RestoreDisplayMode(p)
-#define IDirectDraw4_SetCooperativeLevel(p, a, b)    (p)->lpVtbl->SetCooperativeLevel(p, a, b)
-#define IDirectDraw4_SetDisplayMode(p, a, b, c, d, e) (p)->lpVtbl->SetDisplayMode(p, a, b, c, d, e)
-#define IDirectDraw4_WaitForVerticalBlank(p, a, b)   (p)->lpVtbl->WaitForVerticalBlank(p, a, b)
-#define IDirectDraw4_GetAvailableVidMem(p, a, b, c)  (p)->lpVtbl->GetAvailableVidMem(p, a, b, c)
-#define IDirectDraw4_GetSurfaceFromDC(p, a, b)       (p)->lpVtbl->GetSurfaceFromDC(p, a, b)
-#define IDirectDraw4_RestoreAllSurfaces(p)           (p)->lpVtbl->RestoreAllSurfaces(p)
-#define IDirectDraw4_TestCooperativeLevel(p)         (p)->lpVtbl->TestCooperativeLevel(p)
-#define IDirectDraw4_GetDeviceIdentifier(p,a,b)      (p)->lpVtbl->GetDeviceIdentifier(p,a,b)
-#else
-#define IDirectDraw4_QueryInterface(p, a, b)         (p)->QueryInterface(a, b)
-#define IDirectDraw4_AddRef(p)                       (p)->AddRef()
-#define IDirectDraw4_Release(p)                      (p)->Release()
-#define IDirectDraw4_Compact(p)                      (p)->Compact()
-#define IDirectDraw4_CreateClipper(p, a, b, c)       (p)->CreateClipper(a, b, c)
-#define IDirectDraw4_CreatePalette(p, a, b, c, d)    (p)->CreatePalette(a, b, c, d)
-#define IDirectDraw4_CreateSurface(p, a, b, c)       (p)->CreateSurface(a, b, c)
-#define IDirectDraw4_DuplicateSurface(p, a, b)       (p)->DuplicateSurface(a, b)
-#define IDirectDraw4_EnumDisplayModes(p, a, b, c, d) (p)->EnumDisplayModes(a, b, c, d)
-#define IDirectDraw4_EnumSurfaces(p, a, b, c, d)     (p)->EnumSurfaces(a, b, c, d)
-#define IDirectDraw4_FlipToGDISurface(p)             (p)->FlipToGDISurface()
-#define IDirectDraw4_GetCaps(p, a, b)                (p)->GetCaps(a, b)
-#define IDirectDraw4_GetDisplayMode(p, a)            (p)->GetDisplayMode(a)
-#define IDirectDraw4_GetFourCCCodes(p, a, b)         (p)->GetFourCCCodes(a, b)
-#define IDirectDraw4_GetGDISurface(p, a)             (p)->GetGDISurface(a)
-#define IDirectDraw4_GetMonitorFrequency(p, a)       (p)->GetMonitorFrequency(a)
-#define IDirectDraw4_GetScanLine(p, a)               (p)->GetScanLine(a)
-#define IDirectDraw4_GetVerticalBlankStatus(p, a)    (p)->GetVerticalBlankStatus(a)
-#define IDirectDraw4_Initialize(p, a)                (p)->Initialize(a)
-#define IDirectDraw4_RestoreDisplayMode(p)           (p)->RestoreDisplayMode()
-#define IDirectDraw4_SetCooperativeLevel(p, a, b)    (p)->SetCooperativeLevel(a, b)
-#define IDirectDraw4_SetDisplayMode(p, a, b, c, d, e) (p)->SetDisplayMode(a, b, c, d, e)
-#define IDirectDraw4_WaitForVerticalBlank(p, a, b)   (p)->WaitForVerticalBlank(a, b)
-#define IDirectDraw4_GetAvailableVidMem(p, a, b, c)  (p)->GetAvailableVidMem(a, b, c)
-#define IDirectDraw4_GetSurfaceFromDC(p, a, b)       (p)->GetSurfaceFromDC(a, b)
-#define IDirectDraw4_RestoreAllSurfaces(p)           (p)->RestoreAllSurfaces()
-#define IDirectDraw4_TestCooperativeLevel(p)         (p)->TestCooperativeLevel()
-#define IDirectDraw4_GetDeviceIdentifier(p,a,b)      (p)->GetDeviceIdentifier(a,b)
-#endif
-
-#endif
-
-
-/*
- * IDirectDrawPalette
- */
-#if defined( _WIN32 ) && !defined( _NO_COM )
-#undef INTERFACE
-#define INTERFACE IDirectDrawPalette
-DECLARE_INTERFACE_( IDirectDrawPalette, IUnknown )
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    /*** IDirectDrawPalette methods ***/
-    STDMETHOD(GetCaps)(THIS_ LPDWORD) PURE;
-    STDMETHOD(GetEntries)(THIS_ DWORD,DWORD,DWORD,LPPALETTEENTRY) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, DWORD, LPPALETTEENTRY) PURE;
-    STDMETHOD(SetEntries)(THIS_ DWORD,DWORD,DWORD,LPPALETTEENTRY) PURE;
-};
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectDrawPalette_QueryInterface(p, a, b)      (p)->lpVtbl->QueryInterface(p, a, b)
-#define IDirectDrawPalette_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirectDrawPalette_Release(p)                   (p)->lpVtbl->Release(p)
-#define IDirectDrawPalette_GetCaps(p, a)                (p)->lpVtbl->GetCaps(p, a)
-#define IDirectDrawPalette_GetEntries(p, a, b, c, d)    (p)->lpVtbl->GetEntries(p, a, b, c, d)
-#define IDirectDrawPalette_Initialize(p, a, b, c)       (p)->lpVtbl->Initialize(p, a, b, c)
-#define IDirectDrawPalette_SetEntries(p, a, b, c, d)    (p)->lpVtbl->SetEntries(p, a, b, c, d)
-#else
-#define IDirectDrawPalette_QueryInterface(p, a, b)      (p)->QueryInterface(a, b)
-#define IDirectDrawPalette_AddRef(p)                    (p)->AddRef()
-#define IDirectDrawPalette_Release(p)                   (p)->Release()
-#define IDirectDrawPalette_GetCaps(p, a)                (p)->GetCaps(a)
-#define IDirectDrawPalette_GetEntries(p, a, b, c, d)    (p)->GetEntries(a, b, c, d)
-#define IDirectDrawPalette_Initialize(p, a, b, c)       (p)->Initialize(a, b, c)
-#define IDirectDrawPalette_SetEntries(p, a, b, c, d)    (p)->SetEntries(a, b, c, d)
-#endif
-
-#endif
-
-
-
-/*
- * IDirectDrawClipper
- */
-#if defined( _WIN32 ) && !defined( _NO_COM )
-#undef INTERFACE
-#define INTERFACE IDirectDrawClipper
-DECLARE_INTERFACE_( IDirectDrawClipper, IUnknown )
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    /*** IDirectDrawClipper methods ***/
-    STDMETHOD(GetClipList)(THIS_ LPRECT, LPRGNDATA, LPDWORD) PURE;
-    STDMETHOD(GetHWnd)(THIS_ HWND FAR *) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, DWORD) PURE;
-    STDMETHOD(IsClipListChanged)(THIS_ BOOL FAR *) PURE;
-    STDMETHOD(SetClipList)(THIS_ LPRGNDATA,DWORD) PURE;
-    STDMETHOD(SetHWnd)(THIS_ DWORD, HWND ) PURE;
-};
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectDrawClipper_QueryInterface(p, a, b)  (p)->lpVtbl->QueryInterface(p, a, b)
-#define IDirectDrawClipper_AddRef(p)                (p)->lpVtbl->AddRef(p)
-#define IDirectDrawClipper_Release(p)               (p)->lpVtbl->Release(p)
-#define IDirectDrawClipper_GetClipList(p, a, b, c)  (p)->lpVtbl->GetClipList(p, a, b, c)
-#define IDirectDrawClipper_GetHWnd(p, a)            (p)->lpVtbl->GetHWnd(p, a)
-#define IDirectDrawClipper_Initialize(p, a, b)      (p)->lpVtbl->Initialize(p, a, b)
-#define IDirectDrawClipper_IsClipListChanged(p, a)  (p)->lpVtbl->IsClipListChanged(p, a)
-#define IDirectDrawClipper_SetClipList(p, a, b)     (p)->lpVtbl->SetClipList(p, a, b)
-#define IDirectDrawClipper_SetHWnd(p, a, b)         (p)->lpVtbl->SetHWnd(p, a, b)
-#else
-#define IDirectDrawClipper_QueryInterface(p, a, b)  (p)->QueryInterface(a, b)
-#define IDirectDrawClipper_AddRef(p)                (p)->AddRef()
-#define IDirectDrawClipper_Release(p)               (p)->Release()
-#define IDirectDrawClipper_GetClipList(p, a, b, c)  (p)->GetClipList(a, b, c)
-#define IDirectDrawClipper_GetHWnd(p, a)            (p)->GetHWnd(a)
-#define IDirectDrawClipper_Initialize(p, a, b)      (p)->Initialize(a, b)
-#define IDirectDrawClipper_IsClipListChanged(p, a)  (p)->IsClipListChanged(a)
-#define IDirectDrawClipper_SetClipList(p, a, b)     (p)->SetClipList(a, b)
-#define IDirectDrawClipper_SetHWnd(p, a, b)         (p)->SetHWnd(a, b)
-#endif
-
-#endif
-
-/*
- * IDirectDrawSurface and related interfaces
- */
-#if defined( _WIN32 ) && !defined( _NO_COM )
-#undef INTERFACE
-#define INTERFACE IDirectDrawSurface
-DECLARE_INTERFACE_( IDirectDrawSurface, IUnknown )
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    /*** IDirectDrawSurface methods ***/
-    STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE) PURE;
-    STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE;
-    STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE, LPRECT,DWORD, LPDDBLTFX) PURE;
-    STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE;
-    STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE, LPRECT,DWORD) PURE;
-    STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE) PURE;
-    STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK) PURE;
-    STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK) PURE;
-    STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE, DWORD) PURE;
-    STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS, LPDIRECTDRAWSURFACE FAR *) PURE;
-    STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE;
-    STDMETHOD(GetCaps)(THIS_ LPDDSCAPS) PURE;
-    STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER FAR*) PURE;
-    STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
-    STDMETHOD(GetDC)(THIS_ HDC FAR *) PURE;
-    STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE;
-    STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE;
-    STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE FAR*) PURE;
-    STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE;
-    STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC) PURE;
-    STDMETHOD(IsLost)(THIS) PURE;
-    STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC,DWORD,HANDLE) PURE;
-    STDMETHOD(ReleaseDC)(THIS_ HDC) PURE;
-    STDMETHOD(Restore)(THIS) PURE;
-    STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE;
-    STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
-    STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE;
-    STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE;
-    STDMETHOD(Unlock)(THIS_ LPVOID) PURE;
-    STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE,LPRECT,DWORD, LPDDOVERLAYFX) PURE;
-    STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE;
-    STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE) PURE;
-};
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectDrawSurface_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectDrawSurface_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirectDrawSurface_Release(p)                   (p)->lpVtbl->Release(p)
-#define IDirectDrawSurface_AddAttachedSurface(p,a)      (p)->lpVtbl->AddAttachedSurface(p,a)
-#define IDirectDrawSurface_AddOverlayDirtyRect(p,a)     (p)->lpVtbl->AddOverlayDirtyRect(p,a)
-#define IDirectDrawSurface_Blt(p,a,b,c,d,e)             (p)->lpVtbl->Blt(p,a,b,c,d,e)
-#define IDirectDrawSurface_BltBatch(p,a,b,c)            (p)->lpVtbl->BltBatch(p,a,b,c)
-#define IDirectDrawSurface_BltFast(p,a,b,c,d,e)         (p)->lpVtbl->BltFast(p,a,b,c,d,e)
-#define IDirectDrawSurface_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b)
-#define IDirectDrawSurface_EnumAttachedSurfaces(p,a,b)  (p)->lpVtbl->EnumAttachedSurfaces(p,a,b)
-#define IDirectDrawSurface_EnumOverlayZOrders(p,a,b,c)  (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c)
-#define IDirectDrawSurface_Flip(p,a,b)                  (p)->lpVtbl->Flip(p,a,b)
-#define IDirectDrawSurface_GetAttachedSurface(p,a,b)    (p)->lpVtbl->GetAttachedSurface(p,a,b)
-#define IDirectDrawSurface_GetBltStatus(p,a)            (p)->lpVtbl->GetBltStatus(p,a)
-#define IDirectDrawSurface_GetCaps(p,b)                 (p)->lpVtbl->GetCaps(p,b)
-#define IDirectDrawSurface_GetClipper(p,a)              (p)->lpVtbl->GetClipper(p,a)
-#define IDirectDrawSurface_GetColorKey(p,a,b)           (p)->lpVtbl->GetColorKey(p,a,b)
-#define IDirectDrawSurface_GetDC(p,a)                   (p)->lpVtbl->GetDC(p,a)
-#define IDirectDrawSurface_GetFlipStatus(p,a)           (p)->lpVtbl->GetFlipStatus(p,a)
-#define IDirectDrawSurface_GetOverlayPosition(p,a,b)    (p)->lpVtbl->GetOverlayPosition(p,a,b)
-#define IDirectDrawSurface_GetPalette(p,a)              (p)->lpVtbl->GetPalette(p,a)
-#define IDirectDrawSurface_GetPixelFormat(p,a)          (p)->lpVtbl->GetPixelFormat(p,a)
-#define IDirectDrawSurface_GetSurfaceDesc(p,a)          (p)->lpVtbl->GetSurfaceDesc(p,a)
-#define IDirectDrawSurface_Initialize(p,a,b)            (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectDrawSurface_IsLost(p)                    (p)->lpVtbl->IsLost(p)
-#define IDirectDrawSurface_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
-#define IDirectDrawSurface_ReleaseDC(p,a)               (p)->lpVtbl->ReleaseDC(p,a)
-#define IDirectDrawSurface_Restore(p)                   (p)->lpVtbl->Restore(p)
-#define IDirectDrawSurface_SetClipper(p,a)              (p)->lpVtbl->SetClipper(p,a)
-#define IDirectDrawSurface_SetColorKey(p,a,b)           (p)->lpVtbl->SetColorKey(p,a,b)
-#define IDirectDrawSurface_SetOverlayPosition(p,a,b)    (p)->lpVtbl->SetOverlayPosition(p,a,b)
-#define IDirectDrawSurface_SetPalette(p,a)              (p)->lpVtbl->SetPalette(p,a)
-#define IDirectDrawSurface_Unlock(p,b)                  (p)->lpVtbl->Unlock(p,b)
-#define IDirectDrawSurface_UpdateOverlay(p,a,b,c,d,e)   (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e)
-#define IDirectDrawSurface_UpdateOverlayDisplay(p,a)    (p)->lpVtbl->UpdateOverlayDisplay(p,a)
-#define IDirectDrawSurface_UpdateOverlayZOrder(p,a,b)   (p)->lpVtbl->UpdateOverlayZOrder(p,a,b)
-#else
-#define IDirectDrawSurface_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirectDrawSurface_AddRef(p)                    (p)->AddRef()
-#define IDirectDrawSurface_Release(p)                   (p)->Release()
-#define IDirectDrawSurface_AddAttachedSurface(p,a)      (p)->AddAttachedSurface(a)
-#define IDirectDrawSurface_AddOverlayDirtyRect(p,a)     (p)->AddOverlayDirtyRect(a)
-#define IDirectDrawSurface_Blt(p,a,b,c,d,e)             (p)->Blt(a,b,c,d,e)
-#define IDirectDrawSurface_BltBatch(p,a,b,c)            (p)->BltBatch(a,b,c)
-#define IDirectDrawSurface_BltFast(p,a,b,c,d,e)         (p)->BltFast(a,b,c,d,e)
-#define IDirectDrawSurface_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b)
-#define IDirectDrawSurface_EnumAttachedSurfaces(p,a,b)  (p)->EnumAttachedSurfaces(a,b)
-#define IDirectDrawSurface_EnumOverlayZOrders(p,a,b,c)  (p)->EnumOverlayZOrders(a,b,c)
-#define IDirectDrawSurface_Flip(p,a,b)                  (p)->Flip(a,b)
-#define IDirectDrawSurface_GetAttachedSurface(p,a,b)    (p)->GetAttachedSurface(a,b)
-#define IDirectDrawSurface_GetBltStatus(p,a)            (p)->GetBltStatus(a)
-#define IDirectDrawSurface_GetCaps(p,b)                 (p)->GetCaps(b)
-#define IDirectDrawSurface_GetClipper(p,a)              (p)->GetClipper(a)
-#define IDirectDrawSurface_GetColorKey(p,a,b)           (p)->GetColorKey(a,b)
-#define IDirectDrawSurface_GetDC(p,a)                   (p)->GetDC(a)
-#define IDirectDrawSurface_GetFlipStatus(p,a)           (p)->GetFlipStatus(a)
-#define IDirectDrawSurface_GetOverlayPosition(p,a,b)    (p)->GetOverlayPosition(a,b)
-#define IDirectDrawSurface_GetPalette(p,a)              (p)->GetPalette(a)
-#define IDirectDrawSurface_GetPixelFormat(p,a)          (p)->GetPixelFormat(a)
-#define IDirectDrawSurface_GetSurfaceDesc(p,a)          (p)->GetSurfaceDesc(a)
-#define IDirectDrawSurface_Initialize(p,a,b)            (p)->Initialize(a,b)
-#define IDirectDrawSurface_IsLost(p)                    (p)->IsLost()
-#define IDirectDrawSurface_Lock(p,a,b,c,d)              (p)->Lock(a,b,c,d)
-#define IDirectDrawSurface_ReleaseDC(p,a)               (p)->ReleaseDC(a)
-#define IDirectDrawSurface_Restore(p)                   (p)->Restore()
-#define IDirectDrawSurface_SetClipper(p,a)              (p)->SetClipper(a)
-#define IDirectDrawSurface_SetColorKey(p,a,b)           (p)->SetColorKey(a,b)
-#define IDirectDrawSurface_SetOverlayPosition(p,a,b)    (p)->SetOverlayPosition(a,b)
-#define IDirectDrawSurface_SetPalette(p,a)              (p)->SetPalette(a)
-#define IDirectDrawSurface_Unlock(p,b)                  (p)->Unlock(b)
-#define IDirectDrawSurface_UpdateOverlay(p,a,b,c,d,e)   (p)->UpdateOverlay(a,b,c,d,e)
-#define IDirectDrawSurface_UpdateOverlayDisplay(p,a)    (p)->UpdateOverlayDisplay(a)
-#define IDirectDrawSurface_UpdateOverlayZOrder(p,a,b)   (p)->UpdateOverlayZOrder(a,b)
-#endif
-
-/*
- * IDirectDrawSurface2 and related interfaces
- */
-#undef INTERFACE
-#define INTERFACE IDirectDrawSurface2
-DECLARE_INTERFACE_( IDirectDrawSurface2, IUnknown )
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    /*** IDirectDrawSurface methods ***/
-    STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE2) PURE;
-    STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE;
-    STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE2, LPRECT,DWORD, LPDDBLTFX) PURE;
-    STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE;
-    STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE2, LPRECT,DWORD) PURE;
-    STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE2) PURE;
-    STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK) PURE;
-    STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK) PURE;
-    STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE2, DWORD) PURE;
-    STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS, LPDIRECTDRAWSURFACE2 FAR *) PURE;
-    STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE;
-    STDMETHOD(GetCaps)(THIS_ LPDDSCAPS) PURE;
-    STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER FAR*) PURE;
-    STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
-    STDMETHOD(GetDC)(THIS_ HDC FAR *) PURE;
-    STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE;
-    STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE;
-    STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE FAR*) PURE;
-    STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE;
-    STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC) PURE;
-    STDMETHOD(IsLost)(THIS) PURE;
-    STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC,DWORD,HANDLE) PURE;
-    STDMETHOD(ReleaseDC)(THIS_ HDC) PURE;
-    STDMETHOD(Restore)(THIS) PURE;
-    STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE;
-    STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
-    STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE;
-    STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE;
-    STDMETHOD(Unlock)(THIS_ LPVOID) PURE;
-    STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE2,LPRECT,DWORD, LPDDOVERLAYFX) PURE;
-    STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE;
-    STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE2) PURE;
-    /*** Added in the v2 interface ***/
-    STDMETHOD(GetDDInterface)(THIS_ LPVOID FAR *) PURE;
-    STDMETHOD(PageLock)(THIS_ DWORD) PURE;
-    STDMETHOD(PageUnlock)(THIS_ DWORD) PURE;
-};
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectDrawSurface2_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectDrawSurface2_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirectDrawSurface2_Release(p)                   (p)->lpVtbl->Release(p)
-#define IDirectDrawSurface2_AddAttachedSurface(p,a)      (p)->lpVtbl->AddAttachedSurface(p,a)
-#define IDirectDrawSurface2_AddOverlayDirtyRect(p,a)     (p)->lpVtbl->AddOverlayDirtyRect(p,a)
-#define IDirectDrawSurface2_Blt(p,a,b,c,d,e)             (p)->lpVtbl->Blt(p,a,b,c,d,e)
-#define IDirectDrawSurface2_BltBatch(p,a,b,c)            (p)->lpVtbl->BltBatch(p,a,b,c)
-#define IDirectDrawSurface2_BltFast(p,a,b,c,d,e)         (p)->lpVtbl->BltFast(p,a,b,c,d,e)
-#define IDirectDrawSurface2_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b)
-#define IDirectDrawSurface2_EnumAttachedSurfaces(p,a,b)  (p)->lpVtbl->EnumAttachedSurfaces(p,a,b)
-#define IDirectDrawSurface2_EnumOverlayZOrders(p,a,b,c)  (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c)
-#define IDirectDrawSurface2_Flip(p,a,b)                  (p)->lpVtbl->Flip(p,a,b)
-#define IDirectDrawSurface2_GetAttachedSurface(p,a,b)    (p)->lpVtbl->GetAttachedSurface(p,a,b)
-#define IDirectDrawSurface2_GetBltStatus(p,a)            (p)->lpVtbl->GetBltStatus(p,a)
-#define IDirectDrawSurface2_GetCaps(p,b)                 (p)->lpVtbl->GetCaps(p,b)
-#define IDirectDrawSurface2_GetClipper(p,a)              (p)->lpVtbl->GetClipper(p,a)
-#define IDirectDrawSurface2_GetColorKey(p,a,b)           (p)->lpVtbl->GetColorKey(p,a,b)
-#define IDirectDrawSurface2_GetDC(p,a)                   (p)->lpVtbl->GetDC(p,a)
-#define IDirectDrawSurface2_GetFlipStatus(p,a)           (p)->lpVtbl->GetFlipStatus(p,a)
-#define IDirectDrawSurface2_GetOverlayPosition(p,a,b)    (p)->lpVtbl->GetOverlayPosition(p,a,b)
-#define IDirectDrawSurface2_GetPalette(p,a)              (p)->lpVtbl->GetPalette(p,a)
-#define IDirectDrawSurface2_GetPixelFormat(p,a)          (p)->lpVtbl->GetPixelFormat(p,a)
-#define IDirectDrawSurface2_GetSurfaceDesc(p,a)          (p)->lpVtbl->GetSurfaceDesc(p,a)
-#define IDirectDrawSurface2_Initialize(p,a,b)            (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectDrawSurface2_IsLost(p)                    (p)->lpVtbl->IsLost(p)
-#define IDirectDrawSurface2_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
-#define IDirectDrawSurface2_ReleaseDC(p,a)               (p)->lpVtbl->ReleaseDC(p,a)
-#define IDirectDrawSurface2_Restore(p)                   (p)->lpVtbl->Restore(p)
-#define IDirectDrawSurface2_SetClipper(p,a)              (p)->lpVtbl->SetClipper(p,a)
-#define IDirectDrawSurface2_SetColorKey(p,a,b)           (p)->lpVtbl->SetColorKey(p,a,b)
-#define IDirectDrawSurface2_SetOverlayPosition(p,a,b)    (p)->lpVtbl->SetOverlayPosition(p,a,b)
-#define IDirectDrawSurface2_SetPalette(p,a)              (p)->lpVtbl->SetPalette(p,a)
-#define IDirectDrawSurface2_Unlock(p,b)                  (p)->lpVtbl->Unlock(p,b)
-#define IDirectDrawSurface2_UpdateOverlay(p,a,b,c,d,e)   (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e)
-#define IDirectDrawSurface2_UpdateOverlayDisplay(p,a)    (p)->lpVtbl->UpdateOverlayDisplay(p,a)
-#define IDirectDrawSurface2_UpdateOverlayZOrder(p,a,b)   (p)->lpVtbl->UpdateOverlayZOrder(p,a,b)
-#define IDirectDrawSurface2_GetDDInterface(p,a)                 (p)->lpVtbl->GetDDInterface(p,a)
-#define IDirectDrawSurface2_PageLock(p,a)               (p)->lpVtbl->PageLock(p,a)
-#define IDirectDrawSurface2_PageUnlock(p,a)             (p)->lpVtbl->PageUnlock(p,a)
-#else
-#define IDirectDrawSurface2_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirectDrawSurface2_AddRef(p)                    (p)->AddRef()
-#define IDirectDrawSurface2_Release(p)                   (p)->Release()
-#define IDirectDrawSurface2_AddAttachedSurface(p,a)      (p)->AddAttachedSurface(a)
-#define IDirectDrawSurface2_AddOverlayDirtyRect(p,a)     (p)->AddOverlayDirtyRect(a)
-#define IDirectDrawSurface2_Blt(p,a,b,c,d,e)             (p)->Blt(a,b,c,d,e)
-#define IDirectDrawSurface2_BltBatch(p,a,b,c)            (p)->BltBatch(a,b,c)
-#define IDirectDrawSurface2_BltFast(p,a,b,c,d,e)         (p)->BltFast(a,b,c,d,e)
-#define IDirectDrawSurface2_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b)
-#define IDirectDrawSurface2_EnumAttachedSurfaces(p,a,b)  (p)->EnumAttachedSurfaces(a,b)
-#define IDirectDrawSurface2_EnumOverlayZOrders(p,a,b,c)  (p)->EnumOverlayZOrders(a,b,c)
-#define IDirectDrawSurface2_Flip(p,a,b)                  (p)->Flip(a,b)
-#define IDirectDrawSurface2_GetAttachedSurface(p,a,b)    (p)->GetAttachedSurface(a,b)
-#define IDirectDrawSurface2_GetBltStatus(p,a)            (p)->GetBltStatus(a)
-#define IDirectDrawSurface2_GetCaps(p,b)                 (p)->GetCaps(b)
-#define IDirectDrawSurface2_GetClipper(p,a)              (p)->GetClipper(a)
-#define IDirectDrawSurface2_GetColorKey(p,a,b)           (p)->GetColorKey(a,b)
-#define IDirectDrawSurface2_GetDC(p,a)                   (p)->GetDC(a)
-#define IDirectDrawSurface2_GetFlipStatus(p,a)           (p)->GetFlipStatus(a)
-#define IDirectDrawSurface2_GetOverlayPosition(p,a,b)    (p)->GetOverlayPosition(a,b)
-#define IDirectDrawSurface2_GetPalette(p,a)              (p)->GetPalette(a)
-#define IDirectDrawSurface2_GetPixelFormat(p,a)          (p)->GetPixelFormat(a)
-#define IDirectDrawSurface2_GetSurfaceDesc(p,a)          (p)->GetSurfaceDesc(a)
-#define IDirectDrawSurface2_Initialize(p,a,b)            (p)->Initialize(a,b)
-#define IDirectDrawSurface2_IsLost(p)                    (p)->IsLost()
-#define IDirectDrawSurface2_Lock(p,a,b,c,d)              (p)->Lock(a,b,c,d)
-#define IDirectDrawSurface2_ReleaseDC(p,a)               (p)->ReleaseDC(a)
-#define IDirectDrawSurface2_Restore(p)                   (p)->Restore()
-#define IDirectDrawSurface2_SetClipper(p,a)              (p)->SetClipper(a)
-#define IDirectDrawSurface2_SetColorKey(p,a,b)           (p)->SetColorKey(a,b)
-#define IDirectDrawSurface2_SetOverlayPosition(p,a,b)    (p)->SetOverlayPosition(a,b)
-#define IDirectDrawSurface2_SetPalette(p,a)              (p)->SetPalette(a)
-#define IDirectDrawSurface2_Unlock(p,b)                  (p)->Unlock(b)
-#define IDirectDrawSurface2_UpdateOverlay(p,a,b,c,d,e)   (p)->UpdateOverlay(a,b,c,d,e)
-#define IDirectDrawSurface2_UpdateOverlayDisplay(p,a)    (p)->UpdateOverlayDisplay(a)
-#define IDirectDrawSurface2_UpdateOverlayZOrder(p,a,b)   (p)->UpdateOverlayZOrder(a,b)
-#define IDirectDrawSurface2_GetDDInterface(p,a)                 (p)->GetDDInterface(a)
-#define IDirectDrawSurface2_PageLock(p,a)               (p)->PageLock(a)
-#define IDirectDrawSurface2_PageUnlock(p,a)             (p)->PageUnlock(a)
-#endif
-
-/*
- * IDirectDrawSurface3 and related interfaces
- */
-#undef INTERFACE
-#define INTERFACE IDirectDrawSurface3
-DECLARE_INTERFACE_( IDirectDrawSurface3, IUnknown )
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    /*** IDirectDrawSurface methods ***/
-    STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE3) PURE;
-    STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE;
-    STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE3, LPRECT,DWORD, LPDDBLTFX) PURE;
-    STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE;
-    STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE3, LPRECT,DWORD) PURE;
-    STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE3) PURE;
-    STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK) PURE;
-    STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK) PURE;
-    STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE3, DWORD) PURE;
-    STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS, LPDIRECTDRAWSURFACE3 FAR *) PURE;
-    STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE;
-    STDMETHOD(GetCaps)(THIS_ LPDDSCAPS) PURE;
-    STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER FAR*) PURE;
-    STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
-    STDMETHOD(GetDC)(THIS_ HDC FAR *) PURE;
-    STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE;
-    STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE;
-    STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE FAR*) PURE;
-    STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE;
-    STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC) PURE;
-    STDMETHOD(IsLost)(THIS) PURE;
-    STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC,DWORD,HANDLE) PURE;
-    STDMETHOD(ReleaseDC)(THIS_ HDC) PURE;
-    STDMETHOD(Restore)(THIS) PURE;
-    STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE;
-    STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
-    STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE;
-    STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE;
-    STDMETHOD(Unlock)(THIS_ LPVOID) PURE;
-    STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE3,LPRECT,DWORD, LPDDOVERLAYFX) PURE;
-    STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE;
-    STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE3) PURE;
-    /*** Added in the v2 interface ***/
-    STDMETHOD(GetDDInterface)(THIS_ LPVOID FAR *) PURE;
-    STDMETHOD(PageLock)(THIS_ DWORD) PURE;
-    STDMETHOD(PageUnlock)(THIS_ DWORD) PURE;
-    /*** Added in the V3 interface ***/
-    STDMETHOD(SetSurfaceDesc)(THIS_ LPDDSURFACEDESC, DWORD) PURE;
-};
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectDrawSurface3_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectDrawSurface3_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirectDrawSurface3_Release(p)                   (p)->lpVtbl->Release(p)
-#define IDirectDrawSurface3_AddAttachedSurface(p,a)      (p)->lpVtbl->AddAttachedSurface(p,a)
-#define IDirectDrawSurface3_AddOverlayDirtyRect(p,a)     (p)->lpVtbl->AddOverlayDirtyRect(p,a)
-#define IDirectDrawSurface3_Blt(p,a,b,c,d,e)             (p)->lpVtbl->Blt(p,a,b,c,d,e)
-#define IDirectDrawSurface3_BltBatch(p,a,b,c)            (p)->lpVtbl->BltBatch(p,a,b,c)
-#define IDirectDrawSurface3_BltFast(p,a,b,c,d,e)         (p)->lpVtbl->BltFast(p,a,b,c,d,e)
-#define IDirectDrawSurface3_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b)
-#define IDirectDrawSurface3_EnumAttachedSurfaces(p,a,b)  (p)->lpVtbl->EnumAttachedSurfaces(p,a,b)
-#define IDirectDrawSurface3_EnumOverlayZOrders(p,a,b,c)  (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c)
-#define IDirectDrawSurface3_Flip(p,a,b)                  (p)->lpVtbl->Flip(p,a,b)
-#define IDirectDrawSurface3_GetAttachedSurface(p,a,b)    (p)->lpVtbl->GetAttachedSurface(p,a,b)
-#define IDirectDrawSurface3_GetBltStatus(p,a)            (p)->lpVtbl->GetBltStatus(p,a)
-#define IDirectDrawSurface3_GetCaps(p,b)                 (p)->lpVtbl->GetCaps(p,b)
-#define IDirectDrawSurface3_GetClipper(p,a)              (p)->lpVtbl->GetClipper(p,a)
-#define IDirectDrawSurface3_GetColorKey(p,a,b)           (p)->lpVtbl->GetColorKey(p,a,b)
-#define IDirectDrawSurface3_GetDC(p,a)                   (p)->lpVtbl->GetDC(p,a)
-#define IDirectDrawSurface3_GetFlipStatus(p,a)           (p)->lpVtbl->GetFlipStatus(p,a)
-#define IDirectDrawSurface3_GetOverlayPosition(p,a,b)    (p)->lpVtbl->GetOverlayPosition(p,a,b)
-#define IDirectDrawSurface3_GetPalette(p,a)              (p)->lpVtbl->GetPalette(p,a)
-#define IDirectDrawSurface3_GetPixelFormat(p,a)          (p)->lpVtbl->GetPixelFormat(p,a)
-#define IDirectDrawSurface3_GetSurfaceDesc(p,a)          (p)->lpVtbl->GetSurfaceDesc(p,a)
-#define IDirectDrawSurface3_Initialize(p,a,b)            (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectDrawSurface3_IsLost(p)                    (p)->lpVtbl->IsLost(p)
-#define IDirectDrawSurface3_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
-#define IDirectDrawSurface3_ReleaseDC(p,a)               (p)->lpVtbl->ReleaseDC(p,a)
-#define IDirectDrawSurface3_Restore(p)                   (p)->lpVtbl->Restore(p)
-#define IDirectDrawSurface3_SetClipper(p,a)              (p)->lpVtbl->SetClipper(p,a)
-#define IDirectDrawSurface3_SetColorKey(p,a,b)           (p)->lpVtbl->SetColorKey(p,a,b)
-#define IDirectDrawSurface3_SetOverlayPosition(p,a,b)    (p)->lpVtbl->SetOverlayPosition(p,a,b)
-#define IDirectDrawSurface3_SetPalette(p,a)              (p)->lpVtbl->SetPalette(p,a)
-#define IDirectDrawSurface3_Unlock(p,b)                  (p)->lpVtbl->Unlock(p,b)
-#define IDirectDrawSurface3_UpdateOverlay(p,a,b,c,d,e)   (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e)
-#define IDirectDrawSurface3_UpdateOverlayDisplay(p,a)    (p)->lpVtbl->UpdateOverlayDisplay(p,a)
-#define IDirectDrawSurface3_UpdateOverlayZOrder(p,a,b)   (p)->lpVtbl->UpdateOverlayZOrder(p,a,b)
-#define IDirectDrawSurface3_GetDDInterface(p,a)                 (p)->lpVtbl->GetDDInterface(p,a)
-#define IDirectDrawSurface3_PageLock(p,a)               (p)->lpVtbl->PageLock(p,a)
-#define IDirectDrawSurface3_PageUnlock(p,a)             (p)->lpVtbl->PageUnlock(p,a)
-#define IDirectDrawSurface3_SetSurfaceDesc(p,a,b)       (p)->lpVtbl->SetSurfaceDesc(p,a,b)
-#else
-#define IDirectDrawSurface3_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirectDrawSurface3_AddRef(p)                    (p)->AddRef()
-#define IDirectDrawSurface3_Release(p)                   (p)->Release()
-#define IDirectDrawSurface3_AddAttachedSurface(p,a)      (p)->AddAttachedSurface(a)
-#define IDirectDrawSurface3_AddOverlayDirtyRect(p,a)     (p)->AddOverlayDirtyRect(a)
-#define IDirectDrawSurface3_Blt(p,a,b,c,d,e)             (p)->Blt(a,b,c,d,e)
-#define IDirectDrawSurface3_BltBatch(p,a,b,c)            (p)->BltBatch(a,b,c)
-#define IDirectDrawSurface3_BltFast(p,a,b,c,d,e)         (p)->BltFast(a,b,c,d,e)
-#define IDirectDrawSurface3_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b)
-#define IDirectDrawSurface3_EnumAttachedSurfaces(p,a,b)  (p)->EnumAttachedSurfaces(a,b)
-#define IDirectDrawSurface3_EnumOverlayZOrders(p,a,b,c)  (p)->EnumOverlayZOrders(a,b,c)
-#define IDirectDrawSurface3_Flip(p,a,b)                  (p)->Flip(a,b)
-#define IDirectDrawSurface3_GetAttachedSurface(p,a,b)    (p)->GetAttachedSurface(a,b)
-#define IDirectDrawSurface3_GetBltStatus(p,a)            (p)->GetBltStatus(a)
-#define IDirectDrawSurface3_GetCaps(p,b)                 (p)->GetCaps(b)
-#define IDirectDrawSurface3_GetClipper(p,a)              (p)->GetClipper(a)
-#define IDirectDrawSurface3_GetColorKey(p,a,b)           (p)->GetColorKey(a,b)
-#define IDirectDrawSurface3_GetDC(p,a)                   (p)->GetDC(a)
-#define IDirectDrawSurface3_GetFlipStatus(p,a)           (p)->GetFlipStatus(a)
-#define IDirectDrawSurface3_GetOverlayPosition(p,a,b)    (p)->GetOverlayPosition(a,b)
-#define IDirectDrawSurface3_GetPalette(p,a)              (p)->GetPalette(a)
-#define IDirectDrawSurface3_GetPixelFormat(p,a)          (p)->GetPixelFormat(a)
-#define IDirectDrawSurface3_GetSurfaceDesc(p,a)          (p)->GetSurfaceDesc(a)
-#define IDirectDrawSurface3_Initialize(p,a,b)            (p)->Initialize(a,b)
-#define IDirectDrawSurface3_IsLost(p)                    (p)->IsLost()
-#define IDirectDrawSurface3_Lock(p,a,b,c,d)              (p)->Lock(a,b,c,d)
-#define IDirectDrawSurface3_ReleaseDC(p,a)               (p)->ReleaseDC(a)
-#define IDirectDrawSurface3_Restore(p)                   (p)->Restore()
-#define IDirectDrawSurface3_SetClipper(p,a)              (p)->SetClipper(a)
-#define IDirectDrawSurface3_SetColorKey(p,a,b)           (p)->SetColorKey(a,b)
-#define IDirectDrawSurface3_SetOverlayPosition(p,a,b)    (p)->SetOverlayPosition(a,b)
-#define IDirectDrawSurface3_SetPalette(p,a)              (p)->SetPalette(a)
-#define IDirectDrawSurface3_Unlock(p,b)                  (p)->Unlock(b)
-#define IDirectDrawSurface3_UpdateOverlay(p,a,b,c,d,e)   (p)->UpdateOverlay(a,b,c,d,e)
-#define IDirectDrawSurface3_UpdateOverlayDisplay(p,a)    (p)->UpdateOverlayDisplay(a)
-#define IDirectDrawSurface3_UpdateOverlayZOrder(p,a,b)   (p)->UpdateOverlayZOrder(a,b)
-#define IDirectDrawSurface3_GetDDInterface(p,a)                 (p)->GetDDInterface(a)
-#define IDirectDrawSurface3_PageLock(p,a)               (p)->PageLock(a)
-#define IDirectDrawSurface3_PageUnlock(p,a)             (p)->PageUnlock(a)
-#define IDirectDrawSurface3_SetSurfaceDesc(p,a,b)       (p)->SetSurfaceDesc(a,b)
-#endif
-
-/*
- * IDirectDrawSurface4 and related interfaces
- */
-#undef INTERFACE
-#define INTERFACE IDirectDrawSurface4
-DECLARE_INTERFACE_( IDirectDrawSurface4, IUnknown )
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    /*** IDirectDrawSurface methods ***/
-    STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE4) PURE;
-    STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE;
-    STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE4, LPRECT,DWORD, LPDDBLTFX) PURE;
-    STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE;
-    STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE4, LPRECT,DWORD) PURE;
-    STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE4) PURE;
-    STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK2) PURE;
-    STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK2) PURE;
-    STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE4, DWORD) PURE;
-    STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS2, LPDIRECTDRAWSURFACE4 FAR *) PURE;
-    STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE;
-    STDMETHOD(GetCaps)(THIS_ LPDDSCAPS2) PURE;
-    STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER FAR*) PURE;
-    STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
-    STDMETHOD(GetDC)(THIS_ HDC FAR *) PURE;
-    STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE;
-    STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE;
-    STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE FAR*) PURE;
-    STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE;
-    STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC2) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC2) PURE;
-    STDMETHOD(IsLost)(THIS) PURE;
-    STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC2,DWORD,HANDLE) PURE;
-    STDMETHOD(ReleaseDC)(THIS_ HDC) PURE;
-    STDMETHOD(Restore)(THIS) PURE;
-    STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE;
-    STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
-    STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE;
-    STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE;
-    STDMETHOD(Unlock)(THIS_ LPRECT) PURE;
-    STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE4,LPRECT,DWORD, LPDDOVERLAYFX) PURE;
-    STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE;
-    STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE4) PURE;
-    /*** Added in the v2 interface ***/
-    STDMETHOD(GetDDInterface)(THIS_ LPVOID FAR *) PURE;
-    STDMETHOD(PageLock)(THIS_ DWORD) PURE;
-    STDMETHOD(PageUnlock)(THIS_ DWORD) PURE;
-    /*** Added in the v3 interface ***/
-    STDMETHOD(SetSurfaceDesc)(THIS_ LPDDSURFACEDESC2, DWORD) PURE;
-    /*** Added in the v4 interface ***/
-    STDMETHOD(SetPrivateData)(THIS_ REFGUID, LPVOID, DWORD, DWORD) PURE;
-    STDMETHOD(GetPrivateData)(THIS_ REFGUID, LPVOID, LPDWORD) PURE;
-    STDMETHOD(FreePrivateData)(THIS_ REFGUID) PURE;
-    STDMETHOD(GetUniquenessValue)(THIS_ LPDWORD) PURE;
-    STDMETHOD(ChangeUniquenessValue)(THIS) PURE;
-};
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectDrawSurface4_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectDrawSurface4_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirectDrawSurface4_Release(p)                   (p)->lpVtbl->Release(p)
-#define IDirectDrawSurface4_AddAttachedSurface(p,a)      (p)->lpVtbl->AddAttachedSurface(p,a)
-#define IDirectDrawSurface4_AddOverlayDirtyRect(p,a)     (p)->lpVtbl->AddOverlayDirtyRect(p,a)
-#define IDirectDrawSurface4_Blt(p,a,b,c,d,e)             (p)->lpVtbl->Blt(p,a,b,c,d,e)
-#define IDirectDrawSurface4_BltBatch(p,a,b,c)            (p)->lpVtbl->BltBatch(p,a,b,c)
-#define IDirectDrawSurface4_BltFast(p,a,b,c,d,e)         (p)->lpVtbl->BltFast(p,a,b,c,d,e)
-#define IDirectDrawSurface4_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b)
-#define IDirectDrawSurface4_EnumAttachedSurfaces(p,a,b)  (p)->lpVtbl->EnumAttachedSurfaces(p,a,b)
-#define IDirectDrawSurface4_EnumOverlayZOrders(p,a,b,c)  (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c)
-#define IDirectDrawSurface4_Flip(p,a,b)                  (p)->lpVtbl->Flip(p,a,b)
-#define IDirectDrawSurface4_GetAttachedSurface(p,a,b)    (p)->lpVtbl->GetAttachedSurface(p,a,b)
-#define IDirectDrawSurface4_GetBltStatus(p,a)            (p)->lpVtbl->GetBltStatus(p,a)
-#define IDirectDrawSurface4_GetCaps(p,b)                 (p)->lpVtbl->GetCaps(p,b)
-#define IDirectDrawSurface4_GetClipper(p,a)              (p)->lpVtbl->GetClipper(p,a)
-#define IDirectDrawSurface4_GetColorKey(p,a,b)           (p)->lpVtbl->GetColorKey(p,a,b)
-#define IDirectDrawSurface4_GetDC(p,a)                   (p)->lpVtbl->GetDC(p,a)
-#define IDirectDrawSurface4_GetFlipStatus(p,a)           (p)->lpVtbl->GetFlipStatus(p,a)
-#define IDirectDrawSurface4_GetOverlayPosition(p,a,b)    (p)->lpVtbl->GetOverlayPosition(p,a,b)
-#define IDirectDrawSurface4_GetPalette(p,a)              (p)->lpVtbl->GetPalette(p,a)
-#define IDirectDrawSurface4_GetPixelFormat(p,a)          (p)->lpVtbl->GetPixelFormat(p,a)
-#define IDirectDrawSurface4_GetSurfaceDesc(p,a)          (p)->lpVtbl->GetSurfaceDesc(p,a)
-#define IDirectDrawSurface4_Initialize(p,a,b)            (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectDrawSurface4_IsLost(p)                    (p)->lpVtbl->IsLost(p)
-#define IDirectDrawSurface4_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
-#define IDirectDrawSurface4_ReleaseDC(p,a)               (p)->lpVtbl->ReleaseDC(p,a)
-#define IDirectDrawSurface4_Restore(p)                   (p)->lpVtbl->Restore(p)
-#define IDirectDrawSurface4_SetClipper(p,a)              (p)->lpVtbl->SetClipper(p,a)
-#define IDirectDrawSurface4_SetColorKey(p,a,b)           (p)->lpVtbl->SetColorKey(p,a,b)
-#define IDirectDrawSurface4_SetOverlayPosition(p,a,b)    (p)->lpVtbl->SetOverlayPosition(p,a,b)
-#define IDirectDrawSurface4_SetPalette(p,a)              (p)->lpVtbl->SetPalette(p,a)
-#define IDirectDrawSurface4_Unlock(p,b)                  (p)->lpVtbl->Unlock(p,b)
-#define IDirectDrawSurface4_UpdateOverlay(p,a,b,c,d,e)   (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e)
-#define IDirectDrawSurface4_UpdateOverlayDisplay(p,a)    (p)->lpVtbl->UpdateOverlayDisplay(p,a)
-#define IDirectDrawSurface4_UpdateOverlayZOrder(p,a,b)   (p)->lpVtbl->UpdateOverlayZOrder(p,a,b)
-#define IDirectDrawSurface4_GetDDInterface(p,a)                 (p)->lpVtbl->GetDDInterface(p,a)
-#define IDirectDrawSurface4_PageLock(p,a)               (p)->lpVtbl->PageLock(p,a)
-#define IDirectDrawSurface4_PageUnlock(p,a)             (p)->lpVtbl->PageUnlock(p,a)
-#define IDirectDrawSurface4_SetSurfaceDesc(p,a,b)       (p)->lpVtbl->SetSurfaceDesc(p,a,b)
-#define IDirectDrawSurface4_SetPrivateData(p,a,b,c,d)   (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
-#define IDirectDrawSurface4_GetPrivateData(p,a,b,c)     (p)->lpVtbl->GetPrivateData(p,a,b,c)
-#define IDirectDrawSurface4_FreePrivateData(p,a)        (p)->lpVtbl->FreePrivateData(p,a)
-#define IDirectDrawSurface4_GetUniquenessValue(p, a)     (p)->lpVtbl->GetUniquenessValue(p, a)
-#define IDirectDrawSurface4_ChangeUniquenessValue(p)     (p)->lpVtbl->ChangeUniquenessValue(p)
-#else
-#define IDirectDrawSurface4_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirectDrawSurface4_AddRef(p)                    (p)->AddRef()
-#define IDirectDrawSurface4_Release(p)                   (p)->Release()
-#define IDirectDrawSurface4_AddAttachedSurface(p,a)      (p)->AddAttachedSurface(a)
-#define IDirectDrawSurface4_AddOverlayDirtyRect(p,a)     (p)->AddOverlayDirtyRect(a)
-#define IDirectDrawSurface4_Blt(p,a,b,c,d,e)             (p)->Blt(a,b,c,d,e)
-#define IDirectDrawSurface4_BltBatch(p,a,b,c)            (p)->BltBatch(a,b,c)
-#define IDirectDrawSurface4_BltFast(p,a,b,c,d,e)         (p)->BltFast(a,b,c,d,e)
-#define IDirectDrawSurface4_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b)
-#define IDirectDrawSurface4_EnumAttachedSurfaces(p,a,b)  (p)->EnumAttachedSurfaces(a,b)
-#define IDirectDrawSurface4_EnumOverlayZOrders(p,a,b,c)  (p)->EnumOverlayZOrders(a,b,c)
-#define IDirectDrawSurface4_Flip(p,a,b)                  (p)->Flip(a,b)
-#define IDirectDrawSurface4_GetAttachedSurface(p,a,b)    (p)->GetAttachedSurface(a,b)
-#define IDirectDrawSurface4_GetBltStatus(p,a)            (p)->GetBltStatus(a)
-#define IDirectDrawSurface4_GetCaps(p,b)                 (p)->GetCaps(b)
-#define IDirectDrawSurface4_GetClipper(p,a)              (p)->GetClipper(a)
-#define IDirectDrawSurface4_GetColorKey(p,a,b)           (p)->GetColorKey(a,b)
-#define IDirectDrawSurface4_GetDC(p,a)                   (p)->GetDC(a)
-#define IDirectDrawSurface4_GetFlipStatus(p,a)           (p)->GetFlipStatus(a)
-#define IDirectDrawSurface4_GetOverlayPosition(p,a,b)    (p)->GetOverlayPosition(a,b)
-#define IDirectDrawSurface4_GetPalette(p,a)              (p)->GetPalette(a)
-#define IDirectDrawSurface4_GetPixelFormat(p,a)          (p)->GetPixelFormat(a)
-#define IDirectDrawSurface4_GetSurfaceDesc(p,a)          (p)->GetSurfaceDesc(a)
-#define IDirectDrawSurface4_Initialize(p,a,b)            (p)->Initialize(a,b)
-#define IDirectDrawSurface4_IsLost(p)                    (p)->IsLost()
-#define IDirectDrawSurface4_Lock(p,a,b,c,d)              (p)->Lock(a,b,c,d)
-#define IDirectDrawSurface4_ReleaseDC(p,a)               (p)->ReleaseDC(a)
-#define IDirectDrawSurface4_Restore(p)                   (p)->Restore()
-#define IDirectDrawSurface4_SetClipper(p,a)              (p)->SetClipper(a)
-#define IDirectDrawSurface4_SetColorKey(p,a,b)           (p)->SetColorKey(a,b)
-#define IDirectDrawSurface4_SetOverlayPosition(p,a,b)    (p)->SetOverlayPosition(a,b)
-#define IDirectDrawSurface4_SetPalette(p,a)              (p)->SetPalette(a)
-#define IDirectDrawSurface4_Unlock(p,b)                  (p)->Unlock(b)
-#define IDirectDrawSurface4_UpdateOverlay(p,a,b,c,d,e)   (p)->UpdateOverlay(a,b,c,d,e)
-#define IDirectDrawSurface4_UpdateOverlayDisplay(p,a)    (p)->UpdateOverlayDisplay(a)
-#define IDirectDrawSurface4_UpdateOverlayZOrder(p,a,b)   (p)->UpdateOverlayZOrder(a,b)
-#define IDirectDrawSurface4_GetDDInterface(p,a)                 (p)->GetDDInterface(a)
-#define IDirectDrawSurface4_PageLock(p,a)               (p)->PageLock(a)
-#define IDirectDrawSurface4_PageUnlock(p,a)             (p)->PageUnlock(a)
-#define IDirectDrawSurface4_SetSurfaceDesc(p,a,b)       (p)->SetSurfaceDesc(a,b)
-#define IDirectDrawSurface4_SetPrivateData(p,a,b,c,d)   (p)->SetPrivateData(a,b,c,d)
-#define IDirectDrawSurface4_GetPrivateData(p,a,b,c)     (p)->GetPrivateData(a,b,c)
-#define IDirectDrawSurface4_FreePrivateData(p,a)        (p)->FreePrivateData(a)
-#define IDirectDrawSurface4_GetUniquenessValue(p, a)     (p)->GetUniquenessValue(a)
-#define IDirectDrawSurface4_ChangeUniquenessValue(p)     (p)->ChangeUniquenessValue()
-#endif
-
-
-
-/*
- * IDirectDrawColorControl
- */
-#if defined( _WIN32 ) && !defined( _NO_COM )
-#undef INTERFACE
-#define INTERFACE IDirectDrawColorControl
-DECLARE_INTERFACE_( IDirectDrawColorControl, IUnknown )
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    /*** IDirectDrawColorControl methods ***/
-    STDMETHOD(GetColorControls)(THIS_ LPDDCOLORCONTROL) PURE;
-    STDMETHOD(SetColorControls)(THIS_ LPDDCOLORCONTROL) PURE;
-};
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectDrawColorControl_QueryInterface(p, a, b)  (p)->lpVtbl->QueryInterface(p, a, b)
-#define IDirectDrawColorControl_AddRef(p)                (p)->lpVtbl->AddRef(p)
-#define IDirectDrawColorControl_Release(p)               (p)->lpVtbl->Release(p)
-#define IDirectDrawColorControl_GetColorControls(p, a)   (p)->lpVtbl->GetColorControls(p, a)
-#define IDirectDrawColorControl_SetColorControls(p, a)   (p)->lpVtbl->SetColorControls(p, a)
-#else
-#define IDirectDrawColorControl_QueryInterface(p, a, b)  (p)->QueryInterface(a, b)
-#define IDirectDrawColorControl_AddRef(p)                (p)->AddRef()
-#define IDirectDrawColorControl_Release(p)               (p)->Release()
-#define IDirectDrawColorControl_GetColorControls(p, a)   (p)->GetColorControls(a)
-#define IDirectDrawColorControl_SetColorControls(p, a)   (p)->SetColorControls(a)
-#endif
-
-#endif
-
-
-/*
- * IDirectDrawGammaControl
- */
-#if defined( _WIN32 ) && !defined( _NO_COM )
-#undef INTERFACE
-#define INTERFACE IDirectDrawGammaControl
-DECLARE_INTERFACE_( IDirectDrawGammaControl, IUnknown )
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    /*** IDirectDrawColorControl methods ***/
-    STDMETHOD(GetGammaRamp)(THIS_ DWORD, LPDDGAMMARAMP) PURE;
-    STDMETHOD(SetGammaRamp)(THIS_ DWORD, LPDDGAMMARAMP) PURE;
-};
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectDrawGammaControl_QueryInterface(p, a, b)  (p)->lpVtbl->QueryInterface(p, a, b)
-#define IDirectDrawGammaControl_AddRef(p)                (p)->lpVtbl->AddRef(p)
-#define IDirectDrawGammaControl_Release(p)               (p)->lpVtbl->Release(p)
-#define IDirectDrawGammaControl_GetGammaRamp(p, a, b)    (p)->lpVtbl->GetGammaRamp(p, a, b)
-#define IDirectDrawGammaControl_SetGammaRamp(p, a, b)    (p)->lpVtbl->SetGammaRamp(p, a, b)
-#else
-#define IDirectDrawGammaControl_QueryInterface(p, a, b)  (p)->QueryInterface(a, b)
-#define IDirectDrawGammaControl_AddRef(p)                (p)->AddRef()
-#define IDirectDrawGammaControl_Release(p)               (p)->Release()
-#define IDirectDrawGammaControl_GetGammaRamp(p, a, b)    (p)->GetGammaRamp(a, b)
-#define IDirectDrawGammaControl_SetGammaRamp(p, a, b)    (p)->SetGammaRamp(a, b)
-#endif
-
-#endif
-
-
-
-#endif
-
-
-/*
- * DDSURFACEDESC
- */
-typedef struct _DDSURFACEDESC
-{
-    DWORD              dwSize;                 // size of the DDSURFACEDESC structure
-    DWORD              dwFlags;                // determines what fields are valid
-    DWORD              dwHeight;               // height of surface to be created
-    DWORD              dwWidth;                // width of input surface
-    union
-    {
-        LONG           lPitch;                 // distance to start of next line (return value only)
-        DWORD           dwLinearSize;           // Formless late-allocated optimized surface size
-    } DUMMYUNIONNAMEN(1);
-    DWORD              dwBackBufferCount;      // number of back buffers requested
-    union
-    {
-        DWORD           dwMipMapCount;          // number of mip-map levels requested
-       DWORD           dwZBufferBitDepth;      // depth of Z buffer requested
-       DWORD           dwRefreshRate;          // refresh rate (used when display mode is described)
-    } DUMMYUNIONNAMEN(2);
-    DWORD              dwAlphaBitDepth;        // depth of alpha buffer requested
-    DWORD              dwReserved;             // reserved
-    LPVOID             lpSurface;              // pointer to the associated surface memory
-    DDCOLORKEY         ddckCKDestOverlay;      // color key for destination overlay use
-    DDCOLORKEY         ddckCKDestBlt;          // color key for destination blt use
-    DDCOLORKEY         ddckCKSrcOverlay;       // color key for source overlay use
-    DDCOLORKEY         ddckCKSrcBlt;           // color key for source blt use
-    DDPIXELFORMAT      ddpfPixelFormat;        // pixel format description of the surface
-    DDSCAPS            ddsCaps;                // direct draw surface capabilities
-} DDSURFACEDESC;
-
-/*
- * DDSURFACEDESC2
- */
-typedef struct _DDSURFACEDESC2
-{
-    DWORD              dwSize;                 // size of the DDSURFACEDESC structure
-    DWORD              dwFlags;                // determines what fields are valid
-    DWORD              dwHeight;               // height of surface to be created
-    DWORD              dwWidth;                // width of input surface
-    union
-    {
-        LONG           lPitch;                 // distance to start of next line (return value only)
-        DWORD           dwLinearSize;           // Formless late-allocated optimized surface size
-    } DUMMYUNIONNAMEN(1);
-    DWORD              dwBackBufferCount;      // number of back buffers requested
-    union
-    {
-        DWORD           dwMipMapCount;          // number of mip-map levels requestde
-                                                // dwZBufferBitDepth removed, use ddpfPixelFormat one instead
-       DWORD           dwRefreshRate;          // refresh rate (used when display mode is described)
-    } DUMMYUNIONNAMEN(2);
-    DWORD              dwAlphaBitDepth;        // depth of alpha buffer requested
-    DWORD              dwReserved;             // reserved
-    LPVOID             lpSurface;              // pointer to the associated surface memory
-    DDCOLORKEY         ddckCKDestOverlay;      // color key for destination overlay use
-    DDCOLORKEY         ddckCKDestBlt;          // color key for destination blt use
-    DDCOLORKEY         ddckCKSrcOverlay;       // color key for source overlay use
-    DDCOLORKEY         ddckCKSrcBlt;           // color key for source blt use
-    DDPIXELFORMAT      ddpfPixelFormat;        // pixel format description of the surface
-    DDSCAPS2           ddsCaps;                // direct draw surface capabilities
-    DWORD               dwTextureStage;         // stage in multitexture cascade
-} DDSURFACEDESC2;
-
-/*
- * ddsCaps field is valid.
- */
-#define DDSD_CAPS              0x00000001l     // default
-
-/*
- * dwHeight field is valid.
- */
-#define DDSD_HEIGHT            0x00000002l
-
-/*
- * dwWidth field is valid.
- */
-#define DDSD_WIDTH             0x00000004l
-
-/*
- * lPitch is valid.
- */
-#define DDSD_PITCH             0x00000008l
-
-/*
- * dwBackBufferCount is valid.
- */
-#define DDSD_BACKBUFFERCOUNT   0x00000020l
-
-/*
- * dwZBufferBitDepth is valid.  (shouldnt be used in DDSURFACEDESC2)
- */
-#define DDSD_ZBUFFERBITDEPTH   0x00000040l
-
-/*
- * dwAlphaBitDepth is valid.
- */
-#define DDSD_ALPHABITDEPTH     0x00000080l
-
-
-/*
- * lpSurface is valid.
- */
-#define DDSD_LPSURFACE         0x00000800l
-
-/*
- * ddpfPixelFormat is valid.
- */
-#define DDSD_PIXELFORMAT       0x00001000l
-
-/*
- * ddckCKDestOverlay is valid.
- */
-#define DDSD_CKDESTOVERLAY     0x00002000l
-
-/*
- * ddckCKDestBlt is valid.
- */
-#define DDSD_CKDESTBLT         0x00004000l
-
-/*
- * ddckCKSrcOverlay is valid.
- */
-#define DDSD_CKSRCOVERLAY      0x00008000l
-
-/*
- * ddckCKSrcBlt is valid.
- */
-#define DDSD_CKSRCBLT          0x00010000l
-
-/*
- * dwMipMapCount is valid.
- */
-#define DDSD_MIPMAPCOUNT        0x00020000l
-
- /*
-  * dwRefreshRate is valid
-  */
-#define DDSD_REFRESHRATE       0x00040000l
-
-/*
- * dwLinearSize is valid
- */
-#define DDSD_LINEARSIZE                0x00080000l
-
-/*
- * dwTextureStage is valid
- */
-#define DDSD_TEXTURESTAGE       0x00100000l
-/*
- * All input fields are valid.
- */
-#define DDSD_ALL               0x001ff9eel
-
-
-/*
- * DDOPTSURFACEDESC
- */
-typedef struct _DDOPTSURFACEDESC
-{
-    DWORD       dwSize;             // size of the DDOPTSURFACEDESC structure
-    DWORD       dwFlags;            // determines what fields are valid
-    DDSCAPS2    ddSCaps;            // Common caps like: Memory type
-    DDOSCAPS    ddOSCaps;           // Common caps like: Memory type
-    GUID        guid;               // Compression technique GUID
-    DWORD       dwCompressionRatio; // Compression ratio
-} DDOPTSURFACEDESC;
-
-/*
- * guid field is valid.
- */
-#define DDOSD_GUID                  0x00000001l
-
-/*
- * dwCompressionRatio field is valid.
- */
-#define DDOSD_COMPRESSION_RATIO     0x00000002l
-
-/*
- * ddSCaps field is valid.
- */
-#define DDOSD_SCAPS                 0x00000004l
-
-/*
- * ddOSCaps field is valid.
- */
-#define DDOSD_OSCAPS                0x00000008l
-
-/*
- * All input fields are valid.
- */
-#define DDOSD_ALL                   0x0000000fl
-
-/*
- * The surface's optimized pixelformat is compressed
- */
-#define DDOSDCAPS_OPTCOMPRESSED                        0x00000001l
-
-/*
- * The surface's optimized pixelformat is reordered
- */
-#define DDOSDCAPS_OPTREORDERED                 0x00000002l
-
-/*
- * The opt surface is a monolithic mipmap
- */
-#define DDOSDCAPS_MONOLITHICMIPMAP             0x00000004l
-
-/*
- * The valid Surf caps:
- * #define DDSCAPS_SYSTEMMEMORY                        0x00000800l
- * #define DDSCAPS_VIDEOMEMORY         0x00004000l
- * #define DDSCAPS_LOCALVIDMEM          0x10000000l
- * #define DDSCAPS_NONLOCALVIDMEM       0x20000000l
- */
-#define DDOSDCAPS_VALIDSCAPS           0x30004800l
-
-/*
- * The valid OptSurf caps
- */
-#define DDOSDCAPS_VALIDOSCAPS          0x00000007l
-
-
-/*
- * DDCOLORCONTROL
- */
-typedef struct _DDCOLORCONTROL
-{
-    DWORD              dwSize;
-    DWORD              dwFlags;
-    LONG               lBrightness;
-    LONG               lContrast;
-    LONG               lHue;
-    LONG               lSaturation;
-    LONG               lSharpness;
-    LONG               lGamma;
-    LONG               lColorEnable;
-    DWORD              dwReserved1;
-} DDCOLORCONTROL;
-
-
-/*
- * lBrightness field is valid.
- */
-#define DDCOLOR_BRIGHTNESS             0x00000001l
-
-/*
- * lContrast field is valid.
- */
-#define DDCOLOR_CONTRAST               0x00000002l
-
-/*
- * lHue field is valid.
- */
-#define DDCOLOR_HUE                    0x00000004l
-
-/*
- * lSaturation field is valid.
- */
-#define DDCOLOR_SATURATION             0x00000008l
-
-/*
- * lSharpness field is valid.
- */
-#define DDCOLOR_SHARPNESS              0x00000010l
-
-/*
- * lGamma field is valid.
- */
-#define DDCOLOR_GAMMA                  0x00000020l
-
-/*
- * lColorEnable field is valid.
- */
-#define DDCOLOR_COLORENABLE            0x00000040l
-
-
-
-/*============================================================================
- *
- * Direct Draw Capability Flags
- *
- * These flags are used to describe the capabilities of a given Surface.
- * All flags are bit flags.
- *
- *==========================================================================*/
-
-/****************************************************************************
- *
- * DIRECTDRAWSURFACE CAPABILITY FLAGS
- *
- ****************************************************************************/
-
-/*
- * This bit is reserved. It should not be specified.
- */
-#define DDSCAPS_RESERVED1                      0x00000001l
-
-/*
- * Indicates that this surface contains alpha-only information.
- * (To determine if a surface is RGBA/YUVA, the pixel format must be
- * interrogated.)
- */
-#define DDSCAPS_ALPHA                          0x00000002l
-
-/*
- * Indicates that this surface is a backbuffer.         It is generally
- * set by CreateSurface when the DDSCAPS_FLIP capability bit is set.
- * It indicates that this surface is THE back buffer of a surface
- * flipping structure. DirectDraw supports N surfaces in a
- * surface flipping structure. Only the surface that immediately
- * precedeces the DDSCAPS_FRONTBUFFER has this capability bit set.
- * The other surfaces are identified as back buffers by the presence
- * of the DDSCAPS_FLIP capability, their attachment order, and the
- * absence of the DDSCAPS_FRONTBUFFER and DDSCAPS_BACKBUFFER
- * capabilities.  The bit is sent to CreateSurface when a standalone
- * back buffer is being created.  This surface could be attached to
- * a front buffer and/or back buffers to form a flipping surface
- * structure after the CreateSurface call.  See AddAttachments for
- * a detailed description of the behaviors in this case.
- */
-#define DDSCAPS_BACKBUFFER                     0x00000004l
-
-/*
- * Indicates a complex surface structure is being described.  A
- * complex surface structure results in the creation of more than
- * one surface.         The additional surfaces are attached to the root
- * surface.  The complex structure can only be destroyed by
- * destroying the root.
- */
-#define DDSCAPS_COMPLEX                                0x00000008l
-
-/*
- * Indicates that this surface is a part of a surface flipping structure.
- * When it is passed to CreateSurface the DDSCAPS_FRONTBUFFER and
- * DDSCAP_BACKBUFFER bits are not set. They are set by CreateSurface
- * on the resulting creations. The dwBackBufferCount field in the
- * DDSURFACEDESC structure must be set to at least 1 in order for
- * the CreateSurface call to succeed.  The DDSCAPS_COMPLEX capability
- * must always be set with creating multiple surfaces through CreateSurface.
- */
-#define DDSCAPS_FLIP                           0x00000010l
-
-/*
- * Indicates that this surface is THE front buffer of a surface flipping
- * structure.  It is generally set by CreateSurface when the DDSCAPS_FLIP
- * capability bit is set.
- * If this capability is sent to CreateSurface then a standalonw front buffer
- * is created. This surface will not have the DDSCAPS_FLIP capability.
- * It can be attached to other back buffers to form a flipping structure.
- * See AddAttachments for a detailed description of the behaviors in this
- * case.
- */
-#define DDSCAPS_FRONTBUFFER                    0x00000020l
-
-/*
- * Indicates that this surface is any offscreen surface that is not an overlay,
- * texture, zbuffer, front buffer, back buffer, or alpha surface.  It is used
- * to identify plain vanilla surfaces.
- */
-#define DDSCAPS_OFFSCREENPLAIN                 0x00000040l
-
-/*
- * Indicates that this surface is an overlay.  It may or may not be directly visible
- * depending on whether or not it is currently being overlayed onto the primary
- * surface.  DDSCAPS_VISIBLE can be used to determine whether or not it is being
- * overlayed at the moment.
- */
-#define DDSCAPS_OVERLAY                                0x00000080l
-
-/*
- * Indicates that unique DirectDrawPalette objects can be created and
- * attached to this surface.
- */
-#define DDSCAPS_PALETTE                                0x00000100l
-
-/*
- * Indicates that this surface is the primary surface. The primary
- * surface represents what the user is seeing at the moment.
- */
-#define DDSCAPS_PRIMARYSURFACE                 0x00000200l
-
-/*
- * Indicates that this surface is the primary surface for the left eye.
- * The primary surface for the left eye represents what the user is seeing
- * at the moment with the users left eye.  When this surface is created the
- * DDSCAPS_PRIMARYSURFACE represents what the user is seeing with the users
- * right eye.
- */
-#define DDSCAPS_PRIMARYSURFACELEFT             0x00000400l
-
-/*
- * Indicates that this surface memory was allocated in system memory
- */
-#define DDSCAPS_SYSTEMMEMORY                   0x00000800l
-
-/*
- * Indicates that this surface can be used as a 3D texture.  It does not
- * indicate whether or not the surface is being used for that purpose.
- */
-#define DDSCAPS_TEXTURE                                0x00001000l
-
-/*
- * Indicates that a surface may be a destination for 3D rendering.  This
- * bit must be set in order to query for a Direct3D Device Interface
- * from this surface.
- */
-#define DDSCAPS_3DDEVICE                        0x00002000l
-
-/*
- * Indicates that this surface exists in video memory.
- */
-#define DDSCAPS_VIDEOMEMORY                    0x00004000l
-
-/*
- * Indicates that changes made to this surface are immediately visible.
- * It is always set for the primary surface and is set for overlays while
- * they are being overlayed and texture maps while they are being textured.
- */
-#define DDSCAPS_VISIBLE                                0x00008000l
-
-/*
- * Indicates that only writes are permitted to the surface.  Read accesses
- * from the surface may or may not generate a protection fault, but the
- * results of a read from this surface will not be meaningful. READ ONLY.
- */
-#define DDSCAPS_WRITEONLY                      0x00010000l
-
-/*
- * Indicates that this surface is a z buffer. A z buffer does not contain
- * displayable information.  Instead it contains bit depth information that is
- * used to determine which pixels are visible and which are obscured.
- */
-#define DDSCAPS_ZBUFFER                                0x00020000l
-
-/*
- * Indicates surface will have a DC associated long term
- */
-#define DDSCAPS_OWNDC                          0x00040000l
-
-/*
- * Indicates surface should be able to receive live video
- */
-#define DDSCAPS_LIVEVIDEO                      0x00080000l
-
-/*
- * Indicates surface should be able to have a stream decompressed
- * to it by the hardware.
- */
-#define DDSCAPS_HWCODEC                                0x00100000l
-
-/*
- * Surface is a ModeX surface.
- *
- */
-#define DDSCAPS_MODEX                          0x00200000l
-
-/*
- * Indicates surface is one level of a mip-map. This surface will
- * be attached to other DDSCAPS_MIPMAP surfaces to form the mip-map.
- * This can be done explicitly, by creating a number of surfaces and
- * attaching them with AddAttachedSurface or by implicitly by CreateSurface.
- * If this bit is set then DDSCAPS_TEXTURE must also be set.
- */
-#define DDSCAPS_MIPMAP                          0x00400000l
-
-/*
- * This bit is reserved. It should not be specified.
- */
-#define DDSCAPS_RESERVED2                       0x00800000l
-
-
-/*
- * Indicates that memory for the surface is not allocated until the surface
- * is loaded (via the Direct3D texture Load() function).
- */
-#define DDSCAPS_ALLOCONLOAD                     0x04000000l
-
-/*
- * Indicates that the surface will recieve data from a video port.
- */
-#define DDSCAPS_VIDEOPORT                      0x08000000l
-
-/*
- * Indicates that a video memory surface is resident in true, local video
- * memory rather than non-local video memory. If this flag is specified then
- * so must DDSCAPS_VIDEOMEMORY. This flag is mutually exclusive with
- * DDSCAPS_NONLOCALVIDMEM.
- */
-#define DDSCAPS_LOCALVIDMEM                     0x10000000l
-
-/*
- * Indicates that a video memory surface is resident in non-local video
- * memory rather than true, local video memory. If this flag is specified
- * then so must DDSCAPS_VIDEOMEMORY. This flag is mutually exclusive with
- * DDSCAPS_LOCALVIDMEM.
- */
-#define DDSCAPS_NONLOCALVIDMEM                  0x20000000l
-
-/*
- * Indicates that this surface is a standard VGA mode surface, and not a
- * ModeX surface. (This flag will never be set in combination with the
- * DDSCAPS_MODEX flag).
- */
-#define DDSCAPS_STANDARDVGAMODE                 0x40000000l
-
-/*
- * Indicates that this surface will be an optimized surface. This flag is
- * currently only valid in conjunction with the DDSCAPS_TEXTURE flag. The surface
- * will be created without any underlying video memory until loaded.
- */
-#define DDSCAPS_OPTIMIZED                       0x80000000l
-
-
-
-
-/*
- * Indicates that this surface will receive data from a video port using
- * the de-interlacing hardware.  This allows the driver to allocate memory
- * for any extra buffers that may be required.  The DDSCAPS_VIDEOPORT and
- * DDSCAPS_OVERLAY flags must also be set.
- */
-#define DDSCAPS2_HARDWAREDEINTERLACE            0x00000002L
-
-/*
- * Indicates to the driver that this surface will be locked very frequently
- * (for procedural textures, dynamic lightmaps, etc). Surfaces with this cap
- * set must also have DDSCAPS_TEXTURE. This cap cannot be used with
- * DDSCAPS2_HINTSTATIC and DDSCAPS2_OPAQUE.
- */
-#define DDSCAPS2_HINTDYNAMIC                   0x00000004L
-
-/*
- * Indicates to the driver that this surface can be re-ordered/retiled on
- * load. This operation will not change the size of the texture. It is
- * relatively fast and symmetrical, since the application may lock these
- * bits (although it will take a performance hit when doing so). Surfaces
- * with this cap set must also have DDSCAPS_TEXTURE. This cap cannot be
- * used with DDSCAPS2_HINTDYNAMIC and DDSCAPS2_OPAQUE.
- */
-#define DDSCAPS2_HINTSTATIC                    0x00000008L
-
-/*
- * Indicates that the client would like this texture surface to be managed by the
- * DirectDraw/Direct3D runtime. Surfaces with this cap set must also have
- * DDSCAPS_TEXTURE set.
- */
-#define DDSCAPS2_TEXTUREMANAGE                  0x00000010L
-
-/*
- * These bits are reserved for internal use */
-#define DDSCAPS2_RESERVED1                      0x00000020L
-#define DDSCAPS2_RESERVED2                      0x00000040L
-
-/*
- * Indicates to the driver that this surface will never be locked again.
- * The driver is free to optimize this surface via retiling and actual compression.
- * All calls to Lock() or Blts from this surface will fail. Surfaces with this
- * cap set must also have DDSCAPS_TEXTURE. This cap cannot be used with
- * DDSCAPS2_HINTDYNAMIC and DDSCAPS2_HINTSTATIC.
- */
-#define DDSCAPS2_OPAQUE                         0x00000080L
-
-/*
- * Applications should set this bit at CreateSurface time to indicate that they
- * intend to use antialiasing. Only valid if DDSCAPS_3DDEVICE is also set.
- */
-#define DDSCAPS2_HINTANTIALIASING               0x00000100L
-
-
-
-
- /****************************************************************************
- *
- * DIRECTDRAW DRIVER CAPABILITY FLAGS
- *
- ****************************************************************************/
-
-/*
- * Display hardware has 3D acceleration.
- */
-#define DDCAPS_3D                      0x00000001l
-
-/*
- * Indicates that DirectDraw will support only dest rectangles that are aligned
- * on DIRECTDRAWCAPS.dwAlignBoundaryDest boundaries of the surface, respectively.
- * READ ONLY.
- */
-#define DDCAPS_ALIGNBOUNDARYDEST       0x00000002l
-
-/*
- * Indicates that DirectDraw will support only source rectangles  whose sizes in
- * BYTEs are DIRECTDRAWCAPS.dwAlignSizeDest multiples, respectively.  READ ONLY.
- */
-#define DDCAPS_ALIGNSIZEDEST           0x00000004l
-/*
- * Indicates that DirectDraw will support only source rectangles that are aligned
- * on DIRECTDRAWCAPS.dwAlignBoundarySrc boundaries of the surface, respectively.
- * READ ONLY.
- */
-#define DDCAPS_ALIGNBOUNDARYSRC                0x00000008l
-
-/*
- * Indicates that DirectDraw will support only source rectangles  whose sizes in
- * BYTEs are DIRECTDRAWCAPS.dwAlignSizeSrc multiples, respectively.  READ ONLY.
- */
-#define DDCAPS_ALIGNSIZESRC            0x00000010l
-
-/*
- * Indicates that DirectDraw will create video memory surfaces that have a stride
- * alignment equal to DIRECTDRAWCAPS.dwAlignStride.  READ ONLY.
- */
-#define DDCAPS_ALIGNSTRIDE             0x00000020l
-
-/*
- * Display hardware is capable of blt operations.
- */
-#define DDCAPS_BLT                     0x00000040l
-
-/*
- * Display hardware is capable of asynchronous blt operations.
- */
-#define DDCAPS_BLTQUEUE                        0x00000080l
-
-/*
- * Display hardware is capable of color space conversions during the blt operation.
- */
-#define DDCAPS_BLTFOURCC               0x00000100l
-
-/*
- * Display hardware is capable of stretching during blt operations.
- */
-#define DDCAPS_BLTSTRETCH              0x00000200l
-
-/*
- * Display hardware is shared with GDI.
- */
-#define DDCAPS_GDI                     0x00000400l
-
-/*
- * Display hardware can overlay.
- */
-#define DDCAPS_OVERLAY                 0x00000800l
-
-/*
- * Set if display hardware supports overlays but can not clip them.
- */
-#define DDCAPS_OVERLAYCANTCLIP         0x00001000l
-
-/*
- * Indicates that overlay hardware is capable of color space conversions during
- * the overlay operation.
- */
-#define DDCAPS_OVERLAYFOURCC           0x00002000l
-
-/*
- * Indicates that stretching can be done by the overlay hardware.
- */
-#define DDCAPS_OVERLAYSTRETCH          0x00004000l
-
-/*
- * Indicates that unique DirectDrawPalettes can be created for DirectDrawSurfaces
- * other than the primary surface.
- */
-#define DDCAPS_PALETTE                 0x00008000l
-
-/*
- * Indicates that palette changes can be syncd with the veritcal refresh.
- */
-#define DDCAPS_PALETTEVSYNC            0x00010000l
-
-/*
- * Display hardware can return the current scan line.
- */
-#define DDCAPS_READSCANLINE            0x00020000l
-
-/*
- * Display hardware has stereo vision capabilities.  DDSCAPS_PRIMARYSURFACELEFT
- * can be created.
- */
-#define DDCAPS_STEREOVIEW              0x00040000l
-
-/*
- * Display hardware is capable of generating a vertical blank interrupt.
- */
-#define DDCAPS_VBI                     0x00080000l
-
-/*
- * Supports the use of z buffers with blt operations.
- */
-#define DDCAPS_ZBLTS                   0x00100000l
-
-/*
- * Supports Z Ordering of overlays.
- */
-#define DDCAPS_ZOVERLAYS               0x00200000l
-
-/*
- * Supports color key
- */
-#define DDCAPS_COLORKEY                        0x00400000l
-
-/*
- * Supports alpha surfaces
- */
-#define DDCAPS_ALPHA                   0x00800000l
-
-/*
- * colorkey is hardware assisted(DDCAPS_COLORKEY will also be set)
- */
-#define DDCAPS_COLORKEYHWASSIST                0x01000000l
-
-/*
- * no hardware support at all
- */
-#define DDCAPS_NOHARDWARE              0x02000000l
-
-/*
- * Display hardware is capable of color fill with bltter
- */
-#define DDCAPS_BLTCOLORFILL            0x04000000l
-
-/*
- * Display hardware is bank switched, and potentially very slow at
- * random access to VRAM.
- */
-#define DDCAPS_BANKSWITCHED            0x08000000l
-
-/*
- * Display hardware is capable of depth filling Z-buffers with bltter
- */
-#define DDCAPS_BLTDEPTHFILL            0x10000000l
-
-/*
- * Display hardware is capable of clipping while bltting.
- */
-#define DDCAPS_CANCLIP                 0x20000000l
-
-/*
- * Display hardware is capable of clipping while stretch bltting.
- */
-#define DDCAPS_CANCLIPSTRETCHED                0x40000000l
-
-/*
- * Display hardware is capable of bltting to or from system memory
- */
-#define DDCAPS_CANBLTSYSMEM            0x80000000l
-
-
- /****************************************************************************
- *
- * MORE DIRECTDRAW DRIVER CAPABILITY FLAGS (dwCaps2)
- *
- ****************************************************************************/
-
-/*
- * Display hardware is certified
- */
-#define DDCAPS2_CERTIFIED              0x00000001l
-
-/*
- * Driver cannot interleave 2D operations (lock and blt) to surfaces with
- * Direct3D rendering operations between calls to BeginScene() and EndScene()
- */
-#define DDCAPS2_NO2DDURING3DSCENE       0x00000002l
-
-/*
- * Display hardware contains a video port
- */
-#define DDCAPS2_VIDEOPORT               0x00000004l
-
-/*
- * The overlay can be automatically flipped according to the video port
- * VSYNCs, providing automatic doubled buffered display of video port
- * data using an overlay
- */
-#define DDCAPS2_AUTOFLIPOVERLAY         0x00000008l
-
-/*
- * Overlay can display each field of interlaced data individually while
- * it is interleaved in memory without causing jittery artifacts.
- */
-#define DDCAPS2_CANBOBINTERLEAVED       0x00000010l
-
-/*
- * Overlay can display each field of interlaced data individually while
- * it is not interleaved in memory without causing jittery artifacts.
- */
-#define DDCAPS2_CANBOBNONINTERLEAVED    0x00000020l
-
-/*
- * The overlay surface contains color controls (brightness, sharpness, etc.)
- */
-#define DDCAPS2_COLORCONTROLOVERLAY     0x00000040l
-
-/*
- * The primary surface contains color controls (gamma, etc.)
- */
-#define DDCAPS2_COLORCONTROLPRIMARY     0x00000080l
-
-/*
- * RGBZ -> RGB supported for 16:16 RGB:Z
- */
-#define DDCAPS2_CANDROPZ16BIT           0x00000100l
-
-/*
- * Driver supports non-local video memory.
- */
-#define DDCAPS2_NONLOCALVIDMEM          0x00000200l
-
-/*
- * Dirver supports non-local video memory but has different capabilities for
- * non-local video memory surfaces. If this bit is set then so must
- * DDCAPS2_NONLOCALVIDMEM.
- */
-#define DDCAPS2_NONLOCALVIDMEMCAPS      0x00000400l
-
-/*
- * Driver neither requires nor prefers surfaces to be pagelocked when performing
- * blts involving system memory surfaces
- */
-#define DDCAPS2_NOPAGELOCKREQUIRED      0x00000800l
-
-/*
- * Driver can create surfaces which are wider than the primary surface
- */
-#define DDCAPS2_WIDESURFACES            0x00001000l
-
-/*
- * Driver supports bob without using a video port by handling the
- * DDFLIP_ODD and DDFLIP_EVEN flags specified in Flip.
- */
-#define DDCAPS2_CANFLIPODDEVEN          0x00002000l
-
-/*
- * Driver supports bob using hardware
- */
-#define DDCAPS2_CANBOBHARDWARE          0x00004000l
-
-/*
- * Driver supports bltting any FOURCC surface to another surface of the same FOURCC
- */
-#define DDCAPS2_COPYFOURCC              0x00008000l
-
-
-/*
- * Driver supports loadable gamma ramps for the primary surface
- */
-#define DDCAPS2_PRIMARYGAMMA            0x00020000l
-
-/*
- * Driver can render in windowed mode.
- */
-#define DDCAPS2_CANRENDERWINDOWED       0x00080000l
-
-/*
- * A calibrator is available to adjust the gamma ramp according to the
- * physical display properties so that the result will be identical on
- * all calibrated systems.
- */
-#define DDCAPS2_CANCALIBRATEGAMMA       0x00100000l
-
-/*
- * Indicates that the driver will respond to DDFLIP_INTERVALn flags
- */
-#define DDCAPS2_FLIPINTERVAL            0x00200000l
-
-/*
- * Indicates that the driver will respond to DDFLIP_NOVSYNC
- */
-#define DDCAPS2_FLIPNOVSYNC             0x00400000l
-
-
-/****************************************************************************
- *
- * DIRECTDRAW FX ALPHA CAPABILITY FLAGS
- *
- ****************************************************************************/
-
-/*
- * Supports alpha blending around the edge of a source color keyed surface.
- * For Blt.
- */
-#define DDFXALPHACAPS_BLTALPHAEDGEBLEND                0x00000001l
-
-/*
- * Supports alpha information in the pixel format.  The bit depth of alpha
- * information in the pixel format can be 1,2,4, or 8. The alpha value becomes
- * more opaque as the alpha value increases.  (0 is transparent.)
- * For Blt.
- */
-#define DDFXALPHACAPS_BLTALPHAPIXELS           0x00000002l
-
-/*
- * Supports alpha information in the pixel format.  The bit depth of alpha
- * information in the pixel format can be 1,2,4, or 8. The alpha value
- * becomes more transparent as the alpha value increases.  (0 is opaque.)
- * This flag can only be set if DDCAPS_ALPHA is set.
- * For Blt.
- */
-#define DDFXALPHACAPS_BLTALPHAPIXELSNEG                0x00000004l
-
-/*
- * Supports alpha only surfaces.  The bit depth of an alpha only surface can be
- * 1,2,4, or 8.         The alpha value becomes more opaque as the alpha value increases.
- * (0 is transparent.)
- * For Blt.
- */
-#define DDFXALPHACAPS_BLTALPHASURFACES         0x00000008l
-
-/*
- * The depth of the alpha channel data can range can be 1,2,4, or 8.
- * The NEG suffix indicates that this alpha channel becomes more transparent
- * as the alpha value increases. (0 is opaque.)         This flag can only be set if
- * DDCAPS_ALPHA is set.
- * For Blt.
- */
-#define DDFXALPHACAPS_BLTALPHASURFACESNEG      0x00000010l
-
-/*
- * Supports alpha blending around the edge of a source color keyed surface.
- * For Overlays.
- */
-#define DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND    0x00000020l
-
-/*
- * Supports alpha information in the pixel format.  The bit depth of alpha
- * information in the pixel format can be 1,2,4, or 8. The alpha value becomes
- * more opaque as the alpha value increases.  (0 is transparent.)
- * For Overlays.
- */
-#define DDFXALPHACAPS_OVERLAYALPHAPIXELS       0x00000040l
-
-/*
- * Supports alpha information in the pixel format.  The bit depth of alpha
- * information in the pixel format can be 1,2,4, or 8. The alpha value
- * becomes more transparent as the alpha value increases.  (0 is opaque.)
- * This flag can only be set if DDCAPS_ALPHA is set.
- * For Overlays.
- */
-#define DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG    0x00000080l
-
-/*
- * Supports alpha only surfaces.  The bit depth of an alpha only surface can be
- * 1,2,4, or 8.         The alpha value becomes more opaque as the alpha value increases.
- * (0 is transparent.)
- * For Overlays.
- */
-#define DDFXALPHACAPS_OVERLAYALPHASURFACES     0x00000100l
-
-/*
- * The depth of the alpha channel data can range can be 1,2,4, or 8.
- * The NEG suffix indicates that this alpha channel becomes more transparent
- * as the alpha value increases. (0 is opaque.)         This flag can only be set if
- * DDCAPS_ALPHA is set.
- * For Overlays.
- */
-#define DDFXALPHACAPS_OVERLAYALPHASURFACESNEG  0x00000200l
-
-#if DIRECTDRAW_VERSION < 0x0600
-#endif  //DIRECTDRAW_VERSION
-
-
-
-
-/****************************************************************************
- *
- * DIRECTDRAW FX CAPABILITY FLAGS
- *
- ****************************************************************************/
-
-/*
- * Uses arithmetic operations to stretch and shrink surfaces during blt
- * rather than pixel doubling techniques.  Along the Y axis.
- */
-#define DDFXCAPS_BLTARITHSTRETCHY      0x00000020l
-
-/*
- * Uses arithmetic operations to stretch during blt
- * rather than pixel doubling techniques.  Along the Y axis. Only
- * works for x1, x2, etc.
- */
-#define DDFXCAPS_BLTARITHSTRETCHYN     0x00000010l
-
-/*
- * Supports mirroring left to right in blt.
- */
-#define DDFXCAPS_BLTMIRRORLEFTRIGHT    0x00000040l
-
-/*
- * Supports mirroring top to bottom in blt.
- */
-#define DDFXCAPS_BLTMIRRORUPDOWN       0x00000080l
-
-/*
- * Supports arbitrary rotation for blts.
- */
-#define DDFXCAPS_BLTROTATION           0x00000100l
-
-/*
- * Supports 90 degree rotations for blts.
- */
-#define DDFXCAPS_BLTROTATION90         0x00000200l
-
-/*
- * DirectDraw supports arbitrary shrinking of a surface along the
- * x axis (horizontal direction) for blts.
- */
-#define DDFXCAPS_BLTSHRINKX            0x00000400l
-
-/*
- * DirectDraw supports integer shrinking (1x,2x,) of a surface
- * along the x axis (horizontal direction) for blts.
- */
-#define DDFXCAPS_BLTSHRINKXN           0x00000800l
-
-/*
- * DirectDraw supports arbitrary shrinking of a surface along the
- * y axis (horizontal direction) for blts.
- */
-#define DDFXCAPS_BLTSHRINKY            0x00001000l
-
-/*
- * DirectDraw supports integer shrinking (1x,2x,) of a surface
- * along the y axis (vertical direction) for blts.
- */
-#define DDFXCAPS_BLTSHRINKYN           0x00002000l
-
-/*
- * DirectDraw supports arbitrary stretching of a surface along the
- * x axis (horizontal direction) for blts.
- */
-#define DDFXCAPS_BLTSTRETCHX           0x00004000l
-
-/*
- * DirectDraw supports integer stretching (1x,2x,) of a surface
- * along the x axis (horizontal direction) for blts.
- */
-#define DDFXCAPS_BLTSTRETCHXN          0x00008000l
-
-/*
- * DirectDraw supports arbitrary stretching of a surface along the
- * y axis (horizontal direction) for blts.
- */
-#define DDFXCAPS_BLTSTRETCHY           0x00010000l
-
-/*
- * DirectDraw supports integer stretching (1x,2x,) of a surface
- * along the y axis (vertical direction) for blts.
- */
-#define DDFXCAPS_BLTSTRETCHYN          0x00020000l
-
-/*
- * Uses arithmetic operations to stretch and shrink surfaces during
- * overlay rather than pixel doubling techniques.  Along the Y axis
- * for overlays.
- */
-#define DDFXCAPS_OVERLAYARITHSTRETCHY  0x00040000l
-
-/*
- * Uses arithmetic operations to stretch surfaces during
- * overlay rather than pixel doubling techniques.  Along the Y axis
- * for overlays. Only works for x1, x2, etc.
- */
-#define DDFXCAPS_OVERLAYARITHSTRETCHYN 0x00000008l
-
-/*
- * DirectDraw supports arbitrary shrinking of a surface along the
- * x axis (horizontal direction) for overlays.
- */
-#define DDFXCAPS_OVERLAYSHRINKX                0x00080000l
-
-/*
- * DirectDraw supports integer shrinking (1x,2x,) of a surface
- * along the x axis (horizontal direction) for overlays.
- */
-#define DDFXCAPS_OVERLAYSHRINKXN       0x00100000l
-
-/*
- * DirectDraw supports arbitrary shrinking of a surface along the
- * y axis (horizontal direction) for overlays.
- */
-#define DDFXCAPS_OVERLAYSHRINKY                0x00200000l
-
-/*
- * DirectDraw supports integer shrinking (1x,2x,) of a surface
- * along the y axis (vertical direction) for overlays.
- */
-#define DDFXCAPS_OVERLAYSHRINKYN       0x00400000l
-
-/*
- * DirectDraw supports arbitrary stretching of a surface along the
- * x axis (horizontal direction) for overlays.
- */
-#define DDFXCAPS_OVERLAYSTRETCHX       0x00800000l
-
-/*
- * DirectDraw supports integer stretching (1x,2x,) of a surface
- * along the x axis (horizontal direction) for overlays.
- */
-#define DDFXCAPS_OVERLAYSTRETCHXN      0x01000000l
-
-/*
- * DirectDraw supports arbitrary stretching of a surface along the
- * y axis (horizontal direction) for overlays.
- */
-#define DDFXCAPS_OVERLAYSTRETCHY       0x02000000l
-
-/*
- * DirectDraw supports integer stretching (1x,2x,) of a surface
- * along the y axis (vertical direction) for overlays.
- */
-#define DDFXCAPS_OVERLAYSTRETCHYN      0x04000000l
-
-/*
- * DirectDraw supports mirroring of overlays across the vertical axis
- */
-#define DDFXCAPS_OVERLAYMIRRORLEFTRIGHT        0x08000000l
-
-/*
- * DirectDraw supports mirroring of overlays across the horizontal axis
- */
-#define DDFXCAPS_OVERLAYMIRRORUPDOWN   0x10000000l
-
-/*
- * Driver can do alpha blending for blits.
- */
-#define DDFXCAPS_BLTALPHA              0x00000001l
-
-/*
- * Driver can do geometric transformations (or warps) for blits.
- */
-#define DDFXCAPS_BLTTRANSFORM          0x00000002l
-
-/*
- * Driver can do surface-reconstruction filtering for warped blits.
- */
-#define DDFXCAPS_BLTFILTER             DDFXCAPS_BLTARITHSTRETCHY
-
-/*
- * Driver can do alpha blending for overlays.
- */
-#define DDFXCAPS_OVERLAYALPHA          0x00000004l
-
-/*
- * Driver can do geometric transformations (or warps) for overlays.
- */
-#define DDFXCAPS_OVERLAYTRANSFORM      0x20000000l
-
-/*
- * Driver can do surface-reconstruction filtering for warped overlays.
- */
-#define DDFXCAPS_OVERLAYFILTER                 DDFXCAPS_OVERLAYARITHSTRETCHY
-
-
-/****************************************************************************
- *
- * DIRECTDRAW STEREO VIEW CAPABILITIES
- *
- ****************************************************************************/
-
-/*
- * The stereo view is accomplished via enigma encoding.
- */
-#define DDSVCAPS_ENIGMA                        0x00000001l
-
-/*
- * The stereo view is accomplished via high frequency flickering.
- */
-#define DDSVCAPS_FLICKER               0x00000002l
-
-/*
- * The stereo view is accomplished via red and blue filters applied
- * to the left and right eyes. All images must adapt their colorspaces
- * for this process.
- */
-#define DDSVCAPS_REDBLUE               0x00000004l
-
-/*
- * The stereo view is accomplished with split screen technology.
- */
-#define DDSVCAPS_SPLIT                 0x00000008l
-
-/****************************************************************************
- *
- * DIRECTDRAWPALETTE CAPABILITIES
- *
- ****************************************************************************/
-
-/*
- * Index is 4 bits.  There are sixteen color entries in the palette table.
- */
-#define DDPCAPS_4BIT                   0x00000001l
-
-/*
- * Index is onto a 8 bit color index.  This field is only valid with the
- * DDPCAPS_1BIT, DDPCAPS_2BIT or DDPCAPS_4BIT capability and the target
- * surface is in 8bpp. Each color entry is one byte long and is an index
- * into destination surface's 8bpp palette.
- */
-#define DDPCAPS_8BITENTRIES            0x00000002l
-
-/*
- * Index is 8 bits.  There are 256 color entries in the palette table.
- */
-#define DDPCAPS_8BIT                   0x00000004l
-
-/*
- * Indicates that this DIRECTDRAWPALETTE should use the palette color array
- * passed into the lpDDColorArray parameter to initialize the DIRECTDRAWPALETTE
- * object.
- */
-#define DDPCAPS_INITIALIZE             0x00000008l
-
-/*
- * This palette is the one attached to the primary surface.  Changing this
- * table has immediate effect on the display unless DDPSETPAL_VSYNC is specified
- * and supported.
- */
-#define DDPCAPS_PRIMARYSURFACE         0x00000010l
-
-/*
- * This palette is the one attached to the primary surface left.  Changing
- * this table has immediate effect on the display for the left eye unless
- * DDPSETPAL_VSYNC is specified and supported.
- */
-#define DDPCAPS_PRIMARYSURFACELEFT     0x00000020l
-
-/*
- * This palette can have all 256 entries defined
- */
-#define DDPCAPS_ALLOW256               0x00000040l
-
-/*
- * This palette can have modifications to it synced with the monitors
- * refresh rate.
- */
-#define DDPCAPS_VSYNC                  0x00000080l
-
-/*
- * Index is 1 bit.  There are two color entries in the palette table.
- */
-#define DDPCAPS_1BIT                   0x00000100l
-
-/*
- * Index is 2 bit.  There are four color entries in the palette table.
- */
-#define DDPCAPS_2BIT                   0x00000200l
-
-/*
- * The peFlags member of PALETTEENTRY denotes an 8 bit alpha value
- */
-#define DDPCAPS_ALPHA                  0x00000400l
-
-
-/****************************************************************************
- *
- * DIRECTDRAWPALETTE SETENTRY CONSTANTS
- *
- ****************************************************************************/
-
-
-/****************************************************************************
- *
- * DIRECTDRAWPALETTE GETENTRY CONSTANTS
- *
- ****************************************************************************/
-
-/* 0 is the only legal value */
-
-/****************************************************************************
- *
- * DIRECTDRAWSURFACE SETPRIVATEDATA CONSTANTS
- *
- ****************************************************************************/
-
-/*
- * The passed pointer is an IUnknown ptr. The cbData argument to SetPrivateData
- * must be set to sizeof(IUnknown*). DirectDraw will call AddRef through this
- * pointer and Release when the private data is destroyed. This includes when
- * the surface or palette is destroyed before such priovate data is destroyed.
- */
-#define DDSPD_IUNKNOWNPOINTER           0x00000001L
-
-/*
- * Private data is only valid for the current state of the object,
- * as determined by the uniqueness value.
- */
-#define DDSPD_VOLATILE                  0x00000002L
-
-
-/****************************************************************************
- *
- * DIRECTDRAWSURFACE SETPALETTE CONSTANTS
- *
- ****************************************************************************/
-
-
-/****************************************************************************
- *
- * DIRECTDRAW BITDEPTH CONSTANTS
- *
- * NOTE:  These are only used to indicate supported bit depths.   These
- * are flags only, they are not to be used as an actual bit depth.   The
- * absolute numbers 1, 2, 4, 8, 16, 24 and 32 are used to indicate actual
- * bit depths in a surface or for changing the display mode.
- *
- ****************************************************************************/
-
-/*
- * 1 bit per pixel.
- */
-#define DDBD_1                 0x00004000l
-
-/*
- * 2 bits per pixel.
- */
-#define DDBD_2                 0x00002000l
-
-/*
- * 4 bits per pixel.
- */
-#define DDBD_4                 0x00001000l
-
-/*
- * 8 bits per pixel.
- */
-#define DDBD_8                 0x00000800l
-
-/*
- * 16 bits per pixel.
- */
-#define DDBD_16                        0x00000400l
-
-/*
- * 24 bits per pixel.
- */
-#define DDBD_24                        0X00000200l
-
-/*
- * 32 bits per pixel.
- */
-#define DDBD_32                        0x00000100l
-
-/****************************************************************************
- *
- * DIRECTDRAWSURFACE SET/GET COLOR KEY FLAGS
- *
- ****************************************************************************/
-
-/*
- * Set if the structure contains a color space.         Not set if the structure
- * contains a single color key.
- */
-#define DDCKEY_COLORSPACE      0x00000001l
-
-/*
- * Set if the structure specifies a color key or color space which is to be
- * used as a destination color key for blt operations.
- */
-#define DDCKEY_DESTBLT         0x00000002l
-
-/*
- * Set if the structure specifies a color key or color space which is to be
- * used as a destination color key for overlay operations.
- */
-#define DDCKEY_DESTOVERLAY     0x00000004l
-
-/*
- * Set if the structure specifies a color key or color space which is to be
- * used as a source color key for blt operations.
- */
-#define DDCKEY_SRCBLT          0x00000008l
-
-/*
- * Set if the structure specifies a color key or color space which is to be
- * used as a source color key for overlay operations.
- */
-#define DDCKEY_SRCOVERLAY      0x00000010l
-
-
-/****************************************************************************
- *
- * DIRECTDRAW COLOR KEY CAPABILITY FLAGS
- *
- ****************************************************************************/
-
-/*
- * Supports transparent blting using a color key to identify the replaceable
- * bits of the destination surface for RGB colors.
- */
-#define DDCKEYCAPS_DESTBLT                     0x00000001l
-
-/*
- * Supports transparent blting using a color space to identify the replaceable
- * bits of the destination surface for RGB colors.
- */
-#define DDCKEYCAPS_DESTBLTCLRSPACE             0x00000002l
-
-/*
- * Supports transparent blting using a color space to identify the replaceable
- * bits of the destination surface for YUV colors.
- */
-#define DDCKEYCAPS_DESTBLTCLRSPACEYUV          0x00000004l
-
-/*
- * Supports transparent blting using a color key to identify the replaceable
- * bits of the destination surface for YUV colors.
- */
-#define DDCKEYCAPS_DESTBLTYUV                  0x00000008l
-
-/*
- * Supports overlaying using colorkeying of the replaceable bits of the surface
- * being overlayed for RGB colors.
- */
-#define DDCKEYCAPS_DESTOVERLAY                 0x00000010l
-
-/*
- * Supports a color space as the color key for the destination for RGB colors.
- */
-#define DDCKEYCAPS_DESTOVERLAYCLRSPACE         0x00000020l
-
-/*
- * Supports a color space as the color key for the destination for YUV colors.
- */
-#define DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV      0x00000040l
-
-/*
- * Supports only one active destination color key value for visible overlay
- * surfaces.
- */
-#define DDCKEYCAPS_DESTOVERLAYONEACTIVE                0x00000080l
-
-/*
- * Supports overlaying using colorkeying of the replaceable bits of the
- * surface being overlayed for YUV colors.
- */
-#define DDCKEYCAPS_DESTOVERLAYYUV              0x00000100l
-
-/*
- * Supports transparent blting using the color key for the source with
- * this surface for RGB colors.
- */
-#define DDCKEYCAPS_SRCBLT                      0x00000200l
-
-/*
- * Supports transparent blting using a color space for the source with
- * this surface for RGB colors.
- */
-#define DDCKEYCAPS_SRCBLTCLRSPACE              0x00000400l
-
-/*
- * Supports transparent blting using a color space for the source with
- * this surface for YUV colors.
- */
-#define DDCKEYCAPS_SRCBLTCLRSPACEYUV           0x00000800l
-
-/*
- * Supports transparent blting using the color key for the source with
- * this surface for YUV colors.
- */
-#define DDCKEYCAPS_SRCBLTYUV                   0x00001000l
-
-/*
- * Supports overlays using the color key for the source with this
- * overlay surface for RGB colors.
- */
-#define DDCKEYCAPS_SRCOVERLAY                  0x00002000l
-
-/*
- * Supports overlays using a color space as the source color key for
- * the overlay surface for RGB colors.
- */
-#define DDCKEYCAPS_SRCOVERLAYCLRSPACE          0x00004000l
-
-/*
- * Supports overlays using a color space as the source color key for
- * the overlay surface for YUV colors.
- */
-#define DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV       0x00008000l
-
-/*
- * Supports only one active source color key value for visible
- * overlay surfaces.
- */
-#define DDCKEYCAPS_SRCOVERLAYONEACTIVE         0x00010000l
-
-/*
- * Supports overlays using the color key for the source with this
- * overlay surface for YUV colors.
- */
-#define DDCKEYCAPS_SRCOVERLAYYUV               0x00020000l
-
-/*
- * there are no bandwidth trade-offs for using colorkey with an overlay
- */
-#define DDCKEYCAPS_NOCOSTOVERLAY               0x00040000l
-
-
-/****************************************************************************
- *
- * DIRECTDRAW PIXELFORMAT FLAGS
- *
- ****************************************************************************/
-
-/*
- * The surface has alpha channel information in the pixel format.
- */
-#define DDPF_ALPHAPIXELS                       0x00000001l
-
-/*
- * The pixel format contains alpha only information
- */
-#define DDPF_ALPHA                             0x00000002l
-
-/*
- * The FourCC code is valid.
- */
-#define DDPF_FOURCC                            0x00000004l
-
-/*
- * The surface is 4-bit color indexed.
- */
-#define DDPF_PALETTEINDEXED4                   0x00000008l
-
-/*
- * The surface is indexed into a palette which stores indices
- * into the destination surface's 8-bit palette.
- */
-#define DDPF_PALETTEINDEXEDTO8                 0x00000010l
-
-/*
- * The surface is 8-bit color indexed.
- */
-#define DDPF_PALETTEINDEXED8                   0x00000020l
-
-/*
- * The RGB data in the pixel format structure is valid.
- */
-#define DDPF_RGB                               0x00000040l
-
-/*
- * The surface will accept pixel data in the format specified
- * and compress it during the write.
- */
-#define DDPF_COMPRESSED                                0x00000080l
-
-/*
- * The surface will accept RGB data and translate it during
- * the write to YUV data.  The format of the data to be written
- * will be contained in the pixel format structure.  The DDPF_RGB
- * flag will be set.
- */
-#define DDPF_RGBTOYUV                          0x00000100l
-
-/*
- * pixel format is YUV - YUV data in pixel format struct is valid
- */
-#define DDPF_YUV                               0x00000200l
-
-/*
- * pixel format is a z buffer only surface
- */
-#define DDPF_ZBUFFER                           0x00000400l
-
-/*
- * The surface is 1-bit color indexed.
- */
-#define DDPF_PALETTEINDEXED1                   0x00000800l
-
-/*
- * The surface is 2-bit color indexed.
- */
-#define DDPF_PALETTEINDEXED2                   0x00001000l
-
-/*
- * The surface contains Z information in the pixels
- */
-#define DDPF_ZPIXELS                           0x00002000l
-
-/*
- * The surface contains stencil information along with Z
- */
-#define DDPF_STENCILBUFFER                     0x00004000l
-
-/*
- * Premultiplied alpha format -- the color components have been
- * premultiplied by the alpha component.
- */
-#define DDPF_ALPHAPREMULT                      0x00008000l
-
-
-/*
- * Luminance data in the pixel format is valid.
- * Use this flag for luminance-only or luminance+alpha surfaces,
- * the bit depth is then ddpf.dwLuminanceBitCount.
- */
-#define DDPF_LUMINANCE                          0x00020000l
-
-/*
- * Luminance data in the pixel format is valid.
- * Use this flag when hanging luminance off bumpmap surfaces,
- * the bit mask for the luminance portion of the pixel is then
- * ddpf.dwBumpLuminanceBitMask
- */
-#define DDPF_BUMPLUMINANCE                      0x00040000l
-
-/*
- * Bump map dUdV data in the pixel format is valid.
- */
-#define DDPF_BUMPDUDV                           0x00080000l
-
-/*===========================================================================
- *
- *
- * DIRECTDRAW CALLBACK FLAGS
- *
- *
- *==========================================================================*/
-
-/****************************************************************************
- *
- * DIRECTDRAW ENUMSURFACES FLAGS
- *
- ****************************************************************************/
-
-/*
- * Enumerate all of the surfaces that meet the search criterion.
- */
-#define DDENUMSURFACES_ALL                     0x00000001l
-
-/*
- * A search hit is a surface that matches the surface description.
- */
-#define DDENUMSURFACES_MATCH                   0x00000002l
-
-/*
- * A search hit is a surface that does not match the surface description.
- */
-#define DDENUMSURFACES_NOMATCH                 0x00000004l
-
-/*
- * Enumerate the first surface that can be created which meets the search criterion.
- */
-#define DDENUMSURFACES_CANBECREATED            0x00000008l
-
-/*
- * Enumerate the surfaces that already exist that meet the search criterion.
- */
-#define DDENUMSURFACES_DOESEXIST               0x00000010l
-
-
-/****************************************************************************
- *
- * DIRECTDRAW SETDISPLAYMODE FLAGS
- *
- ****************************************************************************/
-
-/*
- * The desired mode is a standard VGA mode
- */
-#define DDSDM_STANDARDVGAMODE                   0x00000001l
-
-
-
-/****************************************************************************
- *
- * DIRECTDRAW ENUMDISPLAYMODES FLAGS
- *
- ****************************************************************************/
-
-/*
- * Enumerate Modes with different refresh rates.  EnumDisplayModes guarantees
- * that a particular mode will be enumerated only once.  This flag specifies whether
- * the refresh rate is taken into account when determining if a mode is unique.
- */
-#define DDEDM_REFRESHRATES                     0x00000001l
-
-/*
- * Enumerate VGA modes. Specify this flag if you wish to enumerate supported VGA
- * modes such as mode 0x13 in addition to the usual ModeX modes (which are always
- * enumerated if the application has previously called SetCooperativeLevel with the
- * DDSCL_ALLOWMODEX flag set).
- */
-#define DDEDM_STANDARDVGAMODES                  0x00000002L
-
-
-/****************************************************************************
- *
- * DIRECTDRAW SETCOOPERATIVELEVEL FLAGS
- *
- ****************************************************************************/
-
-/*
- * Exclusive mode owner will be responsible for the entire primary surface.
- * GDI can be ignored. used with DD
- */
-#define DDSCL_FULLSCREEN                       0x00000001l
-
-/*
- * allow CTRL_ALT_DEL to work while in fullscreen exclusive mode
- */
-#define DDSCL_ALLOWREBOOT                      0x00000002l
-
-/*
- * prevents DDRAW from modifying the application window.
- * prevents DDRAW from minimize/restore the application window on activation.
- */
-#define DDSCL_NOWINDOWCHANGES                  0x00000004l
-
-/*
- * app wants to work as a regular Windows application
- */
-#define DDSCL_NORMAL                           0x00000008l
-
-/*
- * app wants exclusive access
- */
-#define DDSCL_EXCLUSIVE                         0x00000010l
-
-
-/*
- * app can deal with non-windows display modes
- */
-#define DDSCL_ALLOWMODEX                        0x00000040l
-
-/*
- * this window will receive the focus messages
- */
-#define DDSCL_SETFOCUSWINDOW                    0x00000080l
-
-/*
- * this window is associated with the DDRAW object and will
- * cover the screen in fullscreen mode
- */
-#define DDSCL_SETDEVICEWINDOW                   0x00000100l
-
-/*
- * app wants DDRAW to create a window to be associated with the
- * DDRAW object
- */
-#define DDSCL_CREATEDEVICEWINDOW                0x00000200l
-
-/*
- * App explicitly asks DDRAW/D3D to be multithread safe. This makes D3D
- * take the global crtisec more frequently.
- */
-#define DDSCL_MULTITHREADED                     0x00000400l
-
-/*
- * App hints that it would like to keep the FPU set up for optimal Direct3D
- * performance (single precision and exceptions disabled) so Direct3D
- * does not need to explicitly set the FPU each time
- */
-#define DDSCL_FPUSETUP                          0x00000800l
-
-
-/****************************************************************************
- *
- * DIRECTDRAW BLT FLAGS
- *
- ****************************************************************************/
-
-/*
- * Use the alpha information in the pixel format or the alpha channel surface
- * attached to the destination surface as the alpha channel for this blt.
- */
-#define DDBLT_ALPHADEST                                0x00000001l
-
-/*
- * Use the dwConstAlphaDest field in the DDBLTFX structure as the alpha channel
- * for the destination surface for this blt.
- */
-#define DDBLT_ALPHADESTCONSTOVERRIDE           0x00000002l
-
-/*
- * The NEG suffix indicates that the destination surface becomes more
- * transparent as the alpha value increases. (0 is opaque)
- */
-#define DDBLT_ALPHADESTNEG                     0x00000004l
-
-/*
- * Use the lpDDSAlphaDest field in the DDBLTFX structure as the alpha
- * channel for the destination for this blt.
- */
-#define DDBLT_ALPHADESTSURFACEOVERRIDE         0x00000008l
-
-/*
- * Use the dwAlphaEdgeBlend field in the DDBLTFX structure as the alpha channel
- * for the edges of the image that border the color key colors.
- */
-#define DDBLT_ALPHAEDGEBLEND                   0x00000010l
-
-/*
- * Use the alpha information in the pixel format or the alpha channel surface
- * attached to the source surface as the alpha channel for this blt.
- */
-#define DDBLT_ALPHASRC                         0x00000020l
-
-/*
- * Use the dwConstAlphaSrc field in the DDBLTFX structure as the alpha channel
- * for the source for this blt.
- */
-#define DDBLT_ALPHASRCCONSTOVERRIDE            0x00000040l
-
-/*
- * The NEG suffix indicates that the source surface becomes more transparent
- * as the alpha value increases. (0 is opaque)
- */
-#define DDBLT_ALPHASRCNEG                      0x00000080l
-
-/*
- * Use the lpDDSAlphaSrc field in the DDBLTFX structure as the alpha channel
- * for the source for this blt.
- */
-#define DDBLT_ALPHASRCSURFACEOVERRIDE          0x00000100l
-
-/*
- * Do this blt asynchronously through the FIFO in the order received.  If
- * there is no room in the hardware FIFO fail the call.
- */
-#define DDBLT_ASYNC                            0x00000200l
-
-/*
- * Uses the dwFillColor field in the DDBLTFX structure as the RGB color
- * to fill the destination rectangle on the destination surface with.
- */
-#define DDBLT_COLORFILL                                0x00000400l
-
-/*
- * Uses the dwDDFX field in the DDBLTFX structure to specify the effects
- * to use for the blt.
- */
-#define DDBLT_DDFX                             0x00000800l
-
-/*
- * Uses the dwDDROPS field in the DDBLTFX structure to specify the ROPS
- * that are not part of the Win32 API.
- */
-#define DDBLT_DDROPS                           0x00001000l
-
-/*
- * Use the color key associated with the destination surface.
- */
-#define DDBLT_KEYDEST                          0x00002000l
-
-/*
- * Use the dckDestColorkey field in the DDBLTFX structure as the color key
- * for the destination surface.
- */
-#define DDBLT_KEYDESTOVERRIDE                  0x00004000l
-
-/*
- * Use the color key associated with the source surface.
- */
-#define DDBLT_KEYSRC                           0x00008000l
-
-/*
- * Use the dckSrcColorkey field in the DDBLTFX structure as the color key
- * for the source surface.
- */
-#define DDBLT_KEYSRCOVERRIDE                   0x00010000l
-
-/*
- * Use the dwROP field in the DDBLTFX structure for the raster operation
- * for this blt.  These ROPs are the same as the ones defined in the Win32 API.
- */
-#define DDBLT_ROP                              0x00020000l
-
-/*
- * Use the dwRotationAngle field in the DDBLTFX structure as the angle
- * (specified in 1/100th of a degree) to rotate the surface.
- */
-#define DDBLT_ROTATIONANGLE                    0x00040000l
-
-/*
- * Z-buffered blt using the z-buffers attached to the source and destination
- * surfaces and the dwZBufferOpCode field in the DDBLTFX structure as the
- * z-buffer opcode.
- */
-#define DDBLT_ZBUFFER                          0x00080000l
-
-/*
- * Z-buffered blt using the dwConstDest Zfield and the dwZBufferOpCode field
- * in the DDBLTFX structure as the z-buffer and z-buffer opcode respectively
- * for the destination.
- */
-#define DDBLT_ZBUFFERDESTCONSTOVERRIDE         0x00100000l
-
-/*
- * Z-buffered blt using the lpDDSDestZBuffer field and the dwZBufferOpCode
- * field in the DDBLTFX structure as the z-buffer and z-buffer opcode
- * respectively for the destination.
- */
-#define DDBLT_ZBUFFERDESTOVERRIDE              0x00200000l
-
-/*
- * Z-buffered blt using the dwConstSrcZ field and the dwZBufferOpCode field
- * in the DDBLTFX structure as the z-buffer and z-buffer opcode respectively
- * for the source.
- */
-#define DDBLT_ZBUFFERSRCCONSTOVERRIDE          0x00400000l
-
-/*
- * Z-buffered blt using the lpDDSSrcZBuffer field and the dwZBufferOpCode
- * field in the DDBLTFX structure as the z-buffer and z-buffer opcode
- * respectively for the source.
- */
-#define DDBLT_ZBUFFERSRCOVERRIDE                0x00800000l
-
-/*
- * wait until the device is ready to handle the blt
- * this will cause blt to not return DDERR_WASSTILLDRAWING
- */
-#define DDBLT_WAIT                              0x01000000l
-
-/*
- * Uses the dwFillDepth field in the DDBLTFX structure as the depth value
- * to fill the destination rectangle on the destination Z-buffer surface
- * with.
- */
-#define DDBLT_DEPTHFILL                                0x02000000l
-
-
-/****************************************************************************
- *
- * BLTFAST FLAGS
- *
- ****************************************************************************/
-
-#define DDBLTFAST_NOCOLORKEY                    0x00000000
-#define DDBLTFAST_SRCCOLORKEY                   0x00000001
-#define DDBLTFAST_DESTCOLORKEY                  0x00000002
-#define DDBLTFAST_WAIT                          0x00000010
-
-
-
-
-/****************************************************************************
- *
- * FLIP FLAGS
- *
- ****************************************************************************/
-
-#define DDFLIP_WAIT                          0x00000001L
-
-/*
- * Indicates that the target surface contains the even field of video data.
- * This flag is only valid with an overlay surface.
- */
-#define DDFLIP_EVEN                          0x00000002L
-
-/*
- * Indicates that the target surface contains the odd field of video data.
- * This flag is only valid with an overlay surface.
- */
-#define DDFLIP_ODD                           0x00000004L
-
-/*
- * Causes DirectDraw to perform the physical flip immediately and return
- * to the application. Typically, what was the front buffer but is now the back
- * buffer will still be visible (depending on timing) until the next vertical 
- * retrace. Subsequent operations involving the two flipped surfaces will
- * not check to see if the physical flip has finished (i.e. will not return
- * DDERR_WASSTILLDRAWING for that reason (but may for other reasons)).
- * This allows an application to perform Flips at a higher frequency than the
- * monitor refresh rate, but may introduce visible artifacts.
- * Only effective if DDCAPS2_FLIPNOVSYNC is set. If that bit is not set, 
- * DDFLIP_NOVSYNC has no effect.
- */
-#define DDFLIP_NOVSYNC                       0x00000008L
-
-
-/*
- * Flip Interval Flags. These flags indicate how many vertical retraces to wait between
- * each flip. The default is one. DirectDraw will return DDERR_WASSTILLDRAWING for each
- * surface involved in the flip until the specified number of vertical retraces has
- * ocurred. Only effective if DDCAPS2_FLIPINTERVAL is set. If that bit is not set, 
- * DDFLIP_INTERVALn has no effect.
- */
-
-/*
- * DirectDraw will flip on every other vertical sync
- */
-#define DDFLIP_INTERVAL2                     0x02000000L
-
-
-/*
- * DirectDraw will flip on every third vertical sync
- */
-#define DDFLIP_INTERVAL3                     0x03000000L
-
-
-/*
- * DirectDraw will flip on every fourth vertical sync
- */
-#define DDFLIP_INTERVAL4                     0x04000000L
-
-
-
-/****************************************************************************
- *
- * DIRECTDRAW SURFACE OVERLAY FLAGS
- *
- ****************************************************************************/
-
-/*
- * Use the alpha information in the pixel format or the alpha channel surface
- * attached to the destination surface as the alpha channel for the
- * destination overlay.
- */
-#define DDOVER_ALPHADEST                       0x00000001l
-
-/*
- * Use the dwConstAlphaDest field in the DDOVERLAYFX structure as the
- * destination alpha channel for this overlay.
- */
-#define DDOVER_ALPHADESTCONSTOVERRIDE          0x00000002l
-
-/*
- * The NEG suffix indicates that the destination surface becomes more
- * transparent as the alpha value increases.
- */
-#define DDOVER_ALPHADESTNEG                    0x00000004l
-
-/*
- * Use the lpDDSAlphaDest field in the DDOVERLAYFX structure as the alpha
- * channel destination for this overlay.
- */
-#define DDOVER_ALPHADESTSURFACEOVERRIDE                0x00000008l
-
-/*
- * Use the dwAlphaEdgeBlend field in the DDOVERLAYFX structure as the alpha
- * channel for the edges of the image that border the color key colors.
- */
-#define DDOVER_ALPHAEDGEBLEND                  0x00000010l
-
-/*
- * Use the alpha information in the pixel format or the alpha channel surface
- * attached to the source surface as the source alpha channel for this overlay.
- */
-#define DDOVER_ALPHASRC                                0x00000020l
-
-/*
- * Use the dwConstAlphaSrc field in the DDOVERLAYFX structure as the source
- * alpha channel for this overlay.
- */
-#define DDOVER_ALPHASRCCONSTOVERRIDE           0x00000040l
-
-/*
- * The NEG suffix indicates that the source surface becomes more transparent
- * as the alpha value increases.
- */
-#define DDOVER_ALPHASRCNEG                     0x00000080l
-
-/*
- * Use the lpDDSAlphaSrc field in the DDOVERLAYFX structure as the alpha channel
- * source for this overlay.
- */
-#define DDOVER_ALPHASRCSURFACEOVERRIDE         0x00000100l
-
-/*
- * Turn this overlay off.
- */
-#define DDOVER_HIDE                            0x00000200l
-
-/*
- * Use the color key associated with the destination surface.
- */
-#define DDOVER_KEYDEST                         0x00000400l
-
-/*
- * Use the dckDestColorkey field in the DDOVERLAYFX structure as the color key
- * for the destination surface
- */
-#define DDOVER_KEYDESTOVERRIDE                 0x00000800l
-
-/*
- * Use the color key associated with the source surface.
- */
-#define DDOVER_KEYSRC                          0x00001000l
-
-/*
- * Use the dckSrcColorkey field in the DDOVERLAYFX structure as the color key
- * for the source surface.
- */
-#define DDOVER_KEYSRCOVERRIDE                  0x00002000l
-
-/*
- * Turn this overlay on.
- */
-#define DDOVER_SHOW                            0x00004000l
-
-/*
- * Add a dirty rect to an emulated overlayed surface.
- */
-#define DDOVER_ADDDIRTYRECT                     0x00008000l
-
-/*
- * Redraw all dirty rects on an emulated overlayed surface.
- */
-#define DDOVER_REFRESHDIRTYRECTS               0x00010000l
-
-/*
- * Redraw the entire surface on an emulated overlayed surface.
- */
-#define DDOVER_REFRESHALL                      0x00020000l
-
-
-/*
- * Use the overlay FX flags to define special overlay FX
- */
-#define DDOVER_DDFX                            0x00080000l
-
-/*
- * Autoflip the overlay when ever the video port autoflips
- */
-#define DDOVER_AUTOFLIP                        0x00100000l
-
-/*
- * Display each field of video port data individually without
- * causing any jittery artifacts
- */
-#define DDOVER_BOB                             0x00200000l
-
-/*
- * Indicates that bob/weave decisions should not be overridden by other
- * interfaces.
- */
-#define DDOVER_OVERRIDEBOBWEAVE                        0x00400000l
-
-/*
- * Indicates that the surface memory is composed of interleaved fields.
- */
-#define DDOVER_INTERLEAVED                     0x00800000l
-
-/*
- * Indicates that bob will be performed using hardware rather than
- * software or emulated.
- */
-#define DDOVER_BOBHARDWARE                     0x01000000l
-
-
-
-
-
-
-
-
-/****************************************************************************
- *
- * DIRECTDRAWSURFACE LOCK FLAGS
- *
- ****************************************************************************/
-
-/*
- * The default.         Set to indicate that Lock should return a valid memory pointer
- * to the top of the specified rectangle.  If no rectangle is specified then a
- * pointer to the top of the surface is returned.
- */
-#define DDLOCK_SURFACEMEMORYPTR                        0x00000000L     // default
-
-/*
- * Set to indicate that Lock should wait until it can obtain a valid memory
- * pointer before returning.  If this bit is set, Lock will never return
- * DDERR_WASSTILLDRAWING.
- */
-#define DDLOCK_WAIT                            0x00000001L
-
-/*
- * Set if an event handle is being passed to Lock.  Lock will trigger the event
- * when it can return the surface memory pointer requested.
- */
-#define DDLOCK_EVENT                           0x00000002L
-
-/*
- * Indicates that the surface being locked will only be read from.
- */
-#define DDLOCK_READONLY                                0x00000010L
-
-/*
- * Indicates that the surface being locked will only be written to
- */
-#define DDLOCK_WRITEONLY                       0x00000020L
-
-
-/*
- * Indicates that a system wide lock should not be taken when this surface
- * is locked. This has several advantages (cursor responsiveness, ability
- * to call more Windows functions, easier debugging) when locking video
- * memory surfaces. However, an application specifying this flag must
- * comply with a number of conditions documented in the help file.
- * Furthermore, this flag cannot be specified when locking the primary.
- */
-#define DDLOCK_NOSYSLOCK                        0x00000800L
-
-
-/****************************************************************************
- *
- * DIRECTDRAWSURFACE PAGELOCK FLAGS
- *
- ****************************************************************************/
-
-/*
- * No flags defined at present
- */
-
-
-/****************************************************************************
- *
- * DIRECTDRAWSURFACE PAGEUNLOCK FLAGS
- *
- ****************************************************************************/
-
-/*
- * No flags defined at present
- */
-
-
-/****************************************************************************
- *
- * DIRECTDRAWSURFACE BLT FX FLAGS
- *
- ****************************************************************************/
-
-/*
- * If stretching, use arithmetic stretching along the Y axis for this blt.
- */
-#define DDBLTFX_ARITHSTRETCHY                  0x00000001l
-
-/*
- * Do this blt mirroring the surface left to right.  Spin the
- * surface around its y-axis.
- */
-#define DDBLTFX_MIRRORLEFTRIGHT                        0x00000002l
-
-/*
- * Do this blt mirroring the surface up and down.  Spin the surface
- * around its x-axis.
- */
-#define DDBLTFX_MIRRORUPDOWN                   0x00000004l
-
-/*
- * Schedule this blt to avoid tearing.
- */
-#define DDBLTFX_NOTEARING                      0x00000008l
-
-/*
- * Do this blt rotating the surface one hundred and eighty degrees.
- */
-#define DDBLTFX_ROTATE180                      0x00000010l
-
-/*
- * Do this blt rotating the surface two hundred and seventy degrees.
- */
-#define DDBLTFX_ROTATE270                      0x00000020l
-
-/*
- * Do this blt rotating the surface ninety degrees.
- */
-#define DDBLTFX_ROTATE90                       0x00000040l
-
-/*
- * Do this z blt using dwZBufferLow and dwZBufferHigh as  range values
- * specified to limit the bits copied from the source surface.
- */
-#define DDBLTFX_ZBUFFERRANGE                   0x00000080l
-
-/*
- * Do this z blt adding the dwZBufferBaseDest to each of the sources z values
- * before comparing it with the desting z values.
- */
-#define DDBLTFX_ZBUFFERBASEDEST                        0x00000100l
-
-/****************************************************************************
- *
- * DIRECTDRAWSURFACE OVERLAY FX FLAGS
- *
- ****************************************************************************/
-
-/*
- * If stretching, use arithmetic stretching along the Y axis for this overlay.
- */
-#define DDOVERFX_ARITHSTRETCHY                 0x00000001l
-
-/*
- * Mirror the overlay across the vertical axis
- */
-#define DDOVERFX_MIRRORLEFTRIGHT               0x00000002l
-
-/*
- * Mirror the overlay across the horizontal axis
- */
-#define DDOVERFX_MIRRORUPDOWN                  0x00000004l
-
-/****************************************************************************
- *
- * Flags for dwDDFX member of DDSPRITEFX structure
- *
- ****************************************************************************/
-/*
- * Use affine transformation matrix in fTransform member.
- */
-#define DDSPRITEFX_AFFINETRANSFORM             0x00000001l
-
-/*
- * Use RGBA scaling factors in ddrgbaScaleFactors member.
- */
-#define DDSPRITEFX_RGBASCALING                 0x00000002l
-
-/*
- * Degrade RGBA scaling factors to accommodate driver's capabilities.
- */
-#define DDSPRITEFX_DEGRADERGBASCALING          0x00000004l
-
-/*
- * Do bilinear filtering of stretched or warped sprite.
- */
-#define DDSPRITEFX_BILINEARFILTER              0x00000008l
-
-/*
- * Do "blur" filtering of stretched or warped sprite.
- */
-#define DDSPRITEFX_BLURFILTER                  0x00000010l
-
-/*
- * Do "flat" filtering of stretched or warped sprite.
- */
-#define DDSPRITEFX_FLATFILTER                  0x00000020l
-
-/*
- * Degrade filtering operation to accommodate driver's capabilities.
- */
-#define DDSPRITEFX_DEGRADEFILTER               0x00000040l
-
-
-/****************************************************************************
- *
- * DIRECTDRAW WAITFORVERTICALBLANK FLAGS
- *
- ****************************************************************************/
-
-/*
- * return when the vertical blank interval begins
- */
-#define DDWAITVB_BLOCKBEGIN                    0x00000001l
-
-/*
- * set up an event to trigger when the vertical blank begins
- */
-#define DDWAITVB_BLOCKBEGINEVENT               0x00000002l
-
-/*
- * return when the vertical blank interval ends and display begins
- */
-#define DDWAITVB_BLOCKEND                      0x00000004l
-
-/****************************************************************************
- *
- * DIRECTDRAW GETFLIPSTATUS FLAGS
- *
- ****************************************************************************/
-
-/*
- * is it OK to flip now?
- */
-#define DDGFS_CANFLIP                  0x00000001l
-
-/*
- * is the last flip finished?
- */
-#define DDGFS_ISFLIPDONE               0x00000002l
-
-/****************************************************************************
- *
- * DIRECTDRAW GETBLTSTATUS FLAGS
- *
- ****************************************************************************/
-
-/*
- * is it OK to blt now?
- */
-#define DDGBS_CANBLT                   0x00000001l
-
-/*
- * is the blt to the surface finished?
- */
-#define DDGBS_ISBLTDONE                        0x00000002l
-
-
-/****************************************************************************
- *
- * DIRECTDRAW ENUMOVERLAYZORDER FLAGS
- *
- ****************************************************************************/
-
-/*
- * Enumerate overlays back to front.
- */
-#define DDENUMOVERLAYZ_BACKTOFRONT     0x00000000l
-
-/*
- * Enumerate overlays front to back
- */
-#define DDENUMOVERLAYZ_FRONTTOBACK     0x00000001l
-
-/****************************************************************************
- *
- * DIRECTDRAW UPDATEOVERLAYZORDER FLAGS
- *
- ****************************************************************************/
-
-/*
- * Send overlay to front
- */
-#define DDOVERZ_SENDTOFRONT            0x00000000l
-
-/*
- * Send overlay to back
- */
-#define DDOVERZ_SENDTOBACK             0x00000001l
-
-/*
- * Move Overlay forward
- */
-#define DDOVERZ_MOVEFORWARD            0x00000002l
-
-/*
- * Move Overlay backward
- */
-#define DDOVERZ_MOVEBACKWARD           0x00000003l
-
-/*
- * Move Overlay in front of relative surface
- */
-#define DDOVERZ_INSERTINFRONTOF                0x00000004l
-
-/*
- * Move Overlay in back of relative surface
- */
-#define DDOVERZ_INSERTINBACKOF         0x00000005l
-
-
-
-/****************************************************************************
- *
- * DIRECTDRAW SETGAMMARAMP FLAGS
- *
- ****************************************************************************/
-
-/*
- * Request calibrator to adjust the gamma ramp according to the physical
- * properties of the display so that the result should appear identical
- * on all systems.
- */
-#define DDSGR_CALIBRATE                        0x00000001L
-
-
-/*===========================================================================
- *
- *
- * DIRECTDRAW RETURN CODES
- *
- * The return values from DirectDraw Commands and Surface that return an HRESULT
- * are codes from DirectDraw concerning the results of the action
- * requested by DirectDraw.
- *
- *==========================================================================*/
-
-/*
- * Status is OK
- *
- * Issued by: DirectDraw Commands and all callbacks
- */
-#define DD_OK                                  0
-#define DD_FALSE                                S_FALSE
-
-/****************************************************************************
- *
- * DIRECTDRAW ENUMCALLBACK RETURN VALUES
- *
- * EnumCallback returns are used to control the flow of the DIRECTDRAW and
- * DIRECTDRAWSURFACE object enumerations.   They can only be returned by
- * enumeration callback routines.
- *
- ****************************************************************************/
-
-/*
- * stop the enumeration
- */
-#define DDENUMRET_CANCEL                       0
-
-/*
- * continue the enumeration
- */
-#define DDENUMRET_OK                           1
-
-/****************************************************************************
- *
- * DIRECTDRAW ERRORS
- *
- * Errors are represented by negative values and cannot be combined.
- *
- ****************************************************************************/
-
-/*
- * This object is already initialized
- */
-#define DDERR_ALREADYINITIALIZED               MAKE_DDHRESULT( 5 )
-
-/*
- * This surface can not be attached to the requested surface.
- */
-#define DDERR_CANNOTATTACHSURFACE              MAKE_DDHRESULT( 10 )
-
-/*
- * This surface can not be detached from the requested surface.
- */
-#define DDERR_CANNOTDETACHSURFACE              MAKE_DDHRESULT( 20 )
-
-/*
- * Support is currently not available.
- */
-#define DDERR_CURRENTLYNOTAVAIL                        MAKE_DDHRESULT( 40 )
-
-/*
- * An exception was encountered while performing the requested operation
- */
-#define DDERR_EXCEPTION                                MAKE_DDHRESULT( 55 )
-
-/*
- * Generic failure.
- */
-#define DDERR_GENERIC                          E_FAIL
-
-/*
- * Height of rectangle provided is not a multiple of reqd alignment
- */
-#define DDERR_HEIGHTALIGN                      MAKE_DDHRESULT( 90 )
-
-/*
- * Unable to match primary surface creation request with existing
- * primary surface.
- */
-#define DDERR_INCOMPATIBLEPRIMARY              MAKE_DDHRESULT( 95 )
-
-/*
- * One or more of the caps bits passed to the callback are incorrect.
- */
-#define DDERR_INVALIDCAPS                      MAKE_DDHRESULT( 100 )
-
-/*
- * DirectDraw does not support provided Cliplist.
- */
-#define DDERR_INVALIDCLIPLIST                  MAKE_DDHRESULT( 110 )
-
-/*
- * DirectDraw does not support the requested mode
- */
-#define DDERR_INVALIDMODE                      MAKE_DDHRESULT( 120 )
-
-/*
- * DirectDraw received a pointer that was an invalid DIRECTDRAW object.
- */
-#define DDERR_INVALIDOBJECT                    MAKE_DDHRESULT( 130 )
-
-/*
- * One or more of the parameters passed to the callback function are
- * incorrect.
- */
-#define DDERR_INVALIDPARAMS                    E_INVALIDARG
-
-/*
- * pixel format was invalid as specified
- */
-#define DDERR_INVALIDPIXELFORMAT               MAKE_DDHRESULT( 145 )
-
-/*
- * Rectangle provided was invalid.
- */
-#define DDERR_INVALIDRECT                      MAKE_DDHRESULT( 150 )
-
-/*
- * Operation could not be carried out because one or more surfaces are locked
- */
-#define DDERR_LOCKEDSURFACES                   MAKE_DDHRESULT( 160 )
-
-/*
- * There is no 3D present.
- */
-#define DDERR_NO3D                             MAKE_DDHRESULT( 170 )
-
-/*
- * Operation could not be carried out because there is no alpha accleration
- * hardware present or available.
- */
-#define DDERR_NOALPHAHW                                MAKE_DDHRESULT( 180 )
-
-
-/*
- * no clip list available
- */
-#define DDERR_NOCLIPLIST                       MAKE_DDHRESULT( 205 )
-
-/*
- * Operation could not be carried out because there is no color conversion
- * hardware present or available.
- */
-#define DDERR_NOCOLORCONVHW                    MAKE_DDHRESULT( 210 )
-
-/*
- * Create function called without DirectDraw object method SetCooperativeLevel
- * being called.
- */
-#define DDERR_NOCOOPERATIVELEVELSET            MAKE_DDHRESULT( 212 )
-
-/*
- * Surface doesn't currently have a color key
- */
-#define DDERR_NOCOLORKEY                       MAKE_DDHRESULT( 215 )
-
-/*
- * Operation could not be carried out because there is no hardware support
- * of the dest color key.
- */
-#define DDERR_NOCOLORKEYHW                     MAKE_DDHRESULT( 220 )
-
-/*
- * No DirectDraw support possible with current display driver
- */
-#define DDERR_NODIRECTDRAWSUPPORT              MAKE_DDHRESULT( 222 )
-
-/*
- * Operation requires the application to have exclusive mode but the
- * application does not have exclusive mode.
- */
-#define DDERR_NOEXCLUSIVEMODE                  MAKE_DDHRESULT( 225 )
-
-/*
- * Flipping visible surfaces is not supported.
- */
-#define DDERR_NOFLIPHW                         MAKE_DDHRESULT( 230 )
-
-/*
- * There is no GDI present.
- */
-#define DDERR_NOGDI                            MAKE_DDHRESULT( 240 )
-
-/*
- * Operation could not be carried out because there is no hardware present
- * or available.
- */
-#define DDERR_NOMIRRORHW                       MAKE_DDHRESULT( 250 )
-
-/*
- * Requested item was not found
- */
-#define DDERR_NOTFOUND                         MAKE_DDHRESULT( 255 )
-
-/*
- * Operation could not be carried out because there is no overlay hardware
- * present or available.
- */
-#define DDERR_NOOVERLAYHW                      MAKE_DDHRESULT( 260 )
-
-/*
- * Operation could not be carried out because the source and destination
- * rectangles are on the same surface and overlap each other.
- */
-#define DDERR_OVERLAPPINGRECTS                 MAKE_DDHRESULT( 270 )
-
-/*
- * Operation could not be carried out because there is no appropriate raster
- * op hardware present or available.
- */
-#define DDERR_NORASTEROPHW                     MAKE_DDHRESULT( 280 )
-
-/*
- * Operation could not be carried out because there is no rotation hardware
- * present or available.
- */
-#define DDERR_NOROTATIONHW                     MAKE_DDHRESULT( 290 )
-
-/*
- * Operation could not be carried out because there is no hardware support
- * for stretching
- */
-#define DDERR_NOSTRETCHHW                      MAKE_DDHRESULT( 310 )
-
-/*
- * DirectDrawSurface is not in 4 bit color palette and the requested operation
- * requires 4 bit color palette.
- */
-#define DDERR_NOT4BITCOLOR                     MAKE_DDHRESULT( 316 )
-
-/*
- * DirectDrawSurface is not in 4 bit color index palette and the requested
- * operation requires 4 bit color index palette.
- */
-#define DDERR_NOT4BITCOLORINDEX                        MAKE_DDHRESULT( 317 )
-
-/*
- * DirectDraw Surface is not in 8 bit color mode and the requested operation
- * requires 8 bit color.
- */
-#define DDERR_NOT8BITCOLOR                     MAKE_DDHRESULT( 320 )
-
-/*
- * Operation could not be carried out because there is no texture mapping
- * hardware present or available.
- */
-#define DDERR_NOTEXTUREHW                      MAKE_DDHRESULT( 330 )
-
-/*
- * Operation could not be carried out because there is no hardware support
- * for vertical blank synchronized operations.
- */
-#define DDERR_NOVSYNCHW                                MAKE_DDHRESULT( 335 )
-
-/*
- * Operation could not be carried out because there is no hardware support
- * for zbuffer blting.
- */
-#define DDERR_NOZBUFFERHW                      MAKE_DDHRESULT( 340 )
-
-/*
- * Overlay surfaces could not be z layered based on their BltOrder because
- * the hardware does not support z layering of overlays.
- */
-#define DDERR_NOZOVERLAYHW                     MAKE_DDHRESULT( 350 )
-
-/*
- * The hardware needed for the requested operation has already been
- * allocated.
- */
-#define DDERR_OUTOFCAPS                                MAKE_DDHRESULT( 360 )
-
-/*
- * DirectDraw does not have enough memory to perform the operation.
- */
-#define DDERR_OUTOFMEMORY                      E_OUTOFMEMORY
-
-/*
- * DirectDraw does not have enough memory to perform the operation.
- */
-#define DDERR_OUTOFVIDEOMEMORY                 MAKE_DDHRESULT( 380 )
-
-/*
- * hardware does not support clipped overlays
- */
-#define DDERR_OVERLAYCANTCLIP                  MAKE_DDHRESULT( 382 )
-
-/*
- * Can only have ony color key active at one time for overlays
- */
-#define DDERR_OVERLAYCOLORKEYONLYONEACTIVE     MAKE_DDHRESULT( 384 )
-
-/*
- * Access to this palette is being refused because the palette is already
- * locked by another thread.
- */
-#define DDERR_PALETTEBUSY                      MAKE_DDHRESULT( 387 )
-
-/*
- * No src color key specified for this operation.
- */
-#define DDERR_COLORKEYNOTSET                   MAKE_DDHRESULT( 400 )
-
-/*
- * This surface is already attached to the surface it is being attached to.
- */
-#define DDERR_SURFACEALREADYATTACHED           MAKE_DDHRESULT( 410 )
-
-/*
- * This surface is already a dependency of the surface it is being made a
- * dependency of.
- */
-#define DDERR_SURFACEALREADYDEPENDENT          MAKE_DDHRESULT( 420 )
-
-/*
- * Access to this surface is being refused because the surface is already
- * locked by another thread.
- */
-#define DDERR_SURFACEBUSY                      MAKE_DDHRESULT( 430 )
-
-/*
- * Access to this surface is being refused because no driver exists
- * which can supply a pointer to the surface.
- * This is most likely to happen when attempting to lock the primary
- * surface when no DCI provider is present.
- * Will also happen on attempts to lock an optimized surface.
- */
-#define DDERR_CANTLOCKSURFACE                   MAKE_DDHRESULT( 435 )
-
-/*
- * Access to Surface refused because Surface is obscured.
- */
-#define DDERR_SURFACEISOBSCURED                        MAKE_DDHRESULT( 440 )
-
-/*
- * Access to this surface is being refused because the surface is gone.
- * The DIRECTDRAWSURFACE object representing this surface should
- * have Restore called on it.
- */
-#define DDERR_SURFACELOST                      MAKE_DDHRESULT( 450 )
-
-/*
- * The requested surface is not attached.
- */
-#define DDERR_SURFACENOTATTACHED               MAKE_DDHRESULT( 460 )
-
-/*
- * Height requested by DirectDraw is too large.
- */
-#define DDERR_TOOBIGHEIGHT                     MAKE_DDHRESULT( 470 )
-
-/*
- * Size requested by DirectDraw is too large --         The individual height and
- * width are OK.
- */
-#define DDERR_TOOBIGSIZE                       MAKE_DDHRESULT( 480 )
-
-/*
- * Width requested by DirectDraw is too large.
- */
-#define DDERR_TOOBIGWIDTH                      MAKE_DDHRESULT( 490 )
-
-/*
- * Action not supported.
- */
-#define DDERR_UNSUPPORTED                      E_NOTIMPL
-
-/*
- * FOURCC format requested is unsupported by DirectDraw
- */
-#define DDERR_UNSUPPORTEDFORMAT                        MAKE_DDHRESULT( 510 )
-
-/*
- * Bitmask in the pixel format requested is unsupported by DirectDraw
- */
-#define DDERR_UNSUPPORTEDMASK                  MAKE_DDHRESULT( 520 )
-
-/*
- * The specified stream contains invalid data
- */
-#define DDERR_INVALIDSTREAM                     MAKE_DDHRESULT( 521 )
-
-/*
- * vertical blank is in progress
- */
-#define DDERR_VERTICALBLANKINPROGRESS          MAKE_DDHRESULT( 537 )
-
-/*
- * Informs DirectDraw that the previous Blt which is transfering information
- * to or from this Surface is incomplete.
- */
-#define DDERR_WASSTILLDRAWING                  MAKE_DDHRESULT( 540 )
-
-
-/*
- * Rectangle provided was not horizontally aligned on reqd. boundary
- */
-#define DDERR_XALIGN                           MAKE_DDHRESULT( 560 )
-
-/*
- * The GUID passed to DirectDrawCreate is not a valid DirectDraw driver
- * identifier.
- */
-#define DDERR_INVALIDDIRECTDRAWGUID            MAKE_DDHRESULT( 561 )
-
-/*
- * A DirectDraw object representing this driver has already been created
- * for this process.
- */
-#define DDERR_DIRECTDRAWALREADYCREATED         MAKE_DDHRESULT( 562 )
-
-/*
- * A hardware only DirectDraw object creation was attempted but the driver
- * did not support any hardware.
- */
-#define DDERR_NODIRECTDRAWHW                   MAKE_DDHRESULT( 563 )
-
-/*
- * this process already has created a primary surface
- */
-#define DDERR_PRIMARYSURFACEALREADYEXISTS      MAKE_DDHRESULT( 564 )
-
-/*
- * software emulation not available.
- */
-#define DDERR_NOEMULATION                      MAKE_DDHRESULT( 565 )
-
-/*
- * region passed to Clipper::GetClipList is too small.
- */
-#define DDERR_REGIONTOOSMALL                   MAKE_DDHRESULT( 566 )
-
-/*
- * an attempt was made to set a clip list for a clipper objec that
- * is already monitoring an hwnd.
- */
-#define DDERR_CLIPPERISUSINGHWND               MAKE_DDHRESULT( 567 )
-
-/*
- * No clipper object attached to surface object
- */
-#define DDERR_NOCLIPPERATTACHED                        MAKE_DDHRESULT( 568 )
-
-/*
- * Clipper notification requires an HWND or
- * no HWND has previously been set as the CooperativeLevel HWND.
- */
-#define DDERR_NOHWND                           MAKE_DDHRESULT( 569 )
-
-/*
- * HWND used by DirectDraw CooperativeLevel has been subclassed,
- * this prevents DirectDraw from restoring state.
- */
-#define DDERR_HWNDSUBCLASSED                   MAKE_DDHRESULT( 570 )
-
-/*
- * The CooperativeLevel HWND has already been set.
- * It can not be reset while the process has surfaces or palettes created.
- */
-#define DDERR_HWNDALREADYSET                   MAKE_DDHRESULT( 571 )
-
-/*
- * No palette object attached to this surface.
- */
-#define DDERR_NOPALETTEATTACHED                        MAKE_DDHRESULT( 572 )
-
-/*
- * No hardware support for 16 or 256 color palettes.
- */
-#define DDERR_NOPALETTEHW                      MAKE_DDHRESULT( 573 )
-
-/*
- * If a clipper object is attached to the source surface passed into a
- * BltFast call.
- */
-#define DDERR_BLTFASTCANTCLIP                  MAKE_DDHRESULT( 574 )
-
-/*
- * No blter.
- */
-#define DDERR_NOBLTHW                          MAKE_DDHRESULT( 575 )
-
-/*
- * No DirectDraw ROP hardware.
- */
-#define DDERR_NODDROPSHW                       MAKE_DDHRESULT( 576 )
-
-/*
- * returned when GetOverlayPosition is called on a hidden overlay
- */
-#define DDERR_OVERLAYNOTVISIBLE                        MAKE_DDHRESULT( 577 )
-
-/*
- * returned when GetOverlayPosition is called on a overlay that UpdateOverlay
- * has never been called on to establish a destionation.
- */
-#define DDERR_NOOVERLAYDEST                    MAKE_DDHRESULT( 578 )
-
-/*
- * returned when the position of the overlay on the destionation is no longer
- * legal for that destionation.
- */
-#define DDERR_INVALIDPOSITION                  MAKE_DDHRESULT( 579 )
-
-/*
- * returned when an overlay member is called for a non-overlay surface
- */
-#define DDERR_NOTAOVERLAYSURFACE               MAKE_DDHRESULT( 580 )
-
-/*
- * An attempt was made to set the cooperative level when it was already
- * set to exclusive.
- */
-#define DDERR_EXCLUSIVEMODEALREADYSET          MAKE_DDHRESULT( 581 )
-
-/*
- * An attempt has been made to flip a surface that is not flippable.
- */
-#define DDERR_NOTFLIPPABLE                     MAKE_DDHRESULT( 582 )
-
-/*
- * Can't duplicate primary & 3D surfaces, or surfaces that are implicitly
- * created.
- */
-#define DDERR_CANTDUPLICATE                    MAKE_DDHRESULT( 583 )
-
-/*
- * Surface was not locked.  An attempt to unlock a surface that was not
- * locked at all, or by this process, has been attempted.
- */
-#define DDERR_NOTLOCKED                                MAKE_DDHRESULT( 584 )
-
-/*
- * Windows can not create any more DCs, or a DC was requested for a paltte-indexed
- * surface when the surface had no palette AND the display mode was not palette-indexed
- * (in this case DirectDraw cannot select a proper palette into the DC)
- */
-#define DDERR_CANTCREATEDC                     MAKE_DDHRESULT( 585 )
-
-/*
- * No DC was ever created for this surface.
- */
-#define DDERR_NODC                             MAKE_DDHRESULT( 586 )
-
-/*
- * This surface can not be restored because it was created in a different
- * mode.
- */
-#define DDERR_WRONGMODE                                MAKE_DDHRESULT( 587 )
-
-/*
- * This surface can not be restored because it is an implicitly created
- * surface.
- */
-#define DDERR_IMPLICITLYCREATED                        MAKE_DDHRESULT( 588 )
-
-/*
- * The surface being used is not a palette-based surface
- */
-#define DDERR_NOTPALETTIZED                    MAKE_DDHRESULT( 589 )
-
-
-/*
- * The display is currently in an unsupported mode
- */
-#define DDERR_UNSUPPORTEDMODE                  MAKE_DDHRESULT( 590 )
-
-/*
- * Operation could not be carried out because there is no mip-map
- * texture mapping hardware present or available.
- */
-#define DDERR_NOMIPMAPHW                       MAKE_DDHRESULT( 591 )
-
-/*
- * The requested action could not be performed because the surface was of
- * the wrong type.
- */
-#define DDERR_INVALIDSURFACETYPE                MAKE_DDHRESULT( 592 )
-
-
-
-/*
- * Device does not support optimized surfaces, therefore no video memory optimized surfaces
- */
-#define DDERR_NOOPTIMIZEHW                      MAKE_DDHRESULT( 600 )
-
-/*
- * Surface is an optimized surface, but has not yet been allocated any memory
- */
-#define DDERR_NOTLOADED                         MAKE_DDHRESULT( 601 )
-
-/*
- * Attempt was made to create or set a device window without first setting
- * the focus window
- */
-#define DDERR_NOFOCUSWINDOW                     MAKE_DDHRESULT( 602 )
-
-/*
- * A DC has already been returned for this surface. Only one DC can be
- * retrieved per surface.
- */
-#define DDERR_DCALREADYCREATED                 MAKE_DDHRESULT( 620 )
-
-/*
- * An attempt was made to allocate non-local video memory from a device
- * that does not support non-local video memory.
- */
-#define DDERR_NONONLOCALVIDMEM                  MAKE_DDHRESULT( 630 )
-
-/*
- * The attempt to page lock a surface failed.
- */
-#define DDERR_CANTPAGELOCK                     MAKE_DDHRESULT( 640 )
-
-
-/*
- * The attempt to page unlock a surface failed.
- */
-#define DDERR_CANTPAGEUNLOCK                   MAKE_DDHRESULT( 660 )
-
-/*
- * An attempt was made to page unlock a surface with no outstanding page locks.
- */
-#define DDERR_NOTPAGELOCKED                    MAKE_DDHRESULT( 680 )
-
-/*
- * There is more data available than the specified buffer size could hold
- */
-#define DDERR_MOREDATA                                 MAKE_DDHRESULT( 690 )
-
-/*
- * The data has expired and is therefore no longer valid.
- */
-#define DDERR_EXPIRED                           MAKE_DDHRESULT( 691 )
-
-/*
- * The video port is not active
- */
-#define DDERR_VIDEONOTACTIVE                           MAKE_DDHRESULT( 695 )
-
-/*
- * Surfaces created by one direct draw device cannot be used directly by
- * another direct draw device.
- */
-#define DDERR_DEVICEDOESNTOWNSURFACE                   MAKE_DDHRESULT( 699 )
-
-
-/*
- * An attempt was made to invoke an interface member of a DirectDraw object
- * created by CoCreateInstance() before it was initialized.
- */
-#define DDERR_NOTINITIALIZED                    CO_E_NOTINITIALIZED
-
-
-/* Alpha bit depth constants */
-
-
-#ifdef __cplusplus
-};
-#endif
-
-#endif
-
diff --git a/misc/builddeps/win64/dx/include/dinput.h b/misc/builddeps/win64/dx/include/dinput.h
deleted file mode 100644 (file)
index 5bf9f5a..0000000
+++ /dev/null
@@ -1,1849 +0,0 @@
-/****************************************************************************
- *
- *  Copyright (C) 1996-1997 Microsoft Corporation.  All Rights Reserved.
- *
- *  File:       dinput.h
- *  Content:    DirectInput include file
- *
- ****************************************************************************/
-
-#ifndef __DINPUT_INCLUDED__
-#define __DINPUT_INCLUDED__
-
-#ifndef DIJ_RINGZERO
-
-#ifdef _WIN32
-#define COM_NO_WINDOWS_H
-#include <objbase.h>
-#endif
-
-#endif /* DIJ_RINGZERO */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef DIRECTINPUT_VERSION
-#define DIRECTINPUT_VERSION         0x0500
-#endif
-
-#ifndef DIJ_RINGZERO
-/****************************************************************************
- *
- *      Class IDs
- *
- ****************************************************************************/
-
-DEFINE_GUID(CLSID_DirectInput,      0x25E609E0,0xB259,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(CLSID_DirectInputDevice,0x25E609E1,0xB259,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-
-/****************************************************************************
- *
- *      Interfaces
- *
- ****************************************************************************/
-
-DEFINE_GUID(IID_IDirectInputA,     0x89521360,0xAA8A,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(IID_IDirectInputW,     0x89521361,0xAA8A,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(IID_IDirectInput2A,    0x5944E662,0xAA8A,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(IID_IDirectInput2W,    0x5944E663,0xAA8A,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-
-DEFINE_GUID(IID_IDirectInputDeviceA, 0x5944E680,0xC92E,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(IID_IDirectInputDeviceW, 0x5944E681,0xC92E,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(IID_IDirectInputDevice2A,0x5944E682,0xC92E,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(IID_IDirectInputDevice2W,0x5944E683,0xC92E,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-
-DEFINE_GUID(IID_IDirectInputEffect,  0xE7E1F7C0,0x88D2,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
-
-/****************************************************************************
- *
- *      Predefined object types
- *
- ****************************************************************************/
-
-DEFINE_GUID(GUID_XAxis,   0xA36D02E0,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(GUID_YAxis,   0xA36D02E1,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(GUID_ZAxis,   0xA36D02E2,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(GUID_RxAxis,  0xA36D02F4,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(GUID_RyAxis,  0xA36D02F5,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(GUID_RzAxis,  0xA36D02E3,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(GUID_Slider,  0xA36D02E4,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-
-DEFINE_GUID(GUID_Button,  0xA36D02F0,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(GUID_Key,     0x55728220,0xD33C,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-
-DEFINE_GUID(GUID_POV,     0xA36D02F2,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-
-DEFINE_GUID(GUID_Unknown, 0xA36D02F3,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-
-/****************************************************************************
- *
- *      Predefined product GUIDs
- *
- ****************************************************************************/
-
-DEFINE_GUID(GUID_SysMouse,   0x6F1D2B60,0xD5A0,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(GUID_SysKeyboard,0x6F1D2B61,0xD5A0,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-DEFINE_GUID(GUID_Joystick   ,0x6F1D2B70,0xD5A0,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
-
-/****************************************************************************
- *
- *      Predefined force feedback effects
- *
- ****************************************************************************/
-
-DEFINE_GUID(GUID_ConstantForce,0x13541C20,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
-DEFINE_GUID(GUID_RampForce,    0x13541C21,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
-DEFINE_GUID(GUID_Square,       0x13541C22,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
-DEFINE_GUID(GUID_Sine,         0x13541C23,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
-DEFINE_GUID(GUID_Triangle,     0x13541C24,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
-DEFINE_GUID(GUID_SawtoothUp,   0x13541C25,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
-DEFINE_GUID(GUID_SawtoothDown, 0x13541C26,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
-DEFINE_GUID(GUID_Spring,       0x13541C27,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
-DEFINE_GUID(GUID_Damper,       0x13541C28,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
-DEFINE_GUID(GUID_Inertia,      0x13541C29,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
-DEFINE_GUID(GUID_Friction,     0x13541C2A,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
-DEFINE_GUID(GUID_CustomForce,  0x13541C2B,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
-
-
-#endif /* DIJ_RINGZERO */
-
-/****************************************************************************
- *
- *      Interfaces and Structures...
- *
- ****************************************************************************/
-
-#if(DIRECTINPUT_VERSION >= 0x0500)
-
-/****************************************************************************
- *
- *      IDirectInputEffect
- *
- ****************************************************************************/
-
-#define DIEFT_ALL                   0x00000000
-
-#define DIEFT_CONSTANTFORCE         0x00000001
-#define DIEFT_RAMPFORCE             0x00000002
-#define DIEFT_PERIODIC              0x00000003
-#define DIEFT_CONDITION             0x00000004
-#define DIEFT_CUSTOMFORCE           0x00000005
-#define DIEFT_HARDWARE              0x000000FF
-
-#define DIEFT_FFATTACK              0x00000200
-#define DIEFT_FFFADE                0x00000400
-#define DIEFT_SATURATION            0x00000800
-#define DIEFT_POSNEGCOEFFICIENTS    0x00001000
-#define DIEFT_POSNEGSATURATION      0x00002000
-#define DIEFT_DEADBAND              0x00004000
-
-#define DIEFT_GETTYPE(n)            LOBYTE(n)
-
-#define DI_DEGREES                  100
-#define DI_FFNOMINALMAX             10000
-#define DI_SECONDS                  1000000
-
-typedef struct DICONSTANTFORCE {
-    LONG  lMagnitude;
-} DICONSTANTFORCE, *LPDICONSTANTFORCE;
-typedef const DICONSTANTFORCE *LPCDICONSTANTFORCE;
-
-typedef struct DIRAMPFORCE {
-    LONG  lStart;
-    LONG  lEnd;
-} DIRAMPFORCE, *LPDIRAMPFORCE;
-typedef const DIRAMPFORCE *LPCDIRAMPFORCE;
-
-typedef struct DIPERIODIC {
-    DWORD dwMagnitude;
-    LONG  lOffset;
-    DWORD dwPhase;
-    DWORD dwPeriod;
-} DIPERIODIC, *LPDIPERIODIC;
-typedef const DIPERIODIC *LPCDIPERIODIC;
-
-typedef struct DICONDITION {
-    LONG  lOffset;
-    LONG  lPositiveCoefficient;
-    LONG  lNegativeCoefficient;
-    DWORD dwPositiveSaturation;
-    DWORD dwNegativeSaturation;
-    LONG  lDeadBand;
-} DICONDITION, *LPDICONDITION;
-typedef const DICONDITION *LPCDICONDITION;
-
-typedef struct DICUSTOMFORCE {
-    DWORD cChannels;
-    DWORD dwSamplePeriod;
-    DWORD cSamples;
-    LPLONG rglForceData;
-} DICUSTOMFORCE, *LPDICUSTOMFORCE;
-typedef const DICUSTOMFORCE *LPCDICUSTOMFORCE;
-
-typedef struct DIENVELOPE {
-    DWORD dwSize;                   /* sizeof(DIENVELOPE)   */
-    DWORD dwAttackLevel;
-    DWORD dwAttackTime;             /* Microseconds         */
-    DWORD dwFadeLevel;
-    DWORD dwFadeTime;               /* Microseconds         */
-} DIENVELOPE, *LPDIENVELOPE;
-typedef const DIENVELOPE *LPCDIENVELOPE;
-
-typedef struct DIEFFECT {
-    DWORD dwSize;                   /* sizeof(DIEFFECT)     */
-    DWORD dwFlags;                  /* DIEFF_*              */
-    DWORD dwDuration;               /* Microseconds         */
-    DWORD dwSamplePeriod;           /* Microseconds         */
-    DWORD dwGain;
-    DWORD dwTriggerButton;          /* or DIEB_NOTRIGGER    */
-    DWORD dwTriggerRepeatInterval;  /* Microseconds         */
-    DWORD cAxes;                    /* Number of axes       */
-    LPDWORD rgdwAxes;               /* Array of axes        */
-    LPLONG rglDirection;            /* Array of directions  */
-    LPDIENVELOPE lpEnvelope;        /* Optional             */
-    DWORD cbTypeSpecificParams;     /* Size of params       */
-    LPVOID lpvTypeSpecificParams;   /* Pointer to params    */
-} DIEFFECT, *LPDIEFFECT;
-typedef const DIEFFECT *LPCDIEFFECT;
-
-#define DIEFF_OBJECTIDS             0x00000001
-#define DIEFF_OBJECTOFFSETS         0x00000002
-#define DIEFF_CARTESIAN             0x00000010
-#define DIEFF_POLAR                 0x00000020
-#define DIEFF_SPHERICAL             0x00000040
-
-#define DIEP_DURATION               0x00000001
-#define DIEP_SAMPLEPERIOD           0x00000002
-#define DIEP_GAIN                   0x00000004
-#define DIEP_TRIGGERBUTTON          0x00000008
-#define DIEP_TRIGGERREPEATINTERVAL  0x00000010
-#define DIEP_AXES                   0x00000020
-#define DIEP_DIRECTION              0x00000040
-#define DIEP_ENVELOPE               0x00000080
-#define DIEP_TYPESPECIFICPARAMS     0x00000100
-#define DIEP_ALLPARAMS              0x000001FF
-#define DIEP_START                  0x20000000
-#define DIEP_NORESTART              0x40000000
-#define DIEP_NODOWNLOAD             0x80000000
-#define DIEB_NOTRIGGER              0xFFFFFFFF
-
-#define DIES_SOLO                   0x00000001
-#define DIES_NODOWNLOAD             0x80000000
-
-#define DIEGES_PLAYING              0x00000001
-#define DIEGES_EMULATED             0x00000002
-
-typedef struct DIEFFESCAPE {
-    DWORD   dwSize;
-    DWORD   dwCommand;
-    LPVOID  lpvInBuffer;
-    DWORD   cbInBuffer;
-    LPVOID  lpvOutBuffer;
-    DWORD   cbOutBuffer;
-} DIEFFESCAPE, *LPDIEFFESCAPE;
-
-#ifndef DIJ_RINGZERO
-
-#undef INTERFACE
-#define INTERFACE IDirectInputEffect
-
-DECLARE_INTERFACE_(IDirectInputEffect, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-
-    /*** IDirectInputEffect methods ***/
-    STDMETHOD(Initialize)(THIS_ HINSTANCE,DWORD,REFGUID) PURE;
-    STDMETHOD(GetEffectGuid)(THIS_ LPGUID) PURE;
-    STDMETHOD(GetParameters)(THIS_ LPDIEFFECT,DWORD) PURE;
-    STDMETHOD(SetParameters)(THIS_ LPCDIEFFECT,DWORD) PURE;
-    STDMETHOD(Start)(THIS_ DWORD,DWORD) PURE;
-    STDMETHOD(Stop)(THIS) PURE;
-    STDMETHOD(GetEffectStatus)(THIS_ LPDWORD) PURE;
-    STDMETHOD(Download)(THIS) PURE;
-    STDMETHOD(Unload)(THIS) PURE;
-    STDMETHOD(Escape)(THIS_ LPDIEFFESCAPE) PURE;
-};
-
-typedef struct IDirectInputEffect *LPDIRECTINPUTEFFECT;
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectInputEffect_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectInputEffect_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IDirectInputEffect_Release(p) (p)->lpVtbl->Release(p)
-#define IDirectInputEffect_Initialize(p,a,b,c) (p)->lpVtbl->Initialize(p,a,b,c)
-#define IDirectInputEffect_GetEffectGuid(p,a) (p)->lpVtbl->GetEffectGuid(p,a)
-#define IDirectInputEffect_GetParameters(p,a,b) (p)->lpVtbl->GetParameters(p,a,b)
-#define IDirectInputEffect_SetParameters(p,a,b) (p)->lpVtbl->SetParameters(p,a,b)
-#define IDirectInputEffect_Start(p,a,b) (p)->lpVtbl->Start(p,a,b)
-#define IDirectInputEffect_Stop(p) (p)->lpVtbl->Stop(p)
-#define IDirectInputEffect_GetEffectStatus(p,a) (p)->lpVtbl->GetEffectStatus(p,a)
-#define IDirectInputEffect_Download(p) (p)->lpVtbl->Download(p)
-#define IDirectInputEffect_Unload(p) (p)->lpVtbl->Unload(p)
-#define IDirectInputEffect_Escape(p,a) (p)->lpVtbl->Escape(p,a)
-#else
-#define IDirectInputEffect_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectInputEffect_AddRef(p) (p)->AddRef()
-#define IDirectInputEffect_Release(p) (p)->Release()
-#define IDirectInputEffect_Initialize(p,a,b,c) (p)->Initialize(a,b,c)
-#define IDirectInputEffect_GetEffectGuid(p,a) (p)->GetEffectGuid(a)
-#define IDirectInputEffect_GetParameters(p,a,b) (p)->GetParameters(a,b)
-#define IDirectInputEffect_SetParameters(p,a,b) (p)->SetParameters(a,b)
-#define IDirectInputEffect_Start(p,a,b) (p)->Start(a,b)
-#define IDirectInputEffect_Stop(p) (p)->Stop()
-#define IDirectInputEffect_GetEffectStatus(p,a) (p)->GetEffectStatus(a)
-#define IDirectInputEffect_Download(p) (p)->Download()
-#define IDirectInputEffect_Unload(p) (p)->Unload()
-#define IDirectInputEffect_Escape(p,a) (p)->Escape(a)
-#endif
-
-#endif /* DIJ_RINGZERO */
-
-#endif /* DIRECTINPUT_VERSION >= 0x0500 */
-
-/****************************************************************************
- *
- *      IDirectInputDevice
- *
- ****************************************************************************/
-
-#define DIDEVTYPE_DEVICE    1
-#define DIDEVTYPE_MOUSE     2
-#define DIDEVTYPE_KEYBOARD  3
-#define DIDEVTYPE_JOYSTICK  4
-#define DIDEVTYPE_HID       0x00010000
-
-#define DIDEVTYPEMOUSE_UNKNOWN          1
-#define DIDEVTYPEMOUSE_TRADITIONAL      2
-#define DIDEVTYPEMOUSE_FINGERSTICK      3
-#define DIDEVTYPEMOUSE_TOUCHPAD         4
-#define DIDEVTYPEMOUSE_TRACKBALL        5
-
-#define DIDEVTYPEKEYBOARD_UNKNOWN       0
-#define DIDEVTYPEKEYBOARD_PCXT          1
-#define DIDEVTYPEKEYBOARD_OLIVETTI      2
-#define DIDEVTYPEKEYBOARD_PCAT          3
-#define DIDEVTYPEKEYBOARD_PCENH         4
-#define DIDEVTYPEKEYBOARD_NOKIA1050     5
-#define DIDEVTYPEKEYBOARD_NOKIA9140     6
-#define DIDEVTYPEKEYBOARD_NEC98         7
-#define DIDEVTYPEKEYBOARD_NEC98LAPTOP   8
-#define DIDEVTYPEKEYBOARD_NEC98106      9
-#define DIDEVTYPEKEYBOARD_JAPAN106     10
-#define DIDEVTYPEKEYBOARD_JAPANAX      11
-#define DIDEVTYPEKEYBOARD_J3100        12
-
-#define DIDEVTYPEJOYSTICK_UNKNOWN       1
-#define DIDEVTYPEJOYSTICK_TRADITIONAL   2
-#define DIDEVTYPEJOYSTICK_FLIGHTSTICK   3
-#define DIDEVTYPEJOYSTICK_GAMEPAD       4
-#define DIDEVTYPEJOYSTICK_RUDDER        5
-#define DIDEVTYPEJOYSTICK_WHEEL         6
-#define DIDEVTYPEJOYSTICK_HEADTRACKER   7
-
-#define GET_DIDEVICE_TYPE(dwDevType)    LOBYTE(dwDevType)
-#define GET_DIDEVICE_SUBTYPE(dwDevType) HIBYTE(dwDevType)
-
-#if(DIRECTINPUT_VERSION >= 0x0500)
-/* This structure is defined for DirectX 3.0 compatibility */
-
-typedef struct DIDEVCAPS_DX3 {
-    DWORD   dwSize;
-    DWORD   dwFlags;
-    DWORD   dwDevType;
-    DWORD   dwAxes;
-    DWORD   dwButtons;
-    DWORD   dwPOVs;
-} DIDEVCAPS_DX3, *LPDIDEVCAPS_DX3;
-#endif /* DIRECTINPUT_VERSION >= 0x0500 */
-
-typedef struct DIDEVCAPS {
-    DWORD   dwSize;
-    DWORD   dwFlags;
-    DWORD   dwDevType;
-    DWORD   dwAxes;
-    DWORD   dwButtons;
-    DWORD   dwPOVs;
-#if(DIRECTINPUT_VERSION >= 0x0500)
-    DWORD   dwFFSamplePeriod;
-    DWORD   dwFFMinTimeResolution;
-    DWORD   dwFirmwareRevision;
-    DWORD   dwHardwareRevision;
-    DWORD   dwFFDriverVersion;
-#endif /* DIRECTINPUT_VERSION >= 0x0500 */
-} DIDEVCAPS, *LPDIDEVCAPS;
-
-#define DIDC_ATTACHED           0x00000001
-#define DIDC_POLLEDDEVICE       0x00000002
-#define DIDC_EMULATED           0x00000004
-#define DIDC_POLLEDDATAFORMAT   0x00000008
-#if(DIRECTINPUT_VERSION >= 0x0500)
-#define DIDC_FORCEFEEDBACK      0x00000100
-#define DIDC_FFATTACK           0x00000200
-#define DIDC_FFFADE             0x00000400
-#define DIDC_SATURATION         0x00000800
-#define DIDC_POSNEGCOEFFICIENTS 0x00001000
-#define DIDC_POSNEGSATURATION   0x00002000
-#define DIDC_DEADBAND           0x00004000
-#endif /* DIRECTINPUT_VERSION >= 0x0500 */
-
-#define DIDFT_ALL           0x00000000
-
-#define DIDFT_RELAXIS       0x00000001
-#define DIDFT_ABSAXIS       0x00000002
-#define DIDFT_AXIS          0x00000003
-
-#define DIDFT_PSHBUTTON     0x00000004
-#define DIDFT_TGLBUTTON     0x00000008
-#define DIDFT_BUTTON        0x0000000C
-
-#define DIDFT_POV           0x00000010
-
-#define DIDFT_COLLECTION    0x00000040
-#define DIDFT_NODATA        0x00000080
-
-#define DIDFT_ANYINSTANCE   0x00FFFF00
-#define DIDFT_INSTANCEMASK  DIDFT_ANYINSTANCE
-#define DIDFT_MAKEINSTANCE(n) ((WORD)(n) << 8)
-#define DIDFT_GETTYPE(n)     LOBYTE(n)
-#define DIDFT_GETINSTANCE(n) LOWORD((n) >> 8)
-#define DIDFT_FFACTUATOR        0x01000000
-#define DIDFT_FFEFFECTTRIGGER   0x02000000
-
-#define DIDFT_ENUMCOLLECTION(n) ((WORD)(n) << 8)
-#define DIDFT_NOCOLLECTION      0x00FFFF00
-
-
-#ifndef DIJ_RINGZERO
-
-typedef struct _DIOBJECTDATAFORMAT {
-    const GUID *pguid;
-    DWORD   dwOfs;
-    DWORD   dwType;
-    DWORD   dwFlags;
-} DIOBJECTDATAFORMAT, *LPDIOBJECTDATAFORMAT;
-typedef const DIOBJECTDATAFORMAT *LPCDIOBJECTDATAFORMAT;
-
-typedef struct _DIDATAFORMAT {
-    DWORD   dwSize;
-    DWORD   dwObjSize;
-    DWORD   dwFlags;
-    DWORD   dwDataSize;
-    DWORD   dwNumObjs;
-    LPDIOBJECTDATAFORMAT rgodf;
-} DIDATAFORMAT, *LPDIDATAFORMAT;
-typedef const DIDATAFORMAT *LPCDIDATAFORMAT;
-
-#define DIDF_ABSAXIS            0x00000001
-#define DIDF_RELAXIS            0x00000002
-
-extern const DIDATAFORMAT c_dfDIMouse;
-extern const DIDATAFORMAT c_dfDIKeyboard;
-extern const DIDATAFORMAT c_dfDIJoystick;
-extern const DIDATAFORMAT c_dfDIJoystick2;
-
-#if(DIRECTINPUT_VERSION >= 0x0500)
-/* These structures are defined for DirectX 3.0 compatibility */
-
-typedef struct DIDEVICEOBJECTINSTANCE_DX3A {
-    DWORD   dwSize;
-    GUID    guidType;
-    DWORD   dwOfs;
-    DWORD   dwType;
-    DWORD   dwFlags;
-    CHAR    tszName[MAX_PATH];
-} DIDEVICEOBJECTINSTANCE_DX3A, *LPDIDEVICEOBJECTINSTANCE_DX3A;
-typedef struct DIDEVICEOBJECTINSTANCE_DX3W {
-    DWORD   dwSize;
-    GUID    guidType;
-    DWORD   dwOfs;
-    DWORD   dwType;
-    DWORD   dwFlags;
-    WCHAR   tszName[MAX_PATH];
-} DIDEVICEOBJECTINSTANCE_DX3W, *LPDIDEVICEOBJECTINSTANCE_DX3W;
-#ifdef UNICODE
-typedef DIDEVICEOBJECTINSTANCE_DX3W DIDEVICEOBJECTINSTANCE_DX3;
-typedef LPDIDEVICEOBJECTINSTANCE_DX3W LPDIDEVICEOBJECTINSTANCE_DX3;
-#else
-typedef DIDEVICEOBJECTINSTANCE_DX3A DIDEVICEOBJECTINSTANCE_DX3;
-typedef LPDIDEVICEOBJECTINSTANCE_DX3A LPDIDEVICEOBJECTINSTANCE_DX3;
-#endif // UNICODE
-typedef const DIDEVICEOBJECTINSTANCE_DX3A *LPCDIDEVICEOBJECTINSTANCE_DX3A;
-typedef const DIDEVICEOBJECTINSTANCE_DX3W *LPCDIDEVICEOBJECTINSTANCE_DX3W;
-typedef const DIDEVICEOBJECTINSTANCE_DX3  *LPCDIDEVICEOBJECTINSTANCE_DX3;
-#endif /* DIRECTINPUT_VERSION >= 0x0500 */
-
-typedef struct DIDEVICEOBJECTINSTANCEA {
-    DWORD   dwSize;
-    GUID    guidType;
-    DWORD   dwOfs;
-    DWORD   dwType;
-    DWORD   dwFlags;
-    CHAR    tszName[MAX_PATH];
-#if(DIRECTINPUT_VERSION >= 0x0500)
-    DWORD   dwFFMaxForce;
-    DWORD   dwFFForceResolution;
-    WORD    wCollectionNumber;
-    WORD    wDesignatorIndex;
-    WORD    wUsagePage;
-    WORD    wUsage;
-    DWORD   dwDimension;
-    WORD    wExponent;
-    WORD    wReserved;
-#endif /* DIRECTINPUT_VERSION >= 0x0500 */
-} DIDEVICEOBJECTINSTANCEA, *LPDIDEVICEOBJECTINSTANCEA;
-typedef struct DIDEVICEOBJECTINSTANCEW {
-    DWORD   dwSize;
-    GUID    guidType;
-    DWORD   dwOfs;
-    DWORD   dwType;
-    DWORD   dwFlags;
-    WCHAR   tszName[MAX_PATH];
-#if(DIRECTINPUT_VERSION >= 0x0500)
-    DWORD   dwFFMaxForce;
-    DWORD   dwFFForceResolution;
-    WORD    wCollectionNumber;
-    WORD    wDesignatorIndex;
-    WORD    wUsagePage;
-    WORD    wUsage;
-    DWORD   dwDimension;
-    WORD    wExponent;
-    WORD    wReserved;
-#endif /* DIRECTINPUT_VERSION >= 0x0500 */
-} DIDEVICEOBJECTINSTANCEW, *LPDIDEVICEOBJECTINSTANCEW;
-#ifdef UNICODE
-typedef DIDEVICEOBJECTINSTANCEW DIDEVICEOBJECTINSTANCE;
-typedef LPDIDEVICEOBJECTINSTANCEW LPDIDEVICEOBJECTINSTANCE;
-#else
-typedef DIDEVICEOBJECTINSTANCEA DIDEVICEOBJECTINSTANCE;
-typedef LPDIDEVICEOBJECTINSTANCEA LPDIDEVICEOBJECTINSTANCE;
-#endif // UNICODE
-typedef const DIDEVICEOBJECTINSTANCEA *LPCDIDEVICEOBJECTINSTANCEA;
-typedef const DIDEVICEOBJECTINSTANCEW *LPCDIDEVICEOBJECTINSTANCEW;
-typedef const DIDEVICEOBJECTINSTANCE  *LPCDIDEVICEOBJECTINSTANCE;
-
-typedef BOOL (FAR PASCAL * LPDIENUMDEVICEOBJECTSCALLBACKA)(LPCDIDEVICEOBJECTINSTANCEA, LPVOID);
-typedef BOOL (FAR PASCAL * LPDIENUMDEVICEOBJECTSCALLBACKW)(LPCDIDEVICEOBJECTINSTANCEW, LPVOID);
-#ifdef UNICODE
-#define LPDIENUMDEVICEOBJECTSCALLBACK  LPDIENUMDEVICEOBJECTSCALLBACKW
-#else
-#define LPDIENUMDEVICEOBJECTSCALLBACK  LPDIENUMDEVICEOBJECTSCALLBACKA
-#endif // !UNICODE
-
-#if(DIRECTINPUT_VERSION >= 0x0500)
-#define DIDOI_FFACTUATOR        0x00000001
-#define DIDOI_FFEFFECTTRIGGER   0x00000002
-#define DIDOI_POLLED            0x00008000
-#define DIDOI_ASPECTPOSITION    0x00000100
-#define DIDOI_ASPECTVELOCITY    0x00000200
-#define DIDOI_ASPECTACCEL       0x00000300
-#define DIDOI_ASPECTFORCE       0x00000400
-#define DIDOI_ASPECTMASK        0x00000F00
-#endif /* DIRECTINPUT_VERSION >= 0x0500 */
-
-typedef struct DIPROPHEADER {
-    DWORD   dwSize;
-    DWORD   dwHeaderSize;
-    DWORD   dwObj;
-    DWORD   dwHow;
-} DIPROPHEADER, *LPDIPROPHEADER;
-typedef const DIPROPHEADER *LPCDIPROPHEADER;
-
-#define DIPH_DEVICE             0
-#define DIPH_BYOFFSET           1
-#define DIPH_BYID               2
-
-typedef struct DIPROPDWORD {
-    DIPROPHEADER diph;
-    DWORD   dwData;
-} DIPROPDWORD, *LPDIPROPDWORD;
-typedef const DIPROPDWORD *LPCDIPROPDWORD;
-
-typedef struct DIPROPRANGE {
-    DIPROPHEADER diph;
-    LONG    lMin;
-    LONG    lMax;
-} DIPROPRANGE, *LPDIPROPRANGE;
-typedef const DIPROPRANGE *LPCDIPROPRANGE;
-
-#define DIPROPRANGE_NOMIN       ((LONG)0x80000000)
-#define DIPROPRANGE_NOMAX       ((LONG)0x7FFFFFFF)
-
-#ifdef __cplusplus
-#define MAKEDIPROP(prop)    (*(const GUID *)(prop))
-#else
-#define MAKEDIPROP(prop)    ((REFGUID)(prop))
-#endif
-
-#define DIPROP_BUFFERSIZE       MAKEDIPROP(1)
-
-#define DIPROP_AXISMODE         MAKEDIPROP(2)
-
-#define DIPROPAXISMODE_ABS      0
-#define DIPROPAXISMODE_REL      1
-
-#define DIPROP_GRANULARITY      MAKEDIPROP(3)
-
-#define DIPROP_RANGE            MAKEDIPROP(4)
-
-#define DIPROP_DEADZONE         MAKEDIPROP(5)
-
-#define DIPROP_SATURATION       MAKEDIPROP(6)
-
-#define DIPROP_FFGAIN           MAKEDIPROP(7)
-
-#define DIPROP_FFLOAD           MAKEDIPROP(8)
-
-#define DIPROP_AUTOCENTER       MAKEDIPROP(9)
-
-#define DIPROPAUTOCENTER_OFF    0
-#define DIPROPAUTOCENTER_ON     1
-
-#define DIPROP_CALIBRATIONMODE  MAKEDIPROP(10)
-
-#define DIPROPCALIBRATIONMODE_COOKED    0
-#define DIPROPCALIBRATIONMODE_RAW       1
-
-typedef struct DIDEVICEOBJECTDATA {
-    DWORD   dwOfs;
-    DWORD   dwData;
-    DWORD   dwTimeStamp;
-    DWORD   dwSequence;
-} DIDEVICEOBJECTDATA, *LPDIDEVICEOBJECTDATA;
-typedef const DIDEVICEOBJECTDATA *LPCDIDEVICEOBJECTDATA;
-
-#define DIGDD_PEEK          0x00000001
-
-#define DISEQUENCE_COMPARE(dwSequence1, cmp, dwSequence2) \
-                        ((int)((dwSequence1) - (dwSequence2)) cmp 0)
-#define DISCL_EXCLUSIVE     0x00000001
-#define DISCL_NONEXCLUSIVE  0x00000002
-#define DISCL_FOREGROUND    0x00000004
-#define DISCL_BACKGROUND    0x00000008
-
-#if(DIRECTINPUT_VERSION >= 0x0500)
-/* These structures are defined for DirectX 3.0 compatibility */
-
-typedef struct DIDEVICEINSTANCE_DX3A {
-    DWORD   dwSize;
-    GUID    guidInstance;
-    GUID    guidProduct;
-    DWORD   dwDevType;
-    CHAR    tszInstanceName[MAX_PATH];
-    CHAR    tszProductName[MAX_PATH];
-} DIDEVICEINSTANCE_DX3A, *LPDIDEVICEINSTANCE_DX3A;
-typedef struct DIDEVICEINSTANCE_DX3W {
-    DWORD   dwSize;
-    GUID    guidInstance;
-    GUID    guidProduct;
-    DWORD   dwDevType;
-    WCHAR   tszInstanceName[MAX_PATH];
-    WCHAR   tszProductName[MAX_PATH];
-} DIDEVICEINSTANCE_DX3W, *LPDIDEVICEINSTANCE_DX3W;
-#ifdef UNICODE
-typedef DIDEVICEINSTANCE_DX3W DIDEVICEINSTANCE_DX3;
-typedef LPDIDEVICEINSTANCE_DX3W LPDIDEVICEINSTANCE_DX3;
-#else
-typedef DIDEVICEINSTANCE_DX3A DIDEVICEINSTANCE_DX3;
-typedef LPDIDEVICEINSTANCE_DX3A LPDIDEVICEINSTANCE_DX3;
-#endif // UNICODE
-typedef const DIDEVICEINSTANCE_DX3A *LPCDIDEVICEINSTANCE_DX3A;
-typedef const DIDEVICEINSTANCE_DX3W *LPCDIDEVICEINSTANCE_DX3W;
-typedef const DIDEVICEINSTANCE_DX3  *LPCDIDEVICEINSTANCE_DX3;
-#endif /* DIRECTINPUT_VERSION >= 0x0500 */
-
-typedef struct DIDEVICEINSTANCEA {
-    DWORD   dwSize;
-    GUID    guidInstance;
-    GUID    guidProduct;
-    DWORD   dwDevType;
-    CHAR    tszInstanceName[MAX_PATH];
-    CHAR    tszProductName[MAX_PATH];
-#if(DIRECTINPUT_VERSION >= 0x0500)
-    GUID    guidFFDriver;
-    WORD    wUsagePage;
-    WORD    wUsage;
-#endif /* DIRECTINPUT_VERSION >= 0x0500 */
-} DIDEVICEINSTANCEA, *LPDIDEVICEINSTANCEA;
-typedef struct DIDEVICEINSTANCEW {
-    DWORD   dwSize;
-    GUID    guidInstance;
-    GUID    guidProduct;
-    DWORD   dwDevType;
-    WCHAR   tszInstanceName[MAX_PATH];
-    WCHAR   tszProductName[MAX_PATH];
-#if(DIRECTINPUT_VERSION >= 0x0500)
-    GUID    guidFFDriver;
-    WORD    wUsagePage;
-    WORD    wUsage;
-#endif /* DIRECTINPUT_VERSION >= 0x0500 */
-} DIDEVICEINSTANCEW, *LPDIDEVICEINSTANCEW;
-#ifdef UNICODE
-typedef DIDEVICEINSTANCEW DIDEVICEINSTANCE;
-typedef LPDIDEVICEINSTANCEW LPDIDEVICEINSTANCE;
-#else
-typedef DIDEVICEINSTANCEA DIDEVICEINSTANCE;
-typedef LPDIDEVICEINSTANCEA LPDIDEVICEINSTANCE;
-#endif // UNICODE
-typedef const DIDEVICEINSTANCEA *LPCDIDEVICEINSTANCEA;
-typedef const DIDEVICEINSTANCEW *LPCDIDEVICEINSTANCEW;
-typedef const DIDEVICEINSTANCE  *LPCDIDEVICEINSTANCE;
-
-#undef INTERFACE
-#define INTERFACE IDirectInputDeviceW
-
-DECLARE_INTERFACE_(IDirectInputDeviceW, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-
-    /*** IDirectInputDeviceW methods ***/
-    STDMETHOD(GetCapabilities)(THIS_ LPDIDEVCAPS) PURE;
-    STDMETHOD(EnumObjects)(THIS_ LPDIENUMDEVICEOBJECTSCALLBACKW,LPVOID,DWORD) PURE;
-    STDMETHOD(GetProperty)(THIS_ REFGUID,LPDIPROPHEADER) PURE;
-    STDMETHOD(SetProperty)(THIS_ REFGUID,LPCDIPROPHEADER) PURE;
-    STDMETHOD(Acquire)(THIS) PURE;
-    STDMETHOD(Unacquire)(THIS) PURE;
-    STDMETHOD(GetDeviceState)(THIS_ DWORD,LPVOID) PURE;
-    STDMETHOD(GetDeviceData)(THIS_ DWORD,LPDIDEVICEOBJECTDATA,LPDWORD,DWORD) PURE;
-    STDMETHOD(SetDataFormat)(THIS_ LPCDIDATAFORMAT) PURE;
-    STDMETHOD(SetEventNotification)(THIS_ HANDLE) PURE;
-    STDMETHOD(SetCooperativeLevel)(THIS_ HWND,DWORD) PURE;
-    STDMETHOD(GetObjectInfo)(THIS_ LPDIDEVICEOBJECTINSTANCEW,DWORD,DWORD) PURE;
-    STDMETHOD(GetDeviceInfo)(THIS_ LPDIDEVICEINSTANCEW) PURE;
-    STDMETHOD(RunControlPanel)(THIS_ HWND,DWORD) PURE;
-    STDMETHOD(Initialize)(THIS_ HINSTANCE,DWORD,REFGUID) PURE;
-};
-
-typedef struct IDirectInputDeviceW *LPDIRECTINPUTDEVICEW;
-
-#undef INTERFACE
-#define INTERFACE IDirectInputDeviceA
-
-DECLARE_INTERFACE_(IDirectInputDeviceA, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-
-    /*** IDirectInputDeviceA methods ***/
-    STDMETHOD(GetCapabilities)(THIS_ LPDIDEVCAPS) PURE;
-    STDMETHOD(EnumObjects)(THIS_ LPDIENUMDEVICEOBJECTSCALLBACKA,LPVOID,DWORD) PURE;
-    STDMETHOD(GetProperty)(THIS_ REFGUID,LPDIPROPHEADER) PURE;
-    STDMETHOD(SetProperty)(THIS_ REFGUID,LPCDIPROPHEADER) PURE;
-    STDMETHOD(Acquire)(THIS) PURE;
-    STDMETHOD(Unacquire)(THIS) PURE;
-    STDMETHOD(GetDeviceState)(THIS_ DWORD,LPVOID) PURE;
-    STDMETHOD(GetDeviceData)(THIS_ DWORD,LPDIDEVICEOBJECTDATA,LPDWORD,DWORD) PURE;
-    STDMETHOD(SetDataFormat)(THIS_ LPCDIDATAFORMAT) PURE;
-    STDMETHOD(SetEventNotification)(THIS_ HANDLE) PURE;
-    STDMETHOD(SetCooperativeLevel)(THIS_ HWND,DWORD) PURE;
-    STDMETHOD(GetObjectInfo)(THIS_ LPDIDEVICEOBJECTINSTANCEA,DWORD,DWORD) PURE;
-    STDMETHOD(GetDeviceInfo)(THIS_ LPDIDEVICEINSTANCEA) PURE;
-    STDMETHOD(RunControlPanel)(THIS_ HWND,DWORD) PURE;
-    STDMETHOD(Initialize)(THIS_ HINSTANCE,DWORD,REFGUID) PURE;
-};
-
-typedef struct IDirectInputDeviceA *LPDIRECTINPUTDEVICEA;
-
-#ifdef UNICODE
-#define IID_IDirectInputDevice IID_IDirectInputDeviceW
-#define IDirectInputDevice IDirectInputDeviceW
-#define IDirectInputDeviceVtbl IDirectInputDeviceWVtbl
-#else
-#define IID_IDirectInputDevice IID_IDirectInputDeviceA
-#define IDirectInputDevice IDirectInputDeviceA
-#define IDirectInputDeviceVtbl IDirectInputDeviceAVtbl
-#endif
-typedef struct IDirectInputDevice *LPDIRECTINPUTDEVICE;
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectInputDevice_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectInputDevice_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IDirectInputDevice_Release(p) (p)->lpVtbl->Release(p)
-#define IDirectInputDevice_GetCapabilities(p,a) (p)->lpVtbl->GetCapabilities(p,a)
-#define IDirectInputDevice_EnumObjects(p,a,b,c) (p)->lpVtbl->EnumObjects(p,a,b,c)
-#define IDirectInputDevice_GetProperty(p,a,b) (p)->lpVtbl->GetProperty(p,a,b)
-#define IDirectInputDevice_SetProperty(p,a,b) (p)->lpVtbl->SetProperty(p,a,b)
-#define IDirectInputDevice_Acquire(p) (p)->lpVtbl->Acquire(p)
-#define IDirectInputDevice_Unacquire(p) (p)->lpVtbl->Unacquire(p)
-#define IDirectInputDevice_GetDeviceState(p,a,b) (p)->lpVtbl->GetDeviceState(p,a,b)
-#define IDirectInputDevice_GetDeviceData(p,a,b,c,d) (p)->lpVtbl->GetDeviceData(p,a,b,c,d)
-#define IDirectInputDevice_SetDataFormat(p,a) (p)->lpVtbl->SetDataFormat(p,a)
-#define IDirectInputDevice_SetEventNotification(p,a) (p)->lpVtbl->SetEventNotification(p,a)
-#define IDirectInputDevice_SetCooperativeLevel(p,a,b) (p)->lpVtbl->SetCooperativeLevel(p,a,b)
-#define IDirectInputDevice_GetObjectInfo(p,a,b,c) (p)->lpVtbl->GetObjectInfo(p,a,b,c)
-#define IDirectInputDevice_GetDeviceInfo(p,a) (p)->lpVtbl->GetDeviceInfo(p,a)
-#define IDirectInputDevice_RunControlPanel(p,a,b) (p)->lpVtbl->RunControlPanel(p,a,b)
-#define IDirectInputDevice_Initialize(p,a,b,c) (p)->lpVtbl->Initialize(p,a,b,c)
-#else
-#define IDirectInputDevice_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectInputDevice_AddRef(p) (p)->AddRef()
-#define IDirectInputDevice_Release(p) (p)->Release()
-#define IDirectInputDevice_GetCapabilities(p,a) (p)->GetCapabilities(a)
-#define IDirectInputDevice_EnumObjects(p,a,b,c) (p)->EnumObjects(a,b,c)
-#define IDirectInputDevice_GetProperty(p,a,b) (p)->GetProperty(a,b)
-#define IDirectInputDevice_SetProperty(p,a,b) (p)->SetProperty(a,b)
-#define IDirectInputDevice_Acquire(p) (p)->Acquire()
-#define IDirectInputDevice_Unacquire(p) (p)->Unacquire()
-#define IDirectInputDevice_GetDeviceState(p,a,b) (p)->GetDeviceState(a,b)
-#define IDirectInputDevice_GetDeviceData(p,a,b,c,d) (p)->GetDeviceData(a,b,c,d)
-#define IDirectInputDevice_SetDataFormat(p,a) (p)->SetDataFormat(a)
-#define IDirectInputDevice_SetEventNotification(p,a) (p)->SetEventNotification(a)
-#define IDirectInputDevice_SetCooperativeLevel(p,a,b) (p)->SetCooperativeLevel(a,b)
-#define IDirectInputDevice_GetObjectInfo(p,a,b,c) (p)->GetObjectInfo(a,b,c)
-#define IDirectInputDevice_GetDeviceInfo(p,a) (p)->GetDeviceInfo(a)
-#define IDirectInputDevice_RunControlPanel(p,a,b) (p)->RunControlPanel(a,b)
-#define IDirectInputDevice_Initialize(p,a,b,c) (p)->Initialize(a,b,c)
-#endif
-
-#endif /* DIJ_RINGZERO */
-
-
-#if(DIRECTINPUT_VERSION >= 0x0500)
-
-#define DISFFC_RESET            0x00000001
-#define DISFFC_STOPALL          0x00000002
-#define DISFFC_PAUSE            0x00000004
-#define DISFFC_CONTINUE         0x00000008
-#define DISFFC_SETACTUATORSON   0x00000010
-#define DISFFC_SETACTUATORSOFF  0x00000020
-
-#define DIGFFS_EMPTY            0x00000001
-#define DIGFFS_STOPPED          0x00000002
-#define DIGFFS_PAUSED           0x00000004
-#define DIGFFS_ACTUATORSON      0x00000010
-#define DIGFFS_ACTUATORSOFF     0x00000020
-#define DIGFFS_POWERON          0x00000040
-#define DIGFFS_POWEROFF         0x00000080
-#define DIGFFS_SAFETYSWITCHON   0x00000100
-#define DIGFFS_SAFETYSWITCHOFF  0x00000200
-#define DIGFFS_USERFFSWITCHON   0x00000400
-#define DIGFFS_USERFFSWITCHOFF  0x00000800
-#define DIGFFS_DEVICELOST       0x80000000
-
-#ifndef DIJ_RINGZERO
-
-typedef struct DIEFFECTINFOA {
-    DWORD   dwSize;
-    GUID    guid;
-    DWORD   dwEffType;
-    DWORD   dwStaticParams;
-    DWORD   dwDynamicParams;
-    CHAR    tszName[MAX_PATH];
-} DIEFFECTINFOA, *LPDIEFFECTINFOA;
-typedef struct DIEFFECTINFOW {
-    DWORD   dwSize;
-    GUID    guid;
-    DWORD   dwEffType;
-    DWORD   dwStaticParams;
-    DWORD   dwDynamicParams;
-    WCHAR   tszName[MAX_PATH];
-} DIEFFECTINFOW, *LPDIEFFECTINFOW;
-#ifdef UNICODE
-typedef DIEFFECTINFOW DIEFFECTINFO;
-typedef LPDIEFFECTINFOW LPDIEFFECTINFO;
-#else
-typedef DIEFFECTINFOA DIEFFECTINFO;
-typedef LPDIEFFECTINFOA LPDIEFFECTINFO;
-#endif // UNICODE
-typedef const DIEFFECTINFOA *LPCDIEFFECTINFOA;
-typedef const DIEFFECTINFOW *LPCDIEFFECTINFOW;
-typedef const DIEFFECTINFO  *LPCDIEFFECTINFO;
-
-typedef BOOL (FAR PASCAL * LPDIENUMEFFECTSCALLBACKA)(LPCDIEFFECTINFOA, LPVOID);
-typedef BOOL (FAR PASCAL * LPDIENUMEFFECTSCALLBACKW)(LPCDIEFFECTINFOW, LPVOID);
-#ifdef UNICODE
-#define LPDIENUMEFFECTSCALLBACK  LPDIENUMEFFECTSCALLBACKW
-#else
-#define LPDIENUMEFFECTSCALLBACK  LPDIENUMEFFECTSCALLBACKA
-#endif // !UNICODE
-typedef BOOL (FAR PASCAL * LPDIENUMCREATEDEFFECTOBJECTSCALLBACK)(LPDIRECTINPUTEFFECT, LPVOID);
-
-#undef INTERFACE
-#define INTERFACE IDirectInputDevice2W
-
-DECLARE_INTERFACE_(IDirectInputDevice2W, IDirectInputDeviceW)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-
-    /*** IDirectInputDeviceW methods ***/
-    STDMETHOD(GetCapabilities)(THIS_ LPDIDEVCAPS) PURE;
-    STDMETHOD(EnumObjects)(THIS_ LPDIENUMDEVICEOBJECTSCALLBACKW,LPVOID,DWORD) PURE;
-    STDMETHOD(GetProperty)(THIS_ REFGUID,LPDIPROPHEADER) PURE;
-    STDMETHOD(SetProperty)(THIS_ REFGUID,LPCDIPROPHEADER) PURE;
-    STDMETHOD(Acquire)(THIS) PURE;
-    STDMETHOD(Unacquire)(THIS) PURE;
-    STDMETHOD(GetDeviceState)(THIS_ DWORD,LPVOID) PURE;
-    STDMETHOD(GetDeviceData)(THIS_ DWORD,LPDIDEVICEOBJECTDATA,LPDWORD,DWORD) PURE;
-    STDMETHOD(SetDataFormat)(THIS_ LPCDIDATAFORMAT) PURE;
-    STDMETHOD(SetEventNotification)(THIS_ HANDLE) PURE;
-    STDMETHOD(SetCooperativeLevel)(THIS_ HWND,DWORD) PURE;
-    STDMETHOD(GetObjectInfo)(THIS_ LPDIDEVICEOBJECTINSTANCEW,DWORD,DWORD) PURE;
-    STDMETHOD(GetDeviceInfo)(THIS_ LPDIDEVICEINSTANCEW) PURE;
-    STDMETHOD(RunControlPanel)(THIS_ HWND,DWORD) PURE;
-    STDMETHOD(Initialize)(THIS_ HINSTANCE,DWORD,REFGUID) PURE;
-
-    /*** IDirectInputDevice2W methods ***/
-    STDMETHOD(CreateEffect)(THIS_ REFGUID,LPCDIEFFECT,LPDIRECTINPUTEFFECT *,LPUNKNOWN) PURE;
-    STDMETHOD(EnumEffects)(THIS_ LPDIENUMEFFECTSCALLBACKW,LPVOID,DWORD) PURE;
-    STDMETHOD(GetEffectInfo)(THIS_ LPDIEFFECTINFOW,REFGUID) PURE;
-    STDMETHOD(GetForceFeedbackState)(THIS_ LPDWORD) PURE;
-    STDMETHOD(SendForceFeedbackCommand)(THIS_ DWORD) PURE;
-    STDMETHOD(EnumCreatedEffectObjects)(THIS_ LPDIENUMCREATEDEFFECTOBJECTSCALLBACK,LPVOID,DWORD) PURE;
-    STDMETHOD(Escape)(THIS_ LPDIEFFESCAPE) PURE;
-    STDMETHOD(Poll)(THIS) PURE;
-    STDMETHOD(SendDeviceData)(THIS_ DWORD,LPDIDEVICEOBJECTDATA,LPDWORD,DWORD) PURE;
-};
-
-typedef struct IDirectInputDevice2W *LPDIRECTINPUTDEVICE2W;
-
-#undef INTERFACE
-#define INTERFACE IDirectInputDevice2A
-
-DECLARE_INTERFACE_(IDirectInputDevice2A, IDirectInputDeviceA)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-
-    /*** IDirectInputDeviceA methods ***/
-    STDMETHOD(GetCapabilities)(THIS_ LPDIDEVCAPS) PURE;
-    STDMETHOD(EnumObjects)(THIS_ LPDIENUMDEVICEOBJECTSCALLBACKA,LPVOID,DWORD) PURE;
-    STDMETHOD(GetProperty)(THIS_ REFGUID,LPDIPROPHEADER) PURE;
-    STDMETHOD(SetProperty)(THIS_ REFGUID,LPCDIPROPHEADER) PURE;
-    STDMETHOD(Acquire)(THIS) PURE;
-    STDMETHOD(Unacquire)(THIS) PURE;
-    STDMETHOD(GetDeviceState)(THIS_ DWORD,LPVOID) PURE;
-    STDMETHOD(GetDeviceData)(THIS_ DWORD,LPDIDEVICEOBJECTDATA,LPDWORD,DWORD) PURE;
-    STDMETHOD(SetDataFormat)(THIS_ LPCDIDATAFORMAT) PURE;
-    STDMETHOD(SetEventNotification)(THIS_ HANDLE) PURE;
-    STDMETHOD(SetCooperativeLevel)(THIS_ HWND,DWORD) PURE;
-    STDMETHOD(GetObjectInfo)(THIS_ LPDIDEVICEOBJECTINSTANCEA,DWORD,DWORD) PURE;
-    STDMETHOD(GetDeviceInfo)(THIS_ LPDIDEVICEINSTANCEA) PURE;
-    STDMETHOD(RunControlPanel)(THIS_ HWND,DWORD) PURE;
-    STDMETHOD(Initialize)(THIS_ HINSTANCE,DWORD,REFGUID) PURE;
-
-    /*** IDirectInputDevice2A methods ***/
-    STDMETHOD(CreateEffect)(THIS_ REFGUID,LPCDIEFFECT,LPDIRECTINPUTEFFECT *,LPUNKNOWN) PURE;
-    STDMETHOD(EnumEffects)(THIS_ LPDIENUMEFFECTSCALLBACKA,LPVOID,DWORD) PURE;
-    STDMETHOD(GetEffectInfo)(THIS_ LPDIEFFECTINFOA,REFGUID) PURE;
-    STDMETHOD(GetForceFeedbackState)(THIS_ LPDWORD) PURE;
-    STDMETHOD(SendForceFeedbackCommand)(THIS_ DWORD) PURE;
-    STDMETHOD(EnumCreatedEffectObjects)(THIS_ LPDIENUMCREATEDEFFECTOBJECTSCALLBACK,LPVOID,DWORD) PURE;
-    STDMETHOD(Escape)(THIS_ LPDIEFFESCAPE) PURE;
-    STDMETHOD(Poll)(THIS) PURE;
-    STDMETHOD(SendDeviceData)(THIS_ DWORD,LPDIDEVICEOBJECTDATA,LPDWORD,DWORD) PURE;
-};
-
-typedef struct IDirectInputDevice2A *LPDIRECTINPUTDEVICE2A;
-
-#ifdef UNICODE
-#define IID_IDirectInputDevice2 IID_IDirectInputDevice2W
-#define IDirectInputDevice2 IDirectInputDevice2W
-#define IDirectInputDevice2Vtbl IDirectInputDevice2WVtbl
-#else
-#define IID_IDirectInputDevice2 IID_IDirectInputDevice2A
-#define IDirectInputDevice2 IDirectInputDevice2A
-#define IDirectInputDevice2Vtbl IDirectInputDevice2AVtbl
-#endif
-typedef struct IDirectInputDevice2 *LPDIRECTINPUTDEVICE2;
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectInputDevice2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectInputDevice2_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IDirectInputDevice2_Release(p) (p)->lpVtbl->Release(p)
-#define IDirectInputDevice2_GetCapabilities(p,a) (p)->lpVtbl->GetCapabilities(p,a)
-#define IDirectInputDevice2_EnumObjects(p,a,b,c) (p)->lpVtbl->EnumObjects(p,a,b,c)
-#define IDirectInputDevice2_GetProperty(p,a,b) (p)->lpVtbl->GetProperty(p,a,b)
-#define IDirectInputDevice2_SetProperty(p,a,b) (p)->lpVtbl->SetProperty(p,a,b)
-#define IDirectInputDevice2_Acquire(p) (p)->lpVtbl->Acquire(p)
-#define IDirectInputDevice2_Unacquire(p) (p)->lpVtbl->Unacquire(p)
-#define IDirectInputDevice2_GetDeviceState(p,a,b) (p)->lpVtbl->GetDeviceState(p,a,b)
-#define IDirectInputDevice2_GetDeviceData(p,a,b,c,d) (p)->lpVtbl->GetDeviceData(p,a,b,c,d)
-#define IDirectInputDevice2_SetDataFormat(p,a) (p)->lpVtbl->SetDataFormat(p,a)
-#define IDirectInputDevice2_SetEventNotification(p,a) (p)->lpVtbl->SetEventNotification(p,a)
-#define IDirectInputDevice2_SetCooperativeLevel(p,a,b) (p)->lpVtbl->SetCooperativeLevel(p,a,b)
-#define IDirectInputDevice2_GetObjectInfo(p,a,b,c) (p)->lpVtbl->GetObjectInfo(p,a,b,c)
-#define IDirectInputDevice2_GetDeviceInfo(p,a) (p)->lpVtbl->GetDeviceInfo(p,a)
-#define IDirectInputDevice2_RunControlPanel(p,a,b) (p)->lpVtbl->RunControlPanel(p,a,b)
-#define IDirectInputDevice2_Initialize(p,a,b,c) (p)->lpVtbl->Initialize(p,a,b,c)
-#define IDirectInputDevice2_CreateEffect(p,a,b,c,d) (p)->lpVtbl->CreateEffect(p,a,b,c,d)
-#define IDirectInputDevice2_EnumEffects(p,a,b,c) (p)->lpVtbl->EnumEffects(p,a,b,c)
-#define IDirectInputDevice2_GetEffectInfo(p,a,b) (p)->lpVtbl->GetEffectInfo(p,a,b)
-#define IDirectInputDevice2_GetForceFeedbackState(p,a) (p)->lpVtbl->GetForceFeedbackState(p,a)
-#define IDirectInputDevice2_SendForceFeedbackCommand(p,a) (p)->lpVtbl->SendForceFeedbackCommand(p,a)
-#define IDirectInputDevice2_EnumCreatedEffectObjects(p,a,b,c) (p)->lpVtbl->EnumCreatedEffectObjects(p,a,b,c)
-#define IDirectInputDevice2_Escape(p,a) (p)->lpVtbl->Escape(p,a)
-#define IDirectInputDevice2_Poll(p) (p)->lpVtbl->Poll(p)
-#define IDirectInputDevice2_SendDeviceData(p,a,b,c,d) (p)->lpVtbl->SendDeviceData(p,a,b,c,d)
-#else
-#define IDirectInputDevice2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectInputDevice2_AddRef(p) (p)->AddRef()
-#define IDirectInputDevice2_Release(p) (p)->Release()
-#define IDirectInputDevice2_GetCapabilities(p,a) (p)->GetCapabilities(a)
-#define IDirectInputDevice2_EnumObjects(p,a,b,c) (p)->EnumObjects(a,b,c)
-#define IDirectInputDevice2_GetProperty(p,a,b) (p)->GetProperty(a,b)
-#define IDirectInputDevice2_SetProperty(p,a,b) (p)->SetProperty(a,b)
-#define IDirectInputDevice2_Acquire(p) (p)->Acquire()
-#define IDirectInputDevice2_Unacquire(p) (p)->Unacquire()
-#define IDirectInputDevice2_GetDeviceState(p,a,b) (p)->GetDeviceState(a,b)
-#define IDirectInputDevice2_GetDeviceData(p,a,b,c,d) (p)->GetDeviceData(a,b,c,d)
-#define IDirectInputDevice2_SetDataFormat(p,a) (p)->SetDataFormat(a)
-#define IDirectInputDevice2_SetEventNotification(p,a) (p)->SetEventNotification(a)
-#define IDirectInputDevice2_SetCooperativeLevel(p,a,b) (p)->SetCooperativeLevel(a,b)
-#define IDirectInputDevice2_GetObjectInfo(p,a,b,c) (p)->GetObjectInfo(a,b,c)
-#define IDirectInputDevice2_GetDeviceInfo(p,a) (p)->GetDeviceInfo(a)
-#define IDirectInputDevice2_RunControlPanel(p,a,b) (p)->RunControlPanel(a,b)
-#define IDirectInputDevice2_Initialize(p,a,b,c) (p)->Initialize(a,b,c)
-#define IDirectInputDevice2_CreateEffect(p,a,b,c,d) (p)->CreateEffect(a,b,c,d)
-#define IDirectInputDevice2_EnumEffects(p,a,b,c) (p)->EnumEffects(a,b,c)
-#define IDirectInputDevice2_GetEffectInfo(p,a,b) (p)->GetEffectInfo(a,b)
-#define IDirectInputDevice2_GetForceFeedbackState(p,a) (p)->GetForceFeedbackState(a)
-#define IDirectInputDevice2_SendForceFeedbackCommand(p,a) (p)->SendForceFeedbackCommand(a)
-#define IDirectInputDevice2_EnumCreatedEffectObjects(p,a,b,c) (p)->EnumCreatedEffectObjects(a,b,c)
-#define IDirectInputDevice2_Escape(p,a) (p)->Escape(a)
-#define IDirectInputDevice2_Poll(p) (p)->Poll()
-#define IDirectInputDevice2_SendDeviceData(p,a,b,c,d) (p)->SendDeviceData(a,b,c,d)
-#endif
-
-#endif /* DIJ_RINGZERO */
-
-#endif /* DIRECTINPUT_VERSION >= 0x0500 */
-
-/****************************************************************************
- *
- *      Mouse
- *
- ****************************************************************************/
-
-#ifndef DIJ_RINGZERO
-
-typedef struct _DIMOUSESTATE {
-    LONG    lX;
-    LONG    lY;
-    LONG    lZ;
-    BYTE    rgbButtons[4];
-} DIMOUSESTATE, *LPDIMOUSESTATE;
-
-#define DIMOFS_X        FIELD_OFFSET(DIMOUSESTATE, lX)
-#define DIMOFS_Y        FIELD_OFFSET(DIMOUSESTATE, lY)
-#define DIMOFS_Z        FIELD_OFFSET(DIMOUSESTATE, lZ)
-#define DIMOFS_BUTTON0 (FIELD_OFFSET(DIMOUSESTATE, rgbButtons) + 0)
-#define DIMOFS_BUTTON1 (FIELD_OFFSET(DIMOUSESTATE, rgbButtons) + 1)
-#define DIMOFS_BUTTON2 (FIELD_OFFSET(DIMOUSESTATE, rgbButtons) + 2)
-#define DIMOFS_BUTTON3 (FIELD_OFFSET(DIMOUSESTATE, rgbButtons) + 3)
-
-#endif /* DIJ_RINGZERO */
-
-/****************************************************************************
- *
- *      Keyboard
- *
- ****************************************************************************/
-
-#ifndef DIJ_RINGZERO
-
-/****************************************************************************
- *
- *      DirectInput keyboard scan codes
- *
- ****************************************************************************/
-
-#define DIK_ESCAPE          0x01
-#define DIK_1               0x02
-#define DIK_2               0x03
-#define DIK_3               0x04
-#define DIK_4               0x05
-#define DIK_5               0x06
-#define DIK_6               0x07
-#define DIK_7               0x08
-#define DIK_8               0x09
-#define DIK_9               0x0A
-#define DIK_0               0x0B
-#define DIK_MINUS           0x0C    /* - on main keyboard */
-#define DIK_EQUALS          0x0D
-#define DIK_BACK            0x0E    /* backspace */
-#define DIK_TAB             0x0F
-#define DIK_Q               0x10
-#define DIK_W               0x11
-#define DIK_E               0x12
-#define DIK_R               0x13
-#define DIK_T               0x14
-#define DIK_Y               0x15
-#define DIK_U               0x16
-#define DIK_I               0x17
-#define DIK_O               0x18
-#define DIK_P               0x19
-#define DIK_LBRACKET        0x1A
-#define DIK_RBRACKET        0x1B
-#define DIK_RETURN          0x1C    /* Enter on main keyboard */
-#define DIK_LCONTROL        0x1D
-#define DIK_A               0x1E
-#define DIK_S               0x1F
-#define DIK_D               0x20
-#define DIK_F               0x21
-#define DIK_G               0x22
-#define DIK_H               0x23
-#define DIK_J               0x24
-#define DIK_K               0x25
-#define DIK_L               0x26
-#define DIK_SEMICOLON       0x27
-#define DIK_APOSTROPHE      0x28
-#define DIK_GRAVE           0x29    /* accent grave */
-#define DIK_LSHIFT          0x2A
-#define DIK_BACKSLASH       0x2B
-#define DIK_Z               0x2C
-#define DIK_X               0x2D
-#define DIK_C               0x2E
-#define DIK_V               0x2F
-#define DIK_B               0x30
-#define DIK_N               0x31
-#define DIK_M               0x32
-#define DIK_COMMA           0x33
-#define DIK_PERIOD          0x34    /* . on main keyboard */
-#define DIK_SLASH           0x35    /* / on main keyboard */
-#define DIK_RSHIFT          0x36
-#define DIK_MULTIPLY        0x37    /* * on numeric keypad */
-#define DIK_LMENU           0x38    /* left Alt */
-#define DIK_SPACE           0x39
-#define DIK_CAPITAL         0x3A
-#define DIK_F1              0x3B
-#define DIK_F2              0x3C
-#define DIK_F3              0x3D
-#define DIK_F4              0x3E
-#define DIK_F5              0x3F
-#define DIK_F6              0x40
-#define DIK_F7              0x41
-#define DIK_F8              0x42
-#define DIK_F9              0x43
-#define DIK_F10             0x44
-#define DIK_NUMLOCK         0x45
-#define DIK_SCROLL          0x46    /* Scroll Lock */
-#define DIK_NUMPAD7         0x47
-#define DIK_NUMPAD8         0x48
-#define DIK_NUMPAD9         0x49
-#define DIK_SUBTRACT        0x4A    /* - on numeric keypad */
-#define DIK_NUMPAD4         0x4B
-#define DIK_NUMPAD5         0x4C
-#define DIK_NUMPAD6         0x4D
-#define DIK_ADD             0x4E    /* + on numeric keypad */
-#define DIK_NUMPAD1         0x4F
-#define DIK_NUMPAD2         0x50
-#define DIK_NUMPAD3         0x51
-#define DIK_NUMPAD0         0x52
-#define DIK_DECIMAL         0x53    /* . on numeric keypad */
-#define DIK_F11             0x57
-#define DIK_F12             0x58
-
-#define DIK_F13             0x64    /*                     (NEC PC98) */
-#define DIK_F14             0x65    /*                     (NEC PC98) */
-#define DIK_F15             0x66    /*                     (NEC PC98) */
-
-#define DIK_KANA            0x70    /* (Japanese keyboard)            */
-#define DIK_CONVERT         0x79    /* (Japanese keyboard)            */
-#define DIK_NOCONVERT       0x7B    /* (Japanese keyboard)            */
-#define DIK_YEN             0x7D    /* (Japanese keyboard)            */
-#define DIK_NUMPADEQUALS    0x8D    /* = on numeric keypad (NEC PC98) */
-#define DIK_CIRCUMFLEX      0x90    /* (Japanese keyboard)            */
-#define DIK_AT              0x91    /*                     (NEC PC98) */
-#define DIK_COLON           0x92    /*                     (NEC PC98) */
-#define DIK_UNDERLINE       0x93    /*                     (NEC PC98) */
-#define DIK_KANJI           0x94    /* (Japanese keyboard)            */
-#define DIK_STOP            0x95    /*                     (NEC PC98) */
-#define DIK_AX              0x96    /*                     (Japan AX) */
-#define DIK_UNLABELED       0x97    /*                        (J3100) */
-#define DIK_NUMPADENTER     0x9C    /* Enter on numeric keypad */
-#define DIK_RCONTROL        0x9D
-#define DIK_NUMPADCOMMA     0xB3    /* , on numeric keypad (NEC PC98) */
-#define DIK_DIVIDE          0xB5    /* / on numeric keypad */
-#define DIK_SYSRQ           0xB7
-#define DIK_RMENU           0xB8    /* right Alt */
-#define DIK_HOME            0xC7    /* Home on arrow keypad */
-#define DIK_UP              0xC8    /* UpArrow on arrow keypad */
-#define DIK_PRIOR           0xC9    /* PgUp on arrow keypad */
-#define DIK_LEFT            0xCB    /* LeftArrow on arrow keypad */
-#define DIK_RIGHT           0xCD    /* RightArrow on arrow keypad */
-#define DIK_END             0xCF    /* End on arrow keypad */
-#define DIK_DOWN            0xD0    /* DownArrow on arrow keypad */
-#define DIK_NEXT            0xD1    /* PgDn on arrow keypad */
-#define DIK_INSERT          0xD2    /* Insert on arrow keypad */
-#define DIK_DELETE          0xD3    /* Delete on arrow keypad */
-#define DIK_LWIN            0xDB    /* Left Windows key */
-#define DIK_RWIN            0xDC    /* Right Windows key */
-#define DIK_APPS            0xDD    /* AppMenu key */
-
-/*
- *  Alternate names for keys, to facilitate transition from DOS.
- */
-#define DIK_BACKSPACE       DIK_BACK            /* backspace */
-#define DIK_NUMPADSTAR      DIK_MULTIPLY        /* * on numeric keypad */
-#define DIK_LALT            DIK_LMENU           /* left Alt */
-#define DIK_CAPSLOCK        DIK_CAPITAL         /* CapsLock */
-#define DIK_NUMPADMINUS     DIK_SUBTRACT        /* - on numeric keypad */
-#define DIK_NUMPADPLUS      DIK_ADD             /* + on numeric keypad */
-#define DIK_NUMPADPERIOD    DIK_DECIMAL         /* . on numeric keypad */
-#define DIK_NUMPADSLASH     DIK_DIVIDE          /* / on numeric keypad */
-#define DIK_RALT            DIK_RMENU           /* right Alt */
-#define DIK_UPARROW         DIK_UP              /* UpArrow on arrow keypad */
-#define DIK_PGUP            DIK_PRIOR           /* PgUp on arrow keypad */
-#define DIK_LEFTARROW       DIK_LEFT            /* LeftArrow on arrow keypad */
-#define DIK_RIGHTARROW      DIK_RIGHT           /* RightArrow on arrow keypad */
-#define DIK_DOWNARROW       DIK_DOWN            /* DownArrow on arrow keypad */
-#define DIK_PGDN            DIK_NEXT            /* PgDn on arrow keypad */
-
-#endif /* DIJ_RINGZERO */
-
-/****************************************************************************
- *
- *      Joystick
- *
- ****************************************************************************/
-
-#ifndef DIJ_RINGZERO
-
-typedef struct DIJOYSTATE {
-    LONG    lX;                     /* x-axis position              */
-    LONG    lY;                     /* y-axis position              */
-    LONG    lZ;                     /* z-axis position              */
-    LONG    lRx;                    /* x-axis rotation              */
-    LONG    lRy;                    /* y-axis rotation              */
-    LONG    lRz;                    /* z-axis rotation              */
-    LONG    rglSlider[2];           /* extra axes positions         */
-    DWORD   rgdwPOV[4];             /* POV directions               */
-    BYTE    rgbButtons[32];         /* 32 buttons                   */
-} DIJOYSTATE, *LPDIJOYSTATE;
-
-typedef struct DIJOYSTATE2 {
-    LONG    lX;                     /* x-axis position              */
-    LONG    lY;                     /* y-axis position              */
-    LONG    lZ;                     /* z-axis position              */
-    LONG    lRx;                    /* x-axis rotation              */
-    LONG    lRy;                    /* y-axis rotation              */
-    LONG    lRz;                    /* z-axis rotation              */
-    LONG    rglSlider[2];           /* extra axes positions         */
-    DWORD   rgdwPOV[4];             /* POV directions               */
-    BYTE    rgbButtons[128];        /* 128 buttons                  */
-    LONG    lVX;                    /* x-axis velocity              */
-    LONG    lVY;                    /* y-axis velocity              */
-    LONG    lVZ;                    /* z-axis velocity              */
-    LONG    lVRx;                   /* x-axis angular velocity      */
-    LONG    lVRy;                   /* y-axis angular velocity      */
-    LONG    lVRz;                   /* z-axis angular velocity      */
-    LONG    rglVSlider[2];          /* extra axes velocities        */
-    LONG    lAX;                    /* x-axis acceleration          */
-    LONG    lAY;                    /* y-axis acceleration          */
-    LONG    lAZ;                    /* z-axis acceleration          */
-    LONG    lARx;                   /* x-axis angular acceleration  */
-    LONG    lARy;                   /* y-axis angular acceleration  */
-    LONG    lARz;                   /* z-axis angular acceleration  */
-    LONG    rglASlider[2];          /* extra axes accelerations     */
-    LONG    lFX;                    /* x-axis force                 */
-    LONG    lFY;                    /* y-axis force                 */
-    LONG    lFZ;                    /* z-axis force                 */
-    LONG    lFRx;                   /* x-axis torque                */
-    LONG    lFRy;                   /* y-axis torque                */
-    LONG    lFRz;                   /* z-axis torque                */
-    LONG    rglFSlider[2];          /* extra axes forces            */
-} DIJOYSTATE2, *LPDIJOYSTATE2;
-
-#define DIJOFS_X            FIELD_OFFSET(DIJOYSTATE, lX)
-#define DIJOFS_Y            FIELD_OFFSET(DIJOYSTATE, lY)
-#define DIJOFS_Z            FIELD_OFFSET(DIJOYSTATE, lZ)
-#define DIJOFS_RX           FIELD_OFFSET(DIJOYSTATE, lRx)
-#define DIJOFS_RY           FIELD_OFFSET(DIJOYSTATE, lRy)
-#define DIJOFS_RZ           FIELD_OFFSET(DIJOYSTATE, lRz)
-#define DIJOFS_SLIDER(n)   (FIELD_OFFSET(DIJOYSTATE, rglSlider) + \
-                                                        (n) * sizeof(LONG))
-#define DIJOFS_POV(n)      (FIELD_OFFSET(DIJOYSTATE, rgdwPOV) + \
-                                                        (n) * sizeof(DWORD))
-#define DIJOFS_BUTTON(n)   (FIELD_OFFSET(DIJOYSTATE, rgbButtons) + (n))
-#define DIJOFS_BUTTON0      DIJOFS_BUTTON(0)
-#define DIJOFS_BUTTON1      DIJOFS_BUTTON(1)
-#define DIJOFS_BUTTON2      DIJOFS_BUTTON(2)
-#define DIJOFS_BUTTON3      DIJOFS_BUTTON(3)
-#define DIJOFS_BUTTON4      DIJOFS_BUTTON(4)
-#define DIJOFS_BUTTON5      DIJOFS_BUTTON(5)
-#define DIJOFS_BUTTON6      DIJOFS_BUTTON(6)
-#define DIJOFS_BUTTON7      DIJOFS_BUTTON(7)
-#define DIJOFS_BUTTON8      DIJOFS_BUTTON(8)
-#define DIJOFS_BUTTON9      DIJOFS_BUTTON(9)
-#define DIJOFS_BUTTON10     DIJOFS_BUTTON(10)
-#define DIJOFS_BUTTON11     DIJOFS_BUTTON(11)
-#define DIJOFS_BUTTON12     DIJOFS_BUTTON(12)
-#define DIJOFS_BUTTON13     DIJOFS_BUTTON(13)
-#define DIJOFS_BUTTON14     DIJOFS_BUTTON(14)
-#define DIJOFS_BUTTON15     DIJOFS_BUTTON(15)
-#define DIJOFS_BUTTON16     DIJOFS_BUTTON(16)
-#define DIJOFS_BUTTON17     DIJOFS_BUTTON(17)
-#define DIJOFS_BUTTON18     DIJOFS_BUTTON(18)
-#define DIJOFS_BUTTON19     DIJOFS_BUTTON(19)
-#define DIJOFS_BUTTON20     DIJOFS_BUTTON(20)
-#define DIJOFS_BUTTON21     DIJOFS_BUTTON(21)
-#define DIJOFS_BUTTON22     DIJOFS_BUTTON(22)
-#define DIJOFS_BUTTON23     DIJOFS_BUTTON(23)
-#define DIJOFS_BUTTON24     DIJOFS_BUTTON(24)
-#define DIJOFS_BUTTON25     DIJOFS_BUTTON(25)
-#define DIJOFS_BUTTON26     DIJOFS_BUTTON(26)
-#define DIJOFS_BUTTON27     DIJOFS_BUTTON(27)
-#define DIJOFS_BUTTON28     DIJOFS_BUTTON(28)
-#define DIJOFS_BUTTON29     DIJOFS_BUTTON(29)
-#define DIJOFS_BUTTON30     DIJOFS_BUTTON(30)
-#define DIJOFS_BUTTON31     DIJOFS_BUTTON(31)
-
-
-#endif /* DIJ_RINGZERO */
-
-/****************************************************************************
- *
- *  IDirectInput
- *
- ****************************************************************************/
-
-#ifndef DIJ_RINGZERO
-
-#define DIENUM_STOP             0
-#define DIENUM_CONTINUE         1
-
-typedef BOOL (FAR PASCAL * LPDIENUMDEVICESCALLBACKA)(LPCDIDEVICEINSTANCEA, LPVOID);
-typedef BOOL (FAR PASCAL * LPDIENUMDEVICESCALLBACKW)(LPCDIDEVICEINSTANCEW, LPVOID);
-#ifdef UNICODE
-#define LPDIENUMDEVICESCALLBACK  LPDIENUMDEVICESCALLBACKW
-#else
-#define LPDIENUMDEVICESCALLBACK  LPDIENUMDEVICESCALLBACKA
-#endif // !UNICODE
-
-#define DIEDFL_ALLDEVICES       0x00000000
-#define DIEDFL_ATTACHEDONLY     0x00000001
-#if(DIRECTINPUT_VERSION >= 0x0500)
-#define DIEDFL_FORCEFEEDBACK    0x00000100
-#endif /* DIRECTINPUT_VERSION >= 0x0500 */
-
-#undef INTERFACE
-#define INTERFACE IDirectInputW
-
-DECLARE_INTERFACE_(IDirectInputW, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-
-    /*** IDirectInputW methods ***/
-    STDMETHOD(CreateDevice)(THIS_ REFGUID,LPDIRECTINPUTDEVICEW *,LPUNKNOWN) PURE;
-    STDMETHOD(EnumDevices)(THIS_ DWORD,LPDIENUMDEVICESCALLBACKW,LPVOID,DWORD) PURE;
-    STDMETHOD(GetDeviceStatus)(THIS_ REFGUID) PURE;
-    STDMETHOD(RunControlPanel)(THIS_ HWND,DWORD) PURE;
-    STDMETHOD(Initialize)(THIS_ HINSTANCE,DWORD) PURE;
-};
-
-typedef struct IDirectInputW *LPDIRECTINPUTW;
-
-#undef INTERFACE
-#define INTERFACE IDirectInputA
-
-DECLARE_INTERFACE_(IDirectInputA, IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-
-    /*** IDirectInputA methods ***/
-    STDMETHOD(CreateDevice)(THIS_ REFGUID,LPDIRECTINPUTDEVICEA *,LPUNKNOWN) PURE;
-    STDMETHOD(EnumDevices)(THIS_ DWORD,LPDIENUMDEVICESCALLBACKA,LPVOID,DWORD) PURE;
-    STDMETHOD(GetDeviceStatus)(THIS_ REFGUID) PURE;
-    STDMETHOD(RunControlPanel)(THIS_ HWND,DWORD) PURE;
-    STDMETHOD(Initialize)(THIS_ HINSTANCE,DWORD) PURE;
-};
-
-typedef struct IDirectInputA *LPDIRECTINPUTA;
-
-#ifdef UNICODE
-#define IID_IDirectInput IID_IDirectInputW
-#define IDirectInput IDirectInputW
-#define IDirectInputVtbl IDirectInputWVtbl
-#else
-#define IID_IDirectInput IID_IDirectInputA
-#define IDirectInput IDirectInputA
-#define IDirectInputVtbl IDirectInputAVtbl
-#endif
-typedef struct IDirectInput *LPDIRECTINPUT;
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectInput_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectInput_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IDirectInput_Release(p) (p)->lpVtbl->Release(p)
-#define IDirectInput_CreateDevice(p,a,b,c) (p)->lpVtbl->CreateDevice(p,a,b,c)
-#define IDirectInput_EnumDevices(p,a,b,c,d) (p)->lpVtbl->EnumDevices(p,a,b,c,d)
-#define IDirectInput_GetDeviceStatus(p,a) (p)->lpVtbl->GetDeviceStatus(p,a)
-#define IDirectInput_RunControlPanel(p,a,b) (p)->lpVtbl->RunControlPanel(p,a,b)
-#define IDirectInput_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
-#else
-#define IDirectInput_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectInput_AddRef(p) (p)->AddRef()
-#define IDirectInput_Release(p) (p)->Release()
-#define IDirectInput_CreateDevice(p,a,b,c) (p)->CreateDevice(a,b,c)
-#define IDirectInput_EnumDevices(p,a,b,c,d) (p)->EnumDevices(a,b,c,d)
-#define IDirectInput_GetDeviceStatus(p,a) (p)->GetDeviceStatus(a)
-#define IDirectInput_RunControlPanel(p,a,b) (p)->RunControlPanel(a,b)
-#define IDirectInput_Initialize(p,a,b) (p)->Initialize(a,b)
-#endif
-
-#undef INTERFACE
-#define INTERFACE IDirectInput2W
-
-DECLARE_INTERFACE_(IDirectInput2W, IDirectInputW)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-
-    /*** IDirectInputW methods ***/
-    STDMETHOD(CreateDevice)(THIS_ REFGUID,LPDIRECTINPUTDEVICEW *,LPUNKNOWN) PURE;
-    STDMETHOD(EnumDevices)(THIS_ DWORD,LPDIENUMDEVICESCALLBACKW,LPVOID,DWORD) PURE;
-    STDMETHOD(GetDeviceStatus)(THIS_ REFGUID) PURE;
-    STDMETHOD(RunControlPanel)(THIS_ HWND,DWORD) PURE;
-    STDMETHOD(Initialize)(THIS_ HINSTANCE,DWORD) PURE;
-
-    /*** IDirectInput2W methods ***/
-    STDMETHOD(FindDevice)(THIS_ REFGUID,LPCWSTR,LPGUID) PURE;
-};
-
-typedef struct IDirectInput2W *LPDIRECTINPUT2W;
-
-#undef INTERFACE
-#define INTERFACE IDirectInput2A
-
-DECLARE_INTERFACE_(IDirectInput2A, IDirectInputA)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-
-    /*** IDirectInputA methods ***/
-    STDMETHOD(CreateDevice)(THIS_ REFGUID,LPDIRECTINPUTDEVICEA *,LPUNKNOWN) PURE;
-    STDMETHOD(EnumDevices)(THIS_ DWORD,LPDIENUMDEVICESCALLBACKA,LPVOID,DWORD) PURE;
-    STDMETHOD(GetDeviceStatus)(THIS_ REFGUID) PURE;
-    STDMETHOD(RunControlPanel)(THIS_ HWND,DWORD) PURE;
-    STDMETHOD(Initialize)(THIS_ HINSTANCE,DWORD) PURE;
-
-    /*** IDirectInput2A methods ***/
-    STDMETHOD(FindDevice)(THIS_ REFGUID,LPCSTR,LPGUID) PURE;
-};
-
-typedef struct IDirectInput2A *LPDIRECTINPUT2A;
-
-#ifdef UNICODE
-#define IID_IDirectInput2 IID_IDirectInput2W
-#define IDirectInput2 IDirectInput2W
-#define IDirectInput2Vtbl IDirectInput2WVtbl
-#else
-#define IID_IDirectInput2 IID_IDirectInput2A
-#define IDirectInput2 IDirectInput2A
-#define IDirectInput2Vtbl IDirectInput2AVtbl
-#endif
-typedef struct IDirectInput2 *LPDIRECTINPUT2;
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-#define IDirectInput2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectInput2_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IDirectInput2_Release(p) (p)->lpVtbl->Release(p)
-#define IDirectInput2_CreateDevice(p,a,b,c) (p)->lpVtbl->CreateDevice(p,a,b,c)
-#define IDirectInput2_EnumDevices(p,a,b,c,d) (p)->lpVtbl->EnumDevices(p,a,b,c,d)
-#define IDirectInput2_GetDeviceStatus(p,a) (p)->lpVtbl->GetDeviceStatus(p,a)
-#define IDirectInput2_RunControlPanel(p,a,b) (p)->lpVtbl->RunControlPanel(p,a,b)
-#define IDirectInput2_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectInput2_FindDevice(p,a,b,c) (p)->lpVtbl->FindDevice(p,a,b,c)
-#else
-#define IDirectInput2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectInput2_AddRef(p) (p)->AddRef()
-#define IDirectInput2_Release(p) (p)->Release()
-#define IDirectInput2_CreateDevice(p,a,b,c) (p)->CreateDevice(a,b,c)
-#define IDirectInput2_EnumDevices(p,a,b,c,d) (p)->EnumDevices(a,b,c,d)
-#define IDirectInput2_GetDeviceStatus(p,a) (p)->GetDeviceStatus(a)
-#define IDirectInput2_RunControlPanel(p,a,b) (p)->RunControlPanel(a,b)
-#define IDirectInput2_Initialize(p,a,b) (p)->Initialize(a,b)
-#define IDirectInput2_FindDevice(p,a,b,c) (p)->FindDevice(a,b,c)
-#endif
-
-extern HRESULT WINAPI DirectInputCreateA(HINSTANCE hinst, DWORD dwVersion, LPDIRECTINPUTA *ppDI, LPUNKNOWN punkOuter);
-extern HRESULT WINAPI DirectInputCreateW(HINSTANCE hinst, DWORD dwVersion, LPDIRECTINPUTW *ppDI, LPUNKNOWN punkOuter);
-#ifdef UNICODE
-#define DirectInputCreate  DirectInputCreateW
-#else
-#define DirectInputCreate  DirectInputCreateA
-#endif // !UNICODE
-
-#endif /* DIJ_RINGZERO */
-
-
-/****************************************************************************
- *
- *  Return Codes
- *
- ****************************************************************************/
-
-/*
- *  The operation completed successfully.
- */
-#define DI_OK                           S_OK
-
-/*
- *  The device exists but is not currently attached.
- */
-#define DI_NOTATTACHED                  S_FALSE
-
-/*
- *  The device buffer overflowed.  Some input was lost.
- */
-#define DI_BUFFEROVERFLOW               S_FALSE
-
-/*
- *  The change in device properties had no effect.
- */
-#define DI_PROPNOEFFECT                 S_FALSE
-
-/*
- *  The operation had no effect.
- */
-#define DI_NOEFFECT                     S_FALSE
-
-/*
- *  The device is a polled device.  As a result, device buffering
- *  will not collect any data and event notifications will not be
- *  signalled until GetDeviceState is called.
- */
-#define DI_POLLEDDEVICE                 ((HRESULT)0x00000002L)
-
-/*
- *  The parameters of the effect were successfully updated by
- *  IDirectInputEffect::SetParameters, but the effect was not
- *  downloaded because the device is not exclusively acquired
- *  or because the DIEP_NODOWNLOAD flag was passed.
- */
-#define DI_DOWNLOADSKIPPED              ((HRESULT)0x00000003L)
-
-/*
- *  The parameters of the effect were successfully updated by
- *  IDirectInputEffect::SetParameters, but in order to change
- *  the parameters, the effect needed to be restarted.
- */
-#define DI_EFFECTRESTARTED              ((HRESULT)0x00000004L)
-
-/*
- *  The parameters of the effect were successfully updated by
- *  IDirectInputEffect::SetParameters, but some of them were
- *  beyond the capabilities of the device and were truncated.
- */
-#define DI_TRUNCATED                    ((HRESULT)0x00000008L)
-
-/*
- *  Equal to DI_EFFECTRESTARTED | DI_TRUNCATED.
- */
-#define DI_TRUNCATEDANDRESTARTED        ((HRESULT)0x0000000CL)
-
-/*
- *  The application requires a newer version of DirectInput.
- */
-#define DIERR_OLDDIRECTINPUTVERSION     \
-    MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_OLD_WIN_VERSION)
-
-/*
- *  The application was written for an unsupported prerelease version
- *  of DirectInput.
- */
-#define DIERR_BETADIRECTINPUTVERSION    \
-    MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_RMODE_APP)
-
-/*
- *  The object could not be created due to an incompatible driver version
- *  or mismatched or incomplete driver components.
- */
-#define DIERR_BADDRIVERVER              \
-    MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_BAD_DRIVER_LEVEL)
-
-/*
- * The device or device instance or effect is not registered with DirectInput.
- */
-#define DIERR_DEVICENOTREG              REGDB_E_CLASSNOTREG
-
-/*
- * The requested object does not exist.
- */
-#define DIERR_NOTFOUND                  \
-    MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_FILE_NOT_FOUND)
-
-/*
- * The requested object does not exist.
- */
-#define DIERR_OBJECTNOTFOUND            \
-    MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_FILE_NOT_FOUND)
-
-/*
- * An invalid parameter was passed to the returning function,
- * or the object was not in a state that admitted the function
- * to be called.
- */
-#define DIERR_INVALIDPARAM              E_INVALIDARG
-
-/*
- * The specified interface is not supported by the object
- */
-#define DIERR_NOINTERFACE               E_NOINTERFACE
-
-/*
- * An undetermined error occured inside the DInput subsystem
- */
-#define DIERR_GENERIC                   E_FAIL
-
-/*
- * The DInput subsystem couldn't allocate sufficient memory to complete the
- * caller's request.
- */
-#define DIERR_OUTOFMEMORY               E_OUTOFMEMORY
-
-/*
- * The function called is not supported at this time
- */
-#define DIERR_UNSUPPORTED               E_NOTIMPL
-
-/*
- * This object has not been initialized
- */
-#define DIERR_NOTINITIALIZED            \
-    MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_NOT_READY)
-
-/*
- * This object is already initialized
- */
-#define DIERR_ALREADYINITIALIZED        \
-    MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_ALREADY_INITIALIZED)
-
-/*
- * This object does not support aggregation
- */
-#define DIERR_NOAGGREGATION             CLASS_E_NOAGGREGATION
-
-/*
- * Another app has a higher priority level, preventing this call from
- * succeeding.
- */
-#define DIERR_OTHERAPPHASPRIO           E_ACCESSDENIED
-
-/*
- * Access to the device has been lost.  It must be re-acquired.
- */
-#define DIERR_INPUTLOST                 \
-    MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_READ_FAULT)
-
-/*
- * The operation cannot be performed while the device is acquired.
- */
-#define DIERR_ACQUIRED                  \
-    MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_BUSY)
-
-/*
- * The operation cannot be performed unless the device is acquired.
- */
-#define DIERR_NOTACQUIRED               \
-    MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_INVALID_ACCESS)
-
-/*
- * The specified property cannot be changed.
- */
-#define DIERR_READONLY                  E_ACCESSDENIED
-
-/*
- * The device already has an event notification associated with it.
- */
-#define DIERR_HANDLEEXISTS              E_ACCESSDENIED
-
-/*
- * Data is not yet available.
- */
-#ifndef E_PENDING
-#define E_PENDING                       0x80070007L
-#endif
-
-/*
- * Unable to IDirectInputJoyConfig_Acquire because the user
- * does not have sufficient privileges to change the joystick
- * configuration.
- */
-#define DIERR_INSUFFICIENTPRIVS         0x80040200L
-
-/*
- * The device is full.
- */
-#define DIERR_DEVICEFULL                0x80040201L
-
-/*
- * Not all the requested information fit into the buffer.
- */
-#define DIERR_MOREDATA                  0x80040202L
-
-/*
- * The effect is not downloaded.
- */
-#define DIERR_NOTDOWNLOADED             0x80040203L
-
-/*
- *  The device cannot be reinitialized because there are still effects
- *  attached to it.
- */
-#define DIERR_HASEFFECTS                0x80040204L
-
-/*
- *  The operation cannot be performed unless the device is acquired
- *  in DISCL_EXCLUSIVE mode.
- */
-#define DIERR_NOTEXCLUSIVEACQUIRED      0x80040205L
-
-/*
- *  The effect could not be downloaded because essential information
- *  is missing.  For example, no axes have been associated with the
- *  effect, or no type-specific information has been created.
- */
-#define DIERR_INCOMPLETEEFFECT          0x80040206L
-
-/*
- *  Attempted to read buffered device data from a device that is
- *  not buffered.
- */
-#define DIERR_NOTBUFFERED               0x80040207L
-
-/*
- *  An attempt was made to modify parameters of an effect while it is
- *  playing.  Not all hardware devices support altering the parameters
- *  of an effect while it is playing.
- */
-#define DIERR_EFFECTPLAYING             0x80040208L
-
-#ifdef __cplusplus
-};
-#endif
-
-#endif  /* __DINPUT_INCLUDED__ */
-
-/****************************************************************************
- *
- *  Definitions for non-IDirectInput (VJoyD) features defined more recently
- *  than the current sdk files
- *
- ****************************************************************************/
-
-#ifdef _INC_MMSYSTEM
-#ifndef MMNOJOY
-
-#ifndef __VJOYDX_INCLUDED__
-#define __VJOYDX_INCLUDED__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Flag to indicate that the dwReserved2 field of the JOYINFOEX structure
- * contains mini-driver specific data to be passed by VJoyD to the mini-
- * driver instead of doing a poll.
- */
-#define JOY_PASSDRIVERDATA          0x10000000l
-
-/*
- * Informs the joystick driver that the configuration has been changed
- * and should be reloaded from the registery.
- * dwFlags is reserved and should be set to zero
- */
-WINMMAPI MMRESULT WINAPI joyConfigChanged( DWORD dwFlags );
-
-/*
- * Hardware Setting indicating that the device is a headtracker
- */
-#define JOY_HWS_ISHEADTRACKER       0x02000000l
-
-/*
- * Hardware Setting indicating that the VxD is used to replace
- * the standard analog polling
- */
-#define JOY_HWS_ISGAMEPORTDRIVER    0x04000000l
-
-/*
- * Hardware Setting indicating that the driver needs a standard
- * gameport in order to communicate with the device.
- */
-#define JOY_HWS_ISANALOGPORTDRIVER  0x08000000l 
-
-/*
- * Hardware Setting indicating that VJoyD should not load this 
- * driver, it will be loaded externally and will register with
- * VJoyD of it's own accord.
- */
-#define JOY_HWS_AUTOLOAD            0x10000000l
-
-/*
- * Hardware Setting indicating that the driver acquires any 
- * resources needed without needing a devnode through VJoyD.
- */
-#define JOY_HWS_NODEVNODE           0x20000000l
-
-/*
- * Hardware Setting indicating that the VxD can be used as
- * a port 201h emulator.
- */
-#define JOY_HWS_ISGAMEPORTEMULATOR  0x40000000l
-
-
-/*
- * Usage Setting indicating that the settings are volatile and
- * should be removed if still present on a reboot.
- */
-#define JOY_US_VOLATILE             0x00000008L
-
-#ifdef __cplusplus
-};
-#endif
-
-#endif  /* __VJOYDX_INCLUDED__ */
-
-#endif  /* not MMNOJOY */
-#endif  /* _INC_MMSYSTEM */
-
-/****************************************************************************
- *
- *  Definitions for non-IDirectInput (VJoyD) features defined more recently
- *  than the current ddk files
- *
- ****************************************************************************/
-
-#ifndef DIJ_RINGZERO
-
-#ifdef _INC_MMDDK
-#ifndef MMNOJOYDEV
-
-#ifndef __VJOYDXD_INCLUDED__
-#define __VJOYDXD_INCLUDED__
-/*
- * Poll type in which the do_other field of the JOYOEMPOLLDATA
- * structure contains mini-driver specific data passed from an app.
- */
-#define JOY_OEMPOLL_PASSDRIVERDATA  7
-
-#endif  /* __VJOYDXD_INCLUDED__ */
-
-#endif  /* not MMNOJOYDEV */
-#endif  /* _INC_MMDDK */
-
-#endif /* DIJ_RINGZERO */
diff --git a/misc/builddeps/win64/dx/include/dsound.h b/misc/builddeps/win64/dx/include/dsound.h
deleted file mode 100644 (file)
index 599b80a..0000000
+++ /dev/null
@@ -1,1200 +0,0 @@
-/*
- * Copyright (C) the Wine project
- *
- * 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_DSOUND_H
-#define __WINE_DSOUND_H
-#define __DSOUND_INCLUDED__
-
-#include <_mingw_dxhelper.h>
-#ifndef DIRECTSOUND_VERSION
-#define DIRECTSOUND_VERSION 0x0900
-#endif
-
-#define COM_NO_WINDOWS_H
-#include <objbase.h>
-#include <float.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* defined(__cplusplus) */
-
-#ifndef DX_SHARED_DEFINES
-
-typedef float D3DVALUE, *LPD3DVALUE;
-
-#ifndef D3DCOLOR_DEFINED
-typedef DWORD D3DCOLOR, *LPD3DCOLOR;
-#define D3DCOLOR_DEFINED
-#endif
-
-#ifndef D3DVECTOR_DEFINED
-typedef struct _D3DVECTOR {
-    float x;
-    float y;
-    float z;
-} D3DVECTOR;
-#define D3DVECTOR_DEFINED
-#endif
-
-#ifndef LPD3DVECTOR_DEFINED
-typedef D3DVECTOR *LPD3DVECTOR;
-#define LPD3DVECTOR_DEFINED
-#endif
-
-#define DX_SHARED_DEFINES
-#endif /* DX_SHARED_DEFINES */
-
-/*****************************************************************************
- * Predeclare the interfaces
- */
-DEFINE_GUID(CLSID_DirectSound,         0x47d4d946, 0x62e8, 0x11cf, 0x93, 0xbc, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00);
-DEFINE_GUID(CLSID_DirectSound8,                0x3901cc3f, 0x84b5, 0x4fa4, 0xba, 0x35, 0xaa, 0x81, 0x72, 0xb8, 0xa0, 0x9b);
-DEFINE_GUID(CLSID_DirectSoundCapture,  0xb0210780, 0x89cd, 0x11d0, 0xaf, 0x08, 0x00, 0xa0, 0xc9, 0x25, 0xcd, 0x16);
-DEFINE_GUID(CLSID_DirectSoundCapture8, 0xe4bcac13, 0x7f99, 0x4908, 0x9a, 0x8e, 0x74, 0xe3, 0xbf, 0x24, 0xb6, 0xe1);
-DEFINE_GUID(CLSID_DirectSoundFullDuplex,0xfea4300c, 0x7959, 0x4147, 0xb2, 0x6a, 0x23, 0x77, 0xb9, 0xe7, 0xa9, 0x1d);
-
-DEFINE_GUID(IID_IDirectSound,          0x279AFA83,0x4981,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60);
-typedef struct IDirectSound *LPDIRECTSOUND,**LPLPDIRECTSOUND;
-
-DEFINE_GUID(IID_IDirectSound8,         0xC50A7E93,0xF395,0x4834,0x9E,0xF6,0x7F,0xA9,0x9D,0xE5,0x09,0x66);
-typedef struct IDirectSound8 *LPDIRECTSOUND8,**LPLPDIRECTSOUND8;
-
-DEFINE_GUID(IID_IDirectSoundBuffer,    0x279AFA85,0x4981,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60);
-typedef struct IDirectSoundBuffer *LPDIRECTSOUNDBUFFER,**LPLPDIRECTSOUNDBUFFER;
-
-DEFINE_GUID(IID_IDirectSoundBuffer8,   0x6825A449,0x7524,0x4D82,0x92,0x0F,0x50,0xE3,0x6A,0xB3,0xAB,0x1E);
-typedef struct IDirectSoundBuffer8 *LPDIRECTSOUNDBUFFER8,**LPLPDIRECTSOUNDBUFFER8;
-
-DEFINE_GUID(IID_IDirectSoundNotify,    0xB0210783,0x89cd,0x11d0,0xAF,0x08,0x00,0xA0,0xC9,0x25,0xCD,0x16);
-typedef struct IDirectSoundNotify *LPDIRECTSOUNDNOTIFY,**LPLPDIRECTSOUNDNOTIFY;
-#define        IID_IDirectSoundNotify8         IID_IDirectSoundNotify
-
-DEFINE_GUID(IID_IDirectSound3DListener,        0x279AFA84,0x4981,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60);
-typedef struct IDirectSound3DListener *LPDIRECTSOUND3DLISTENER,**LPLPDIRECTSOUND3DLISTENER;
-
-DEFINE_GUID(IID_IDirectSound3DBuffer,  0x279AFA86,0x4981,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60);
-typedef struct IDirectSound3DBuffer *LPDIRECTSOUND3DBUFFER,**LPLPDIRECTSOUND3DBUFFER;
-
-DEFINE_GUID(IID_IDirectSoundCapture,   0xB0210781,0x89CD,0x11D0,0xAF,0x08,0x00,0xA0,0xC9,0x25,0xCD,0x16);
-typedef struct IDirectSoundCapture *LPDIRECTSOUNDCAPTURE,**LPLPDIRECTSOUNDCAPTURE;
-#define        IID_IDirectSoundCapture8        IID_IDirectSoundCapture
-typedef struct IDirectSoundCapture IDirectSoundCapture8,*LPDIRECTSOUNDCAPTURE8,**LPLPDIRECTSOUNDCAPTURE8;
-
-DEFINE_GUID(IID_IDirectSoundCaptureBuffer,0xB0210782,0x89CD,0x11D0,0xAF,0x08,0x00,0xA0,0xC9,0x25,0xCD,0x16);
-typedef struct IDirectSoundCaptureBuffer *LPDIRECTSOUNDCAPTUREBUFFER,**LPLPDIRECTSOUNDCAPTUREBUFFER;
-
-DEFINE_GUID(IID_IDirectSoundCaptureBuffer8,0x00990DF4,0x0DBB,0x4872,0x83,0x3E,0x6D,0x30,0x3E,0x80,0xAE,0xB6);
-typedef struct IDirectSoundCaptureBuffer8 *LPDIRECTSOUNDCAPTUREBUFFER8,**LPLPDIRECTSOUNDCAPTUREBUFFER8;
-
-DEFINE_GUID(IID_IDirectSoundFullDuplex,        0xEDCB4C7A,0xDAAB,0x4216,0xA4,0x2E,0x6C,0x50,0x59,0x6D,0xDC,0x1D);
-typedef struct IDirectSoundFullDuplex *LPDIRECTSOUNDFULLDUPLEX,**LPLPDIRECTSOUNDFULLDUPLEX;
-#define        IID_IDirectSoundFullDuplex8     IID_IDirectSoundFullDuplex
-
-DEFINE_GUID(DSDEVID_DefaultPlayback,     0xDEF00000,0x9C6D,0x47Ed,0xAA,0xF1,0x4D,0xDA,0x8F,0x2B,0x5C,0x03);
-DEFINE_GUID(DSDEVID_DefaultCapture,      0xDEF00001,0x9C6D,0x47Ed,0xAA,0xF1,0x4D,0xDA,0x8F,0x2B,0x5C,0x03);
-DEFINE_GUID(DSDEVID_DefaultVoicePlayback,0xDEF00002,0x9C6D,0x47Ed,0xAA,0xF1,0x4D,0xDA,0x8F,0x2B,0x5C,0x03);
-DEFINE_GUID(DSDEVID_DefaultVoiceCapture, 0xDEF00003,0x9C6D,0x47ED,0xAA,0xF1,0x4D,0xDA,0x8F,0x2B,0x5C,0x03);
-
-DEFINE_GUID(DSDEVID_WinePlayback,        0x40316A1D,0x605B,0xD611,0x87,0xC6,0x00,0x80,0xAD,0x00,0x02,0xFE);
-
-#define        _FACDS          0x878
-#define        MAKE_DSHRESULT(code)            MAKE_HRESULT(1,_FACDS,code)
-
-#define DS_OK                          0
-#define DS_NO_VIRTUALIZATION            MAKE_HRESULT(0, _FACDS, 10)
-#define DS_INCOMPLETE                   MAKE_HRESULT(0, _FACDS, 20)
-#define DSERR_ALLOCATED                        MAKE_DSHRESULT(10)
-#define DSERR_CONTROLUNAVAIL           MAKE_DSHRESULT(30)
-#define DSERR_INVALIDPARAM             E_INVALIDARG
-#define DSERR_INVALIDCALL              MAKE_DSHRESULT(50)
-#define DSERR_GENERIC                  E_FAIL
-#define DSERR_PRIOLEVELNEEDED          MAKE_DSHRESULT(70)
-#define DSERR_OUTOFMEMORY              E_OUTOFMEMORY
-#define DSERR_BADFORMAT                        MAKE_DSHRESULT(100)
-#define DSERR_UNSUPPORTED              E_NOTIMPL
-#define DSERR_NODRIVER                 MAKE_DSHRESULT(120)
-#define DSERR_ALREADYINITIALIZED       MAKE_DSHRESULT(130)
-#define DSERR_NOAGGREGATION            CLASS_E_NOAGGREGATION
-#define DSERR_BUFFERLOST               MAKE_DSHRESULT(150)
-#define DSERR_OTHERAPPHASPRIO          MAKE_DSHRESULT(160)
-#define DSERR_UNINITIALIZED            MAKE_DSHRESULT(170)
-#define DSERR_NOINTERFACE               E_NOINTERFACE
-#define DSERR_ACCESSDENIED              E_ACCESSDENIED
-#define DSERR_BUFFERTOOSMALL            MAKE_DSHRESULT(180)
-#define DSERR_DS8_REQUIRED              MAKE_DSHRESULT(190)
-#define DSERR_SENDLOOP                  MAKE_DSHRESULT(200)
-#define DSERR_BADSENDBUFFERGUID         MAKE_DSHRESULT(210)
-#define DSERR_FXUNAVAILABLE             MAKE_DSHRESULT(220)
-#define DSERR_OBJECTNOTFOUND            MAKE_DSHRESULT(4449)
-
-#define DSCAPS_PRIMARYMONO          0x00000001
-#define DSCAPS_PRIMARYSTEREO        0x00000002
-#define DSCAPS_PRIMARY8BIT          0x00000004
-#define DSCAPS_PRIMARY16BIT         0x00000008
-#define DSCAPS_CONTINUOUSRATE       0x00000010
-#define DSCAPS_EMULDRIVER           0x00000020
-#define DSCAPS_CERTIFIED            0x00000040
-#define DSCAPS_SECONDARYMONO        0x00000100
-#define DSCAPS_SECONDARYSTEREO      0x00000200
-#define DSCAPS_SECONDARY8BIT        0x00000400
-#define DSCAPS_SECONDARY16BIT       0x00000800
-
-#define        DSSCL_NORMAL            1
-#define        DSSCL_PRIORITY          2
-#define        DSSCL_EXCLUSIVE         3
-#define        DSSCL_WRITEPRIMARY      4
-
-typedef struct _DSCAPS
-{
-    DWORD      dwSize;
-    DWORD      dwFlags;
-    DWORD      dwMinSecondarySampleRate;
-    DWORD      dwMaxSecondarySampleRate;
-    DWORD      dwPrimaryBuffers;
-    DWORD      dwMaxHwMixingAllBuffers;
-    DWORD      dwMaxHwMixingStaticBuffers;
-    DWORD      dwMaxHwMixingStreamingBuffers;
-    DWORD      dwFreeHwMixingAllBuffers;
-    DWORD      dwFreeHwMixingStaticBuffers;
-    DWORD      dwFreeHwMixingStreamingBuffers;
-    DWORD      dwMaxHw3DAllBuffers;
-    DWORD      dwMaxHw3DStaticBuffers;
-    DWORD      dwMaxHw3DStreamingBuffers;
-    DWORD      dwFreeHw3DAllBuffers;
-    DWORD      dwFreeHw3DStaticBuffers;
-    DWORD      dwFreeHw3DStreamingBuffers;
-    DWORD      dwTotalHwMemBytes;
-    DWORD      dwFreeHwMemBytes;
-    DWORD      dwMaxContigFreeHwMemBytes;
-    DWORD      dwUnlockTransferRateHwBuffers;
-    DWORD      dwPlayCpuOverheadSwBuffers;
-    DWORD      dwReserved1;
-    DWORD      dwReserved2;
-} DSCAPS,*LPDSCAPS;
-typedef const DSCAPS *LPCDSCAPS;
-
-#define DSBPLAY_LOOPING             0x00000001
-#define DSBPLAY_LOCHARDWARE         0x00000002
-#define DSBPLAY_LOCSOFTWARE         0x00000004
-#define DSBPLAY_TERMINATEBY_TIME    0x00000008
-#define DSBPLAY_TERMINATEBY_DISTANCE    0x000000010
-#define DSBPLAY_TERMINATEBY_PRIORITY    0x000000020
-
-#define DSBSTATUS_PLAYING           0x00000001
-#define DSBSTATUS_BUFFERLOST        0x00000002
-#define DSBSTATUS_LOOPING           0x00000004
-#define DSBSTATUS_LOCHARDWARE       0x00000008
-#define DSBSTATUS_LOCSOFTWARE       0x00000010
-#define DSBSTATUS_TERMINATED        0x00000020
-
-#define DSBLOCK_FROMWRITECURSOR     0x00000001
-#define DSBLOCK_ENTIREBUFFER        0x00000002
-
-#define DSBCAPS_PRIMARYBUFFER       0x00000001
-#define DSBCAPS_STATIC              0x00000002
-#define DSBCAPS_LOCHARDWARE         0x00000004
-#define DSBCAPS_LOCSOFTWARE         0x00000008
-#define DSBCAPS_CTRL3D              0x00000010
-#define DSBCAPS_CTRLFREQUENCY       0x00000020
-#define DSBCAPS_CTRLPAN             0x00000040
-#define DSBCAPS_CTRLVOLUME          0x00000080
-#define DSBCAPS_CTRLDEFAULT         0x000000E0  /* Pan + volume + frequency. */
-#define DSBCAPS_CTRLPOSITIONNOTIFY  0x00000100
-#define DSBCAPS_CTRLFX              0x00000200
-#define DSBCAPS_CTRLALL             0x000001F0  /* All control capabilities */
-#define DSBCAPS_STICKYFOCUS         0x00004000
-#define DSBCAPS_GLOBALFOCUS         0x00008000
-#define DSBCAPS_GETCURRENTPOSITION2 0x00010000  /* More accurate play cursor under emulation*/
-#define DSBCAPS_MUTE3DATMAXDISTANCE 0x00020000
-#define DSBCAPS_LOCDEFER            0x00040000
-
-#define DSBSIZE_MIN                 4
-#define DSBSIZE_MAX                 0xFFFFFFF
-#define DSBPAN_LEFT                 -10000
-#define DSBPAN_CENTER               0
-#define DSBPAN_RIGHT                 10000
-#define DSBVOLUME_MAX                    0
-#define DSBVOLUME_MIN               -10000
-#define DSBFREQUENCY_MIN            100
-#define DSBFREQUENCY_MAX            200000
-#define DSBFREQUENCY_ORIGINAL       0
-
-typedef struct _DSBCAPS
-{
-    DWORD      dwSize;
-    DWORD      dwFlags;
-    DWORD      dwBufferBytes;
-    DWORD      dwUnlockTransferRate;
-    DWORD      dwPlayCpuOverhead;
-} DSBCAPS,*LPDSBCAPS;
-typedef const DSBCAPS *LPCDSBCAPS;
-
-#define DSSCL_NORMAL                1
-#define DSSCL_PRIORITY              2
-#define DSSCL_EXCLUSIVE             3
-#define DSSCL_WRITEPRIMARY          4
-
-typedef struct _DSEFFECTDESC
-{
-    DWORD      dwSize;
-    DWORD      dwFlags;
-    GUID       guidDSFXClass;
-    DWORD_PTR  dwReserved1;
-    DWORD_PTR  dwReserved2;
-} DSEFFECTDESC,*LPDSEFFECTDESC;
-typedef const DSEFFECTDESC *LPCDSEFFECTDESC;
-
-#define DSFX_LOCHARDWARE    0x00000001
-#define DSFX_LOCSOFTWARE    0x00000002
-
-enum
-{
-    DSFXR_PRESENT,
-    DSFXR_LOCHARDWARE,
-    DSFXR_LOCSOFTWARE,
-    DSFXR_UNALLOCATED,
-    DSFXR_FAILED,
-    DSFXR_UNKNOWN,
-    DSFXR_SENDLOOP
-};
-
-typedef struct _DSBUFFERDESC1
-{
-    DWORD              dwSize;
-    DWORD              dwFlags;
-    DWORD              dwBufferBytes;
-    DWORD              dwReserved;
-    LPWAVEFORMATEX     lpwfxFormat;
-} DSBUFFERDESC1,*LPDSBUFFERDESC1;
-typedef const DSBUFFERDESC1 *LPCDSBUFFERDESC1;
-
-typedef struct _DSBUFFERDESC
-{
-    DWORD              dwSize;
-    DWORD              dwFlags;
-    DWORD              dwBufferBytes;
-    DWORD              dwReserved;
-    LPWAVEFORMATEX     lpwfxFormat;
-    GUID               guid3DAlgorithm;
-} DSBUFFERDESC,*LPDSBUFFERDESC;
-typedef const DSBUFFERDESC *LPCDSBUFFERDESC;
-
-typedef struct _DSBPOSITIONNOTIFY
-{
-    DWORD      dwOffset;
-    HANDLE     hEventNotify;
-} DSBPOSITIONNOTIFY,*LPDSBPOSITIONNOTIFY;
-typedef const DSBPOSITIONNOTIFY *LPCDSBPOSITIONNOTIFY;
-
-#define DSSPEAKER_HEADPHONE     1
-#define DSSPEAKER_MONO          2
-#define DSSPEAKER_QUAD          3
-#define DSSPEAKER_STEREO        4
-#define DSSPEAKER_SURROUND      5
-#define DSSPEAKER_5POINT1       6
-#define DSSPEAKER_7POINT1       7
-
-#define DSSPEAKER_GEOMETRY_MIN      0x00000005  /* 5 degrees */
-#define DSSPEAKER_GEOMETRY_NARROW   0x0000000A  /* 10 degrees */
-#define DSSPEAKER_GEOMETRY_WIDE     0x00000014  /* 20 degrees */
-#define DSSPEAKER_GEOMETRY_MAX      0x000000B4  /* 180 degrees */
-
-#define DSSPEAKER_COMBINED(c, g)    ((DWORD)(((BYTE)(c)) | ((DWORD)((BYTE)(g))) << 16))
-#define DSSPEAKER_CONFIG(a)         ((BYTE)(a))
-#define DSSPEAKER_GEOMETRY(a)       ((BYTE)(((DWORD)(a) >> 16) & 0x00FF))
-
-#define DS_CERTIFIED                0x00000000
-#define DS_UNCERTIFIED              0x00000001
-
-typedef struct _DSCEFFECTDESC
-{
-    DWORD       dwSize;
-    DWORD       dwFlags;
-    GUID        guidDSCFXClass;
-    GUID        guidDSCFXInstance;
-    DWORD       dwReserved1;
-    DWORD       dwReserved2;
-} DSCEFFECTDESC, *LPDSCEFFECTDESC;
-typedef const DSCEFFECTDESC *LPCDSCEFFECTDESC;
-
-#define DSCFX_LOCHARDWARE   0x00000001
-#define DSCFX_LOCSOFTWARE   0x00000002
-
-#define DSCFXR_LOCHARDWARE  0x00000010
-#define DSCFXR_LOCSOFTWARE  0x00000020
-
-typedef struct _DSCBUFFERDESC1
-{
-  DWORD           dwSize;
-  DWORD           dwFlags;
-  DWORD           dwBufferBytes;
-  DWORD           dwReserved;
-  LPWAVEFORMATEX  lpwfxFormat;
-} DSCBUFFERDESC1, *LPDSCBUFFERDESC1;
-
-typedef struct _DSCBUFFERDESC
-{
-  DWORD           dwSize;
-  DWORD           dwFlags;
-  DWORD           dwBufferBytes;
-  DWORD           dwReserved;
-  LPWAVEFORMATEX  lpwfxFormat;
-  DWORD           dwFXCount;
-  LPDSCEFFECTDESC lpDSCFXDesc;
-} DSCBUFFERDESC, *LPDSCBUFFERDESC;
-typedef const DSCBUFFERDESC *LPCDSCBUFFERDESC;
-
-typedef struct _DSCCAPS
-{
-  DWORD dwSize;
-  DWORD dwFlags;
-  DWORD dwFormats;
-  DWORD dwChannels;
-} DSCCAPS, *LPDSCCAPS;
-typedef const DSCCAPS *LPCDSCCAPS;
-
-typedef struct _DSCBCAPS
-{
-  DWORD dwSize;
-  DWORD dwFlags;
-  DWORD dwBufferBytes;
-  DWORD dwReserved;
-} DSCBCAPS, *LPDSCBCAPS;
-typedef const DSCBCAPS *LPCDSCBCAPS;
-
-#define DSCCAPS_EMULDRIVER          DSCAPS_EMULDRIVER
-#define DSCCAPS_CERTIFIED           DSCAPS_CERTIFIED
-#define DSCCAPS_MULTIPLECAPTURE     0x00000001
-
-#define DSCBCAPS_WAVEMAPPED         0x80000000
-#define DSCBCAPS_CTRLFX             0x00000200
-
-#define DSCBLOCK_ENTIREBUFFER       0x00000001
-#define DSCBSTART_LOOPING           0x00000001
-#define DSCBPN_OFFSET_STOP          0xffffffff
-
-#define DSCBSTATUS_CAPTURING        0x00000001
-#define DSCBSTATUS_LOOPING          0x00000002
-
-#ifndef __LPCGUID_DEFINED__
-#define __LPCGUID_DEFINED__
-typedef const GUID *LPCGUID;
-#endif
-
-typedef BOOL (CALLBACK *LPDSENUMCALLBACKW)(LPGUID,LPCWSTR,LPCWSTR,LPVOID);
-typedef BOOL (CALLBACK *LPDSENUMCALLBACKA)(LPGUID,LPCSTR,LPCSTR,LPVOID);
-DECL_WINELIB_TYPE_AW(LPDSENUMCALLBACK)
-
-extern HRESULT WINAPI DirectSoundCreate(LPCGUID lpGUID,LPDIRECTSOUND *ppDS,LPUNKNOWN pUnkOuter);
-extern HRESULT WINAPI DirectSoundEnumerateA(LPDSENUMCALLBACKA, LPVOID);
-extern HRESULT WINAPI DirectSoundEnumerateW(LPDSENUMCALLBACKW, LPVOID);
-#define DirectSoundEnumerate WINELIB_NAME_AW(DirectSoundEnumerate)
-extern HRESULT WINAPI DirectSoundCaptureCreate(LPCGUID lpGUID, LPDIRECTSOUNDCAPTURE *ppDSC, LPUNKNOWN pUnkOuter);
-extern HRESULT WINAPI DirectSoundCaptureEnumerateA(LPDSENUMCALLBACKA, LPVOID);
-extern HRESULT WINAPI DirectSoundCaptureEnumerateW(LPDSENUMCALLBACKW, LPVOID);
-#define DirectSoundCaptureEnumerate WINELIB_NAME_AW(DirectSoundCaptureEnumerate)
-
-extern HRESULT WINAPI DirectSoundCreate8(LPCGUID lpGUID,LPDIRECTSOUND8 *ppDS8,LPUNKNOWN pUnkOuter);
-extern HRESULT WINAPI DirectSoundCaptureCreate8(LPCGUID lpGUID, LPDIRECTSOUNDCAPTURE8 *ppDSC8, LPUNKNOWN pUnkOuter);
-extern HRESULT WINAPI DirectSoundFullDuplexCreate(LPCGUID pcGuidCaptureDevice, LPCGUID pcGuidRenderDevice,
-    LPCDSCBUFFERDESC pcDSCBufferDesc, LPCDSBUFFERDESC pcDSBufferDesc, HWND hWnd, DWORD dwLevel,
-    LPDIRECTSOUNDFULLDUPLEX *ppDSFD, LPDIRECTSOUNDCAPTUREBUFFER8 *ppDSCBuffer8, LPDIRECTSOUNDBUFFER8 *ppDSBuffer8, LPUNKNOWN pUnkOuter);
-#define DirectSoundFullDuplexCreate8 DirectSoundFullDuplexCreate
-extern HRESULT WINAPI GetDeviceID(LPCGUID lpGuidSrc, LPGUID lpGuidDest);
-
-
-/*****************************************************************************
- * IDirectSound interface
- */
-#undef INTERFACE
-#define INTERFACE IDirectSound
-DECLARE_INTERFACE_(IDirectSound,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSound methods ***/
-    STDMETHOD(CreateSoundBuffer)(THIS_ LPCDSBUFFERDESC lpcDSBufferDesc, LPLPDIRECTSOUNDBUFFER lplpDirectSoundBuffer, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(GetCaps)(THIS_ LPDSCAPS lpDSCaps) PURE;
-    STDMETHOD(DuplicateSoundBuffer)(THIS_ LPDIRECTSOUNDBUFFER lpDsbOriginal, LPLPDIRECTSOUNDBUFFER lplpDsbDuplicate) PURE;
-    STDMETHOD(SetCooperativeLevel)(THIS_ HWND hwnd, DWORD dwLevel) PURE;
-    STDMETHOD(Compact)(THIS) PURE;
-    STDMETHOD(GetSpeakerConfig)(THIS_ LPDWORD lpdwSpeakerConfig) PURE;
-    STDMETHOD(SetSpeakerConfig)(THIS_ DWORD dwSpeakerConfig) PURE;
-    STDMETHOD(Initialize)(THIS_ LPCGUID lpcGuid) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSound_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSound_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectSound_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectSound methods ***/
-#define IDirectSound_CreateSoundBuffer(p,a,b,c)  (p)->lpVtbl->CreateSoundBuffer(p,a,b,c)
-#define IDirectSound_GetCaps(p,a)                (p)->lpVtbl->GetCaps(p,a)
-#define IDirectSound_DuplicateSoundBuffer(p,a,b) (p)->lpVtbl->DuplicateSoundBuffer(p,a,b)
-#define IDirectSound_SetCooperativeLevel(p,a,b)  (p)->lpVtbl->SetCooperativeLevel(p,a,b)
-#define IDirectSound_Compact(p)                  (p)->lpVtbl->Compact(p)
-#define IDirectSound_GetSpeakerConfig(p,a)       (p)->lpVtbl->GetSpeakerConfig(p,a)
-#define IDirectSound_SetSpeakerConfig(p,a)       (p)->lpVtbl->SetSpeakerConfig(p,a)
-#define IDirectSound_Initialize(p,a)             (p)->lpVtbl->Initialize(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirectSound_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectSound_AddRef(p)             (p)->AddRef()
-#define IDirectSound_Release(p)            (p)->Release()
-/*** IDirectSound methods ***/
-#define IDirectSound_CreateSoundBuffer(p,a,b,c)  (p)->CreateSoundBuffer(a,b,c)
-#define IDirectSound_GetCaps(p,a)                (p)->GetCaps(a)
-#define IDirectSound_DuplicateSoundBuffer(p,a,b) (p)->DuplicateSoundBuffer(a,b)
-#define IDirectSound_SetCooperativeLevel(p,a,b)  (p)->SetCooperativeLevel(a,b)
-#define IDirectSound_Compact(p)                  (p)->Compact()
-#define IDirectSound_GetSpeakerConfig(p,a)       (p)->GetSpeakerConfig(a)
-#define IDirectSound_SetSpeakerConfig(p,a)       (p)->SetSpeakerConfig(a)
-#define IDirectSound_Initialize(p,a)             (p)->Initialize(a)
-#endif
-
-
-/*****************************************************************************
- * IDirectSound8 interface
- */
-#define INTERFACE IDirectSound8
-DECLARE_INTERFACE_(IDirectSound8,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSound8 methods ***/
-    STDMETHOD(CreateSoundBuffer)(THIS_ LPCDSBUFFERDESC lpcDSBufferDesc, LPLPDIRECTSOUNDBUFFER lplpDirectSoundBuffer, IUnknown *pUnkOuter) PURE;
-    STDMETHOD(GetCaps)(THIS_ LPDSCAPS lpDSCaps) PURE;
-    STDMETHOD(DuplicateSoundBuffer)(THIS_ LPDIRECTSOUNDBUFFER lpDsbOriginal, LPLPDIRECTSOUNDBUFFER lplpDsbDuplicate) PURE;
-    STDMETHOD(SetCooperativeLevel)(THIS_ HWND hwnd, DWORD dwLevel) PURE;
-    STDMETHOD(Compact)(THIS) PURE;
-    STDMETHOD(GetSpeakerConfig)(THIS_ LPDWORD lpdwSpeakerConfig) PURE;
-    STDMETHOD(SetSpeakerConfig)(THIS_ DWORD dwSpeakerConfig) PURE;
-    STDMETHOD(Initialize)(THIS_ LPCGUID lpcGuid) PURE;
-    STDMETHOD(VerifyCertification)(THIS_ LPDWORD pdwCertified) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSound8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSound8_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectSound8_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectSound methods ***/
-#define IDirectSound8_CreateSoundBuffer(p,a,b,c)  (p)->lpVtbl->CreateSoundBuffer(p,a,b,c)
-#define IDirectSound8_GetCaps(p,a)                (p)->lpVtbl->GetCaps(p,a)
-#define IDirectSound8_DuplicateSoundBuffer(p,a,b) (p)->lpVtbl->DuplicateSoundBuffer(p,a,b)
-#define IDirectSound8_SetCooperativeLevel(p,a,b)  (p)->lpVtbl->SetCooperativeLevel(p,a,b)
-#define IDirectSound8_Compact(p)                  (p)->lpVtbl->Compact(p)
-#define IDirectSound8_GetSpeakerConfig(p,a)       (p)->lpVtbl->GetSpeakerConfig(p,a)
-#define IDirectSound8_SetSpeakerConfig(p,a)       (p)->lpVtbl->SetSpeakerConfig(p,a)
-#define IDirectSound8_Initialize(p,a)             (p)->lpVtbl->Initialize(p,a)
-/*** IDirectSound8 methods ***/
-#define IDirectSound8_VerifyCertification(p,a)    (p)->lpVtbl->VerifyCertification(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirectSound8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectSound8_AddRef(p)             (p)->AddRef()
-#define IDirectSound8_Release(p)            (p)->Release()
-/*** IDirectSound methods ***/
-#define IDirectSound8_CreateSoundBuffer(p,a,b,c)  (p)->CreateSoundBuffer(a,b,c)
-#define IDirectSound8_GetCaps(p,a)                (p)->GetCaps(a)
-#define IDirectSound8_DuplicateSoundBuffer(p,a,b) (p)->DuplicateSoundBuffer(a,b)
-#define IDirectSound8_SetCooperativeLevel(p,a,b)  (p)->SetCooperativeLevel(a,b)
-#define IDirectSound8_Compact(p)                  (p)->Compact()
-#define IDirectSound8_GetSpeakerConfig(p,a)       (p)->GetSpeakerConfig(a)
-#define IDirectSound8_SetSpeakerConfig(p,a)       (p)->SetSpeakerConfig(a)
-#define IDirectSound8_Initialize(p,a)             (p)->Initialize(a)
-/*** IDirectSound8 methods ***/
-#define IDirectSound8_VerifyCertification(p,a)    (p)->VerifyCertification(a)
-#endif
-
-
-/*****************************************************************************
- * IDirectSoundBuffer interface
- */
-#define INTERFACE IDirectSoundBuffer
-DECLARE_INTERFACE_(IDirectSoundBuffer,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSoundBuffer methods ***/
-    STDMETHOD(GetCaps)(THIS_ LPDSBCAPS lpDSBufferCaps) PURE;
-    STDMETHOD(GetCurrentPosition)(THIS_ LPDWORD lpdwCurrentPlayCursor, LPDWORD lpdwCurrentWriteCursor) PURE;
-    STDMETHOD(GetFormat)(THIS_ LPWAVEFORMATEX lpwfxFormat, DWORD dwSizeAllocated, LPDWORD lpdwSizeWritten) PURE;
-    STDMETHOD(GetVolume)(THIS_ LPLONG lplVolume) PURE;
-    STDMETHOD(GetPan)(THIS_ LPLONG lplpan) PURE;
-    STDMETHOD(GetFrequency)(THIS_ LPDWORD lpdwFrequency) PURE;
-    STDMETHOD(GetStatus)(THIS_ LPDWORD lpdwStatus) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTSOUND lpDirectSound, LPCDSBUFFERDESC lpcDSBufferDesc) PURE;
-    STDMETHOD(Lock)(THIS_ DWORD dwOffset, DWORD dwBytes, LPVOID *ppvAudioPtr1, LPDWORD pdwAudioBytes1, LPVOID *ppvAudioPtr2, LPDWORD pdwAudioBytes2, DWORD dwFlags) PURE;
-    STDMETHOD(Play)(THIS_ DWORD dwReserved1, DWORD dwReserved2, DWORD dwFlags) PURE;
-    STDMETHOD(SetCurrentPosition)(THIS_ DWORD dwNewPosition) PURE;
-    STDMETHOD(SetFormat)(THIS_ LPCWAVEFORMATEX lpcfxFormat) PURE;
-    STDMETHOD(SetVolume)(THIS_ LONG lVolume) PURE;
-    STDMETHOD(SetPan)(THIS_ LONG lPan) PURE;
-    STDMETHOD(SetFrequency)(THIS_ DWORD dwFrequency) PURE;
-    STDMETHOD(Stop)(THIS) PURE;
-    STDMETHOD(Unlock)(THIS_ LPVOID pvAudioPtr1, DWORD dwAudioBytes1, LPVOID pvAudioPtr2, DWORD dwAudioPtr2) PURE;
-    STDMETHOD(Restore)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSoundBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSoundBuffer_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectSoundBuffer_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectSoundBuffer methods ***/
-#define IDirectSoundBuffer_GetCaps(p,a)                (p)->lpVtbl->GetCaps(p,a)
-#define IDirectSoundBuffer_GetCurrentPosition(p,a,b)   (p)->lpVtbl->GetCurrentPosition(p,a,b)
-#define IDirectSoundBuffer_GetFormat(p,a,b,c)          (p)->lpVtbl->GetFormat(p,a,b,c)
-#define IDirectSoundBuffer_GetVolume(p,a)              (p)->lpVtbl->GetVolume(p,a)
-#define IDirectSoundBuffer_GetPan(p,a)                 (p)->lpVtbl->GetPan(p,a)
-#define IDirectSoundBuffer_GetFrequency(p,a)           (p)->lpVtbl->GetFrequency(p,a)
-#define IDirectSoundBuffer_GetStatus(p,a)              (p)->lpVtbl->GetStatus(p,a)
-#define IDirectSoundBuffer_Initialize(p,a,b)           (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectSoundBuffer_Lock(p,a,b,c,d,e,f,g)       (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
-#define IDirectSoundBuffer_Play(p,a,b,c)               (p)->lpVtbl->Play(p,a,b,c)
-#define IDirectSoundBuffer_SetCurrentPosition(p,a)     (p)->lpVtbl->SetCurrentPosition(p,a)
-#define IDirectSoundBuffer_SetFormat(p,a)              (p)->lpVtbl->SetFormat(p,a)
-#define IDirectSoundBuffer_SetVolume(p,a)              (p)->lpVtbl->SetVolume(p,a)
-#define IDirectSoundBuffer_SetPan(p,a)                 (p)->lpVtbl->SetPan(p,a)
-#define IDirectSoundBuffer_SetFrequency(p,a)           (p)->lpVtbl->SetFrequency(p,a)
-#define IDirectSoundBuffer_Stop(p)                     (p)->lpVtbl->Stop(p)
-#define IDirectSoundBuffer_Unlock(p,a,b,c,d)           (p)->lpVtbl->Unlock(p,a,b,c,d)
-#define IDirectSoundBuffer_Restore(p)                  (p)->lpVtbl->Restore(p)
-#else
-/*** IUnknown methods ***/
-#define IDirectSoundBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectSoundBuffer_AddRef(p)             (p)->AddRef()
-#define IDirectSoundBuffer_Release(p)            (p)->Release()
-/*** IDirectSoundBuffer methods ***/
-#define IDirectSoundBuffer_GetCaps(p,a)                (p)->GetCaps(a)
-#define IDirectSoundBuffer_GetCurrentPosition(p,a,b)   (p)->GetCurrentPosition(a,b)
-#define IDirectSoundBuffer_GetFormat(p,a,b,c)          (p)->GetFormat(a,b,c)
-#define IDirectSoundBuffer_GetVolume(p,a)              (p)->GetVolume(a)
-#define IDirectSoundBuffer_GetPan(p,a)                 (p)->GetPan(a)
-#define IDirectSoundBuffer_GetFrequency(p,a)           (p)->GetFrequency(a)
-#define IDirectSoundBuffer_GetStatus(p,a)              (p)->GetStatus(a)
-#define IDirectSoundBuffer_Initialize(p,a,b)           (p)->Initialize(a,b)
-#define IDirectSoundBuffer_Lock(p,a,b,c,d,e,f,g)       (p)->Lock(a,b,c,d,e,f,g)
-#define IDirectSoundBuffer_Play(p,a,b,c)               (p)->Play(a,b,c)
-#define IDirectSoundBuffer_SetCurrentPosition(p,a)     (p)->SetCurrentPosition(a)
-#define IDirectSoundBuffer_SetFormat(p,a)              (p)->SetFormat(a)
-#define IDirectSoundBuffer_SetVolume(p,a)              (p)->SetVolume(a)
-#define IDirectSoundBuffer_SetPan(p,a)                 (p)->SetPan(a)
-#define IDirectSoundBuffer_SetFrequency(p,a)           (p)->SetFrequency(a)
-#define IDirectSoundBuffer_Stop(p)                     (p)->Stop()
-#define IDirectSoundBuffer_Unlock(p,a,b,c,d)           (p)->Unlock(a,b,c,d)
-#define IDirectSoundBuffer_Restore(p)                  (p)->Restore()
-#endif
-
-
-/*****************************************************************************
- * IDirectSoundBuffer8 interface
- */
-#define INTERFACE IDirectSoundBuffer8
-DECLARE_INTERFACE_(IDirectSoundBuffer8,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSoundBuffer8 methods ***/
-    STDMETHOD(GetCaps)(THIS_ LPDSBCAPS lpDSBufferCaps) PURE;
-    STDMETHOD(GetCurrentPosition)(THIS_ LPDWORD lpdwCurrentPlayCursor, LPDWORD lpdwCurrentWriteCursor) PURE;
-    STDMETHOD(GetFormat)(THIS_ LPWAVEFORMATEX lpwfxFormat, DWORD dwSizeAllocated, LPDWORD lpdwSizeWritten) PURE;
-    STDMETHOD(GetVolume)(THIS_ LPLONG lplVolume) PURE;
-    STDMETHOD(GetPan)(THIS_ LPLONG lplpan) PURE;
-    STDMETHOD(GetFrequency)(THIS_ LPDWORD lpdwFrequency) PURE;
-    STDMETHOD(GetStatus)(THIS_ LPDWORD lpdwStatus) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTSOUND lpDirectSound, LPCDSBUFFERDESC lpcDSBufferDesc) PURE;
-    STDMETHOD(Lock)(THIS_ DWORD dwOffset, DWORD dwBytes, LPVOID *ppvAudioPtr1, LPDWORD pdwAudioBytes1, LPVOID *ppvAudioPtr2, LPDWORD pdwAudioBytes2, DWORD dwFlags) PURE;
-    STDMETHOD(Play)(THIS_ DWORD dwReserved1, DWORD dwReserved2, DWORD dwFlags) PURE;
-    STDMETHOD(SetCurrentPosition)(THIS_ DWORD dwNewPosition) PURE;
-    STDMETHOD(SetFormat)(THIS_ LPCWAVEFORMATEX lpcfxFormat) PURE;
-    STDMETHOD(SetVolume)(THIS_ LONG lVolume) PURE;
-    STDMETHOD(SetPan)(THIS_ LONG lPan) PURE;
-    STDMETHOD(SetFrequency)(THIS_ DWORD dwFrequency) PURE;
-    STDMETHOD(Stop)(THIS) PURE;
-    STDMETHOD(Unlock)(THIS_ LPVOID pvAudioPtr1, DWORD dwAudioBytes1, LPVOID pvAudioPtr2, DWORD dwAudioPtr2) PURE;
-    STDMETHOD(Restore)(THIS) PURE;
-    STDMETHOD(SetFX)(THIS_ DWORD dwEffectsCount, LPDSEFFECTDESC pDSFXDesc, LPDWORD pdwResultCodes) PURE;
-    STDMETHOD(AcquireResources)(THIS_ DWORD dwFlags, DWORD dwEffectsCount, LPDWORD pdwResultCodes) PURE;
-    STDMETHOD(GetObjectInPath)(THIS_ REFGUID rguidObject, DWORD dwIndex, REFGUID rguidInterface, LPVOID *ppObject) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSoundBuffer8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSoundBuffer8_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectSoundBuffer8_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectSoundBuffer methods ***/
-#define IDirectSoundBuffer8_GetCaps(p,a)                (p)->lpVtbl->GetCaps(p,a)
-#define IDirectSoundBuffer8_GetCurrentPosition(p,a,b)   (p)->lpVtbl->GetCurrentPosition(p,a,b)
-#define IDirectSoundBuffer8_GetFormat(p,a,b,c)          (p)->lpVtbl->GetFormat(p,a,b,c)
-#define IDirectSoundBuffer8_GetVolume(p,a)              (p)->lpVtbl->GetVolume(p,a)
-#define IDirectSoundBuffer8_GetPan(p,a)                 (p)->lpVtbl->GetPan(p,a)
-#define IDirectSoundBuffer8_GetFrequency(p,a)           (p)->lpVtbl->GetFrequency(p,a)
-#define IDirectSoundBuffer8_GetStatus(p,a)              (p)->lpVtbl->GetStatus(p,a)
-#define IDirectSoundBuffer8_Initialize(p,a,b)           (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectSoundBuffer8_Lock(p,a,b,c,d,e,f,g)       (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
-#define IDirectSoundBuffer8_Play(p,a,b,c)               (p)->lpVtbl->Play(p,a,b,c)
-#define IDirectSoundBuffer8_SetCurrentPosition(p,a)     (p)->lpVtbl->SetCurrentPosition(p,a)
-#define IDirectSoundBuffer8_SetFormat(p,a)              (p)->lpVtbl->SetFormat(p,a)
-#define IDirectSoundBuffer8_SetVolume(p,a)              (p)->lpVtbl->SetVolume(p,a)
-#define IDirectSoundBuffer8_SetPan(p,a)                 (p)->lpVtbl->SetPan(p,a)
-#define IDirectSoundBuffer8_SetFrequency(p,a)           (p)->lpVtbl->SetFrequency(p,a)
-#define IDirectSoundBuffer8_Stop(p)                     (p)->lpVtbl->Stop(p)
-#define IDirectSoundBuffer8_Unlock(p,a,b,c,d)           (p)->lpVtbl->Unlock(p,a,b,c,d)
-#define IDirectSoundBuffer8_Restore(p)                  (p)->lpVtbl->Restore(p)
-/*** IDirectSoundBuffer8 methods ***/
-#define IDirectSoundBuffer8_SetFX(p,a,b,c)              (p)->lpVtbl->SetFX(p,a,b,c)
-#define IDirectSoundBuffer8_AcquireResources(p,a,b,c)   (p)->lpVtbl->AcquireResources(p,a,b,c)
-#define IDirectSoundBuffer8_GetObjectInPath(p,a,b,c,d)  (p)->lpVtbl->GetObjectInPath(p,a,b,c,d)
-#else
-/*** IUnknown methods ***/
-#define IDirectSoundBuffer8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectSoundBuffer8_AddRef(p)             (p)->AddRef()
-#define IDirectSoundBuffer8_Release(p)            (p)->Release()
-/*** IDirectSoundBuffer methods ***/
-#define IDirectSoundBuffer8_GetCaps(p,a)                (p)->GetCaps(a)
-#define IDirectSoundBuffer8_GetCurrentPosition(p,a,b)   (p)->GetCurrentPosition(a,b)
-#define IDirectSoundBuffer8_GetFormat(p,a,b,c)          (p)->GetFormat(a,b,c)
-#define IDirectSoundBuffer8_GetVolume(p,a)              (p)->GetVolume(a)
-#define IDirectSoundBuffer8_GetPan(p,a)                 (p)->GetPan(a)
-#define IDirectSoundBuffer8_GetFrequency(p,a)           (p)->GetFrequency(a)
-#define IDirectSoundBuffer8_GetStatus(p,a)              (p)->GetStatus(a)
-#define IDirectSoundBuffer8_Initialize(p,a,b)           (p)->Initialize(a,b)
-#define IDirectSoundBuffer8_Lock(p,a,b,c,d,e,f,g)       (p)->Lock(a,b,c,d,e,f,g)
-#define IDirectSoundBuffer8_Play(p,a,b,c)               (p)->Play(a,b,c)
-#define IDirectSoundBuffer8_SetCurrentPosition(p,a)     (p)->SetCurrentPosition(a)
-#define IDirectSoundBuffer8_SetFormat(p,a)              (p)->SetFormat(a)
-#define IDirectSoundBuffer8_SetVolume(p,a)              (p)->SetVolume(a)
-#define IDirectSoundBuffer8_SetPan(p,a)                 (p)->SetPan(a)
-#define IDirectSoundBuffer8_SetFrequency(p,a)           (p)->SetFrequency(a)
-#define IDirectSoundBuffer8_Stop(p)                     (p)->Stop()
-#define IDirectSoundBuffer8_Unlock(p,a,b,c,d)           (p)->Unlock(a,b,c,d)
-#define IDirectSoundBuffer8_Restore(p)                  (p)->Restore()
-/*** IDirectSoundBuffer8 methods ***/
-#define IDirectSoundBuffer8_SetFX(p,a,b,c)              (p)->SetFX(a,b,c)
-#define IDirectSoundBuffer8_AcquireResources(p,a,b,c)   (p)->AcquireResources(a,b,c)
-#define IDirectSoundBuffer8_GetObjectInPath(p,a,b,c,d)  (p)->GetObjectInPath(a,b,c,d)
-#endif
-
-
-/*****************************************************************************
- * IDirectSoundCapture interface
- */
-#define INTERFACE IDirectSoundCapture
-DECLARE_INTERFACE_(IDirectSoundCapture,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSoundCapture methods ***/
-    STDMETHOD(CreateCaptureBuffer)(THIS_ LPCDSCBUFFERDESC lpcDSCBufferDesc,LPDIRECTSOUNDCAPTUREBUFFER *lplpDSCaptureBuffer, LPUNKNOWN pUnk) PURE;
-    STDMETHOD(GetCaps)(THIS_ LPDSCCAPS lpDSCCaps) PURE;
-    STDMETHOD(Initialize)(THIS_ LPCGUID lpcGUID) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSoundCapture_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSoundCapture_AddRef(p)                    (p)->lpVtbl->AddRef(p)
-#define IDirectSoundCapture_Release(p)                   (p)->lpVtbl->Release(p)
-/*** IDirectSoundCapture methods ***/
-#define IDirectSoundCapture_CreateCaptureBuffer(p,a,b,c) (p)->lpVtbl->CreateCaptureBuffer(p,a,b,c)
-#define IDirectSoundCapture_GetCaps(p,a)                 (p)->lpVtbl->GetCaps(p,a)
-#define IDirectSoundCapture_Initialize(p,a)              (p)->lpVtbl->Initialize(p,a)
-#else
-/*** IUnknown methods ***/
-#define IDirectSoundCapture_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
-#define IDirectSoundCapture_AddRef(p)                    (p)->AddRef()
-#define IDirectSoundCapture_Release(p)                   (p)->Release()
-/*** IDirectSoundCapture methods ***/
-#define IDirectSoundCapture_CreateCaptureBuffer(p,a,b,c) (p)->CreateCaptureBuffer(a,b,c)
-#define IDirectSoundCapture_GetCaps(p,a)                 (p)->GetCaps(a)
-#define IDirectSoundCapture_Initialize(p,a)              (p)->Initialize(a)
-#endif
-
-/*****************************************************************************
- * IDirectSoundCaptureBuffer interface
- */
-#define INTERFACE IDirectSoundCaptureBuffer
-DECLARE_INTERFACE_(IDirectSoundCaptureBuffer,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSoundCaptureBuffer methods ***/
-    STDMETHOD(GetCaps)(THIS_ LPDSCBCAPS lpDSCBCaps) PURE;
-    STDMETHOD(GetCurrentPosition)(THIS_ LPDWORD lpdwCapturePosition,LPDWORD lpdwReadPosition) PURE;
-    STDMETHOD(GetFormat)(THIS_ LPWAVEFORMATEX lpwfxFormat, DWORD dwSizeAllocated, LPDWORD lpdwSizeWritten) PURE;
-    STDMETHOD(GetStatus)(THIS_ LPDWORD lpdwStatus) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTSOUNDCAPTURE lpDSC, LPCDSCBUFFERDESC lpcDSCBDesc) PURE;
-    STDMETHOD(Lock)(THIS_ DWORD dwReadCusor, DWORD dwReadBytes, LPVOID *lplpvAudioPtr1, LPDWORD lpdwAudioBytes1, LPVOID *lplpvAudioPtr2, LPDWORD lpdwAudioBytes2, DWORD dwFlags) PURE;
-    STDMETHOD(Start)(THIS_ DWORD dwFlags) PURE;
-    STDMETHOD(Stop)(THIS) PURE;
-    STDMETHOD(Unlock)(THIS_ LPVOID lpvAudioPtr1, DWORD dwAudioBytes1, LPVOID lpvAudioPtr2, DWORD dwAudioBytes2) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSoundCaptureBuffer_QueryInterface(p,a,b)     (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSoundCaptureBuffer_AddRef(p)                 (p)->lpVtbl->AddRef(p)
-#define IDirectSoundCaptureBuffer_Release(p)                (p)->lpVtbl->Release(p)
-/*** IDirectSoundCaptureBuffer methods ***/
-#define IDirectSoundCaptureBuffer_GetCaps(p,a)              (p)->lpVtbl->GetCaps(p,a)
-#define IDirectSoundCaptureBuffer_GetCurrentPosition(p,a,b) (p)->lpVtbl->GetCurrentPosition(p,a,b)
-#define IDirectSoundCaptureBuffer_GetFormat(p,a,b,c)        (p)->lpVtbl->GetFormat(p,a,b,c)
-#define IDirectSoundCaptureBuffer_GetStatus(p,a)            (p)->lpVtbl->GetStatus(p,a)
-#define IDirectSoundCaptureBuffer_Initialize(p,a,b)         (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectSoundCaptureBuffer_Lock(p,a,b,c,d,e,f,g)     (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
-#define IDirectSoundCaptureBuffer_Start(p,a)                (p)->lpVtbl->Start(p,a)
-#define IDirectSoundCaptureBuffer_Stop(p)                   (p)->lpVtbl->Stop(p)
-#define IDirectSoundCaptureBuffer_Unlock(p,a,b,c,d)         (p)->lpVtbl->Unlock(p,a,b,c,d)
-#else
-/*** IUnknown methods ***/
-#define IDirectSoundCaptureBuffer_QueryInterface(p,a,b)     (p)->QueryInterface(a,b)
-#define IDirectSoundCaptureBuffer_AddRef(p)                 (p)->AddRef()
-#define IDirectSoundCaptureBuffer_Release(p)                (p)->Release()
-/*** IDirectSoundCaptureBuffer methods ***/
-#define IDirectSoundCaptureBuffer_GetCaps(p,a)              (p)->GetCaps(a)
-#define IDirectSoundCaptureBuffer_GetCurrentPosition(p,a,b) (p)->GetCurrentPosition(a,b)
-#define IDirectSoundCaptureBuffer_GetFormat(p,a,b,c)        (p)->GetFormat(a,b,c)
-#define IDirectSoundCaptureBuffer_GetStatus(p,a)            (p)->GetStatus(a)
-#define IDirectSoundCaptureBuffer_Initialize(p,a,b)         (p)->Initialize(a,b)
-#define IDirectSoundCaptureBuffer_Lock(p,a,b,c,d,e,f,g)     (p)->Lock(a,b,c,d,e,f,g)
-#define IDirectSoundCaptureBuffer_Start(p,a)                (p)->Start(a)
-#define IDirectSoundCaptureBuffer_Stop(p)                   (p)->Stop()
-#define IDirectSoundCaptureBuffer_Unlock(p,a,b,c,d)         (p)->Unlock(a,b,c,d)
-#endif
-
-/*****************************************************************************
- * IDirectSoundCaptureBuffer8 interface
- */
-#define INTERFACE IDirectSoundCaptureBuffer8
-DECLARE_INTERFACE_(IDirectSoundCaptureBuffer8,IDirectSoundCaptureBuffer)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSoundCaptureBuffer methods ***/
-    STDMETHOD(GetCaps)(THIS_ LPDSCBCAPS lpDSCBCaps) PURE;
-    STDMETHOD(GetCurrentPosition)(THIS_ LPDWORD lpdwCapturePosition,LPDWORD lpdwReadPosition) PURE;
-    STDMETHOD(GetFormat)(THIS_ LPWAVEFORMATEX lpwfxFormat, DWORD dwSizeAllocated, LPDWORD lpdwSizeWritten) PURE;
-    STDMETHOD(GetStatus)(THIS_ LPDWORD lpdwStatus) PURE;
-    STDMETHOD(Initialize)(THIS_ LPDIRECTSOUNDCAPTURE lpDSC, LPCDSCBUFFERDESC lpcDSCBDesc) PURE;
-    STDMETHOD(Lock)(THIS_ DWORD dwReadCusor, DWORD dwReadBytes, LPVOID *lplpvAudioPtr1, LPDWORD lpdwAudioBytes1, LPVOID *lplpvAudioPtr2, LPDWORD lpdwAudioBytes2, DWORD dwFlags) PURE;
-    STDMETHOD(Start)(THIS_ DWORD dwFlags) PURE;
-    STDMETHOD(Stop)(THIS) PURE;
-    STDMETHOD(Unlock)(THIS_ LPVOID lpvAudioPtr1, DWORD dwAudioBytes1, LPVOID lpvAudioPtr2, DWORD dwAudioBytes2) PURE;
-    /*** IDirectSoundCaptureBuffer8 methods ***/
-    STDMETHOD(GetObjectInPath)(THIS_ REFGUID rguidObject, DWORD dwIndex, REFGUID rguidInterface, LPVOID *ppObject) PURE;
-    STDMETHOD(GetFXStatus)(THIS_ DWORD dwFXCount, LPDWORD pdwFXStatus) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSoundCaptureBuffer8_QueryInterface(p,a,b)      (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSoundCaptureBuffer8_AddRef(p)                  (p)->lpVtbl->AddRef(p)
-#define IDirectSoundCaptureBuffer8_Release(p)                 (p)->lpVtbl->Release(p)
-/*** IDirectSoundCaptureBuffer methods ***/
-#define IDirectSoundCaptureBuffer8_GetCaps(p,a)               (p)->lpVtbl->GetCaps(p,a)
-#define IDirectSoundCaptureBuffer8_GetCurrentPosition(p,a,b)  (p)->lpVtbl->GetCurrentPosition(p,a,b)
-#define IDirectSoundCaptureBuffer8_GetFormat(p,a,b,c)         (p)->lpVtbl->GetFormat(p,a,b,c)
-#define IDirectSoundCaptureBuffer8_GetStatus(p,a)             (p)->lpVtbl->GetStatus(p,a)
-#define IDirectSoundCaptureBuffer8_Initialize(p,a,b)          (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectSoundCaptureBuffer8_Lock(p,a,b,c,d,e,f,g)      (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
-#define IDirectSoundCaptureBuffer8_Start(p,a)                 (p)->lpVtbl->Start(p,a)
-#define IDirectSoundCaptureBuffer8_Stop(p)                    (p)->lpVtbl->Stop(p)
-#define IDirectSoundCaptureBuffer8_Unlock(p,a,b,c,d)          (p)->lpVtbl->Unlock(p,a,b,c,d)
-/*** IDirectSoundCaptureBuffer8 methods ***/
-#define IDirectSoundCaptureBuffer8_GetObjectInPath(p,a,b,c,d) (p)->lpVtbl->GetObjectInPath(p,a,b,c,d)
-#define IDirectSoundCaptureBuffer8_GetFXStatus(p,a,b)         (p)->lpVtbl->GetFXStatus(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirectSoundCaptureBuffer8_QueryInterface(p,a,b)      (p)->QueryInterface(a,b)
-#define IDirectSoundCaptureBuffer8_AddRef(p)                  (p)->AddRef()
-#define IDirectSoundCaptureBuffer8_Release(p)                 (p)->Release()
-/*** IDirectSoundCaptureBuffer methods ***/
-#define IDirectSoundCaptureBuffer8_GetCaps(p,a)               (p)->GetCaps(a)
-#define IDirectSoundCaptureBuffer8_GetCurrentPosition(p,a,b)  (p)->GetCurrentPosition(a,b)
-#define IDirectSoundCaptureBuffer8_GetFormat(p,a,b,c)         (p)->GetFormat(a,b,c)
-#define IDirectSoundCaptureBuffer8_GetStatus(p,a)             (p)->GetStatus(a)
-#define IDirectSoundCaptureBuffer8_Initialize(p,a,b)          (p)->Initialize(a,b)
-#define IDirectSoundCaptureBuffer8_Lock(p,a,b,c,d,e,f,g)      (p)->Lock(a,b,c,d,e,f,g)
-#define IDirectSoundCaptureBuffer8_Start(p,a)                 (p)->Start(a)
-#define IDirectSoundCaptureBuffer8_Stop(p)                    (p)->Stop()
-#define IDirectSoundCaptureBuffer8_Unlock(p,a,b,c,d)          (p)->Unlock(a,b,c,d)
-/*** IDirectSoundCaptureBuffer8 methods ***/
-#define IDirectSoundCaptureBuffer8_GetObjectInPath(p,a,b,c,d) (p)->GetObjectInPath(a,b,c,d)
-#define IDirectSoundCaptureBuffer8_GetFXStatus(p,a,b)         (p)->GetFXStatus(a,b)
-#endif
-
-/*****************************************************************************
- * IDirectSoundNotify interface
- */
-#define WINE_NOBUFFER                   0x80000000
-
-#define DSBPN_OFFSETSTOP               -1
-
-#define DSBNOTIFICATIONS_MAX           100000UL
-
-#define INTERFACE IDirectSoundNotify
-DECLARE_INTERFACE_(IDirectSoundNotify,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSoundNotify methods ***/
-    STDMETHOD(SetNotificationPositions)(THIS_ DWORD cPositionNotifies, LPCDSBPOSITIONNOTIFY lpcPositionNotifies) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSoundNotify_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSoundNotify_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectSoundNotify_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectSoundNotify methods ***/
-#define IDirectSoundNotify_SetNotificationPositions(p,a,b) (p)->lpVtbl->SetNotificationPositions(p,a,b)
-#else
-/*** IUnknown methods ***/
-#define IDirectSoundNotify_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectSoundNotify_AddRef(p)             (p)->AddRef()
-#define IDirectSoundNotify_Release(p)            (p)->Release()
-/*** IDirectSoundNotify methods ***/
-#define IDirectSoundNotify_SetNotificationPositions(p,a,b) (p)->SetNotificationPositions(a,b)
-#endif
-
-
-/*****************************************************************************
- * IDirectSound3DListener interface
- */
-#define DS3DMODE_NORMAL             0x00000000
-#define DS3DMODE_HEADRELATIVE       0x00000001
-#define DS3DMODE_DISABLE            0x00000002
-
-#define DS3D_IMMEDIATE              0x00000000
-#define DS3D_DEFERRED               0x00000001
-
-#define DS3D_MINDISTANCEFACTOR      FLT_MIN
-#define DS3D_MAXDISTANCEFACTOR      FLT_MAX
-#define DS3D_DEFAULTDISTANCEFACTOR  1.0f
-
-#define DS3D_MINROLLOFFFACTOR       0.0f
-#define DS3D_MAXROLLOFFFACTOR       10.0f
-#define DS3D_DEFAULTROLLOFFFACTOR   1.0f
-
-#define DS3D_MINDOPPLERFACTOR       0.0f
-#define DS3D_MAXDOPPLERFACTOR       10.0f
-#define DS3D_DEFAULTDOPPLERFACTOR   1.0f
-
-#define DS3D_DEFAULTMINDISTANCE     1.0f
-#define DS3D_DEFAULTMAXDISTANCE     1000000000.0f
-
-#define DS3D_MINCONEANGLE           0
-#define DS3D_MAXCONEANGLE           360
-#define DS3D_DEFAULTCONEANGLE       360
-
-#define DS3D_DEFAULTCONEOUTSIDEVOLUME   DSBVOLUME_MAX
-
-typedef struct _DS3DLISTENER {
-       DWORD                           dwSize;
-       D3DVECTOR                       vPosition;
-       D3DVECTOR                       vVelocity;
-       D3DVECTOR                       vOrientFront;
-       D3DVECTOR                       vOrientTop;
-       D3DVALUE                        flDistanceFactor;
-       D3DVALUE                        flRolloffFactor;
-       D3DVALUE                        flDopplerFactor;
-} DS3DLISTENER, *LPDS3DLISTENER;
-
-typedef const DS3DLISTENER *LPCDS3DLISTENER;
-
-#define INTERFACE IDirectSound3DListener
-DECLARE_INTERFACE_(IDirectSound3DListener,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSound3DListener methods ***/
-    STDMETHOD(GetAllParameters)(THIS_ LPDS3DLISTENER lpListener) PURE;
-    STDMETHOD(GetDistanceFactor)(THIS_ LPD3DVALUE lpflDistanceFactor) PURE;
-    STDMETHOD(GetDopplerFactor)(THIS_ LPD3DVALUE lpflDopplerFactor) PURE;
-    STDMETHOD(GetOrientation)(THIS_ LPD3DVECTOR lpvOrientFront, LPD3DVECTOR lpvOrientTop) PURE;
-    STDMETHOD(GetPosition)(THIS_ LPD3DVECTOR lpvPosition) PURE;
-    STDMETHOD(GetRolloffFactor)(THIS_ LPD3DVALUE lpflRolloffFactor) PURE;
-    STDMETHOD(GetVelocity)(THIS_ LPD3DVECTOR lpvVelocity) PURE;
-    STDMETHOD(SetAllParameters)(THIS_ LPCDS3DLISTENER lpcListener, DWORD dwApply) PURE;
-    STDMETHOD(SetDistanceFactor)(THIS_ D3DVALUE flDistanceFactor, DWORD dwApply) PURE;
-    STDMETHOD(SetDopplerFactor)(THIS_ D3DVALUE flDopplerFactor, DWORD dwApply) PURE;
-    STDMETHOD(SetOrientation)(THIS_ D3DVALUE xFront, D3DVALUE yFront, D3DVALUE zFront, D3DVALUE xTop, D3DVALUE yTop, D3DVALUE zTop, DWORD dwApply) PURE;
-    STDMETHOD(SetPosition)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE;
-    STDMETHOD(SetRolloffFactor)(THIS_ D3DVALUE flRolloffFactor, DWORD dwApply) PURE;
-    STDMETHOD(SetVelocity)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE;
-    STDMETHOD(CommitDeferredSettings)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSound3DListener_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSound3DListener_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectSound3DListener_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectSound3DListener methods ***/
-#define IDirectSound3DListener_GetAllParameters(p,a)           (p)->lpVtbl->GetAllParameters(p,a)
-#define IDirectSound3DListener_GetDistanceFactor(p,a)          (p)->lpVtbl->GetDistanceFactor(p,a)
-#define IDirectSound3DListener_GetDopplerFactor(p,a)           (p)->lpVtbl->GetDopplerFactor(p,a)
-#define IDirectSound3DListener_GetOrientation(p,a,b)           (p)->lpVtbl->GetOrientation(p,a,b)
-#define IDirectSound3DListener_GetPosition(p,a)                (p)->lpVtbl->GetPosition(p,a)
-#define IDirectSound3DListener_GetRolloffFactor(p,a)           (p)->lpVtbl->GetRolloffFactor(p,a)
-#define IDirectSound3DListener_GetVelocity(p,a)                (p)->lpVtbl->GetVelocity(p,a)
-#define IDirectSound3DListener_SetAllParameters(p,a,b)         (p)->lpVtbl->SetAllParameters(p,a,b)
-#define IDirectSound3DListener_SetDistanceFactor(p,a,b)        (p)->lpVtbl->SetDistanceFactor(p,a,b)
-#define IDirectSound3DListener_SetDopplerFactor(p,a,b)         (p)->lpVtbl->SetDopplerFactor(p,a,b)
-#define IDirectSound3DListener_SetOrientation(p,a,b,c,d,e,f,g) (p)->lpVtbl->SetOrientation(p,a,b,c,d,e,f,g)
-#define IDirectSound3DListener_SetPosition(p,a,b,c,d)          (p)->lpVtbl->SetPosition(p,a,b,c,d)
-#define IDirectSound3DListener_SetRolloffFactor(p,a,b)         (p)->lpVtbl->SetRolloffFactor(p,a,b)
-#define IDirectSound3DListener_SetVelocity(p,a,b,c,d)          (p)->lpVtbl->SetVelocity(p,a,b,c,d)
-#define IDirectSound3DListener_CommitDeferredSettings(p)       (p)->lpVtbl->CommitDeferredSettings(p)
-#else
-/*** IUnknown methods ***/
-#define IDirectSound3DListener_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectSound3DListener_AddRef(p)             (p)->AddRef()
-#define IDirectSound3DListener_Release(p)            (p)->Release()
-/*** IDirectSound3DListener methods ***/
-#define IDirectSound3DListener_GetAllParameters(p,a)           (p)->GetAllParameters(a)
-#define IDirectSound3DListener_GetDistanceFactor(p,a)          (p)->GetDistanceFactor(a)
-#define IDirectSound3DListener_GetDopplerFactor(p,a)           (p)->GetDopplerFactor(a)
-#define IDirectSound3DListener_GetOrientation(p,a,b)           (p)->GetOrientation(a,b)
-#define IDirectSound3DListener_GetPosition(p,a)                (p)->GetPosition(a)
-#define IDirectSound3DListener_GetRolloffFactor(p,a)           (p)->GetRolloffFactor(a)
-#define IDirectSound3DListener_GetVelocity(p,a)                (p)->GetVelocity(a)
-#define IDirectSound3DListener_SetAllParameters(p,a,b)         (p)->SetAllParameters(a,b)
-#define IDirectSound3DListener_SetDistanceFactor(p,a,b)        (p)->SetDistanceFactor(a,b)
-#define IDirectSound3DListener_SetDopplerFactor(p,a,b)         (p)->SetDopplerFactor(a,b)
-#define IDirectSound3DListener_SetOrientation(p,a,b,c,d,e,f,g) (p)->SetOrientation(a,b,c,d,e,f,g)
-#define IDirectSound3DListener_SetPosition(p,a,b,c,d)          (p)->SetPosition(a,b,c,d)
-#define IDirectSound3DListener_SetRolloffFactor(p,a,b)         (p)->SetRolloffFactor(a,b)
-#define IDirectSound3DListener_SetVelocity(p,a,b,c,d)          (p)->SetVelocity(a,b,c,d)
-#define IDirectSound3DListener_CommitDeferredSettings(p)       (p)->CommitDeferredSettings()
-#endif
-
-
-/*****************************************************************************
- * IDirectSound3DBuffer interface
- */
-typedef struct  _DS3DBUFFER {
-       DWORD                           dwSize;
-       D3DVECTOR                       vPosition;
-       D3DVECTOR                       vVelocity;
-       DWORD                           dwInsideConeAngle;
-       DWORD                           dwOutsideConeAngle;
-       D3DVECTOR                       vConeOrientation;
-       LONG                            lConeOutsideVolume;
-       D3DVALUE                        flMinDistance;
-       D3DVALUE                        flMaxDistance;
-       DWORD                           dwMode;
-} DS3DBUFFER, *LPDS3DBUFFER;
-
-typedef const DS3DBUFFER *LPCDS3DBUFFER;
-
-#define INTERFACE IDirectSound3DBuffer
-DECLARE_INTERFACE_(IDirectSound3DBuffer,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSound3DBuffer methods ***/
-    STDMETHOD(GetAllParameters)(THIS_ LPDS3DBUFFER lpDs3dBuffer) PURE;
-    STDMETHOD(GetConeAngles)(THIS_ LPDWORD lpdwInsideConeAngle, LPDWORD lpdwOutsideConeAngle) PURE;
-    STDMETHOD(GetConeOrientation)(THIS_ LPD3DVECTOR lpvOrientation) PURE;
-    STDMETHOD(GetConeOutsideVolume)(THIS_ LPLONG lplConeOutsideVolume) PURE;
-    STDMETHOD(GetMaxDistance)(THIS_ LPD3DVALUE lpflMaxDistance) PURE;
-    STDMETHOD(GetMinDistance)(THIS_ LPD3DVALUE lpflMinDistance) PURE;
-    STDMETHOD(GetMode)(THIS_ LPDWORD lpwdMode) PURE;
-    STDMETHOD(GetPosition)(THIS_ LPD3DVECTOR lpvPosition) PURE;
-    STDMETHOD(GetVelocity)(THIS_ LPD3DVECTOR lpvVelocity) PURE;
-    STDMETHOD(SetAllParameters)(THIS_ LPCDS3DBUFFER lpcDs3dBuffer, DWORD dwApply) PURE;
-    STDMETHOD(SetConeAngles)(THIS_ DWORD dwInsideConeAngle, DWORD dwOutsideConeAngle, DWORD dwApply) PURE;
-    STDMETHOD(SetConeOrientation)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE;
-    STDMETHOD(SetConeOutsideVolume)(THIS_ LONG lConeOutsideVolume, DWORD dwApply) PURE;
-    STDMETHOD(SetMaxDistance)(THIS_ D3DVALUE flMaxDistance, DWORD dwApply) PURE;
-    STDMETHOD(SetMinDistance)(THIS_ D3DVALUE flMinDistance, DWORD dwApply) PURE;
-    STDMETHOD(SetMode)(THIS_ DWORD dwMode, DWORD dwApply) PURE;
-    STDMETHOD(SetPosition)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE;
-    STDMETHOD(SetVelocity)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSound3DBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSound3DBuffer_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectSound3DBuffer_Release(p)            (p)->lpVtbl->Release(p)
-/*** IDirectSound3DBuffer methods ***/
-#define IDirectSound3DBuffer_GetAllParameters(p,a)         (p)->lpVtbl->GetAllParameters(p,a)
-#define IDirectSound3DBuffer_GetConeAngles(p,a,b)          (p)->lpVtbl->GetConeAngles(p,a,b)
-#define IDirectSound3DBuffer_GetConeOrientation(p,a)       (p)->lpVtbl->GetConeOrientation(p,a)
-#define IDirectSound3DBuffer_GetConeOutsideVolume(p,a)     (p)->lpVtbl->GetConeOutsideVolume(p,a)
-#define IDirectSound3DBuffer_GetMaxDistance(p,a)           (p)->lpVtbl->GetMaxDistance(p,a)
-#define IDirectSound3DBuffer_GetMinDistance(p,a)           (p)->lpVtbl->GetMinDistance(p,a)
-#define IDirectSound3DBuffer_GetMode(p,a)                  (p)->lpVtbl->GetMode(p,a)
-#define IDirectSound3DBuffer_GetPosition(p,a)              (p)->lpVtbl->GetPosition(p,a)
-#define IDirectSound3DBuffer_GetVelocity(p,a)              (p)->lpVtbl->GetVelocity(p,a)
-#define IDirectSound3DBuffer_SetAllParameters(p,a,b)       (p)->lpVtbl->SetAllParameters(p,a,b)
-#define IDirectSound3DBuffer_SetConeAngles(p,a,b,c)        (p)->lpVtbl->SetConeAngles(p,a,b,c)
-#define IDirectSound3DBuffer_SetConeOrientation(p,a,b,c,d) (p)->lpVtbl->SetConeOrientation(p,a,b,c,d)
-#define IDirectSound3DBuffer_SetConeOutsideVolume(p,a,b)   (p)->lpVtbl->SetConeOutsideVolume(p,a,b)
-#define IDirectSound3DBuffer_SetMaxDistance(p,a,b)         (p)->lpVtbl->SetMaxDistance(p,a,b)
-#define IDirectSound3DBuffer_SetMinDistance(p,a,b)         (p)->lpVtbl->SetMinDistance(p,a,b)
-#define IDirectSound3DBuffer_SetMode(p,a,b)                (p)->lpVtbl->SetMode(p,a,b)
-#define IDirectSound3DBuffer_SetPosition(p,a,b,c,d)        (p)->lpVtbl->SetPosition(p,a,b,c,d)
-#define IDirectSound3DBuffer_SetVelocity(p,a,b,c,d)        (p)->lpVtbl->SetVelocity(p,a,b,c,d)
-#else
-/*** IUnknown methods ***/
-#define IDirectSound3DBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
-#define IDirectSound3DBuffer_AddRef(p)             (p)->AddRef()
-#define IDirectSound3DBuffer_Release(p)            (p)->Release()
-/*** IDirectSound3DBuffer methods ***/
-#define IDirectSound3DBuffer_GetAllParameters(p,a)         (p)->GetAllParameters(a)
-#define IDirectSound3DBuffer_GetConeAngles(p,a,b)          (p)->GetConeAngles(a,b)
-#define IDirectSound3DBuffer_GetConeOrientation(p,a)       (p)->GetConeOrientation(a)
-#define IDirectSound3DBuffer_GetConeOutsideVolume(p,a)     (p)->GetConeOutsideVolume(a)
-#define IDirectSound3DBuffer_GetMaxDistance(p,a)           (p)->GetMaxDistance(a)
-#define IDirectSound3DBuffer_GetMinDistance(p,a)           (p)->GetMinDistance(a)
-#define IDirectSound3DBuffer_GetMode(p,a)                  (p)->GetMode(a)
-#define IDirectSound3DBuffer_GetPosition(p,a)              (p)->GetPosition(a)
-#define IDirectSound3DBuffer_GetVelocity(p,a)              (p)->GetVelocity(a)
-#define IDirectSound3DBuffer_SetAllParameters(p,a,b)       (p)->SetAllParameters(a,b)
-#define IDirectSound3DBuffer_SetConeAngles(p,a,b,c)        (p)->SetConeAngles(a,b,c)
-#define IDirectSound3DBuffer_SetConeOrientation(p,a,b,c,d) (p)->SetConeOrientation(a,b,c,d)
-#define IDirectSound3DBuffer_SetConeOutsideVolume(p,a,b)   (p)->SetConeOutsideVolume(a,b)
-#define IDirectSound3DBuffer_SetMaxDistance(p,a,b)         (p)->SetMaxDistance(a,b)
-#define IDirectSound3DBuffer_SetMinDistance(p,a,b)         (p)->SetMinDistance(a,b)
-#define IDirectSound3DBuffer_SetMode(p,a,b)                (p)->SetMode(a,b)
-#define IDirectSound3DBuffer_SetPosition(p,a,b,c,d)        (p)->SetPosition(a,b,c,d)
-#define IDirectSound3DBuffer_SetVelocity(p,a,b,c,d)        (p)->SetVelocity(a,b,c,d)
-#endif
-
-/*****************************************************************************
- * IKsPropertySet interface
- */
-#ifndef _IKsPropertySet_
-#define _IKsPropertySet_
-
-typedef struct IKsPropertySet *LPKSPROPERTYSET;
-
-DEFINE_GUID(IID_IKsPropertySet,0x31EFAC30,0x515C,0x11D0,0xA9,0xAA,0x00,0xAA,0x00,0x61,0xBE,0x93);
-
-#define KSPROPERTY_SUPPORT_GET 1
-#define KSPROPERTY_SUPPORT_SET 2
-
-#define INTERFACE IKsPropertySet
-DECLARE_INTERFACE_(IKsPropertySet,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IKsPropertySet methods ***/
-    STDMETHOD(Get)(THIS_ REFGUID rgid,ULONG x1,LPVOID p1,ULONG x2,LPVOID p2,ULONG x3,ULONG *px4) PURE;
-    STDMETHOD(Set)(THIS_ REFGUID rgid,ULONG x1,LPVOID p1,ULONG x2,LPVOID p2,ULONG x3) PURE;
-    STDMETHOD(QuerySupport)(THIS_ REFGUID rgid,ULONG x1,ULONG *px2) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IKsPropertySet_QueryInterface(p,a,b)    (p)->lpVtbl->QueryInterface(p,a,b)
-#define IKsPropertySet_AddRef(p)                (p)->lpVtbl->AddRef(p)
-#define IKsPropertySet_Release(p)               (p)->lpVtbl->Release(p)
-/*** IKsPropertySet methods ***/
-#define IKsPropertySet_Get(p,a,b,c,d,e,f,g)     (p)->lpVtbl->Get(p,a,b,c,d,e,f,g)
-#define IKsPropertySet_Set(p,a,b,c,d,e,f)       (p)->lpVtbl->Set(p,a,b,c,d,e,f)
-#define IKsPropertySet_QuerySupport(p,a,b,c)    (p)->lpVtbl->QuerySupport(p,a,b,c)
-#else
-/*** IUnknown methods ***/
-#define IKsPropertySet_QueryInterface(p,a,b)    (p)->QueryInterface(a,b)
-#define IKsPropertySet_AddRef(p)                (p)->AddRef()
-#define IKsPropertySet_Release(p)               (p)->Release()
-/*** IKsPropertySet methods ***/
-#define IKsPropertySet_Get(p,a,b,c,d,e,f,g)     (p)->Get(a,b,c,d,e,f,g)
-#define IKsPropertySet_Set(p,a,b,c,d,e,f)       (p)->Set(a,b,c,d,e,f)
-#define IKsPropertySet_QuerySupport(p,a,b,c)    (p)->QuerySupport(a,b,c)
-#endif
-
-#endif /* _IKsPropertySet_ */
-
-/*****************************************************************************
- * IDirectSoundFullDuplex interface
- */
-#define INTERFACE IDirectSoundFullDuplex
-DECLARE_INTERFACE_(IDirectSoundFullDuplex,IUnknown)
-{
-    /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IDirectSoundFullDuplex methods ***/
-    STDMETHOD(Initialize)(THIS_ LPCGUID pCaptureGuid,LPCGUID pRendererGuid,LPCDSCBUFFERDESC lpDscBufferDesc,LPCDSBUFFERDESC lpDsBufferDesc,HWND hWnd,DWORD dwLevel,LPLPDIRECTSOUNDCAPTUREBUFFER8 lplpDirectSoundCaptureBuffer8,LPLPDIRECTSOUNDBUFFER8 lplpDirectSoundBuffer8) PURE;
-};
-#undef INTERFACE
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-/*** IUnknown methods ***/
-#define IDirectSoundFullDuplex_QueryInterface(p,a,b)    (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectSoundFullDuplex_AddRef(p)                (p)->lpVtbl->AddRef(p)
-#define IDirectSoundFullDuplex_Release(p)               (p)->lpVtbl->Release(p)
-/*** IDirectSoundFullDuplex methods ***/
-#define IDirectSoundFullDuplex_Initialize(p,a,b,c,d,e,f,g,h)    (p)->lpVtbl->Initialize(p,a,b,c,d,e,f,g,h)
-#else
-/*** IUnknown methods ***/
-#define IDirectSoundFullDuplex_QueryInterface(p,a,b)    (p)->QueryInterface(a,b)
-#define IDirectSoundFullDuplex_AddRef(p)                (p)->AddRef()
-#define IDirectSoundFullDuplex_Release(p)               (p)->Release()
-/*** IDirectSoundFullDuplex methods ***/
-#define IDirectSoundFullDuplex_Initialize(p,a,b,c,d,e,f,g,h)    (p)->Initialize(a,b,c,d,e,f,g,h)
-#endif
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif /* defined(__cplusplus) */
-
-#endif /* __WINE_DSOUND_H */
diff --git a/misc/builddeps/win64/dx/include/zconf.h b/misc/builddeps/win64/dx/include/zconf.h
deleted file mode 100644 (file)
index 51c80ac..0000000
+++ /dev/null
@@ -1,466 +0,0 @@
-/* zconf.h -- configuration of the zlib compression library
- * Copyright (C) 1995-2011 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id$ */
-
-#ifndef ZCONF_H
-#define ZCONF_H
-
-/*
- * If you *really* need a unique prefix for all types and library functions,
- * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
- * Even better than compiling with -DZ_PREFIX would be to use configure to set
- * this permanently in zconf.h using "./configure --zprefix".
- */
-#ifdef Z_PREFIX     /* may be set to #if 1 by ./configure */
-#  define Z_PREFIX_SET
-
-/* all linked symbols */
-#  define _dist_code            z__dist_code
-#  define _length_code          z__length_code
-#  define _tr_align             z__tr_align
-#  define _tr_flush_block       z__tr_flush_block
-#  define _tr_init              z__tr_init
-#  define _tr_stored_block      z__tr_stored_block
-#  define _tr_tally             z__tr_tally
-#  define adler32               z_adler32
-#  define adler32_combine       z_adler32_combine
-#  define adler32_combine64     z_adler32_combine64
-#  ifndef Z_SOLO
-#    define compress              z_compress
-#    define compress2             z_compress2
-#    define compressBound         z_compressBound
-#  endif
-#  define crc32                 z_crc32
-#  define crc32_combine         z_crc32_combine
-#  define crc32_combine64       z_crc32_combine64
-#  define deflate               z_deflate
-#  define deflateBound          z_deflateBound
-#  define deflateCopy           z_deflateCopy
-#  define deflateEnd            z_deflateEnd
-#  define deflateInit2_         z_deflateInit2_
-#  define deflateInit_          z_deflateInit_
-#  define deflateParams         z_deflateParams
-#  define deflatePending        z_deflatePending
-#  define deflatePrime          z_deflatePrime
-#  define deflateReset          z_deflateReset
-#  define deflateResetKeep      z_deflateResetKeep
-#  define deflateSetDictionary  z_deflateSetDictionary
-#  define deflateSetHeader      z_deflateSetHeader
-#  define deflateTune           z_deflateTune
-#  define deflate_copyright     z_deflate_copyright
-#  define get_crc_table         z_get_crc_table
-#  ifndef Z_SOLO
-#    define gz_error              z_gz_error
-#    define gz_intmax             z_gz_intmax
-#    define gz_strwinerror        z_gz_strwinerror
-#    define gzbuffer              z_gzbuffer
-#    define gzclearerr            z_gzclearerr
-#    define gzclose               z_gzclose
-#    define gzclose_r             z_gzclose_r
-#    define gzclose_w             z_gzclose_w
-#    define gzdirect              z_gzdirect
-#    define gzdopen               z_gzdopen
-#    define gzeof                 z_gzeof
-#    define gzerror               z_gzerror
-#    define gzflags               z_gzflags
-#    define gzflush               z_gzflush
-#    define gzgetc                z_gzgetc
-#    define gzgetc_               z_gzgetc_
-#    define gzgets                z_gzgets
-#    define gzoffset              z_gzoffset
-#    define gzoffset64            z_gzoffset64
-#    define gzopen                z_gzopen
-#    define gzopen64              z_gzopen64
-#    define gzprintf              z_gzprintf
-#    define gzputc                z_gzputc
-#    define gzputs                z_gzputs
-#    define gzread                z_gzread
-#    define gzrewind              z_gzrewind
-#    define gzseek                z_gzseek
-#    define gzseek64              z_gzseek64
-#    define gzsetparams           z_gzsetparams
-#    define gztell                z_gztell
-#    define gztell64              z_gztell64
-#    define gzungetc              z_gzungetc
-#    define gzwrite               z_gzwrite
-#  endif
-#  define inflate               z_inflate
-#  define inflateBack           z_inflateBack
-#  define inflateBackEnd        z_inflateBackEnd
-#  define inflateBackInit_      z_inflateBackInit_
-#  define inflateCopy           z_inflateCopy
-#  define inflateEnd            z_inflateEnd
-#  define inflateGetHeader      z_inflateGetHeader
-#  define inflateInit2_         z_inflateInit2_
-#  define inflateInit_          z_inflateInit_
-#  define inflateMark           z_inflateMark
-#  define inflatePrime          z_inflatePrime
-#  define inflateReset          z_inflateReset
-#  define inflateReset2         z_inflateReset2
-#  define inflateSetDictionary  z_inflateSetDictionary
-#  define inflateSync           z_inflateSync
-#  define inflateSyncPoint      z_inflateSyncPoint
-#  define inflateUndermine      z_inflateUndermine
-#  define inflateResetKeep      z_inflateResetKeep
-#  define inflate_copyright     z_inflate_copyright
-#  define inflate_fast          z_inflate_fast
-#  define inflate_table         z_inflate_table
-#  ifndef Z_SOLO
-#    define uncompress            z_uncompress
-#  endif
-#  define zError                z_zError
-#  ifndef Z_SOLO
-#    define zcalloc               z_zcalloc
-#    define zcfree                z_zcfree
-#  endif
-#  define zlibCompileFlags      z_zlibCompileFlags
-#  define zlibVersion           z_zlibVersion
-
-/* all zlib typedefs in zlib.h and zconf.h */
-#  define Byte                  z_Byte
-#  define Bytef                 z_Bytef
-#  define alloc_func            z_alloc_func
-#  define charf                 z_charf
-#  define free_func             z_free_func
-#  ifndef Z_SOLO
-#    define gzFile                z_gzFile
-#    define gz_header             z_gz_header
-#    define gz_headerp            z_gz_headerp
-#  endif
-#  define in_func               z_in_func
-#  define intf                  z_intf
-#  define out_func              z_out_func
-#  define uInt                  z_uInt
-#  define uIntf                 z_uIntf
-#  define uLong                 z_uLong
-#  define uLongf                z_uLongf
-#  define voidp                 z_voidp
-#  define voidpc                z_voidpc
-#  define voidpf                z_voidpf
-
-/* all zlib structs in zlib.h and zconf.h */
-#  ifndef Z_SOLO
-#    define gz_header_s           z_gz_header_s
-#  endif
-#  define internal_state        z_internal_state
-
-#endif
-
-#if defined(__MSDOS__) && !defined(MSDOS)
-#  define MSDOS
-#endif
-#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2)
-#  define OS2
-#endif
-#if defined(_WINDOWS) && !defined(WINDOWS)
-#  define WINDOWS
-#endif
-#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__)
-#  ifndef WIN32
-#    define WIN32
-#  endif
-#endif
-#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32)
-#  if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__)
-#    ifndef SYS16BIT
-#      define SYS16BIT
-#    endif
-#  endif
-#endif
-
-/*
- * Compile with -DMAXSEG_64K if the alloc function cannot allocate more
- * than 64k bytes at a time (needed on systems with 16-bit int).
- */
-#ifdef SYS16BIT
-#  define MAXSEG_64K
-#endif
-#ifdef MSDOS
-#  define UNALIGNED_OK
-#endif
-
-#ifdef __STDC_VERSION__
-#  ifndef STDC
-#    define STDC
-#  endif
-#  if __STDC_VERSION__ >= 199901L
-#    ifndef STDC99
-#      define STDC99
-#    endif
-#  endif
-#endif
-#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus))
-#  define STDC
-#endif
-#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__))
-#  define STDC
-#endif
-#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32))
-#  define STDC
-#endif
-#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__))
-#  define STDC
-#endif
-
-#if defined(__OS400__) && !defined(STDC)    /* iSeries (formerly AS/400). */
-#  define STDC
-#endif
-
-#ifndef STDC
-#  ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
-#    define const       /* note: need a more gentle solution here */
-#  endif
-#endif
-
-#if defined(ZLIB_CONST) && !defined(z_const)
-#  define z_const const
-#else
-#  define z_const
-#endif
-
-/* Some Mac compilers merge all .h files incorrectly: */
-#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__)
-#  define NO_DUMMY_DECL
-#endif
-
-/* Maximum value for memLevel in deflateInit2 */
-#ifndef MAX_MEM_LEVEL
-#  ifdef MAXSEG_64K
-#    define MAX_MEM_LEVEL 8
-#  else
-#    define MAX_MEM_LEVEL 9
-#  endif
-#endif
-
-/* Maximum value for windowBits in deflateInit2 and inflateInit2.
- * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
- * created by gzip. (Files created by minigzip can still be extracted by
- * gzip.)
- */
-#ifndef MAX_WBITS
-#  define MAX_WBITS   15 /* 32K LZ77 window */
-#endif
-
-/* The memory requirements for deflate are (in bytes):
-            (1 << (windowBits+2)) +  (1 << (memLevel+9))
- that is: 128K for windowBits=15  +  128K for memLevel = 8  (default values)
- plus a few kilobytes for small objects. For example, if you want to reduce
- the default memory requirements from 256K to 128K, compile with
-     make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
- Of course this will generally degrade compression (there's no free lunch).
-
-   The memory requirements for inflate are (in bytes) 1 << windowBits
- that is, 32K for windowBits=15 (default value) plus a few kilobytes
- for small objects.
-*/
-
-                        /* Type declarations */
-
-#ifndef OF /* function prototypes */
-#  ifdef STDC
-#    define OF(args)  args
-#  else
-#    define OF(args)  ()
-#  endif
-#endif
-
-#ifndef Z_ARG /* function prototypes for stdarg */
-#  if defined(STDC) || defined(Z_HAVE_STDARG_H)
-#    define Z_ARG(args)  args
-#  else
-#    define Z_ARG(args)  ()
-#  endif
-#endif
-
-/* The following definitions for FAR are needed only for MSDOS mixed
- * model programming (small or medium model with some far allocations).
- * This was tested only with MSC; for other MSDOS compilers you may have
- * to define NO_MEMCPY in zutil.h.  If you don't need the mixed model,
- * just define FAR to be empty.
- */
-#ifdef SYS16BIT
-#  if defined(M_I86SM) || defined(M_I86MM)
-     /* MSC small or medium model */
-#    define SMALL_MEDIUM
-#    ifdef _MSC_VER
-#      define FAR _far
-#    else
-#      define FAR far
-#    endif
-#  endif
-#  if (defined(__SMALL__) || defined(__MEDIUM__))
-     /* Turbo C small or medium model */
-#    define SMALL_MEDIUM
-#    ifdef __BORLANDC__
-#      define FAR _far
-#    else
-#      define FAR far
-#    endif
-#  endif
-#endif
-
-#if defined(WINDOWS) || defined(WIN32)
-   /* If building or using zlib as a DLL, define ZLIB_DLL.
-    * This is not mandatory, but it offers a little performance increase.
-    */
-#  ifdef ZLIB_DLL
-#    if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500))
-#      ifdef ZLIB_INTERNAL
-#        define ZEXTERN extern __declspec(dllexport)
-#      else
-#        define ZEXTERN extern __declspec(dllimport)
-#      endif
-#    endif
-#  endif  /* ZLIB_DLL */
-   /* If building or using zlib with the WINAPI/WINAPIV calling convention,
-    * define ZLIB_WINAPI.
-    * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI.
-    */
-#  ifdef ZLIB_WINAPI
-#    ifdef FAR
-#      undef FAR
-#    endif
-#    include <windows.h>
-     /* No need for _export, use ZLIB.DEF instead. */
-     /* For complete Windows compatibility, use WINAPI, not __stdcall. */
-#    define ZEXPORT WINAPI
-#    ifdef WIN32
-#      define ZEXPORTVA WINAPIV
-#    else
-#      define ZEXPORTVA FAR CDECL
-#    endif
-#  endif
-#endif
-
-#if defined (__BEOS__)
-#  ifdef ZLIB_DLL
-#    ifdef ZLIB_INTERNAL
-#      define ZEXPORT   __declspec(dllexport)
-#      define ZEXPORTVA __declspec(dllexport)
-#    else
-#      define ZEXPORT   __declspec(dllimport)
-#      define ZEXPORTVA __declspec(dllimport)
-#    endif
-#  endif
-#endif
-
-#ifndef ZEXTERN
-#  define ZEXTERN extern
-#endif
-#ifndef ZEXPORT
-#  define ZEXPORT
-#endif
-#ifndef ZEXPORTVA
-#  define ZEXPORTVA
-#endif
-
-#ifndef FAR
-#  define FAR
-#endif
-
-#if !defined(__MACTYPES__)
-typedef unsigned char  Byte;  /* 8 bits */
-#endif
-typedef unsigned int   uInt;  /* 16 bits or more */
-typedef unsigned long  uLong; /* 32 bits or more */
-
-#ifdef SMALL_MEDIUM
-   /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */
-#  define Bytef Byte FAR
-#else
-   typedef Byte  FAR Bytef;
-#endif
-typedef char  FAR charf;
-typedef int   FAR intf;
-typedef uInt  FAR uIntf;
-typedef uLong FAR uLongf;
-
-#ifdef STDC
-   typedef void const *voidpc;
-   typedef void FAR   *voidpf;
-   typedef void       *voidp;
-#else
-   typedef Byte const *voidpc;
-   typedef Byte FAR   *voidpf;
-   typedef Byte       *voidp;
-#endif
-
-#ifdef HAVE_UNISTD_H    /* may be set to #if 1 by ./configure */
-#  define Z_HAVE_UNISTD_H
-#endif
-
-#ifdef HAVE_STDARG_H    /* may be set to #if 1 by ./configure */
-#  define Z_HAVE_STDARG_H
-#endif
-
-#ifdef STDC
-#  ifndef Z_SOLO
-#    include <sys/types.h>      /* for off_t */
-#  endif
-#endif
-
-/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and
- * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even
- * though the former does not conform to the LFS document), but considering
- * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as
- * equivalently requesting no 64-bit operations
- */
-#if -_LARGEFILE64_SOURCE - -1 == 1
-#  undef _LARGEFILE64_SOURCE
-#endif
-
-#if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0
-#  define Z_LARGE
-#endif
-
-#if (defined(Z_HAVE_UNISTD_H) || defined(Z_LARGE)) && !defined(Z_SOLO)
-#  include <unistd.h>       /* for SEEK_* and off_t */
-#  ifdef VMS
-#    include <unixio.h>     /* for off_t */
-#  endif
-#  ifndef z_off_t
-#    define z_off_t off_t
-#  endif
-#endif
-
-#if !defined(SEEK_SET) && !defined(Z_SOLO)
-#  define SEEK_SET        0       /* Seek from beginning of file.  */
-#  define SEEK_CUR        1       /* Seek from current position.  */
-#  define SEEK_END        2       /* Set file pointer to EOF plus "offset" */
-#endif
-
-#ifndef z_off_t
-#  define z_off_t long
-#endif
-
-#if !defined(_WIN32) && (defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0)
-#  define z_off64_t off64_t
-#else
-#  if defined(_WIN32)
-#    define z_off64_t __int64
-#  else
-#  define z_off64_t z_off_t
-#endif
-#endif
-
-/* MVS linker does not support external names larger than 8 bytes */
-#if defined(__MVS__)
-  #pragma map(deflateInit_,"DEIN")
-  #pragma map(deflateInit2_,"DEIN2")
-  #pragma map(deflateEnd,"DEEND")
-  #pragma map(deflateBound,"DEBND")
-  #pragma map(inflateInit_,"ININ")
-  #pragma map(inflateInit2_,"ININ2")
-  #pragma map(inflateEnd,"INEND")
-  #pragma map(inflateSync,"INSY")
-  #pragma map(inflateSetDictionary,"INSEDI")
-  #pragma map(compressBound,"CMBND")
-  #pragma map(inflate_table,"INTABL")
-  #pragma map(inflate_fast,"INFA")
-  #pragma map(inflate_copyright,"INCOPY")
-#endif
-
-#endif /* ZCONF_H */
diff --git a/misc/builddeps/win64/zlib/bin/zlib1.dll b/misc/builddeps/win64/zlib/bin/zlib1.dll
deleted file mode 100755 (executable)
index 1e83170..0000000
Binary files a/misc/builddeps/win64/zlib/bin/zlib1.dll and /dev/null differ
diff --git a/misc/builddeps/win64/zlib/include/zlib.h b/misc/builddeps/win64/zlib/include/zlib.h
deleted file mode 100644 (file)
index 79142d1..0000000
+++ /dev/null
@@ -1,1732 +0,0 @@
-/* zlib.h -- interface of the 'zlib' general purpose compression library
-  version 1.2.6, January 29th, 2012
-
-  Copyright (C) 1995-2012 Jean-loup Gailly and Mark Adler
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-
-  Jean-loup Gailly        Mark Adler
-  jloup@gzip.org          madler@alumni.caltech.edu
-
-
-  The data format used by the zlib library is described by RFCs (Request for
-  Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950
-  (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format).
-*/
-
-#ifndef ZLIB_H
-#define ZLIB_H
-
-#include "zconf.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define ZLIB_VERSION "1.2.6"
-#define ZLIB_VERNUM 0x1260
-#define ZLIB_VER_MAJOR 1
-#define ZLIB_VER_MINOR 2
-#define ZLIB_VER_REVISION 6
-#define ZLIB_VER_SUBREVISION 0
-
-/*
-    The 'zlib' compression library provides in-memory compression and
-  decompression functions, including integrity checks of the uncompressed data.
-  This version of the library supports only one compression method (deflation)
-  but other algorithms will be added later and will have the same stream
-  interface.
-
-    Compression can be done in a single step if the buffers are large enough,
-  or can be done by repeated calls of the compression function.  In the latter
-  case, the application must provide more input and/or consume the output
-  (providing more output space) before each call.
-
-    The compressed data format used by default by the in-memory functions is
-  the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped
-  around a deflate stream, which is itself documented in RFC 1951.
-
-    The library also supports reading and writing files in gzip (.gz) format
-  with an interface similar to that of stdio using the functions that start
-  with "gz".  The gzip format is different from the zlib format.  gzip is a
-  gzip wrapper, documented in RFC 1952, wrapped around a deflate stream.
-
-    This library can optionally read and write gzip streams in memory as well.
-
-    The zlib format was designed to be compact and fast for use in memory
-  and on communications channels.  The gzip format was designed for single-
-  file compression on file systems, has a larger header than zlib to maintain
-  directory information, and uses a different, slower check method than zlib.
-
-    The library does not install any signal handler.  The decoder checks
-  the consistency of the compressed data, so the library should never crash
-  even in case of corrupted input.
-*/
-
-typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size));
-typedef void   (*free_func)  OF((voidpf opaque, voidpf address));
-
-struct internal_state;
-
-typedef struct z_stream_s {
-    z_const Bytef *next_in;     /* next input byte */
-    uInt     avail_in;  /* number of bytes available at next_in */
-    uLong    total_in;  /* total number of input bytes read so far */
-
-    Bytef    *next_out; /* next output byte should be put there */
-    uInt     avail_out; /* remaining free space at next_out */
-    uLong    total_out; /* total number of bytes output so far */
-
-    z_const char *msg;  /* last error message, NULL if no error */
-    struct internal_state FAR *state; /* not visible by applications */
-
-    alloc_func zalloc;  /* used to allocate the internal state */
-    free_func  zfree;   /* used to free the internal state */
-    voidpf     opaque;  /* private data object passed to zalloc and zfree */
-
-    int     data_type;  /* best guess about the data type: binary or text */
-    uLong   adler;      /* adler32 value of the uncompressed data */
-    uLong   reserved;   /* reserved for future use */
-} z_stream;
-
-typedef z_stream FAR *z_streamp;
-
-/*
-     gzip header information passed to and from zlib routines.  See RFC 1952
-  for more details on the meanings of these fields.
-*/
-typedef struct gz_header_s {
-    int     text;       /* true if compressed data believed to be text */
-    uLong   time;       /* modification time */
-    int     xflags;     /* extra flags (not used when writing a gzip file) */
-    int     os;         /* operating system */
-    Bytef   *extra;     /* pointer to extra field or Z_NULL if none */
-    uInt    extra_len;  /* extra field length (valid if extra != Z_NULL) */
-    uInt    extra_max;  /* space at extra (only when reading header) */
-    Bytef   *name;      /* pointer to zero-terminated file name or Z_NULL */
-    uInt    name_max;   /* space at name (only when reading header) */
-    Bytef   *comment;   /* pointer to zero-terminated comment or Z_NULL */
-    uInt    comm_max;   /* space at comment (only when reading header) */
-    int     hcrc;       /* true if there was or will be a header crc */
-    int     done;       /* true when done reading gzip header (not used
-                           when writing a gzip file) */
-} gz_header;
-
-typedef gz_header FAR *gz_headerp;
-
-/*
-     The application must update next_in and avail_in when avail_in has dropped
-   to zero.  It must update next_out and avail_out when avail_out has dropped
-   to zero.  The application must initialize zalloc, zfree and opaque before
-   calling the init function.  All other fields are set by the compression
-   library and must not be updated by the application.
-
-     The opaque value provided by the application will be passed as the first
-   parameter for calls of zalloc and zfree.  This can be useful for custom
-   memory management.  The compression library attaches no meaning to the
-   opaque value.
-
-     zalloc must return Z_NULL if there is not enough memory for the object.
-   If zlib is used in a multi-threaded application, zalloc and zfree must be
-   thread safe.
-
-     On 16-bit systems, the functions zalloc and zfree must be able to allocate
-   exactly 65536 bytes, but will not be required to allocate more than this if
-   the symbol MAXSEG_64K is defined (see zconf.h).  WARNING: On MSDOS, pointers
-   returned by zalloc for objects of exactly 65536 bytes *must* have their
-   offset normalized to zero.  The default allocation function provided by this
-   library ensures this (see zutil.c).  To reduce memory requirements and avoid
-   any allocation of 64K objects, at the expense of compression ratio, compile
-   the library with -DMAX_WBITS=14 (see zconf.h).
-
-     The fields total_in and total_out can be used for statistics or progress
-   reports.  After compression, total_in holds the total size of the
-   uncompressed data and may be saved for use in the decompressor (particularly
-   if the decompressor wants to decompress everything in a single step).
-*/
-
-                        /* constants */
-
-#define Z_NO_FLUSH      0
-#define Z_PARTIAL_FLUSH 1
-#define Z_SYNC_FLUSH    2
-#define Z_FULL_FLUSH    3
-#define Z_FINISH        4
-#define Z_BLOCK         5
-#define Z_TREES         6
-/* Allowed flush values; see deflate() and inflate() below for details */
-
-#define Z_OK            0
-#define Z_STREAM_END    1
-#define Z_NEED_DICT     2
-#define Z_ERRNO        (-1)
-#define Z_STREAM_ERROR (-2)
-#define Z_DATA_ERROR   (-3)
-#define Z_MEM_ERROR    (-4)
-#define Z_BUF_ERROR    (-5)
-#define Z_VERSION_ERROR (-6)
-/* Return codes for the compression/decompression functions. Negative values
- * are errors, positive values are used for special but normal events.
- */
-
-#define Z_NO_COMPRESSION         0
-#define Z_BEST_SPEED             1
-#define Z_BEST_COMPRESSION       9
-#define Z_DEFAULT_COMPRESSION  (-1)
-/* compression levels */
-
-#define Z_FILTERED            1
-#define Z_HUFFMAN_ONLY        2
-#define Z_RLE                 3
-#define Z_FIXED               4
-#define Z_DEFAULT_STRATEGY    0
-/* compression strategy; see deflateInit2() below for details */
-
-#define Z_BINARY   0
-#define Z_TEXT     1
-#define Z_ASCII    Z_TEXT   /* for compatibility with 1.2.2 and earlier */
-#define Z_UNKNOWN  2
-/* Possible values of the data_type field (though see inflate()) */
-
-#define Z_DEFLATED   8
-/* The deflate compression method (the only one supported in this version) */
-
-#define Z_NULL  0  /* for initializing zalloc, zfree, opaque */
-
-#define zlib_version zlibVersion()
-/* for compatibility with versions < 1.0.2 */
-
-
-                        /* basic functions */
-
-ZEXTERN const char * ZEXPORT zlibVersion OF((void));
-/* The application can compare zlibVersion and ZLIB_VERSION for consistency.
-   If the first character differs, the library code actually used is not
-   compatible with the zlib.h header file used by the application.  This check
-   is automatically made by deflateInit and inflateInit.
- */
-
-/*
-ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level));
-
-     Initializes the internal stream state for compression.  The fields
-   zalloc, zfree and opaque must be initialized before by the caller.  If
-   zalloc and zfree are set to Z_NULL, deflateInit updates them to use default
-   allocation functions.
-
-     The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9:
-   1 gives best speed, 9 gives best compression, 0 gives no compression at all
-   (the input data is simply copied a block at a time).  Z_DEFAULT_COMPRESSION
-   requests a default compromise between speed and compression (currently
-   equivalent to level 6).
-
-     deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_STREAM_ERROR if level is not a valid compression level, or
-   Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible
-   with the version assumed by the caller (ZLIB_VERSION).  msg is set to null
-   if there is no error message.  deflateInit does not perform any compression:
-   this will be done by deflate().
-*/
-
-
-ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush));
-/*
-    deflate compresses as much data as possible, and stops when the input
-  buffer becomes empty or the output buffer becomes full.  It may introduce
-  some output latency (reading input without producing any output) except when
-  forced to flush.
-
-    The detailed semantics are as follows.  deflate performs one or both of the
-  following actions:
-
-  - Compress more input starting at next_in and update next_in and avail_in
-    accordingly.  If not all input can be processed (because there is not
-    enough room in the output buffer), next_in and avail_in are updated and
-    processing will resume at this point for the next call of deflate().
-
-  - Provide more output starting at next_out and update next_out and avail_out
-    accordingly.  This action is forced if the parameter flush is non zero.
-    Forcing flush frequently degrades the compression ratio, so this parameter
-    should be set only when necessary (in interactive applications).  Some
-    output may be provided even if flush is not set.
-
-    Before the call of deflate(), the application should ensure that at least
-  one of the actions is possible, by providing more input and/or consuming more
-  output, and updating avail_in or avail_out accordingly; avail_out should
-  never be zero before the call.  The application can consume the compressed
-  output when it wants, for example when the output buffer is full (avail_out
-  == 0), or after each call of deflate().  If deflate returns Z_OK and with
-  zero avail_out, it must be called again after making room in the output
-  buffer because there might be more output pending.
-
-    Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to
-  decide how much data to accumulate before producing output, in order to
-  maximize compression.
-
-    If the parameter flush is set to Z_SYNC_FLUSH, all pending output is
-  flushed to the output buffer and the output is aligned on a byte boundary, so
-  that the decompressor can get all input data available so far.  (In
-  particular avail_in is zero after the call if enough output space has been
-  provided before the call.) Flushing may degrade compression for some
-  compression algorithms and so it should be used only when necessary.  This
-  completes the current deflate block and follows it with an empty stored block
-  that is three bits plus filler bits to the next byte, followed by four bytes
-  (00 00 ff ff).
-
-    If flush is set to Z_PARTIAL_FLUSH, all pending output is flushed to the
-  output buffer, but the output is not aligned to a byte boundary.  All of the
-  input data so far will be available to the decompressor, as for Z_SYNC_FLUSH.
-  This completes the current deflate block and follows it with an empty fixed
-  codes block that is 10 bits long.  This assures that enough bytes are output
-  in order for the decompressor to finish the block before the empty fixed code
-  block.
-
-    If flush is set to Z_BLOCK, a deflate block is completed and emitted, as
-  for Z_SYNC_FLUSH, but the output is not aligned on a byte boundary, and up to
-  seven bits of the current block are held to be written as the next byte after
-  the next deflate block is completed.  In this case, the decompressor may not
-  be provided enough bits at this point in order to complete decompression of
-  the data provided so far to the compressor.  It may need to wait for the next
-  block to be emitted.  This is for advanced applications that need to control
-  the emission of deflate blocks.
-
-    If flush is set to Z_FULL_FLUSH, all output is flushed as with
-  Z_SYNC_FLUSH, and the compression state is reset so that decompression can
-  restart from this point if previous compressed data has been damaged or if
-  random access is desired.  Using Z_FULL_FLUSH too often can seriously degrade
-  compression.
-
-    If deflate returns with avail_out == 0, this function must be called again
-  with the same value of the flush parameter and more output space (updated
-  avail_out), until the flush is complete (deflate returns with non-zero
-  avail_out).  In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that
-  avail_out is greater than six to avoid repeated flush markers due to
-  avail_out == 0 on return.
-
-    If the parameter flush is set to Z_FINISH, pending input is processed,
-  pending output is flushed and deflate returns with Z_STREAM_END if there was
-  enough output space; if deflate returns with Z_OK, this function must be
-  called again with Z_FINISH and more output space (updated avail_out) but no
-  more input data, until it returns with Z_STREAM_END or an error.  After
-  deflate has returned Z_STREAM_END, the only possible operations on the stream
-  are deflateReset or deflateEnd.
-
-    Z_FINISH can be used immediately after deflateInit if all the compression
-  is to be done in a single step.  In this case, avail_out must be at least the
-  value returned by deflateBound (see below).  Then deflate is guaranteed to
-  return Z_STREAM_END.  If not enough output space is provided, deflate will
-  not return Z_STREAM_END, and it must be called again as described above.
-
-    deflate() sets strm->adler to the adler32 checksum of all input read
-  so far (that is, total_in bytes).
-
-    deflate() may update strm->data_type if it can make a good guess about
-  the input data type (Z_BINARY or Z_TEXT).  In doubt, the data is considered
-  binary.  This field is only for information purposes and does not affect the
-  compression algorithm in any manner.
-
-    deflate() returns Z_OK if some progress has been made (more input
-  processed or more output produced), Z_STREAM_END if all input has been
-  consumed and all output has been produced (only when flush is set to
-  Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example
-  if next_in or next_out was Z_NULL), Z_BUF_ERROR if no progress is possible
-  (for example avail_in or avail_out was zero).  Note that Z_BUF_ERROR is not
-  fatal, and deflate() can be called again with more input and more output
-  space to continue compressing.
-*/
-
-
-ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm));
-/*
-     All dynamically allocated data structures for this stream are freed.
-   This function discards any unprocessed input and does not flush any pending
-   output.
-
-     deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the
-   stream state was inconsistent, Z_DATA_ERROR if the stream was freed
-   prematurely (some input or output was discarded).  In the error case, msg
-   may be set but then points to a static string (which must not be
-   deallocated).
-*/
-
-
-/*
-ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm));
-
-     Initializes the internal stream state for decompression.  The fields
-   next_in, avail_in, zalloc, zfree and opaque must be initialized before by
-   the caller.  If next_in is not Z_NULL and avail_in is large enough (the
-   exact value depends on the compression method), inflateInit determines the
-   compression method from the zlib header and allocates all data structures
-   accordingly; otherwise the allocation will be deferred to the first call of
-   inflate.  If zalloc and zfree are set to Z_NULL, inflateInit updates them to
-   use default allocation functions.
-
-     inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_VERSION_ERROR if the zlib library version is incompatible with the
-   version assumed by the caller, or Z_STREAM_ERROR if the parameters are
-   invalid, such as a null pointer to the structure.  msg is set to null if
-   there is no error message.  inflateInit does not perform any decompression
-   apart from possibly reading the zlib header if present: actual decompression
-   will be done by inflate().  (So next_in and avail_in may be modified, but
-   next_out and avail_out are unused and unchanged.) The current implementation
-   of inflateInit() does not process any header information -- that is deferred
-   until inflate() is called.
-*/
-
-
-ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush));
-/*
-    inflate decompresses as much data as possible, and stops when the input
-  buffer becomes empty or the output buffer becomes full.  It may introduce
-  some output latency (reading input without producing any output) except when
-  forced to flush.
-
-  The detailed semantics are as follows.  inflate performs one or both of the
-  following actions:
-
-  - Decompress more input starting at next_in and update next_in and avail_in
-    accordingly.  If not all input can be processed (because there is not
-    enough room in the output buffer), next_in is updated and processing will
-    resume at this point for the next call of inflate().
-
-  - Provide more output starting at next_out and update next_out and avail_out
-    accordingly.  inflate() provides as much output as possible, until there is
-    no more input data or no more space in the output buffer (see below about
-    the flush parameter).
-
-    Before the call of inflate(), the application should ensure that at least
-  one of the actions is possible, by providing more input and/or consuming more
-  output, and updating the next_* and avail_* values accordingly.  The
-  application can consume the uncompressed output when it wants, for example
-  when the output buffer is full (avail_out == 0), or after each call of
-  inflate().  If inflate returns Z_OK and with zero avail_out, it must be
-  called again after making room in the output buffer because there might be
-  more output pending.
-
-    The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH, Z_FINISH,
-  Z_BLOCK, or Z_TREES.  Z_SYNC_FLUSH requests that inflate() flush as much
-  output as possible to the output buffer.  Z_BLOCK requests that inflate()
-  stop if and when it gets to the next deflate block boundary.  When decoding
-  the zlib or gzip format, this will cause inflate() to return immediately
-  after the header and before the first block.  When doing a raw inflate,
-  inflate() will go ahead and process the first block, and will return when it
-  gets to the end of that block, or when it runs out of data.
-
-    The Z_BLOCK option assists in appending to or combining deflate streams.
-  Also to assist in this, on return inflate() will set strm->data_type to the
-  number of unused bits in the last byte taken from strm->next_in, plus 64 if
-  inflate() is currently decoding the last block in the deflate stream, plus
-  128 if inflate() returned immediately after decoding an end-of-block code or
-  decoding the complete header up to just before the first byte of the deflate
-  stream.  The end-of-block will not be indicated until all of the uncompressed
-  data from that block has been written to strm->next_out.  The number of
-  unused bits may in general be greater than seven, except when bit 7 of
-  data_type is set, in which case the number of unused bits will be less than
-  eight.  data_type is set as noted here every time inflate() returns for all
-  flush options, and so can be used to determine the amount of currently
-  consumed input in bits.
-
-    The Z_TREES option behaves as Z_BLOCK does, but it also returns when the
-  end of each deflate block header is reached, before any actual data in that
-  block is decoded.  This allows the caller to determine the length of the
-  deflate block header for later use in random access within a deflate block.
-  256 is added to the value of strm->data_type when inflate() returns
-  immediately after reaching the end of the deflate block header.
-
-    inflate() should normally be called until it returns Z_STREAM_END or an
-  error.  However if all decompression is to be performed in a single step (a
-  single call of inflate), the parameter flush should be set to Z_FINISH.  In
-  this case all pending input is processed and all pending output is flushed;
-  avail_out must be large enough to hold all the uncompressed data.  (The size
-  of the uncompressed data may have been saved by the compressor for this
-  purpose.) The next operation on this stream must be inflateEnd to deallocate
-  the decompression state.  The use of Z_FINISH is not required to perform an
-  inflation in one step.  However it may be used to inform inflate that a
-  faster approach can be used for the single inflate() call.  Z_FINISH also
-  informs inflate to not maintain a sliding window if the stream completes,
-  which reduces inflate's memory footprint.
-
-     In this implementation, inflate() always flushes as much output as
-  possible to the output buffer, and always uses the faster approach on the
-  first call.  So the effects of the flush parameter in this implementation are
-  on the return value of inflate() as noted below, when inflate() returns early
-  when Z_BLOCK or Z_TREES is used, and when inflate() avoids the allocation of
-  memory for a sliding window when Z_FINISH is used.
-
-     If a preset dictionary is needed after this call (see inflateSetDictionary
-  below), inflate sets strm->adler to the Adler-32 checksum of the dictionary
-  chosen by the compressor and returns Z_NEED_DICT; otherwise it sets
-  strm->adler to the Adler-32 checksum of all output produced so far (that is,
-  total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described
-  below.  At the end of the stream, inflate() checks that its computed adler32
-  checksum is equal to that saved by the compressor and returns Z_STREAM_END
-  only if the checksum is correct.
-
-    inflate() can decompress and check either zlib-wrapped or gzip-wrapped
-  deflate data.  The header type is detected automatically, if requested when
-  initializing with inflateInit2().  Any information contained in the gzip
-  header is not retained, so applications that need that information should
-  instead use raw inflate, see inflateInit2() below, or inflateBack() and
-  perform their own processing of the gzip header and trailer.  When processing
-  gzip-wrapped deflate data, strm->adler32 is set to the CRC-32 of the output
-  producted so far.  The CRC-32 is checked against the gzip trailer.
-
-    inflate() returns Z_OK if some progress has been made (more input processed
-  or more output produced), Z_STREAM_END if the end of the compressed data has
-  been reached and all uncompressed output has been produced, Z_NEED_DICT if a
-  preset dictionary is needed at this point, Z_DATA_ERROR if the input data was
-  corrupted (input stream not conforming to the zlib format or incorrect check
-  value), Z_STREAM_ERROR if the stream structure was inconsistent (for example
-  next_in or next_out was Z_NULL), Z_MEM_ERROR if there was not enough memory,
-  Z_BUF_ERROR if no progress is possible or if there was not enough room in the
-  output buffer when Z_FINISH is used.  Note that Z_BUF_ERROR is not fatal, and
-  inflate() can be called again with more input and more output space to
-  continue decompressing.  If Z_DATA_ERROR is returned, the application may
-  then call inflateSync() to look for a good compression block if a partial
-  recovery of the data is desired.
-*/
-
-
-ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm));
-/*
-     All dynamically allocated data structures for this stream are freed.
-   This function discards any unprocessed input and does not flush any pending
-   output.
-
-     inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state
-   was inconsistent.  In the error case, msg may be set but then points to a
-   static string (which must not be deallocated).
-*/
-
-
-                        /* Advanced functions */
-
-/*
-    The following functions are needed only in some special applications.
-*/
-
-/*
-ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm,
-                                     int  level,
-                                     int  method,
-                                     int  windowBits,
-                                     int  memLevel,
-                                     int  strategy));
-
-     This is another version of deflateInit with more compression options.  The
-   fields next_in, zalloc, zfree and opaque must be initialized before by the
-   caller.
-
-     The method parameter is the compression method.  It must be Z_DEFLATED in
-   this version of the library.
-
-     The windowBits parameter is the base two logarithm of the window size
-   (the size of the history buffer).  It should be in the range 8..15 for this
-   version of the library.  Larger values of this parameter result in better
-   compression at the expense of memory usage.  The default value is 15 if
-   deflateInit is used instead.
-
-     windowBits can also be -8..-15 for raw deflate.  In this case, -windowBits
-   determines the window size.  deflate() will then generate raw deflate data
-   with no zlib header or trailer, and will not compute an adler32 check value.
-
-     windowBits can also be greater than 15 for optional gzip encoding.  Add
-   16 to windowBits to write a simple gzip header and trailer around the
-   compressed data instead of a zlib wrapper.  The gzip header will have no
-   file name, no extra data, no comment, no modification time (set to zero), no
-   header crc, and the operating system will be set to 255 (unknown).  If a
-   gzip stream is being written, strm->adler is a crc32 instead of an adler32.
-
-     The memLevel parameter specifies how much memory should be allocated
-   for the internal compression state.  memLevel=1 uses minimum memory but is
-   slow and reduces compression ratio; memLevel=9 uses maximum memory for
-   optimal speed.  The default value is 8.  See zconf.h for total memory usage
-   as a function of windowBits and memLevel.
-
-     The strategy parameter is used to tune the compression algorithm.  Use the
-   value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a
-   filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no
-   string match), or Z_RLE to limit match distances to one (run-length
-   encoding).  Filtered data consists mostly of small values with a somewhat
-   random distribution.  In this case, the compression algorithm is tuned to
-   compress them better.  The effect of Z_FILTERED is to force more Huffman
-   coding and less string matching; it is somewhat intermediate between
-   Z_DEFAULT_STRATEGY and Z_HUFFMAN_ONLY.  Z_RLE is designed to be almost as
-   fast as Z_HUFFMAN_ONLY, but give better compression for PNG image data.  The
-   strategy parameter only affects the compression ratio but not the
-   correctness of the compressed output even if it is not set appropriately.
-   Z_FIXED prevents the use of dynamic Huffman codes, allowing for a simpler
-   decoder for special applications.
-
-     deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_STREAM_ERROR if any parameter is invalid (such as an invalid
-   method), or Z_VERSION_ERROR if the zlib library version (zlib_version) is
-   incompatible with the version assumed by the caller (ZLIB_VERSION).  msg is
-   set to null if there is no error message.  deflateInit2 does not perform any
-   compression: this will be done by deflate().
-*/
-
-ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm,
-                                             const Bytef *dictionary,
-                                             uInt  dictLength));
-/*
-     Initializes the compression dictionary from the given byte sequence
-   without producing any compressed output.  When using the zlib format, this
-   function must be called immediately after deflateInit, deflateInit2 or
-   deflateReset, and before any call of deflate.  When doing raw deflate, this
-   function must be called either before any call of deflate, or immediately
-   after the completion of a deflate block, i.e. after all input has been
-   consumed and all output has been delivered when using any of the flush
-   options Z_BLOCK, Z_PARTIAL_FLUSH, Z_SYNC_FLUSH, or Z_FULL_FLUSH.  The
-   compressor and decompressor must use exactly the same dictionary (see
-   inflateSetDictionary).
-
-     The dictionary should consist of strings (byte sequences) that are likely
-   to be encountered later in the data to be compressed, with the most commonly
-   used strings preferably put towards the end of the dictionary.  Using a
-   dictionary is most useful when the data to be compressed is short and can be
-   predicted with good accuracy; the data can then be compressed better than
-   with the default empty dictionary.
-
-     Depending on the size of the compression data structures selected by
-   deflateInit or deflateInit2, a part of the dictionary may in effect be
-   discarded, for example if the dictionary is larger than the window size
-   provided in deflateInit or deflateInit2.  Thus the strings most likely to be
-   useful should be put at the end of the dictionary, not at the front.  In
-   addition, the current implementation of deflate will use at most the window
-   size minus 262 bytes of the provided dictionary.
-
-     Upon return of this function, strm->adler is set to the adler32 value
-   of the dictionary; the decompressor may later use this value to determine
-   which dictionary has been used by the compressor.  (The adler32 value
-   applies to the whole dictionary even if only a subset of the dictionary is
-   actually used by the compressor.) If a raw deflate was requested, then the
-   adler32 value is not computed and strm->adler is not set.
-
-     deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a
-   parameter is invalid (e.g.  dictionary being Z_NULL) or the stream state is
-   inconsistent (for example if deflate has already been called for this stream
-   or if not at a block boundary for raw deflate).  deflateSetDictionary does
-   not perform any compression: this will be done by deflate().
-*/
-
-ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest,
-                                    z_streamp source));
-/*
-     Sets the destination stream as a complete copy of the source stream.
-
-     This function can be useful when several compression strategies will be
-   tried, for example when there are several ways of pre-processing the input
-   data with a filter.  The streams that will be discarded should then be freed
-   by calling deflateEnd.  Note that deflateCopy duplicates the internal
-   compression state which can be quite large, so this strategy is slow and can
-   consume lots of memory.
-
-     deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
-   enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
-   (such as zalloc being Z_NULL).  msg is left unchanged in both source and
-   destination.
-*/
-
-ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm));
-/*
-     This function is equivalent to deflateEnd followed by deflateInit,
-   but does not free and reallocate all the internal compression state.  The
-   stream will keep the same compression level and any other attributes that
-   may have been set by deflateInit2.
-
-     deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent (such as zalloc or state being Z_NULL).
-*/
-
-ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm,
-                                      int level,
-                                      int strategy));
-/*
-     Dynamically update the compression level and compression strategy.  The
-   interpretation of level and strategy is as in deflateInit2.  This can be
-   used to switch between compression and straight copy of the input data, or
-   to switch to a different kind of input data requiring a different strategy.
-   If the compression level is changed, the input available so far is
-   compressed with the old level (and may be flushed); the new level will take
-   effect only at the next call of deflate().
-
-     Before the call of deflateParams, the stream state must be set as for
-   a call of deflate(), since the currently available input may have to be
-   compressed and flushed.  In particular, strm->avail_out must be non-zero.
-
-     deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source
-   stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR if
-   strm->avail_out was zero.
-*/
-
-ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm,
-                                    int good_length,
-                                    int max_lazy,
-                                    int nice_length,
-                                    int max_chain));
-/*
-     Fine tune deflate's internal compression parameters.  This should only be
-   used by someone who understands the algorithm used by zlib's deflate for
-   searching for the best matching string, and even then only by the most
-   fanatic optimizer trying to squeeze out the last compressed bit for their
-   specific input data.  Read the deflate.c source code for the meaning of the
-   max_lazy, good_length, nice_length, and max_chain parameters.
-
-     deflateTune() can be called after deflateInit() or deflateInit2(), and
-   returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream.
- */
-
-ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm,
-                                       uLong sourceLen));
-/*
-     deflateBound() returns an upper bound on the compressed size after
-   deflation of sourceLen bytes.  It must be called after deflateInit() or
-   deflateInit2(), and after deflateSetHeader(), if used.  This would be used
-   to allocate an output buffer for deflation in a single pass, and so would be
-   called before deflate().  If that first deflate() call is provided the
-   sourceLen input bytes, an output buffer allocated to the size returned by
-   deflateBound(), and the flush value Z_FINISH, then deflate() is guaranteed
-   to return Z_STREAM_END.  Note that it is possible for the compressed size to
-   be larger than the value returned by deflateBound() if flush options other
-   than Z_FINISH or Z_NO_FLUSH are used.
-*/
-
-ZEXTERN int ZEXPORT deflatePending OF((z_streamp strm,
-                                       unsigned *pending,
-                                       int *bits));
-/*
-     deflatePending() returns the number of bytes and bits of output that have
-   been generated, but not yet provided in the available output.  The bytes not
-   provided would be due to the available output space having being consumed.
-   The number of bits of output not provided are between 0 and 7, where they
-   await more bits to join them in order to fill out a full byte.  If pending
-   or bits are Z_NULL, then those values are not set.
-
-     deflatePending returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent.
- */
-
-ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm,
-                                     int bits,
-                                     int value));
-/*
-     deflatePrime() inserts bits in the deflate output stream.  The intent
-   is that this function is used to start off the deflate output with the bits
-   leftover from a previous deflate stream when appending to it.  As such, this
-   function can only be used for raw deflate, and must be used before the first
-   deflate() call after a deflateInit2() or deflateReset().  bits must be less
-   than or equal to 16, and that many of the least significant bits of value
-   will be inserted in the output.
-
-     deflatePrime returns Z_OK if success, Z_BUF_ERROR if there was not enough
-   room in the internal buffer to insert the bits, or Z_STREAM_ERROR if the
-   source stream state was inconsistent.
-*/
-
-ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm,
-                                         gz_headerp head));
-/*
-     deflateSetHeader() provides gzip header information for when a gzip
-   stream is requested by deflateInit2().  deflateSetHeader() may be called
-   after deflateInit2() or deflateReset() and before the first call of
-   deflate().  The text, time, os, extra field, name, and comment information
-   in the provided gz_header structure are written to the gzip header (xflag is
-   ignored -- the extra flags are set according to the compression level).  The
-   caller must assure that, if not Z_NULL, name and comment are terminated with
-   a zero byte, and that if extra is not Z_NULL, that extra_len bytes are
-   available there.  If hcrc is true, a gzip header crc is included.  Note that
-   the current versions of the command-line version of gzip (up through version
-   1.3.x) do not support header crc's, and will report that it is a "multi-part
-   gzip file" and give up.
-
-     If deflateSetHeader is not used, the default gzip header has text false,
-   the time set to zero, and os set to 255, with no extra, name, or comment
-   fields.  The gzip header is returned to the default state by deflateReset().
-
-     deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent.
-*/
-
-/*
-ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm,
-                                     int  windowBits));
-
-     This is another version of inflateInit with an extra parameter.  The
-   fields next_in, avail_in, zalloc, zfree and opaque must be initialized
-   before by the caller.
-
-     The windowBits parameter is the base two logarithm of the maximum window
-   size (the size of the history buffer).  It should be in the range 8..15 for
-   this version of the library.  The default value is 15 if inflateInit is used
-   instead.  windowBits must be greater than or equal to the windowBits value
-   provided to deflateInit2() while compressing, or it must be equal to 15 if
-   deflateInit2() was not used.  If a compressed stream with a larger window
-   size is given as input, inflate() will return with the error code
-   Z_DATA_ERROR instead of trying to allocate a larger window.
-
-     windowBits can also be zero to request that inflate use the window size in
-   the zlib header of the compressed stream.
-
-     windowBits can also be -8..-15 for raw inflate.  In this case, -windowBits
-   determines the window size.  inflate() will then process raw deflate data,
-   not looking for a zlib or gzip header, not generating a check value, and not
-   looking for any check values for comparison at the end of the stream.  This
-   is for use with other formats that use the deflate compressed data format
-   such as zip.  Those formats provide their own check values.  If a custom
-   format is developed using the raw deflate format for compressed data, it is
-   recommended that a check value such as an adler32 or a crc32 be applied to
-   the uncompressed data as is done in the zlib, gzip, and zip formats.  For
-   most applications, the zlib format should be used as is.  Note that comments
-   above on the use in deflateInit2() applies to the magnitude of windowBits.
-
-     windowBits can also be greater than 15 for optional gzip decoding.  Add
-   32 to windowBits to enable zlib and gzip decoding with automatic header
-   detection, or add 16 to decode only the gzip format (the zlib format will
-   return a Z_DATA_ERROR).  If a gzip stream is being decoded, strm->adler is a
-   crc32 instead of an adler32.
-
-     inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_VERSION_ERROR if the zlib library version is incompatible with the
-   version assumed by the caller, or Z_STREAM_ERROR if the parameters are
-   invalid, such as a null pointer to the structure.  msg is set to null if
-   there is no error message.  inflateInit2 does not perform any decompression
-   apart from possibly reading the zlib header if present: actual decompression
-   will be done by inflate().  (So next_in and avail_in may be modified, but
-   next_out and avail_out are unused and unchanged.) The current implementation
-   of inflateInit2() does not process any header information -- that is
-   deferred until inflate() is called.
-*/
-
-ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm,
-                                             const Bytef *dictionary,
-                                             uInt  dictLength));
-/*
-     Initializes the decompression dictionary from the given uncompressed byte
-   sequence.  This function must be called immediately after a call of inflate,
-   if that call returned Z_NEED_DICT.  The dictionary chosen by the compressor
-   can be determined from the adler32 value returned by that call of inflate.
-   The compressor and decompressor must use exactly the same dictionary (see
-   deflateSetDictionary).  For raw inflate, this function can be called at any
-   time to set the dictionary.  If the provided dictionary is smaller than the
-   window and there is already data in the window, then the provided dictionary
-   will amend what's there.  The application must insure that the dictionary
-   that was used for compression is provided.
-
-     inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a
-   parameter is invalid (e.g.  dictionary being Z_NULL) or the stream state is
-   inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the
-   expected one (incorrect adler32 value).  inflateSetDictionary does not
-   perform any decompression: this will be done by subsequent calls of
-   inflate().
-*/
-
-ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm));
-/*
-     Skips invalid compressed data until a possible full flush point (see above
-   for the description of deflate with Z_FULL_FLUSH) can be found, or until all
-   available input is skipped.  No output is provided.
-
-     inflateSync searches for a 00 00 FF FF pattern in the compressed data.
-   All full flush points have this pattern, but not all occurences of this
-   pattern are full flush points.
-
-     inflateSync returns Z_OK if a possible full flush point has been found,
-   Z_BUF_ERROR if no more input was provided, Z_DATA_ERROR if no flush point
-   has been found, or Z_STREAM_ERROR if the stream structure was inconsistent.
-   In the success case, the application may save the current current value of
-   total_in which indicates where valid compressed data was found.  In the
-   error case, the application may repeatedly call inflateSync, providing more
-   input each time, until success or end of the input data.
-*/
-
-ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest,
-                                    z_streamp source));
-/*
-     Sets the destination stream as a complete copy of the source stream.
-
-     This function can be useful when randomly accessing a large stream.  The
-   first pass through the stream can periodically record the inflate state,
-   allowing restarting inflate at those points when randomly accessing the
-   stream.
-
-     inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
-   enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
-   (such as zalloc being Z_NULL).  msg is left unchanged in both source and
-   destination.
-*/
-
-ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm));
-/*
-     This function is equivalent to inflateEnd followed by inflateInit,
-   but does not free and reallocate all the internal decompression state.  The
-   stream will keep attributes that may have been set by inflateInit2.
-
-     inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent (such as zalloc or state being Z_NULL).
-*/
-
-ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm,
-                                      int windowBits));
-/*
-     This function is the same as inflateReset, but it also permits changing
-   the wrap and window size requests.  The windowBits parameter is interpreted
-   the same as it is for inflateInit2.
-
-     inflateReset2 returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent (such as zalloc or state being Z_NULL), or if
-   the windowBits parameter is invalid.
-*/
-
-ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm,
-                                     int bits,
-                                     int value));
-/*
-     This function inserts bits in the inflate input stream.  The intent is
-   that this function is used to start inflating at a bit position in the
-   middle of a byte.  The provided bits will be used before any bytes are used
-   from next_in.  This function should only be used with raw inflate, and
-   should be used before the first inflate() call after inflateInit2() or
-   inflateReset().  bits must be less than or equal to 16, and that many of the
-   least significant bits of value will be inserted in the input.
-
-     If bits is negative, then the input stream bit buffer is emptied.  Then
-   inflatePrime() can be called again to put bits in the buffer.  This is used
-   to clear out bits leftover after feeding inflate a block description prior
-   to feeding inflate codes.
-
-     inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent.
-*/
-
-ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm));
-/*
-     This function returns two values, one in the lower 16 bits of the return
-   value, and the other in the remaining upper bits, obtained by shifting the
-   return value down 16 bits.  If the upper value is -1 and the lower value is
-   zero, then inflate() is currently decoding information outside of a block.
-   If the upper value is -1 and the lower value is non-zero, then inflate is in
-   the middle of a stored block, with the lower value equaling the number of
-   bytes from the input remaining to copy.  If the upper value is not -1, then
-   it is the number of bits back from the current bit position in the input of
-   the code (literal or length/distance pair) currently being processed.  In
-   that case the lower value is the number of bytes already emitted for that
-   code.
-
-     A code is being processed if inflate is waiting for more input to complete
-   decoding of the code, or if it has completed decoding but is waiting for
-   more output space to write the literal or match data.
-
-     inflateMark() is used to mark locations in the input data for random
-   access, which may be at bit positions, and to note those cases where the
-   output of a code may span boundaries of random access blocks.  The current
-   location in the input stream can be determined from avail_in and data_type
-   as noted in the description for the Z_BLOCK flush parameter for inflate.
-
-     inflateMark returns the value noted above or -1 << 16 if the provided
-   source stream state was inconsistent.
-*/
-
-ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm,
-                                         gz_headerp head));
-/*
-     inflateGetHeader() requests that gzip header information be stored in the
-   provided gz_header structure.  inflateGetHeader() may be called after
-   inflateInit2() or inflateReset(), and before the first call of inflate().
-   As inflate() processes the gzip stream, head->done is zero until the header
-   is completed, at which time head->done is set to one.  If a zlib stream is
-   being decoded, then head->done is set to -1 to indicate that there will be
-   no gzip header information forthcoming.  Note that Z_BLOCK or Z_TREES can be
-   used to force inflate() to return immediately after header processing is
-   complete and before any actual data is decompressed.
-
-     The text, time, xflags, and os fields are filled in with the gzip header
-   contents.  hcrc is set to true if there is a header CRC.  (The header CRC
-   was valid if done is set to one.) If extra is not Z_NULL, then extra_max
-   contains the maximum number of bytes to write to extra.  Once done is true,
-   extra_len contains the actual extra field length, and extra contains the
-   extra field, or that field truncated if extra_max is less than extra_len.
-   If name is not Z_NULL, then up to name_max characters are written there,
-   terminated with a zero unless the length is greater than name_max.  If
-   comment is not Z_NULL, then up to comm_max characters are written there,
-   terminated with a zero unless the length is greater than comm_max.  When any
-   of extra, name, or comment are not Z_NULL and the respective field is not
-   present in the header, then that field is set to Z_NULL to signal its
-   absence.  This allows the use of deflateSetHeader() with the returned
-   structure to duplicate the header.  However if those fields are set to
-   allocated memory, then the application will need to save those pointers
-   elsewhere so that they can be eventually freed.
-
-     If inflateGetHeader is not used, then the header information is simply
-   discarded.  The header is always checked for validity, including the header
-   CRC if present.  inflateReset() will reset the process to discard the header
-   information.  The application would need to call inflateGetHeader() again to
-   retrieve the header from the next gzip stream.
-
-     inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent.
-*/
-
-/*
-ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits,
-                                        unsigned char FAR *window));
-
-     Initialize the internal stream state for decompression using inflateBack()
-   calls.  The fields zalloc, zfree and opaque in strm must be initialized
-   before the call.  If zalloc and zfree are Z_NULL, then the default library-
-   derived memory allocation routines are used.  windowBits is the base two
-   logarithm of the window size, in the range 8..15.  window is a caller
-   supplied buffer of that size.  Except for special applications where it is
-   assured that deflate was used with small window sizes, windowBits must be 15
-   and a 32K byte window must be supplied to be able to decompress general
-   deflate streams.
-
-     See inflateBack() for the usage of these routines.
-
-     inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of
-   the parameters are invalid, Z_MEM_ERROR if the internal state could not be
-   allocated, or Z_VERSION_ERROR if the version of the library does not match
-   the version of the header file.
-*/
-
-typedef unsigned (*in_func) OF((void FAR *, unsigned char FAR * FAR *));
-typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned));
-
-ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm,
-                                    in_func in, void FAR *in_desc,
-                                    out_func out, void FAR *out_desc));
-/*
-     inflateBack() does a raw inflate with a single call using a call-back
-   interface for input and output.  This is more efficient than inflate() for
-   file i/o applications in that it avoids copying between the output and the
-   sliding window by simply making the window itself the output buffer.  This
-   function trusts the application to not change the output buffer passed by
-   the output function, at least until inflateBack() returns.
-
-     inflateBackInit() must be called first to allocate the internal state
-   and to initialize the state with the user-provided window buffer.
-   inflateBack() may then be used multiple times to inflate a complete, raw
-   deflate stream with each call.  inflateBackEnd() is then called to free the
-   allocated state.
-
-     A raw deflate stream is one with no zlib or gzip header or trailer.
-   This routine would normally be used in a utility that reads zip or gzip
-   files and writes out uncompressed files.  The utility would decode the
-   header and process the trailer on its own, hence this routine expects only
-   the raw deflate stream to decompress.  This is different from the normal
-   behavior of inflate(), which expects either a zlib or gzip header and
-   trailer around the deflate stream.
-
-     inflateBack() uses two subroutines supplied by the caller that are then
-   called by inflateBack() for input and output.  inflateBack() calls those
-   routines until it reads a complete deflate stream and writes out all of the
-   uncompressed data, or until it encounters an error.  The function's
-   parameters and return types are defined above in the in_func and out_func
-   typedefs.  inflateBack() will call in(in_desc, &buf) which should return the
-   number of bytes of provided input, and a pointer to that input in buf.  If
-   there is no input available, in() must return zero--buf is ignored in that
-   case--and inflateBack() will return a buffer error.  inflateBack() will call
-   out(out_desc, buf, len) to write the uncompressed data buf[0..len-1].  out()
-   should return zero on success, or non-zero on failure.  If out() returns
-   non-zero, inflateBack() will return with an error.  Neither in() nor out()
-   are permitted to change the contents of the window provided to
-   inflateBackInit(), which is also the buffer that out() uses to write from.
-   The length written by out() will be at most the window size.  Any non-zero
-   amount of input may be provided by in().
-
-     For convenience, inflateBack() can be provided input on the first call by
-   setting strm->next_in and strm->avail_in.  If that input is exhausted, then
-   in() will be called.  Therefore strm->next_in must be initialized before
-   calling inflateBack().  If strm->next_in is Z_NULL, then in() will be called
-   immediately for input.  If strm->next_in is not Z_NULL, then strm->avail_in
-   must also be initialized, and then if strm->avail_in is not zero, input will
-   initially be taken from strm->next_in[0 ..  strm->avail_in - 1].
-
-     The in_desc and out_desc parameters of inflateBack() is passed as the
-   first parameter of in() and out() respectively when they are called.  These
-   descriptors can be optionally used to pass any information that the caller-
-   supplied in() and out() functions need to do their job.
-
-     On return, inflateBack() will set strm->next_in and strm->avail_in to
-   pass back any unused input that was provided by the last in() call.  The
-   return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR
-   if in() or out() returned an error, Z_DATA_ERROR if there was a format error
-   in the deflate stream (in which case strm->msg is set to indicate the nature
-   of the error), or Z_STREAM_ERROR if the stream was not properly initialized.
-   In the case of Z_BUF_ERROR, an input or output error can be distinguished
-   using strm->next_in which will be Z_NULL only if in() returned an error.  If
-   strm->next_in is not Z_NULL, then the Z_BUF_ERROR was due to out() returning
-   non-zero.  (in() will always be called before out(), so strm->next_in is
-   assured to be defined if out() returns non-zero.) Note that inflateBack()
-   cannot return Z_OK.
-*/
-
-ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm));
-/*
-     All memory allocated by inflateBackInit() is freed.
-
-     inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream
-   state was inconsistent.
-*/
-
-ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void));
-/* Return flags indicating compile-time options.
-
-    Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other:
-     1.0: size of uInt
-     3.2: size of uLong
-     5.4: size of voidpf (pointer)
-     7.6: size of z_off_t
-
-    Compiler, assembler, and debug options:
-     8: DEBUG
-     9: ASMV or ASMINF -- use ASM code
-     10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention
-     11: 0 (reserved)
-
-    One-time table building (smaller code, but not thread-safe if true):
-     12: BUILDFIXED -- build static block decoding tables when needed
-     13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed
-     14,15: 0 (reserved)
-
-    Library content (indicates missing functionality):
-     16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking
-                          deflate code when not needed)
-     17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect
-                    and decode gzip streams (to avoid linking crc code)
-     18-19: 0 (reserved)
-
-    Operation variations (changes in library functionality):
-     20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate
-     21: FASTEST -- deflate algorithm with only one, lowest compression level
-     22,23: 0 (reserved)
-
-    The sprintf variant used by gzprintf (zero is best):
-     24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format
-     25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure!
-     26: 0 = returns value, 1 = void -- 1 means inferred string length returned
-
-    Remainder:
-     27-31: 0 (reserved)
- */
-
-#ifndef Z_SOLO
-
-                        /* utility functions */
-
-/*
-     The following utility functions are implemented on top of the basic
-   stream-oriented functions.  To simplify the interface, some default options
-   are assumed (compression level and memory usage, standard memory allocation
-   functions).  The source code of these utility functions can be modified if
-   you need special options.
-*/
-
-ZEXTERN int ZEXPORT compress OF((Bytef *dest,   uLongf *destLen,
-                                 const Bytef *source, uLong sourceLen));
-/*
-     Compresses the source buffer into the destination buffer.  sourceLen is
-   the byte length of the source buffer.  Upon entry, destLen is the total size
-   of the destination buffer, which must be at least the value returned by
-   compressBound(sourceLen).  Upon exit, destLen is the actual size of the
-   compressed buffer.
-
-     compress returns Z_OK if success, Z_MEM_ERROR if there was not
-   enough memory, Z_BUF_ERROR if there was not enough room in the output
-   buffer.
-*/
-
-ZEXTERN int ZEXPORT compress2 OF((Bytef *dest,   uLongf *destLen,
-                                  const Bytef *source, uLong sourceLen,
-                                  int level));
-/*
-     Compresses the source buffer into the destination buffer.  The level
-   parameter has the same meaning as in deflateInit.  sourceLen is the byte
-   length of the source buffer.  Upon entry, destLen is the total size of the
-   destination buffer, which must be at least the value returned by
-   compressBound(sourceLen).  Upon exit, destLen is the actual size of the
-   compressed buffer.
-
-     compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_BUF_ERROR if there was not enough room in the output buffer,
-   Z_STREAM_ERROR if the level parameter is invalid.
-*/
-
-ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen));
-/*
-     compressBound() returns an upper bound on the compressed size after
-   compress() or compress2() on sourceLen bytes.  It would be used before a
-   compress() or compress2() call to allocate the destination buffer.
-*/
-
-ZEXTERN int ZEXPORT uncompress OF((Bytef *dest,   uLongf *destLen,
-                                   const Bytef *source, uLong sourceLen));
-/*
-     Decompresses the source buffer into the destination buffer.  sourceLen is
-   the byte length of the source buffer.  Upon entry, destLen is the total size
-   of the destination buffer, which must be large enough to hold the entire
-   uncompressed data.  (The size of the uncompressed data must have been saved
-   previously by the compressor and transmitted to the decompressor by some
-   mechanism outside the scope of this compression library.) Upon exit, destLen
-   is the actual size of the uncompressed buffer.
-
-     uncompress returns Z_OK if success, Z_MEM_ERROR if there was not
-   enough memory, Z_BUF_ERROR if there was not enough room in the output
-   buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete.  In
-   the case where there is not enough room, uncompress() will fill the output
-   buffer with the uncompressed data up to that point.
-*/
-
-                        /* gzip file access functions */
-
-/*
-     This library supports reading and writing files in gzip (.gz) format with
-   an interface similar to that of stdio, using the functions that start with
-   "gz".  The gzip format is different from the zlib format.  gzip is a gzip
-   wrapper, documented in RFC 1952, wrapped around a deflate stream.
-*/
-
-typedef struct gzFile_s *gzFile;    /* semi-opaque gzip file descriptor */
-
-/*
-ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode));
-
-     Opens a gzip (.gz) file for reading or writing.  The mode parameter is as
-   in fopen ("rb" or "wb") but can also include a compression level ("wb9") or
-   a strategy: 'f' for filtered data as in "wb6f", 'h' for Huffman-only
-   compression as in "wb1h", 'R' for run-length encoding as in "wb1R", or 'F'
-   for fixed code compression as in "wb9F".  (See the description of
-   deflateInit2 for more information about the strategy parameter.)  'T' will
-   request transparent writing or appending with no compression and not using
-   the gzip format.
-
-     "a" can be used instead of "w" to request that the gzip stream that will
-   be written be appended to the file.  "+" will result in an error, since
-   reading and writing to the same gzip file is not supported.
-
-     These functions, as well as gzip, will read and decode a sequence of gzip
-   streams in a file.  The append function of gzopen() can be used to create
-   such a file.  (Also see gzflush() for another way to do this.)  When
-   appending, gzopen does not test whether the file begins with a gzip stream,
-   nor does it look for the end of the gzip streams to begin appending.  gzopen
-   will simply append a gzip stream to the existing file.
-
-     gzopen can be used to read a file which is not in gzip format; in this
-   case gzread will directly read from the file without decompression.  When
-   reading, this will be detected automatically by looking for the magic two-
-   byte gzip header.
-
-     gzopen returns NULL if the file could not be opened, if there was
-   insufficient memory to allocate the gzFile state, or if an invalid mode was
-   specified (an 'r', 'w', or 'a' was not provided, or '+' was provided).
-   errno can be checked to determine if the reason gzopen failed was that the
-   file could not be opened.
-*/
-
-ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode));
-/*
-     gzdopen associates a gzFile with the file descriptor fd.  File descriptors
-   are obtained from calls like open, dup, creat, pipe or fileno (if the file
-   has been previously opened with fopen).  The mode parameter is as in gzopen.
-
-     The next call of gzclose on the returned gzFile will also close the file
-   descriptor fd, just like fclose(fdopen(fd, mode)) closes the file descriptor
-   fd.  If you want to keep fd open, use fd = dup(fd_keep); gz = gzdopen(fd,
-   mode);.  The duplicated descriptor should be saved to avoid a leak, since
-   gzdopen does not close fd if it fails.  If you are using fileno() to get the
-   file descriptor from a FILE *, then you will have to use dup() to avoid
-   double-close()ing the file descriptor.  Both gzclose() and fclose() will
-   close the associated file descriptor, so they need to have different file
-   descriptors.
-
-     gzdopen returns NULL if there was insufficient memory to allocate the
-   gzFile state, if an invalid mode was specified (an 'r', 'w', or 'a' was not
-   provided, or '+' was provided), or if fd is -1.  The file descriptor is not
-   used until the next gz* read, write, seek, or close operation, so gzdopen
-   will not detect if fd is invalid (unless fd is -1).
-*/
-
-ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size));
-/*
-     Set the internal buffer size used by this library's functions.  The
-   default buffer size is 8192 bytes.  This function must be called after
-   gzopen() or gzdopen(), and before any other calls that read or write the
-   file.  The buffer memory allocation is always deferred to the first read or
-   write.  Two buffers are allocated, either both of the specified size when
-   writing, or one of the specified size and the other twice that size when
-   reading.  A larger buffer size of, for example, 64K or 128K bytes will
-   noticeably increase the speed of decompression (reading).
-
-     The new buffer size also affects the maximum length for gzprintf().
-
-     gzbuffer() returns 0 on success, or -1 on failure, such as being called
-   too late.
-*/
-
-ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy));
-/*
-     Dynamically update the compression level or strategy.  See the description
-   of deflateInit2 for the meaning of these parameters.
-
-     gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not
-   opened for writing.
-*/
-
-ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len));
-/*
-     Reads the given number of uncompressed bytes from the compressed file.  If
-   the input file is not in gzip format, gzread copies the given number of
-   bytes into the buffer directly from the file.
-
-     After reaching the end of a gzip stream in the input, gzread will continue
-   to read, looking for another gzip stream.  Any number of gzip streams may be
-   concatenated in the input file, and will all be decompressed by gzread().
-   If something other than a gzip stream is encountered after a gzip stream,
-   that remaining trailing garbage is ignored (and no error is returned).
-
-     gzread can be used to read a gzip file that is being concurrently written.
-   Upon reaching the end of the input, gzread will return with the available
-   data.  If the error code returned by gzerror is Z_OK or Z_BUF_ERROR, then
-   gzclearerr can be used to clear the end of file indicator in order to permit
-   gzread to be tried again.  Z_OK indicates that a gzip stream was completed
-   on the last gzread.  Z_BUF_ERROR indicates that the input file ended in the
-   middle of a gzip stream.  Note that gzread does not return -1 in the event
-   of an incomplete gzip stream.  This error is deferred until gzclose(), which
-   will return Z_BUF_ERROR if the last gzread ended in the middle of a gzip
-   stream.  Alternatively, gzerror can be used before gzclose to detect this
-   case.
-
-     gzread returns the number of uncompressed bytes actually read, less than
-   len for end of file, or -1 for error.
-*/
-
-ZEXTERN int ZEXPORT gzwrite OF((gzFile file,
-                                voidpc buf, unsigned len));
-/*
-     Writes the given number of uncompressed bytes into the compressed file.
-   gzwrite returns the number of uncompressed bytes written or 0 in case of
-   error.
-*/
-
-ZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...));
-/*
-     Converts, formats, and writes the arguments to the compressed file under
-   control of the format string, as in fprintf.  gzprintf returns the number of
-   uncompressed bytes actually written, or 0 in case of error.  The number of
-   uncompressed bytes written is limited to 8191, or one less than the buffer
-   size given to gzbuffer().  The caller should assure that this limit is not
-   exceeded.  If it is exceeded, then gzprintf() will return an error (0) with
-   nothing written.  In this case, there may also be a buffer overflow with
-   unpredictable consequences, which is possible only if zlib was compiled with
-   the insecure functions sprintf() or vsprintf() because the secure snprintf()
-   or vsnprintf() functions were not available.  This can be determined using
-   zlibCompileFlags().
-*/
-
-ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s));
-/*
-     Writes the given null-terminated string to the compressed file, excluding
-   the terminating null character.
-
-     gzputs returns the number of characters written, or -1 in case of error.
-*/
-
-ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len));
-/*
-     Reads bytes from the compressed file until len-1 characters are read, or a
-   newline character is read and transferred to buf, or an end-of-file
-   condition is encountered.  If any characters are read or if len == 1, the
-   string is terminated with a null character.  If no characters are read due
-   to an end-of-file or len < 1, then the buffer is left untouched.
-
-     gzgets returns buf which is a null-terminated string, or it returns NULL
-   for end-of-file or in case of error.  If there was an error, the contents at
-   buf are indeterminate.
-*/
-
-ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c));
-/*
-     Writes c, converted to an unsigned char, into the compressed file.  gzputc
-   returns the value that was written, or -1 in case of error.
-*/
-
-ZEXTERN int ZEXPORT gzgetc OF((gzFile file));
-/*
-     Reads one byte from the compressed file.  gzgetc returns this byte or -1
-   in case of end of file or error.  This is implemented as a macro for speed.
-   As such, it does not do all of the checking the other functions do.  I.e.
-   it does not check to see if file is NULL, nor whether the structure file
-   points to has been clobbered or not.
-*/
-
-ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file));
-/*
-     Push one character back onto the stream to be read as the first character
-   on the next read.  At least one character of push-back is allowed.
-   gzungetc() returns the character pushed, or -1 on failure.  gzungetc() will
-   fail if c is -1, and may fail if a character has been pushed but not read
-   yet.  If gzungetc is used immediately after gzopen or gzdopen, at least the
-   output buffer size of pushed characters is allowed.  (See gzbuffer above.)
-   The pushed character will be discarded if the stream is repositioned with
-   gzseek() or gzrewind().
-*/
-
-ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush));
-/*
-     Flushes all pending output into the compressed file.  The parameter flush
-   is as in the deflate() function.  The return value is the zlib error number
-   (see function gzerror below).  gzflush is only permitted when writing.
-
-     If the flush parameter is Z_FINISH, the remaining data is written and the
-   gzip stream is completed in the output.  If gzwrite() is called again, a new
-   gzip stream will be started in the output.  gzread() is able to read such
-   concatented gzip streams.
-
-     gzflush should be called only when strictly necessary because it will
-   degrade compression if called too often.
-*/
-
-/*
-ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file,
-                                   z_off_t offset, int whence));
-
-     Sets the starting position for the next gzread or gzwrite on the given
-   compressed file.  The offset represents a number of bytes in the
-   uncompressed data stream.  The whence parameter is defined as in lseek(2);
-   the value SEEK_END is not supported.
-
-     If the file is opened for reading, this function is emulated but can be
-   extremely slow.  If the file is opened for writing, only forward seeks are
-   supported; gzseek then compresses a sequence of zeroes up to the new
-   starting position.
-
-     gzseek returns the resulting offset location as measured in bytes from
-   the beginning of the uncompressed stream, or -1 in case of error, in
-   particular if the file is opened for writing and the new starting position
-   would be before the current position.
-*/
-
-ZEXTERN int ZEXPORT    gzrewind OF((gzFile file));
-/*
-     Rewinds the given file. This function is supported only for reading.
-
-     gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET)
-*/
-
-/*
-ZEXTERN z_off_t ZEXPORT    gztell OF((gzFile file));
-
-     Returns the starting position for the next gzread or gzwrite on the given
-   compressed file.  This position represents a number of bytes in the
-   uncompressed data stream, and is zero when starting, even if appending or
-   reading a gzip stream from the middle of a file using gzdopen().
-
-     gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR)
-*/
-
-/*
-ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file));
-
-     Returns the current offset in the file being read or written.  This offset
-   includes the count of bytes that precede the gzip stream, for example when
-   appending or when using gzdopen() for reading.  When reading, the offset
-   does not include as yet unused buffered input.  This information can be used
-   for a progress indicator.  On error, gzoffset() returns -1.
-*/
-
-ZEXTERN int ZEXPORT gzeof OF((gzFile file));
-/*
-     Returns true (1) if the end-of-file indicator has been set while reading,
-   false (0) otherwise.  Note that the end-of-file indicator is set only if the
-   read tried to go past the end of the input, but came up short.  Therefore,
-   just like feof(), gzeof() may return false even if there is no more data to
-   read, in the event that the last read request was for the exact number of
-   bytes remaining in the input file.  This will happen if the input file size
-   is an exact multiple of the buffer size.
-
-     If gzeof() returns true, then the read functions will return no more data,
-   unless the end-of-file indicator is reset by gzclearerr() and the input file
-   has grown since the previous end of file was detected.
-*/
-
-ZEXTERN int ZEXPORT gzdirect OF((gzFile file));
-/*
-     Returns true (1) if file is being copied directly while reading, or false
-   (0) if file is a gzip stream being decompressed.
-
-     If the input file is empty, gzdirect() will return true, since the input
-   does not contain a gzip stream.
-
-     If gzdirect() is used immediately after gzopen() or gzdopen() it will
-   cause buffers to be allocated to allow reading the file to determine if it
-   is a gzip file.  Therefore if gzbuffer() is used, it should be called before
-   gzdirect().
-
-     When writing, gzdirect() returns true (1) if transparent writing was
-   requested ("wT" for the gzopen() mode), or false (0) otherwise.  (Note:
-   gzdirect() is not needed when writing.  Transparent writing must be
-   explicitly requested, so the application already knows the answer.  When
-   linking statically, using gzdirect() will include all of the zlib code for
-   gzip file reading and decompression, which may not be desired.)
-*/
-
-ZEXTERN int ZEXPORT    gzclose OF((gzFile file));
-/*
-     Flushes all pending output if necessary, closes the compressed file and
-   deallocates the (de)compression state.  Note that once file is closed, you
-   cannot call gzerror with file, since its structures have been deallocated.
-   gzclose must not be called more than once on the same file, just as free
-   must not be called more than once on the same allocation.
-
-     gzclose will return Z_STREAM_ERROR if file is not valid, Z_ERRNO on a
-   file operation error, Z_MEM_ERROR if out of memory, Z_BUF_ERROR if the
-   last read ended in the middle of a gzip stream, or Z_OK on success.
-*/
-
-ZEXTERN int ZEXPORT gzclose_r OF((gzFile file));
-ZEXTERN int ZEXPORT gzclose_w OF((gzFile file));
-/*
-     Same as gzclose(), but gzclose_r() is only for use when reading, and
-   gzclose_w() is only for use when writing or appending.  The advantage to
-   using these instead of gzclose() is that they avoid linking in zlib
-   compression or decompression code that is not used when only reading or only
-   writing respectively.  If gzclose() is used, then both compression and
-   decompression code will be included the application when linking to a static
-   zlib library.
-*/
-
-ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum));
-/*
-     Returns the error message for the last error which occurred on the given
-   compressed file.  errnum is set to zlib error number.  If an error occurred
-   in the file system and not in the compression library, errnum is set to
-   Z_ERRNO and the application may consult errno to get the exact error code.
-
-     The application must not modify the returned string.  Future calls to
-   this function may invalidate the previously returned string.  If file is
-   closed, then the string previously returned by gzerror will no longer be
-   available.
-
-     gzerror() should be used to distinguish errors from end-of-file for those
-   functions above that do not distinguish those cases in their return values.
-*/
-
-ZEXTERN void ZEXPORT gzclearerr OF((gzFile file));
-/*
-     Clears the error and end-of-file flags for file.  This is analogous to the
-   clearerr() function in stdio.  This is useful for continuing to read a gzip
-   file that is being written concurrently.
-*/
-
-#endif /* !Z_SOLO */
-
-                        /* checksum functions */
-
-/*
-     These functions are not related to compression but are exported
-   anyway because they might be useful in applications using the compression
-   library.
-*/
-
-ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len));
-/*
-     Update a running Adler-32 checksum with the bytes buf[0..len-1] and
-   return the updated checksum.  If buf is Z_NULL, this function returns the
-   required initial value for the checksum.
-
-     An Adler-32 checksum is almost as reliable as a CRC32 but can be computed
-   much faster.
-
-   Usage example:
-
-     uLong adler = adler32(0L, Z_NULL, 0);
-
-     while (read_buffer(buffer, length) != EOF) {
-       adler = adler32(adler, buffer, length);
-     }
-     if (adler != original_adler) error();
-*/
-
-/*
-ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2,
-                                          z_off_t len2));
-
-     Combine two Adler-32 checksums into one.  For two sequences of bytes, seq1
-   and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for
-   each, adler1 and adler2.  adler32_combine() returns the Adler-32 checksum of
-   seq1 and seq2 concatenated, requiring only adler1, adler2, and len2.  Note
-   that the z_off_t type (like off_t) is a signed integer.  If len2 is
-   negative, the result has no meaning or utility.
-*/
-
-ZEXTERN uLong ZEXPORT crc32   OF((uLong crc, const Bytef *buf, uInt len));
-/*
-     Update a running CRC-32 with the bytes buf[0..len-1] and return the
-   updated CRC-32.  If buf is Z_NULL, this function returns the required
-   initial value for the for the crc.  Pre- and post-conditioning (one's
-   complement) is performed within this function so it shouldn't be done by the
-   application.
-
-   Usage example:
-
-     uLong crc = crc32(0L, Z_NULL, 0);
-
-     while (read_buffer(buffer, length) != EOF) {
-       crc = crc32(crc, buffer, length);
-     }
-     if (crc != original_crc) error();
-*/
-
-/*
-ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2));
-
-     Combine two CRC-32 check values into one.  For two sequences of bytes,
-   seq1 and seq2 with lengths len1 and len2, CRC-32 check values were
-   calculated for each, crc1 and crc2.  crc32_combine() returns the CRC-32
-   check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and
-   len2.
-*/
-
-
-                        /* various hacks, don't look :) */
-
-/* deflateInit and inflateInit are macros to allow checking the zlib version
- * and the compiler's view of z_stream:
- */
-ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level,
-                                     const char *version, int stream_size));
-ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm,
-                                     const char *version, int stream_size));
-ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int  level, int  method,
-                                      int windowBits, int memLevel,
-                                      int strategy, const char *version,
-                                      int stream_size));
-ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int  windowBits,
-                                      const char *version, int stream_size));
-ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits,
-                                         unsigned char FAR *window,
-                                         const char *version,
-                                         int stream_size));
-#define deflateInit(strm, level) \
-        deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream))
-#define inflateInit(strm) \
-        inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream))
-#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \
-        deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\
-                      (strategy), ZLIB_VERSION, (int)sizeof(z_stream))
-#define inflateInit2(strm, windowBits) \
-        inflateInit2_((strm), (windowBits), ZLIB_VERSION, \
-                      (int)sizeof(z_stream))
-#define inflateBackInit(strm, windowBits, window) \
-        inflateBackInit_((strm), (windowBits), (window), \
-                      ZLIB_VERSION, (int)sizeof(z_stream))
-
-#ifndef Z_SOLO
-
-/* gzgetc() macro and its supporting function and exposed data structure.  Note
- * that the real internal state is much larger than the exposed structure.
- * This abbreviated structure exposes just enough for the gzgetc() macro.  The
- * user should not mess with these exposed elements, since their names or
- * behavior could change in the future, perhaps even capriciously.  They can
- * only be used by the gzgetc() macro.  You have been warned.
- */
-struct gzFile_s {
-    unsigned have;
-    unsigned char *next;
-    z_off64_t pos;
-};
-ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file));
-#define gzgetc(g) \
-    ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : gzgetc_(g))
-
-/* provide 64-bit offset functions if _LARGEFILE64_SOURCE defined, and/or
- * change the regular functions to 64 bits if _FILE_OFFSET_BITS is 64 (if
- * both are true, the application gets the *64 functions, and the regular
- * functions are changed to 64 bits) -- in case these are set on systems
- * without large file support, _LFS64_LARGEFILE must also be true
- */
-#if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0
-   ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *));
-   ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int));
-   ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile));
-   ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile));
-   ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off64_t));
-   ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off64_t));
-#endif
-
-#if !defined(ZLIB_INTERNAL) && _FILE_OFFSET_BITS-0 == 64 && _LFS64_LARGEFILE-0
-#  ifdef Z_PREFIX_SET
-#    define z_gzopen z_gzopen64
-#    define z_gzseek z_gzseek64
-#    define z_gztell z_gztell64
-#    define z_gzoffset z_gzoffset64
-#    define z_adler32_combine z_adler32_combine64
-#    define z_crc32_combine z_crc32_combine64
-#  else
-#    define gzopen gzopen64
-#    define gzseek gzseek64
-#    define gztell gztell64
-#    define gzoffset gzoffset64
-#    define adler32_combine adler32_combine64
-#    define crc32_combine crc32_combine64
-#  endif
-#  ifndef _LARGEFILE64_SOURCE
-     ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *));
-     ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int));
-     ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile));
-     ZEXTERN z_off_t ZEXPORT gzoffset64 OF((gzFile));
-     ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t));
-     ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t));
-#  endif
-#else
-   ZEXTERN gzFile ZEXPORT gzopen OF((const char *, const char *));
-   ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile, z_off_t, int));
-   ZEXTERN z_off_t ZEXPORT gztell OF((gzFile));
-   ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile));
-   ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t));
-   ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t));
-#endif
-
-#else /* Z_SOLO */
-
-   ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t));
-   ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t));
-
-#endif /* !Z_SOLO */
-
-/* hack for buggy compilers */
-#if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL)
-    struct internal_state {int dummy;};
-#endif
-
-/* undocumented functions */
-ZEXTERN const char   * ZEXPORT zError           OF((int));
-ZEXTERN int            ZEXPORT inflateSyncPoint OF((z_streamp));
-ZEXTERN const uLongf * ZEXPORT get_crc_table    OF((void));
-ZEXTERN int            ZEXPORT inflateUndermine OF((z_streamp, int));
-ZEXTERN int            ZEXPORT inflateResetKeep OF((z_streamp));
-ZEXTERN int            ZEXPORT deflateResetKeep OF((z_streamp));
-#ifndef Z_SOLO
-  ZEXTERN unsigned long  ZEXPORT gzflags          OF((void));
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ZLIB_H */
diff --git a/misc/builddeps/win64/zlib/lib/libz.a b/misc/builddeps/win64/zlib/lib/libz.a
deleted file mode 100644 (file)
index 93a0a6b..0000000
Binary files a/misc/builddeps/win64/zlib/lib/libz.a and /dev/null differ
diff --git a/misc/builddeps/win64/zlib/lib/libz.dll.a b/misc/builddeps/win64/zlib/lib/libz.dll.a
deleted file mode 120000 (symlink)
index d68f850..0000000
+++ /dev/null
@@ -1 +0,0 @@
-libzdll.a
\ No newline at end of file
diff --git a/misc/builddeps/win64/zlib/lib/libzdll.a b/misc/builddeps/win64/zlib/lib/libzdll.a
deleted file mode 100644 (file)
index c10a88f..0000000
Binary files a/misc/builddeps/win64/zlib/lib/libzdll.a and /dev/null differ
diff --git a/misc/builddeps/win64/zlib/lib/pkgconfig/zlib.pc b/misc/builddeps/win64/zlib/lib/pkgconfig/zlib.pc
deleted file mode 100644 (file)
index 17626e1..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-prefix=/usr/local
-exec_prefix=/usr/local
-libdir=/tmp/zlib-1.2.6.out/usr/local/lib
-sharedlibdir=/tmp/zlib-1.2.6.out/usr/local/lib
-includedir=/tmp/zlib-1.2.6.out/usr/local/include
-
-Name: zlib
-Description: zlib compression library
-Version: 1.2.6
-
-Requires:
-Libs: -L${libdir} -L${sharedlibdir} -lz
-Cflags: -I${includedir}