Direct3D header update.

diff --git a/include/d3d.h b/include/d3d.h
index d34b478..5192f87 100644
--- a/include/d3d.h
+++ b/include/d3d.h
@@ -130,6 +130,32 @@
 #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_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
@@ -299,7 +325,7 @@
     ICOM_METHOD1(HRESULT,Initialize,  LPDIRECT3D,lpDirect3D) \
     ICOM_METHOD1(HRESULT,SetMaterial, LPD3DMATERIAL,lpMat) \
     ICOM_METHOD1(HRESULT,GetMaterial, LPD3DMATERIAL,lpMat) \
-    ICOM_METHOD2(HRESULT,GetHandle,   LPDIRECT3DDEVICE2,lpDirect3DDevice2, LPD3DMATERIALHANDLE,lpHandle) \
+    ICOM_METHOD2(HRESULT,GetHandle,   LPDIRECT3DDEVICE,lpDirect3DDevice, LPD3DMATERIALHANDLE,lpHandle) \
     ICOM_METHOD (HRESULT,Reserve) \
     ICOM_METHOD (HRESULT,Unreserve)
 #define IDirect3DMaterial_IMETHODS \
@@ -511,7 +537,7 @@
 #define IDirect3DViewport3_IMETHODS \
     IDirect3DViewport2_IMETHODS \
     IDirect3DViewport3_METHODS
-ICOM_DEFINE(IDirect3DViewport3,IDirect3DViewport)
+ICOM_DEFINE(IDirect3DViewport3,IDirect3DViewport2)
 #undef ICOM_INTERFACE
 
   /*** IUnknown methods ***/
@@ -816,16 +842,16 @@
     ICOM_METHOD1(HRESULT,GetDirect3D,          LPDIRECT3D7*,lplpDirect3D3) \
     ICOM_METHOD2(HRESULT,SetRenderTarget,      LPDIRECTDRAWSURFACE7,lpNewRenderTarget,DWORD,dwFlags) \
     ICOM_METHOD1(HRESULT,GetRenderTarget,      LPDIRECTDRAWSURFACE7*,lplpRenderTarget) \
-    ICOM_METHOD6(HRESULT,Clear,                DWORD,,LPD3DRECT,,DWORD,,D3DCOLOR,,D3DVALUE,,DWORD,) \
+    ICOM_METHOD6(HRESULT,Clear,                DWORD,dwCount,LPD3DRECT,lpRects,DWORD,dwFlags,D3DCOLOR,dwColor,D3DVALUE,dvZ,DWORD,dwStencil) \
     ICOM_METHOD2(HRESULT,SetTransform,         D3DTRANSFORMSTATETYPE,dtstTransformStateType, LPD3DMATRIX,lpD3DMatrix) \
     ICOM_METHOD2(HRESULT,GetTransform,         D3DTRANSFORMSTATETYPE,dtstTransformStateType, LPD3DMATRIX,lpD3DMatrix) \
+    ICOM_METHOD1(HRESULT,SetViewport,          LPD3DVIEWPORT7,lpData) \
     ICOM_METHOD2(HRESULT,MultiplyTransform,    D3DTRANSFORMSTATETYPE,,LPD3DMATRIX,) \
     ICOM_METHOD1(HRESULT,GetViewport,          LPD3DVIEWPORT7,lpData) \
-    ICOM_METHOD1(HRESULT,SetViewport,          LPD3DVIEWPORT7,lpData) \
     ICOM_METHOD1(HRESULT,SetMaterial,          LPD3DMATERIAL7,lpMat) \
     ICOM_METHOD1(HRESULT,GetMaterial,          LPD3DMATERIAL7,lpMat) \
