]> git.cworth.org Git - apitrace/commitdiff
D3D7 corrections.
authorJosé Fonseca <jose.r.fonseca@gmail.com>
Thu, 26 May 2011 07:21:37 +0000 (08:21 +0100)
committerJosé Fonseca <jose.r.fonseca@gmail.com>
Thu, 26 May 2011 07:21:37 +0000 (08:21 +0100)
d3d.py

diff --git a/d3d.py b/d3d.py
index 256832f3d1fa203b456dbe62ba372d0ca786d315..22ed8c8e888ec79edc2a2c2a0ee7fd30c1c72143 100644 (file)
--- a/d3d.py
+++ b/d3d.py
@@ -33,13 +33,17 @@ from d3dcaps import *
 def OutPointer(type):
     return Out(Pointer(type), "out")
 
-D3DNEXT = Flags(DWORD, [
+d3dnextFlags = Flags(DWORD, [
     "D3DNEXT_NEXT",
     "D3DNEXT_HEAD",
     "D3DNEXT_TAIL",
 ])
 
-D3DDP = Flags(DWORD, [
+direct3dFlags = Flags(DWORD, [
+    "DIRECT3D_VERSION",
+])
+
+d3ddpFlags = Flags(DWORD, [
     "D3DDP_WAIT",
     "D3DDP_OUTOFORDER",
     "D3DDP_DONOTCLIP",
@@ -178,282 +182,282 @@ LPDIRECT3DDEVICE7 = WrapPointer(IDirect3DDevice7)
 LPDIRECT3DVERTEXBUFFER7 = WrapPointer(IDirect3DVertexBuffer7)
 
 IDirect3D.methods += [
-    Method(HRESULT, "Initialize", [REFCLSID]),
-    Method(HRESULT, "EnumDevices", [LPD3DENUMDEVICESCALLBACK,LPVOID]),
-    Method(HRESULT, "CreateLight", [OutPointer(LPDIRECT3DLIGHT),LPUNKNOWN]),
-    Method(HRESULT, "CreateMaterial", [OutPointer(LPDIRECT3DMATERIAL),LPUNKNOWN]),
-    Method(HRESULT, "CreateViewport", [OutPointer(LPDIRECT3DVIEWPORT),LPUNKNOWN]),
-    Method(HRESULT, "FindDevice", [LPD3DFINDDEVICESEARCH,LPD3DFINDDEVICERESULT]),
+    Method(HRESULT, "Initialize", [(REFCLSID, "arg0")]),
+    Method(HRESULT, "EnumDevices", [(LPD3DENUMDEVICESCALLBACK, "arg0"), (LPVOID, "arg1")]),
+    Method(HRESULT, "CreateLight", [Out(Pointer(LPDIRECT3DLIGHT), "arg0"), (LPUNKNOWN, "arg1")]),
+    Method(HRESULT, "CreateMaterial", [Out(Pointer(LPDIRECT3DMATERIAL), "arg0"), (LPUNKNOWN, "arg1")]),
+    Method(HRESULT, "CreateViewport", [Out(Pointer(LPDIRECT3DVIEWPORT), "arg0"), (LPUNKNOWN, "arg1")]),
+    Method(HRESULT, "FindDevice", [(LPD3DFINDDEVICESEARCH, "arg0"), (LPD3DFINDDEVICERESULT, "arg1")]),
 ]
 
 IDirect3D2.methods += [
-    Method(HRESULT, "EnumDevices", [LPD3DENUMDEVICESCALLBACK,LPVOID]),
-    Method(HRESULT, "CreateLight", [OutPointer(LPDIRECT3DLIGHT),LPUNKNOWN]),
-    Method(HRESULT, "CreateMaterial", [OutPointer(LPDIRECT3DMATERIAL2),LPUNKNOWN]),
-    Method(HRESULT, "CreateViewport", [OutPointer(LPDIRECT3DVIEWPORT2),LPUNKNOWN]),
-    Method(HRESULT, "FindDevice", [LPD3DFINDDEVICESEARCH,LPD3DFINDDEVICERESULT]),
-    Method(HRESULT, "CreateDevice", [REFCLSID,LPDIRECTDRAWSURFACE,OutPointer(LPDIRECT3DDEVICE2)]),
+    Method(HRESULT, "EnumDevices", [(LPD3DENUMDEVICESCALLBACK, "arg0"), (LPVOID, "arg1")]),
+    Method(HRESULT, "CreateLight", [Out(Pointer(LPDIRECT3DLIGHT), "arg0"), (LPUNKNOWN, "arg1")]),
+    Method(HRESULT, "CreateMaterial", [Out(Pointer(LPDIRECT3DMATERIAL2), "arg0"), (LPUNKNOWN, "arg1")]),
+    Method(HRESULT, "CreateViewport", [Out(Pointer(LPDIRECT3DVIEWPORT2), "arg0"), (LPUNKNOWN, "arg1")]),
+    Method(HRESULT, "FindDevice", [(LPD3DFINDDEVICESEARCH, "arg0"), (LPD3DFINDDEVICERESULT, "arg1")]),
+    Method(HRESULT, "CreateDevice", [(REFCLSID, "arg0"), (LPDIRECTDRAWSURFACE, "arg1"), Out(Pointer(LPDIRECT3DDEVICE2), "arg2")]),
 ]
 
 IDirect3D3.methods += [
-    Method(HRESULT, "EnumDevices", [LPD3DENUMDEVICESCALLBACK,LPVOID]),
-    Method(HRESULT, "CreateLight", [OutPointer(LPDIRECT3DLIGHT),LPUNKNOWN]),
-    Method(HRESULT, "CreateMaterial", [OutPointer(LPDIRECT3DMATERIAL3),LPUNKNOWN]),
-    Method(HRESULT, "CreateViewport", [OutPointer(LPDIRECT3DVIEWPORT3),LPUNKNOWN]),
-    Method(HRESULT, "FindDevice", [LPD3DFINDDEVICESEARCH,LPD3DFINDDEVICERESULT]),
-    Method(HRESULT, "CreateDevice", [REFCLSID,LPDIRECTDRAWSURFACE4,OutPointer(LPDIRECT3DDEVICE3),LPUNKNOWN]),
-    Method(HRESULT, "CreateVertexBuffer", [LPD3DVERTEXBUFFERDESC,OutPointer(LPDIRECT3DVERTEXBUFFER),DWORD,LPUNKNOWN]),
-    Method(HRESULT, "EnumZBufferFormats", [REFCLSID,LPD3DENUMPIXELFORMATSCALLBACK,LPVOID]),
+    Method(HRESULT, "EnumDevices", [(LPD3DENUMDEVICESCALLBACK, "arg0"), (LPVOID, "arg1")]),
+    Method(HRESULT, "CreateLight", [Out(Pointer(LPDIRECT3DLIGHT), "arg0"), (LPUNKNOWN, "arg1")]),
+    Method(HRESULT, "CreateMaterial", [Out(Pointer(LPDIRECT3DMATERIAL3), "arg0"), (LPUNKNOWN, "arg1")]),
+    Method(HRESULT, "CreateViewport", [Out(Pointer(LPDIRECT3DVIEWPORT3), "arg0"), (LPUNKNOWN, "arg1")]),
+    Method(HRESULT, "FindDevice", [(LPD3DFINDDEVICESEARCH, "arg0"), Out(LPD3DFINDDEVICERESULT, "arg1")]),
+    Method(HRESULT, "CreateDevice", [(REFCLSID, "arg0"), (LPDIRECTDRAWSURFACE4, "arg1"), Out(Pointer(LPDIRECT3DDEVICE3), "arg2"), (LPUNKNOWN, "arg3")]),
+    Method(HRESULT, "CreateVertexBuffer", [(LPD3DVERTEXBUFFERDESC, "arg0"), Out(Pointer(LPDIRECT3DVERTEXBUFFER), "arg1"), (DWORD, "arg2"), (LPUNKNOWN, "arg3")]),
+    Method(HRESULT, "EnumZBufferFormats", [(REFCLSID, "arg0"), (LPD3DENUMPIXELFORMATSCALLBACK, "arg1"), (LPVOID, "arg2")]),
     Method(HRESULT, "EvictManagedTextures", []),
 ]
 
 IDirect3D7.methods += [
-    Method(HRESULT, "EnumDevices", [LPD3DENUMDEVICESCALLBACK7,LPVOID]),
-    Method(HRESULT, "CreateDevice", [REFCLSID,LPDIRECTDRAWSURFACE7,OutPointer(LPDIRECT3DDEVICE7)]),
-    Method(HRESULT, "CreateVertexBuffer", [LPD3DVERTEXBUFFERDESC,OutPointer(LPDIRECT3DVERTEXBUFFER7),DWORD]),
-    Method(HRESULT, "EnumZBufferFormats", [REFCLSID,LPD3DENUMPIXELFORMATSCALLBACK,LPVOID]),
+    Method(HRESULT, "EnumDevices", [(LPD3DENUMDEVICESCALLBACK7, "arg0"), (LPVOID, "arg1")]),
+    Method(HRESULT, "CreateDevice", [(REFCLSID, "arg0"), (LPDIRECTDRAWSURFACE7, "arg1"), Out(Pointer(LPDIRECT3DDEVICE7), "arg2")]),
+    Method(HRESULT, "CreateVertexBuffer", [(LPD3DVERTEXBUFFERDESC, "arg0"), Out(Pointer(LPDIRECT3DVERTEXBUFFER7), "arg1"), (DWORD, "arg2")]),
+    Method(HRESULT, "EnumZBufferFormats", [(REFCLSID, "arg0"), (LPD3DENUMPIXELFORMATSCALLBACK, "arg1"), (LPVOID, "arg2")]),
     Method(HRESULT, "EvictManagedTextures", []),
 ]
 
 IDirect3DDevice.methods += [
-    Method(HRESULT, "Initialize", [LPDIRECT3D,LPGUID,LPD3DDEVICEDESC]),
-    Method(HRESULT, "GetCaps", [LPD3DDEVICEDESC,LPD3DDEVICEDESC]),
-    Method(HRESULT, "SwapTextureHandles", [LPDIRECT3DTEXTURE,LPDIRECT3DTEXTURE]),
-    Method(HRESULT, "CreateExecuteBuffer", [LPD3DEXECUTEBUFFERDESC,OutPointer(LPDIRECT3DEXECUTEBUFFER),LPUNKNOWN]),
-    Method(HRESULT, "GetStats", [LPD3DSTATS]),
-    Method(HRESULT, "Execute", [LPDIRECT3DEXECUTEBUFFER,LPDIRECT3DVIEWPORT,DWORD]),
-    Method(HRESULT, "AddViewport", [LPDIRECT3DVIEWPORT]),
-    Method(HRESULT, "DeleteViewport", [LPDIRECT3DVIEWPORT]),
-    Method(HRESULT, "NextViewport", [LPDIRECT3DVIEWPORT,OutPointer(LPDIRECT3DVIEWPORT),DWORD]),
-    Method(HRESULT, "Pick", [LPDIRECT3DEXECUTEBUFFER,LPDIRECT3DVIEWPORT,DWORD,LPD3DRECT]),
-    Method(HRESULT, "GetPickRecords", [LPDWORD,LPD3DPICKRECORD]),
-    Method(HRESULT, "EnumTextureFormats", [LPD3DENUMTEXTUREFORMATSCALLBACK,LPVOID]),
-    Method(HRESULT, "CreateMatrix", [LPD3DMATRIXHANDLE]),
-    Method(HRESULT, "SetMatrix", [D3DMATRIXHANDLE,Const(LPD3DMATRIX)]),
-    Method(HRESULT, "GetMatrix", [D3DMATRIXHANDLE,LPD3DMATRIX]),
-    Method(HRESULT, "DeleteMatrix", [D3DMATRIXHANDLE]),
+    Method(HRESULT, "Initialize", [(LPDIRECT3D, "arg0"), (LPGUID, "arg1"), (LPD3DDEVICEDESC, "arg2")]),
+    Method(HRESULT, "GetCaps", [Out(LPD3DDEVICEDESC, "arg0"), Out(LPD3DDEVICEDESC, "arg1")]),
+    Method(HRESULT, "SwapTextureHandles", [(LPDIRECT3DTEXTURE, "arg0"), (LPDIRECT3DTEXTURE, "arg1")]),
+    Method(HRESULT, "CreateExecuteBuffer", [(LPD3DEXECUTEBUFFERDESC, "arg0"), Out(Pointer(LPDIRECT3DEXECUTEBUFFER), "arg1"), (LPUNKNOWN, "arg2")]),
+    Method(HRESULT, "GetStats", [(LPD3DSTATS, "arg0")]),
+    Method(HRESULT, "Execute", [(LPDIRECT3DEXECUTEBUFFER, "arg0"), (LPDIRECT3DVIEWPORT, "arg1"), (DWORD, "arg2")]),
+    Method(HRESULT, "AddViewport", [(LPDIRECT3DVIEWPORT, "arg0")]),
+    Method(HRESULT, "DeleteViewport", [(LPDIRECT3DVIEWPORT, "arg0")]),
+    Method(HRESULT, "NextViewport", [(LPDIRECT3DVIEWPORT, "arg0"), Out(Pointer(LPDIRECT3DVIEWPORT), "arg1"), (DWORD, "arg2")]),
+    Method(HRESULT, "Pick", [(LPDIRECT3DEXECUTEBUFFER, "arg0"), (LPDIRECT3DVIEWPORT, "arg1"), (DWORD, "arg2"), (LPD3DRECT, "arg3")]),
+    Method(HRESULT, "GetPickRecords", [(LPDWORD, "arg0"), (LPD3DPICKRECORD, "arg1")]),
+    Method(HRESULT, "EnumTextureFormats", [(LPD3DENUMTEXTUREFORMATSCALLBACK, "arg0"), (LPVOID, "arg1")]),
+    Method(HRESULT, "CreateMatrix", [Out(LPD3DMATRIXHANDLE, "arg0")]),
+    Method(HRESULT, "SetMatrix", [(D3DMATRIXHANDLE, "arg0"), (Const(LPD3DMATRIX), "arg1")]),
+    Method(HRESULT, "GetMatrix", [(D3DMATRIXHANDLE, "arg0"), Out(LPD3DMATRIX, "arg1")]),
+    Method(HRESULT, "DeleteMatrix", [(D3DMATRIXHANDLE, "arg0")]),
     Method(HRESULT, "BeginScene", []),
     Method(HRESULT, "EndScene", []),
     Method(HRESULT, "GetDirect3D", [OutPointer(LPDIRECT3D)]),
 ]
 
 IDirect3DDevice2.methods += [
-    Method(HRESULT, "GetCaps", [LPD3DDEVICEDESC,LPD3DDEVICEDESC]),
-    Method(HRESULT, "SwapTextureHandles", [LPDIRECT3DTEXTURE2,LPDIRECT3DTEXTURE2]),
-    Method(HRESULT, "GetStats", [LPD3DSTATS]),
-    Method(HRESULT, "AddViewport", [LPDIRECT3DVIEWPORT2]),
-    Method(HRESULT, "DeleteViewport", [LPDIRECT3DVIEWPORT2]),
-    Method(HRESULT, "NextViewport", [LPDIRECT3DVIEWPORT2,OutPointer(LPDIRECT3DVIEWPORT2),DWORD]),
-    Method(HRESULT, "EnumTextureFormats", [LPD3DENUMTEXTUREFORMATSCALLBACK,LPVOID]),
+    Method(HRESULT, "GetCaps", [Out(LPD3DDEVICEDESC, "arg0"), Out(LPD3DDEVICEDESC, "arg1")]),
+    Method(HRESULT, "SwapTextureHandles", [(LPDIRECT3DTEXTURE2, "arg0"), (LPDIRECT3DTEXTURE2, "arg1")]),
+    Method(HRESULT, "GetStats", [Out(LPD3DSTATS, "arg0")]),
+    Method(HRESULT, "AddViewport", [(LPDIRECT3DVIEWPORT2, "arg0")]),
+    Method(HRESULT, "DeleteViewport", [(LPDIRECT3DVIEWPORT2, "arg0")]),
+    Method(HRESULT, "NextViewport", [(LPDIRECT3DVIEWPORT2, "arg0"), Out(Pointer(LPDIRECT3DVIEWPORT2), "arg1"), (DWORD, "arg2")]),
+    Method(HRESULT, "EnumTextureFormats", [(LPD3DENUMTEXTUREFORMATSCALLBACK, "arg0"), (LPVOID, "arg1")]),
     Method(HRESULT, "BeginScene", []),
     Method(HRESULT, "EndScene", []),
-    Method(HRESULT, "GetDirect3D", [OutPointer(LPDIRECT3D2)]),
-    Method(HRESULT, "SetCurrentViewport", [LPDIRECT3DVIEWPORT2]),
-    Method(HRESULT, "GetCurrentViewport", [OutPointer(LPDIRECT3DVIEWPORT2)]),
-    Method(HRESULT, "SetRenderTarget", [LPDIRECTDRAWSURFACE,DWORD]),
-    Method(HRESULT, "GetRenderTarget", [OutPointer(LPDIRECTDRAWSURFACE)]),
-    Method(HRESULT, "Begin", [D3DPRIMITIVETYPE,D3DVERTEXTYPE,DWORD]),
-    Method(HRESULT, "BeginIndexed", [D3DPRIMITIVETYPE,D3DVERTEXTYPE,LPVOID,DWORD,DWORD]),
-    Method(HRESULT, "Vertex", [LPVOID]),
-    Method(HRESULT, "Index", [WORD]),
-    Method(HRESULT, "End", [DWORD]),
-    Method(HRESULT, "GetRenderState", [D3DRENDERSTATETYPE,LPDWORD]),
-    Method(HRESULT, "SetRenderState", [D3DRENDERSTATETYPE,DWORD]),
-    Method(HRESULT, "GetLightState", [D3DLIGHTSTATETYPE,LPDWORD]),
-    Method(HRESULT, "SetLightState", [D3DLIGHTSTATETYPE,DWORD]),
-    Method(HRESULT, "SetTransform", [D3DTRANSFORMSTATETYPE,LPD3DMATRIX]),
-    Method(HRESULT, "GetTransform", [D3DTRANSFORMSTATETYPE,LPD3DMATRIX]),
-    Method(HRESULT, "MultiplyTransform", [D3DTRANSFORMSTATETYPE,LPD3DMATRIX]),
-    Method(HRESULT, "DrawPrimitive", [D3DPRIMITIVETYPE,D3DVERTEXTYPE,LPVOID,DWORD,DWORD]),
-    Method(HRESULT, "DrawIndexedPrimitive", [D3DPRIMITIVETYPE,D3DVERTEXTYPE,LPVOID,DWORD,LPWORD,DWORD,DWORD]),
-    Method(HRESULT, "SetClipStatus", [LPD3DCLIPSTATUS]),
-    Method(HRESULT, "GetClipStatus", [LPD3DCLIPSTATUS]),
+    Method(HRESULT, "GetDirect3D", [Out(Pointer(LPDIRECT3D2), "arg0")]),
+    Method(HRESULT, "SetCurrentViewport", [(LPDIRECT3DVIEWPORT2, "arg0")]),
+    Method(HRESULT, "GetCurrentViewport", [Out(Pointer(LPDIRECT3DVIEWPORT2), "arg0")]),
+    Method(HRESULT, "SetRenderTarget", [(LPDIRECTDRAWSURFACE, "arg0"), (DWORD, "arg1")]),
+    Method(HRESULT, "GetRenderTarget", [Out(Pointer(LPDIRECTDRAWSURFACE), "arg0")]),
+    Method(HRESULT, "Begin", [(D3DPRIMITIVETYPE, "arg0"), (D3DVERTEXTYPE, "arg1"), (DWORD, "arg2")]),
+    Method(HRESULT, "BeginIndexed", [(D3DPRIMITIVETYPE, "arg0"), (D3DVERTEXTYPE, "arg1"), (LPVOID, "arg2"), (DWORD, "arg3"), (DWORD, "arg4")]),
+    Method(HRESULT, "Vertex", [(LPVOID, "arg0")]),
+    Method(HRESULT, "Index", [(WORD, "arg0")]),
+    Method(HRESULT, "End", [(DWORD, "arg0")]),
+    Method(HRESULT, "GetRenderState", [(D3DRENDERSTATETYPE, "arg0"), Out(LPDWORD, "arg1")]),
+    Method(HRESULT, "SetRenderState", [(D3DRENDERSTATETYPE, "arg0"), (DWORD, "arg1")]),
+    Method(HRESULT, "GetLightState", [(D3DLIGHTSTATETYPE, "arg0"), Out(LPDWORD, "arg1")]),
+    Method(HRESULT, "SetLightState", [(D3DLIGHTSTATETYPE, "arg0"), (DWORD, "arg1")]),
+    Method(HRESULT, "SetTransform", [(D3DTRANSFORMSTATETYPE, "arg0"), (LPD3DMATRIX, "arg1")]),
+    Method(HRESULT, "GetTransform", [(D3DTRANSFORMSTATETYPE, "arg0"), Out(LPD3DMATRIX, "arg1")]),
+    Method(HRESULT, "MultiplyTransform", [(D3DTRANSFORMSTATETYPE, "arg0"), Out(LPD3DMATRIX, "arg1")]),
+    Method(HRESULT, "DrawPrimitive", [(D3DPRIMITIVETYPE, "arg0"), (D3DVERTEXTYPE, "arg1"), (LPVOID, "arg2"), (DWORD, "arg3"), (DWORD, "arg4")]),
+    Method(HRESULT, "DrawIndexedPrimitive", [(D3DPRIMITIVETYPE, "arg0"), (D3DVERTEXTYPE, "arg1"), (LPVOID, "arg2"), (DWORD, "arg3"), (LPWORD, "arg4"), (DWORD, "arg5"), (DWORD, "arg6")]),
+    Method(HRESULT, "SetClipStatus", [(LPD3DCLIPSTATUS, "arg0")]),
+    Method(HRESULT, "GetClipStatus", [(LPD3DCLIPSTATUS, "arg0")]),
 ]
 
 IDirect3DDevice3.methods += [
-    Method(HRESULT, "GetCaps", [LPD3DDEVICEDESC,LPD3DDEVICEDESC]),
-    Method(HRESULT, "GetStats", [LPD3DSTATS]),
-    Method(HRESULT, "AddViewport", [LPDIRECT3DVIEWPORT3]),
-    Method(HRESULT, "DeleteViewport", [LPDIRECT3DVIEWPORT3]),
-    Method(HRESULT, "NextViewport", [LPDIRECT3DVIEWPORT3,OutPointer(LPDIRECT3DVIEWPORT3),DWORD]),
-    Method(HRESULT, "EnumTextureFormats", [LPD3DENUMPIXELFORMATSCALLBACK,LPVOID]),
+    Method(HRESULT, "GetCaps", [Out(LPD3DDEVICEDESC, "arg0"), Out(LPD3DDEVICEDESC, "arg1")]),
+    Method(HRESULT, "GetStats", [Out(LPD3DSTATS, "arg0")]),
+    Method(HRESULT, "AddViewport", [(LPDIRECT3DVIEWPORT3, "arg0")]),
+    Method(HRESULT, "DeleteViewport", [(LPDIRECT3DVIEWPORT3, "arg0")]),
+    Method(HRESULT, "NextViewport", [(LPDIRECT3DVIEWPORT3, "arg0"), Out(Pointer(LPDIRECT3DVIEWPORT3), "arg1"), (DWORD, "arg2")]),
+    Method(HRESULT, "EnumTextureFormats", [(LPD3DENUMPIXELFORMATSCALLBACK, "arg0"), (LPVOID, "arg1")]),
     Method(HRESULT, "BeginScene", []),
     Method(HRESULT, "EndScene", []),
-    Method(HRESULT, "GetDirect3D", [OutPointer(LPDIRECT3D3)]),
-    Method(HRESULT, "SetCurrentViewport", [LPDIRECT3DVIEWPORT3]),
-    Method(HRESULT, "GetCurrentViewport", [OutPointer(LPDIRECT3DVIEWPORT3)]),
-    Method(HRESULT, "SetRenderTarget", [LPDIRECTDRAWSURFACE4,DWORD]),
-    Method(HRESULT, "GetRenderTarget", [OutPointer(LPDIRECTDRAWSURFACE4)]),
-    Method(HRESULT, "Begin", [D3DPRIMITIVETYPE,DWORD,DWORD]),
-    Method(HRESULT, "BeginIndexed", [D3DPRIMITIVETYPE,DWORD,LPVOID,DWORD,DWORD]),
-    Method(HRESULT, "Vertex", [LPVOID]),
-    Method(HRESULT, "Index", [WORD]),
-    Method(HRESULT, "End", [DWORD]),
-    Method(HRESULT, "GetRenderState", [D3DRENDERSTATETYPE,LPDWORD]),
-    Method(HRESULT, "SetRenderState", [D3DRENDERSTATETYPE,DWORD]),
-    Method(HRESULT, "GetLightState", [D3DLIGHTSTATETYPE,LPDWORD]),
-    Method(HRESULT, "SetLightState", [D3DLIGHTSTATETYPE,DWORD]),
-    Method(HRESULT, "SetTransform", [D3DTRANSFORMSTATETYPE,LPD3DMATRIX]),
-    Method(HRESULT, "GetTransform", [D3DTRANSFORMSTATETYPE,LPD3DMATRIX]),
-    Method(HRESULT, "MultiplyTransform", [D3DTRANSFORMSTATETYPE,LPD3DMATRIX]),
-    Method(HRESULT, "DrawPrimitive", [D3DPRIMITIVETYPE,DWORD,LPVOID,DWORD,DWORD]),
-    Method(HRESULT, "DrawIndexedPrimitive", [D3DPRIMITIVETYPE,DWORD,LPVOID,DWORD,LPWORD,DWORD,DWORD]),
-    Method(HRESULT, "SetClipStatus", [LPD3DCLIPSTATUS]),
-    Method(HRESULT, "GetClipStatus", [LPD3DCLIPSTATUS]),
-    Method(HRESULT, "DrawPrimitiveStrided", [D3DPRIMITIVETYPE,DWORD,LPD3DDRAWPRIMITIVESTRIDEDDATA,DWORD,DWORD]),
-    Method(HRESULT, "DrawIndexedPrimitiveStrided", [D3DPRIMITIVETYPE,DWORD,LPD3DDRAWPRIMITIVESTRIDEDDATA,DWORD,LPWORD,DWORD,DWORD]),
-    Method(HRESULT, "DrawPrimitiveVB", [D3DPRIMITIVETYPE,LPDIRECT3DVERTEXBUFFER,DWORD,DWORD,DWORD]),
-    Method(HRESULT, "DrawIndexedPrimitiveVB", [D3DPRIMITIVETYPE,LPDIRECT3DVERTEXBUFFER,LPWORD,DWORD,DWORD]),
-    Method(HRESULT, "ComputeSphereVisibility", [LPD3DVECTOR,LPD3DVALUE,DWORD,DWORD,LPDWORD]),
-    Method(HRESULT, "GetTexture", [DWORD,OutPointer(LPDIRECT3DTEXTURE2)]),
-    Method(HRESULT, "SetTexture", [DWORD,LPDIRECT3DTEXTURE2]),
-    Method(HRESULT, "GetTextureStageState", [DWORD,D3DTEXTURESTAGESTATETYPE,LPDWORD]),
-    Method(HRESULT, "SetTextureStageState", [DWORD,D3DTEXTURESTAGESTATETYPE,DWORD]),
-    Method(HRESULT, "ValidateDevice", [LPDWORD]),
+    Method(HRESULT, "GetDirect3D", [Out(Pointer(LPDIRECT3D3), "arg0")]),
+    Method(HRESULT, "SetCurrentViewport", [(LPDIRECT3DVIEWPORT3, "arg0")]),
+    Method(HRESULT, "GetCurrentViewport", [Out(Pointer(LPDIRECT3DVIEWPORT3), "arg0")]),
+    Method(HRESULT, "SetRenderTarget", [(LPDIRECTDRAWSURFACE4, "arg0"), (DWORD, "arg1")]),
+    Method(HRESULT, "GetRenderTarget", [Out(Pointer(LPDIRECTDRAWSURFACE4), "arg0")]),
+    Method(HRESULT, "Begin", [(D3DPRIMITIVETYPE, "arg0"), (DWORD, "arg1"), (DWORD, "arg2")]),
+    Method(HRESULT, "BeginIndexed", [(D3DPRIMITIVETYPE, "arg0"), (DWORD, "arg1"), (LPVOID, "arg2"), (DWORD, "arg3"), (DWORD, "arg4")]),
+    Method(HRESULT, "Vertex", [(LPVOID, "arg0")]),
+    Method(HRESULT, "Index", [(WORD, "arg0")]),
+    Method(HRESULT, "End", [(DWORD, "arg0")]),
+    Method(HRESULT, "GetRenderState", [(D3DRENDERSTATETYPE, "arg0"), Out(LPDWORD, "arg1")]),
+    Method(HRESULT, "SetRenderState", [(D3DRENDERSTATETYPE, "arg0"), (DWORD, "arg1")]),
+    Method(HRESULT, "GetLightState", [(D3DLIGHTSTATETYPE, "arg0"), Out(LPDWORD, "arg1")]),
+    Method(HRESULT, "SetLightState", [(D3DLIGHTSTATETYPE, "arg0"), (DWORD, "arg1")]),
+    Method(HRESULT, "SetTransform", [(D3DTRANSFORMSTATETYPE, "arg0"), (LPD3DMATRIX, "arg1")]),
+    Method(HRESULT, "GetTransform", [(D3DTRANSFORMSTATETYPE, "arg0"), Out(LPD3DMATRIX, "arg1")]),
+    Method(HRESULT, "MultiplyTransform", [(D3DTRANSFORMSTATETYPE, "arg0"), Out(LPD3DMATRIX, "arg1")]),
+    Method(HRESULT, "DrawPrimitive", [(D3DPRIMITIVETYPE, "arg0"), (DWORD, "arg1"), (LPVOID, "arg2"), (DWORD, "arg3"), (DWORD, "arg4")]),
+    Method(HRESULT, "DrawIndexedPrimitive", [(D3DPRIMITIVETYPE, "arg0"), (DWORD, "arg1"), (LPVOID, "arg2"), (DWORD, "arg3"), (LPWORD, "arg4"), (DWORD, "arg5"), (DWORD, "arg6")]),
+    Method(HRESULT, "SetClipStatus", [(LPD3DCLIPSTATUS, "arg0")]),
+    Method(HRESULT, "GetClipStatus", [Out(LPD3DCLIPSTATUS, "arg0")]),
+    Method(HRESULT, "DrawPrimitiveStrided", [(D3DPRIMITIVETYPE, "arg0"), (DWORD, "arg1"), (LPD3DDRAWPRIMITIVESTRIDEDDATA, "arg2"), (DWORD, "arg3"), (DWORD, "arg4")]),
+    Method(HRESULT, "DrawIndexedPrimitiveStrided", [(D3DPRIMITIVETYPE, "arg0"), (DWORD, "arg1"), (LPD3DDRAWPRIMITIVESTRIDEDDATA, "arg2"), (DWORD, "arg3"), (LPWORD, "arg4"), (DWORD, "arg5"), (DWORD, "arg6")]),
+    Method(HRESULT, "DrawPrimitiveVB", [(D3DPRIMITIVETYPE, "arg0"), (LPDIRECT3DVERTEXBUFFER, "arg1"), (DWORD, "arg2"), (DWORD, "arg3"), (DWORD, "arg4")]),
+    Method(HRESULT, "DrawIndexedPrimitiveVB", [(D3DPRIMITIVETYPE, "arg0"), (LPDIRECT3DVERTEXBUFFER, "arg1"), (LPWORD, "arg2"), (DWORD, "arg3"), (DWORD, "arg4")]),
+    Method(HRESULT, "ComputeSphereVisibility", [(LPD3DVECTOR, "arg0"), (LPD3DVALUE, "arg1"), (DWORD, "arg2"), (DWORD, "arg3"), (LPDWORD, "arg4")]),
+    Method(HRESULT, "GetTexture", [(DWORD, "arg0"), Out(Pointer(LPDIRECT3DTEXTURE2), "arg1")]),
+    Method(HRESULT, "SetTexture", [(DWORD, "arg0"), (LPDIRECT3DTEXTURE2, "arg1")]),
+    Method(HRESULT, "GetTextureStageState", [(DWORD, "arg0"), (D3DTEXTURESTAGESTATETYPE, "arg1"), Out(LPDWORD, "arg2")]),
+    Method(HRESULT, "SetTextureStageState", [(DWORD, "arg0"), (D3DTEXTURESTAGESTATETYPE, "arg1"), (DWORD, "arg2")]),
+    Method(HRESULT, "ValidateDevice", [(LPDWORD, "arg0")]),
 ]
 
 IDirect3DDevice7.methods += [
-    Method(HRESULT, "GetCaps", [LPD3DDEVICEDESC7]),
-    Method(HRESULT, "EnumTextureFormats", [LPD3DENUMPIXELFORMATSCALLBACK,LPVOID]),
+    Method(HRESULT, "GetCaps", [Out(LPD3DDEVICEDESC7, "arg0")]),
+    Method(HRESULT, "EnumTextureFormats", [(LPD3DENUMPIXELFORMATSCALLBACK, "arg0"), (LPVOID, "arg1")]),
     Method(HRESULT, "BeginScene", []),
     Method(HRESULT, "EndScene", []),
-    Method(HRESULT, "GetDirect3D", [OutPointer(LPDIRECT3D7)]),
-    Method(HRESULT, "SetRenderTarget", [LPDIRECTDRAWSURFACE7,DWORD]),
-    Method(HRESULT, "GetRenderTarget", [OutPointer(LPDIRECTDRAWSURFACE7)]),
-    Method(HRESULT, "Clear", [DWORD,LPD3DRECT,DWORD,D3DCOLOR,D3DVALUE,DWORD]),
-    Method(HRESULT, "SetTransform", [D3DTRANSFORMSTATETYPE,LPD3DMATRIX]),
-    Method(HRESULT, "GetTransform", [D3DTRANSFORMSTATETYPE,LPD3DMATRIX]),
-    Method(HRESULT, "SetViewport", [LPD3DVIEWPORT7]),
-    Method(HRESULT, "MultiplyTransform", [D3DTRANSFORMSTATETYPE,LPD3DMATRIX]),
-    Method(HRESULT, "GetViewport", [LPD3DVIEWPORT7]),
-    Method(HRESULT, "SetMaterial", [LPD3DMATERIAL7]),
-    Method(HRESULT, "GetMaterial", [LPD3DMATERIAL7]),
-    Method(HRESULT, "SetLight", [DWORD,LPD3DLIGHT7]),
-    Method(HRESULT, "GetLight", [DWORD,LPD3DLIGHT7]),
-    Method(HRESULT, "SetRenderState", [D3DRENDERSTATETYPE,DWORD]),
-    Method(HRESULT, "GetRenderState", [D3DRENDERSTATETYPE,LPDWORD]),
+    Method(HRESULT, "GetDirect3D", [Out(Pointer(LPDIRECT3D7), "arg0")]),
+    Method(HRESULT, "SetRenderTarget", [(LPDIRECTDRAWSURFACE7, "arg0"), (DWORD, "arg1")]),
+    Method(HRESULT, "GetRenderTarget", [Out(Pointer(LPDIRECTDRAWSURFACE7), "arg0")]),
+    Method(HRESULT, "Clear", [(DWORD, "arg0"), (LPD3DRECT, "arg1"), (DWORD, "arg2"), (D3DCOLOR, "arg3"), (D3DVALUE, "arg4"), (DWORD, "arg5")]),
+    Method(HRESULT, "SetTransform", [(D3DTRANSFORMSTATETYPE, "arg0"), (LPD3DMATRIX, "arg1")]),
+    Method(HRESULT, "GetTransform", [(D3DTRANSFORMSTATETYPE, "arg0"), Out(LPD3DMATRIX, "arg1")]),
+    Method(HRESULT, "SetViewport", [(LPD3DVIEWPORT7, "arg0")]),
+    Method(HRESULT, "MultiplyTransform", [(D3DTRANSFORMSTATETYPE, "arg0"), (LPD3DMATRIX, "arg1")]),
+    Method(HRESULT, "GetViewport", [Out(LPD3DVIEWPORT7, "arg0")]),
+    Method(HRESULT, "SetMaterial", [(LPD3DMATERIAL7, "arg0")]),
+    Method(HRESULT, "GetMaterial", [Out(LPD3DMATERIAL7, "arg0")]),
+    Method(HRESULT, "SetLight", [(DWORD, "arg0"), (LPD3DLIGHT7, "arg1")]),
+    Method(HRESULT, "GetLight", [(DWORD, "arg0"), (LPD3DLIGHT7, "arg1")]),
+    Method(HRESULT, "SetRenderState", [(D3DRENDERSTATETYPE, "arg0"), (DWORD, "arg1")]),
+    Method(HRESULT, "GetRenderState", [(D3DRENDERSTATETYPE, "arg0"), Out(LPDWORD, "arg1")]),
     Method(HRESULT, "BeginStateBlock", []),
-    Method(HRESULT, "EndStateBlock", [LPDWORD]),
-    Method(HRESULT, "PreLoad", [LPDIRECTDRAWSURFACE7]),
-    Method(HRESULT, "DrawPrimitive", [D3DPRIMITIVETYPE,DWORD,LPVOID,DWORD,DWORD]),
-    Method(HRESULT, "DrawIndexedPrimitive", [D3DPRIMITIVETYPE,DWORD,LPVOID,DWORD,LPWORD,DWORD,DWORD]),
-    Method(HRESULT, "SetClipStatus", [LPD3DCLIPSTATUS]),
-    Method(HRESULT, "GetClipStatus", [LPD3DCLIPSTATUS]),
-    Method(HRESULT, "DrawPrimitiveStrided", [D3DPRIMITIVETYPE,DWORD,LPD3DDRAWPRIMITIVESTRIDEDDATA,DWORD,DWORD]),
-    Method(HRESULT, "DrawIndexedPrimitiveStrided", [D3DPRIMITIVETYPE,DWORD,LPD3DDRAWPRIMITIVESTRIDEDDATA,DWORD,LPWORD,DWORD,DWORD]),
-    Method(HRESULT, "DrawPrimitiveVB", [D3DPRIMITIVETYPE,LPDIRECT3DVERTEXBUFFER7,DWORD,DWORD,DWORD]),
-    Method(HRESULT, "DrawIndexedPrimitiveVB", [D3DPRIMITIVETYPE,LPDIRECT3DVERTEXBUFFER7,DWORD,DWORD,LPWORD,DWORD,DWORD]),
-    Method(HRESULT, "ComputeSphereVisibility", [LPD3DVECTOR,LPD3DVALUE,DWORD,DWORD,LPDWORD]),
-    Method(HRESULT, "GetTexture", [DWORD,OutPointer(LPDIRECTDRAWSURFACE7)]),
-    Method(HRESULT, "SetTexture", [DWORD,LPDIRECTDRAWSURFACE7]),
-    Method(HRESULT, "GetTextureStageState", [DWORD,D3DTEXTURESTAGESTATETYPE,LPDWORD]),
-    Method(HRESULT, "SetTextureStageState", [DWORD,D3DTEXTURESTAGESTATETYPE,DWORD]),
-    Method(HRESULT, "ValidateDevice", [LPDWORD]),
-    Method(HRESULT, "ApplyStateBlock", [DWORD]),
-    Method(HRESULT, "CaptureStateBlock", [DWORD]),
-    Method(HRESULT, "DeleteStateBlock", [DWORD]),
-    Method(HRESULT, "CreateStateBlock", [D3DSTATEBLOCKTYPE,LPDWORD]),
-    Method(HRESULT, "Load", [LPDIRECTDRAWSURFACE7,LPPOINT,LPDIRECTDRAWSURFACE7,LPRECT,DWORD]),
-    Method(HRESULT, "LightEnable", [DWORD,BOOL]),
-    Method(HRESULT, "GetLightEnable", [DWORD,OutPointer(BOOL)]),
-    Method(HRESULT, "SetClipPlane", [DWORD,OutPointer(D3DVALUE)]),
-    Method(HRESULT, "GetClipPlane", [DWORD,OutPointer(D3DVALUE)]),
-    Method(HRESULT, "GetInfo", [DWORD,LPVOID,DWORD]),
+    Method(HRESULT, "EndStateBlock", [Out(LPDWORD, "arg0")]),
+    Method(HRESULT, "PreLoad", [(LPDIRECTDRAWSURFACE7, "arg0")]),
+    Method(HRESULT, "DrawPrimitive", [(D3DPRIMITIVETYPE, "arg0"), (DWORD, "arg1"), (LPVOID, "arg2"), (DWORD, "arg3"), (DWORD, "arg4")]),
+    Method(HRESULT, "DrawIndexedPrimitive", [(D3DPRIMITIVETYPE, "arg0"), (DWORD, "arg1"), (LPVOID, "arg2"), (DWORD, "arg3"), (LPWORD, "arg4"), (DWORD, "arg5"), (DWORD, "arg6")]),
+    Method(HRESULT, "SetClipStatus", [(LPD3DCLIPSTATUS, "arg0")]),
+    Method(HRESULT, "GetClipStatus", [Out(LPD3DCLIPSTATUS, "arg0")]),
+    Method(HRESULT, "DrawPrimitiveStrided", [(D3DPRIMITIVETYPE, "arg0"), (DWORD, "arg1"), (LPD3DDRAWPRIMITIVESTRIDEDDATA, "arg2"), (DWORD, "arg3"), (DWORD, "arg4")]),
+    Method(HRESULT, "DrawIndexedPrimitiveStrided", [(D3DPRIMITIVETYPE, "arg0"), (DWORD, "arg1"), (LPD3DDRAWPRIMITIVESTRIDEDDATA, "arg2"), (DWORD, "arg3"), (LPWORD, "arg4"), (DWORD, "arg5"), (DWORD, "arg6")]),
+    Method(HRESULT, "DrawPrimitiveVB", [(D3DPRIMITIVETYPE, "arg0"), (LPDIRECT3DVERTEXBUFFER7, "arg1"), (DWORD, "arg2"), (DWORD, "arg3"), (DWORD, "arg4")]),
+    Method(HRESULT, "DrawIndexedPrimitiveVB", [(D3DPRIMITIVETYPE, "arg0"), (LPDIRECT3DVERTEXBUFFER7, "arg1"), (DWORD, "arg2"), (DWORD, "arg3"), (LPWORD, "arg4"), (DWORD, "arg5"), (DWORD, "arg6")]),
+    Method(HRESULT, "ComputeSphereVisibility", [(LPD3DVECTOR, "arg0"), (LPD3DVALUE, "arg1"), (DWORD, "arg2"), (DWORD, "arg3"), (LPDWORD, "arg4")]),
+    Method(HRESULT, "GetTexture", [(DWORD, "arg0"), Out(Pointer(LPDIRECTDRAWSURFACE7), "arg1")]),
+    Method(HRESULT, "SetTexture", [(DWORD, "arg0"), (LPDIRECTDRAWSURFACE7, "arg1")]),
+    Method(HRESULT, "GetTextureStageState", [(DWORD, "arg0"), (D3DTEXTURESTAGESTATETYPE, "arg1"), Out(LPDWORD, "arg2")]),
+    Method(HRESULT, "SetTextureStageState", [(DWORD, "arg0"), (D3DTEXTURESTAGESTATETYPE, "arg1"), (DWORD, "arg2")]),
+    Method(HRESULT, "ValidateDevice", [Out(LPDWORD, "arg0")]),
+    Method(HRESULT, "ApplyStateBlock", [(DWORD, "arg0")]),
+    Method(HRESULT, "CaptureStateBlock", [(DWORD, "arg0")]),
+    Method(HRESULT, "DeleteStateBlock", [(DWORD, "arg0")]),
+    Method(HRESULT, "CreateStateBlock", [(D3DSTATEBLOCKTYPE, "arg0"), Out(LPDWORD, "arg1")]),
+    Method(HRESULT, "Load", [(LPDIRECTDRAWSURFACE7, "arg0"), (LPPOINT, "arg1"), (LPDIRECTDRAWSURFACE7, "arg2"), (LPRECT, "arg3"), (DWORD, "arg4")]),
+    Method(HRESULT, "LightEnable", [(DWORD, "arg0"), (BOOL, "arg1")]),
+    Method(HRESULT, "GetLightEnable", [(DWORD, "arg0"), Out(Pointer(BOOL), "arg1")]),
+    Method(HRESULT, "SetClipPlane", [(DWORD, "arg0"), (Pointer(D3DVALUE), "arg1")]),
+    Method(HRESULT, "GetClipPlane", [(DWORD, "arg0"), Out(Pointer(D3DVALUE), "arg1")]),
+    Method(HRESULT, "GetInfo", [(DWORD, "arg0"), Out(LPVOID, "arg1"), (DWORD, "arg2")]),
 ]
 
 IDirect3DExecuteBuffer.methods += [
-    Method(HRESULT, "Initialize", [LPDIRECT3DDEVICE,LPD3DEXECUTEBUFFERDESC]),
-    Method(HRESULT, "Lock", [LPD3DEXECUTEBUFFERDESC]),
+    Method(HRESULT, "Initialize", [(LPDIRECT3DDEVICE, "arg0"), (LPD3DEXECUTEBUFFERDESC, "arg1")]),
+    Method(HRESULT, "Lock", [(LPD3DEXECUTEBUFFERDESC, "arg0")]),
     Method(HRESULT, "Unlock", []),
-    Method(HRESULT, "SetExecuteData", [LPD3DEXECUTEDATA]),
-    Method(HRESULT, "GetExecuteData", [LPD3DEXECUTEDATA]),
-    Method(HRESULT, "Validate", [LPDWORD,LPD3DVALIDATECALLBACK,LPVOID,DWORD]),
-    Method(HRESULT, "Optimize", [DWORD]),
+    Method(HRESULT, "SetExecuteData", [(LPD3DEXECUTEDATA, "arg0")]),
+    Method(HRESULT, "GetExecuteData", [Out(LPD3DEXECUTEDATA, "arg0")]),
+    Method(HRESULT, "Validate", [(LPDWORD, "arg0"), (LPD3DVALIDATECALLBACK, "arg1"), (LPVOID, "arg2"), (DWORD, "arg3")]),
+    Method(HRESULT, "Optimize", [(DWORD, "arg0")]),
 ]
 
 IDirect3DLight.methods += [
-    Method(HRESULT, "Initialize", [LPDIRECT3D]),
-    Method(HRESULT, "SetLight", [LPD3DLIGHT]),
-    Method(HRESULT, "GetLight", [LPD3DLIGHT]),
+    Method(HRESULT, "Initialize", [(LPDIRECT3D, "arg0")]),
+    Method(HRESULT, "SetLight", [(LPD3DLIGHT, "arg0")]),
+    Method(HRESULT, "GetLight", [Out(LPD3DLIGHT, "arg0")]),
 ]
 
 IDirect3DMaterial.methods += [
-    Method(HRESULT, "Initialize", [LPDIRECT3D]),
-    Method(HRESULT, "SetMaterial", [LPD3DMATERIAL]),
-    Method(HRESULT, "GetMaterial", [LPD3DMATERIAL]),
-    Method(HRESULT, "GetHandle", [LPDIRECT3DDEVICE,LPD3DMATERIALHANDLE]),
+    Method(HRESULT, "Initialize", [(LPDIRECT3D, "arg0")]),
+    Method(HRESULT, "SetMaterial", [(LPD3DMATERIAL, "arg0")]),
+    Method(HRESULT, "GetMaterial", [Out(LPD3DMATERIAL, "arg0")]),
+    Method(HRESULT, "GetHandle", [(LPDIRECT3DDEVICE, "arg0"), Out(LPD3DMATERIALHANDLE, "arg1")]),
     Method(HRESULT, "Reserve", []),
     Method(HRESULT, "Unreserve", []),
 ]
 
 IDirect3DMaterial2.methods += [
-    Method(HRESULT, "SetMaterial", [LPD3DMATERIAL]),
-    Method(HRESULT, "GetMaterial", [LPD3DMATERIAL]),
-    Method(HRESULT, "GetHandle", [LPDIRECT3DDEVICE2,LPD3DMATERIALHANDLE]),
+    Method(HRESULT, "SetMaterial", [(LPD3DMATERIAL, "arg0")]),
+    Method(HRESULT, "GetMaterial", [Out(LPD3DMATERIAL, "arg0")]),
+    Method(HRESULT, "GetHandle", [(LPDIRECT3DDEVICE2, "arg0"), Out(LPD3DMATERIALHANDLE, "arg1")]),
 ]
 
 IDirect3DMaterial3.methods += [
-    Method(HRESULT, "SetMaterial", [LPD3DMATERIAL]),
-    Method(HRESULT, "GetMaterial", [LPD3DMATERIAL]),
-    Method(HRESULT, "GetHandle", [LPDIRECT3DDEVICE3,LPD3DMATERIALHANDLE]),
+    Method(HRESULT, "SetMaterial", [(LPD3DMATERIAL, "arg0")]),
+    Method(HRESULT, "GetMaterial", [Out(LPD3DMATERIAL, "arg0")]),
+    Method(HRESULT, "GetHandle", [(LPDIRECT3DDEVICE3, "arg0"), Out(LPD3DMATERIALHANDLE, "arg1")]),
 ]
 
 IDirect3DTexture.methods += [
-    Method(HRESULT, "Initialize", [LPDIRECT3DDEVICE,LPDIRECTDRAWSURFACE]),
-    Method(HRESULT, "GetHandle", [LPDIRECT3DDEVICE,LPD3DTEXTUREHANDLE]),
-    Method(HRESULT, "PaletteChanged", [DWORD,DWORD]),
-    Method(HRESULT, "Load", [LPDIRECT3DTEXTURE]),
+    Method(HRESULT, "Initialize", [(LPDIRECT3DDEVICE, "arg0"), (LPDIRECTDRAWSURFACE, "arg1")]),
+    Method(HRESULT, "GetHandle", [(LPDIRECT3DDEVICE, "arg0"), (LPD3DTEXTUREHANDLE, "arg1")]),
+    Method(HRESULT, "PaletteChanged", [(DWORD, "arg0"), (DWORD, "arg1")]),
+    Method(HRESULT, "Load", [(LPDIRECT3DTEXTURE, "arg0")]),
     Method(HRESULT, "Unload", []),
 ]
 
 IDirect3DTexture2.methods += [
-    Method(HRESULT, "GetHandle", [LPDIRECT3DDEVICE2,LPD3DTEXTUREHANDLE]),
-    Method(HRESULT, "PaletteChanged", [DWORD,DWORD]),
-    Method(HRESULT, "Load", [LPDIRECT3DTEXTURE2]),
+    Method(HRESULT, "GetHandle", [(LPDIRECT3DDEVICE2, "arg0"), (LPD3DTEXTUREHANDLE, "arg1")]),
+    Method(HRESULT, "PaletteChanged", [(DWORD, "arg0"), (DWORD, "arg1")]),
+    Method(HRESULT, "Load", [(LPDIRECT3DTEXTURE2, "arg0")]),
 ]
 
 IDirect3DViewport.methods += [
-    Method(HRESULT, "Initialize", [LPDIRECT3D]),
-    Method(HRESULT, "GetViewport", [LPD3DVIEWPORT]),
-    Method(HRESULT, "SetViewport", [LPD3DVIEWPORT]),
-    Method(HRESULT, "TransformVertices", [DWORD,LPD3DTRANSFORMDATA,DWORD,LPDWORD]),
-    Method(HRESULT, "LightElements", [DWORD,LPD3DLIGHTDATA]),
-    Method(HRESULT, "SetBackground", [D3DMATERIALHANDLE]),
-    Method(HRESULT, "GetBackground", [LPD3DMATERIALHANDLE,LPBOOL]),
-    Method(HRESULT, "SetBackgroundDepth", [LPDIRECTDRAWSURFACE]),
-    Method(HRESULT, "GetBackgroundDepth", [OutPointer(LPDIRECTDRAWSURFACE),LPBOOL]),
-    Method(HRESULT, "Clear", [DWORD,LPD3DRECT,DWORD]),
-    Method(HRESULT, "AddLight", [LPDIRECT3DLIGHT]),
-    Method(HRESULT, "DeleteLight", [LPDIRECT3DLIGHT]),
-    Method(HRESULT, "NextLight", [LPDIRECT3DLIGHT,OutPointer(LPDIRECT3DLIGHT),DWORD]),
+    Method(HRESULT, "Initialize", [(LPDIRECT3D, "arg0")]),
+    Method(HRESULT, "GetViewport", [Out(LPD3DVIEWPORT, "arg0")]),
+    Method(HRESULT, "SetViewport", [(LPD3DVIEWPORT, "arg0")]),
+    Method(HRESULT, "TransformVertices", [(DWORD, "arg0"), (LPD3DTRANSFORMDATA, "arg1"), (DWORD, "arg2"), (LPDWORD, "arg3")]),
+    Method(HRESULT, "LightElements", [(DWORD, "arg0"), (LPD3DLIGHTDATA, "arg1")]),
+    Method(HRESULT, "SetBackground", [(D3DMATERIALHANDLE, "arg0")]),
+    Method(HRESULT, "GetBackground", [Out(LPD3DMATERIALHANDLE, "arg0"), Out(LPBOOL, "arg1")]),
+    Method(HRESULT, "SetBackgroundDepth", [(LPDIRECTDRAWSURFACE, "arg0")]),
+    Method(HRESULT, "GetBackgroundDepth", [Out(Pointer(LPDIRECTDRAWSURFACE), "arg0"), Out(LPBOOL, "arg1")]),
+    Method(HRESULT, "Clear", [(DWORD, "arg0"), (LPD3DRECT, "arg1"), (DWORD, "arg2")]),
+    Method(HRESULT, "AddLight", [(LPDIRECT3DLIGHT, "arg0")]),
+    Method(HRESULT, "DeleteLight", [(LPDIRECT3DLIGHT, "arg0")]),
+    Method(HRESULT, "NextLight", [(LPDIRECT3DLIGHT, "arg0"), Out(Pointer(LPDIRECT3DLIGHT), "arg1"), (DWORD, "arg2")]),
 ]
 
 IDirect3DViewport2.methods += [
-    Method(HRESULT, "GetViewport2", [LPD3DVIEWPORT2]),
-    Method(HRESULT, "SetViewport2", [LPD3DVIEWPORT2]),
+    Method(HRESULT, "GetViewport2", [Out(LPD3DVIEWPORT2, "arg0")]),
+    Method(HRESULT, "SetViewport2", [(LPD3DVIEWPORT2, "arg0")]),
 ]
 
 IDirect3DViewport3.methods += [
-    Method(HRESULT, "SetBackgroundDepth2", [LPDIRECTDRAWSURFACE4]),
-    Method(HRESULT, "GetBackgroundDepth2", [OutPointer(LPDIRECTDRAWSURFACE4),LPBOOL]),
-    Method(HRESULT, "Clear2", [DWORD,LPD3DRECT,DWORD,D3DCOLOR,D3DVALUE,DWORD]),
+    Method(HRESULT, "SetBackgroundDepth2", [(LPDIRECTDRAWSURFACE4, "arg0")]),
+    Method(HRESULT, "GetBackgroundDepth2", [Out(Pointer(LPDIRECTDRAWSURFACE4), "arg0"), (LPBOOL, "arg1")]),
+    Method(HRESULT, "Clear2", [(DWORD, "arg0"), (LPD3DRECT, "arg1"), (DWORD, "arg2"), (D3DCOLOR, "arg3"), (D3DVALUE, "arg4"), (DWORD, "arg5")]),
 ]
 
 IDirect3DVertexBuffer.methods += [
-    Method(HRESULT, "Lock", [DWORD,OutPointer(LPVOID),LPDWORD]),
+    Method(HRESULT, "Lock", [(DWORD, "arg0"), Out(Pointer(LPVOID), "arg1"), (LPDWORD, "arg2")]),
     Method(HRESULT, "Unlock", []),
-    Method(HRESULT, "ProcessVertices", [DWORD,DWORD,DWORD,LPDIRECT3DVERTEXBUFFER,DWORD,LPDIRECT3DDEVICE3,DWORD]),
-    Method(HRESULT, "GetVertexBufferDesc", [LPD3DVERTEXBUFFERDESC]),
-    Method(HRESULT, "Optimize", [LPDIRECT3DDEVICE3,DWORD]),
+    Method(HRESULT, "ProcessVertices", [(DWORD, "arg0"), (DWORD, "arg1"), (DWORD, "arg2"), (LPDIRECT3DVERTEXBUFFER, "arg3"), (DWORD, "arg4"), (LPDIRECT3DDEVICE3, "arg5"), (DWORD, "arg6")]),
+    Method(HRESULT, "GetVertexBufferDesc", [Out(LPD3DVERTEXBUFFERDESC, "arg0")]),
+    Method(HRESULT, "Optimize", [(LPDIRECT3DDEVICE3, "arg0"), (DWORD, "arg1")]),
 ]
 
 IDirect3DVertexBuffer7.methods += [
-    Method(HRESULT, "Lock", [DWORD,OutPointer(LPVOID),LPDWORD]),
+    Method(HRESULT, "Lock", [(DWORD, "arg0"), Out(Pointer(LPVOID), "arg1"), (LPDWORD, "arg2")]),
     Method(HRESULT, "Unlock", []),
-    Method(HRESULT, "ProcessVertices", [DWORD,DWORD,DWORD,LPDIRECT3DVERTEXBUFFER7,DWORD,LPDIRECT3DDEVICE7,DWORD]),
-    Method(HRESULT, "GetVertexBufferDesc", [LPD3DVERTEXBUFFERDESC]),
-    Method(HRESULT, "Optimize", [LPDIRECT3DDEVICE7,DWORD]),
-    Method(HRESULT, "ProcessVerticesStrided", [DWORD,DWORD,DWORD,LPD3DDRAWPRIMITIVESTRIDEDDATA,DWORD,LPDIRECT3DDEVICE7,DWORD]),
+    Method(HRESULT, "ProcessVertices", [(DWORD, "arg0"), (DWORD, "arg1"), (DWORD, "arg2"), (LPDIRECT3DVERTEXBUFFER7, "arg3"), (DWORD, "arg4"), (LPDIRECT3DDEVICE7, "arg5"), (DWORD, "arg6")]),
+    Method(HRESULT, "GetVertexBufferDesc", [Out(LPD3DVERTEXBUFFERDESC, "arg0")]),
+    Method(HRESULT, "Optimize", [(LPDIRECT3DDEVICE7, "arg0"), (DWORD, "arg1")]),
+    Method(HRESULT, "ProcessVerticesStrided", [(DWORD, "arg0"), (DWORD, "arg1"), (DWORD, "arg2"), (LPD3DDRAWPRIMITIVESTRIDEDDATA, "arg3"), (DWORD, "arg4"), (LPDIRECT3DDEVICE7, "arg5"), (DWORD, "arg6")]),
 ]
 
 interfaces = [