-    ICOM_METHOD2(HRESULT,SetLight,             DWORD,,LPD3DLIGHT7,lpLight) \
-    ICOM_METHOD2(HRESULT,GetLight,             DWORD,,LPD3DLIGHT7,lpLight) \
+    ICOM_METHOD2(HRESULT,SetLight,             DWORD,dwLightIndex,LPD3DLIGHT7,lpLight) \
+    ICOM_METHOD2(HRESULT,GetLight,             DWORD,dwLightIndex,LPD3DLIGHT7,lpLight) \
     ICOM_METHOD2(HRESULT,SetRenderState,       D3DRENDERSTATETYPE,dwRenderStateType, DWORD,dwRenderState) \
     ICOM_METHOD2(HRESULT,GetRenderState,       D3DRENDERSTATETYPE,dwRenderStateType, LPDWORD,lpdwRenderState) \
     ICOM_METHOD (HRESULT,BeginStateBlock) \
@@ -840,8 +866,8 @@
     ICOM_METHOD5(HRESULT,DrawPrimitiveVB,      D3DPRIMITIVETYPE,d3dptPrimitiveType,LPDIRECT3DVERTEXBUFFER7,lpD3DVertexBuf,DWORD,dwStartVertex,DWORD,dwNumVertices,DWORD,dwFlags) \
     ICOM_METHOD7(HRESULT,DrawIndexedPrimitiveVB, D3DPRIMITIVETYPE,d3dptPrimitiveType,LPDIRECT3DVERTEXBUFFER7,lpD3DVertexBuf,DWORD,,DWORD,,LPWORD,lpwIndices,DWORD,dwIndexCount,DWORD,dwFlags) \
     ICOM_METHOD5(HRESULT,ComputeSphereVisibility,     LPD3DVECTOR,lpCenters,LPD3DVALUE,lpRadii,DWORD,dwNumSpheres,DWORD,dwFlags,LPDWORD,lpdwReturnValues) \
-    ICOM_METHOD2(HRESULT,GetTexture,           DWORD,dwStage,LPDIRECTDRAWSURFACE7*,) \
-    ICOM_METHOD2(HRESULT,SetTexture,           DWORD,dwStage,LPDIRECTDRAWSURFACE7,) \
+    ICOM_METHOD2(HRESULT,GetTexture,           DWORD,dwStage,LPDIRECTDRAWSURFACE7*,lpTexture) \
+    ICOM_METHOD2(HRESULT,SetTexture,           DWORD,dwStage,LPDIRECTDRAWSURFACE7,lpTexture) \
     ICOM_METHOD3(HRESULT,GetTextureStageState, DWORD,dwStage,D3DTEXTURESTAGESTATETYPE,d3dTexStageStateType,LPDWORD,lpdwState) \
     ICOM_METHOD3(HRESULT,SetTextureStageState, DWORD,dwStage,D3DTEXTURESTAGESTATETYPE,d3dTexStageStateType,DWORD,dwState) \
     ICOM_METHOD1(HRESULT,ValidateDevice,       LPDWORD,lpdwPasses) \
@@ -850,7 +876,7 @@
     ICOM_METHOD1(HRESULT,DeleteStateBlock,     DWORD,) \
     ICOM_METHOD2(HRESULT,CreateStateBlock,     D3DSTATEBLOCKTYPE,,LPDWORD,) \
     ICOM_METHOD5(HRESULT,Load,                 LPDIRECTDRAWSURFACE7,,LPPOINT,,LPDIRECTDRAWSURFACE7,,LPRECT,,DWORD,) \
-    ICOM_METHOD2(HRESULT,LightEnable,          DWORD,,BOOL,) \
+    ICOM_METHOD2(HRESULT,LightEnable,          DWORD,dwLightIndex,BOOL,bEnable) \
     ICOM_METHOD2(HRESULT,GetLightEnable,       DWORD,,BOOL*,) \
     ICOM_METHOD2(HRESULT,SetClipPlane,         DWORD,,D3DVALUE*,) \
     ICOM_METHOD2(HRESULT,GetClipPlane,         DWORD,,D3DVALUE*,) \