]> git.notmuchmail.org Git - apitrace/commitdiff
Get DDraw/D3D7 building.
authorJosé Fonseca <jose.r.fonseca@gmail.com>
Wed, 25 May 2011 09:12:02 +0000 (10:12 +0100)
committerJosé Fonseca <jose.r.fonseca@gmail.com>
Wed, 25 May 2011 09:12:02 +0000 (10:12 +0100)
Untested.

CMakeLists.txt
cmake/FindDirectX.cmake
d3d.py
d3dcaps.py
d3dtypes.py
ddraw.def
ddraw.py
stdapi.py
winapi.py

index 0319ddf30e43bdcfe64a5de59d5c11cdcfec2a74..57361b6cfca78e7724989b71ebff3292685b8f93 100755 (executable)
@@ -160,6 +160,23 @@ install (TARGETS tracedump RUNTIME DESTINATION bin)
 # API tracers
 
 if (WIN32)
+    # ddraw.dll
+    if (DirectX_D3D_INCLUDE_DIR)
+        include_directories (${DirectX_D3D_INCLUDE_DIR})
+        add_custom_command (
+            OUTPUT ddraw.cpp
+            COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d3d.py > ${CMAKE_CURRENT_BINARY_DIR}/ddraw.cpp
+            DEPENDS d3d.py d3dtypes.py d3dcaps.py ddraw.py trace.py winapi.py stdapi.py
+        )
+        add_library (ddraw SHARED ddraw.def ddraw.cpp trace_writer.cpp os_win32.cpp)
+        set_target_properties (ddraw
+            PROPERTIES PREFIX ""
+            RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/wrappers
+            LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/wrappers
+        )
+        install (TARGETS ddraw RUNTIME DESTINATION wrappers)
+    endif (DirectX_D3D_INCLUDE_DIR)
+
     # d3d8.dll
     if (DirectX_D3D8_INCLUDE_DIR)
         include_directories (${DirectX_D3D8_INCLUDE_DIR})
index 1ad00b1a47188b43d5382a9bbead9c23b1c1a704..4b4824c23920d99a08f3e9b145a96697a00ff17e 100644 (file)
@@ -1,6 +1,38 @@
 # - try to find DirectX include dirs and libraries
 
 if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
+    find_path (DirectX_DDRAW_INCLUDE_DIR ddraw.h
+               PATHS
+                       "$ENV{DXSDK_DIR}/Include"
+                       "$ENV{ProgramFiles}/Microsoft DirectX SDK/Include"
+               DOC "The directory where d3d.h resides")
+
+       find_path (DirectX_D3DX_INCLUDE_DIR d3dx.h
+               PATHS
+                       "$ENV{DXSDK_DIR}/Include"
+                       "$ENV{ProgramFiles}/Microsoft DirectX SDK/Include"
+               DOC "The directory where d3dx.h resides")
+
+    find_library (DirectX_DDRAW_LIBRARY ddraw
+               PATHS
+                       "$ENV{DXSDK_DIR}/Lib/x86"
+                       "$ENV{ProgramFiles}/Microsoft DirectX SDK/Lib/x86"
+               DOC "The directory where ddraw resides")
+
+       find_library (DirectX_D3DX_LIBRARY d3dx
+               PATHS
+                       "$ENV{DXSDK_DIR}/Lib/x86"
+                       "$ENV{ProgramFiles}/Microsoft DirectX SDK/Lib/x86"
+               DOC "The directory where d3dx resides")
+
+       if (DirectX_D3D_INCLUDE_DIR AND DirectX_D3D_LIBRARY)
+               set (DirectX_D3D_FOUND 1)
+               if (DirectX_D3DX_INCLUDE_DIR AND DirectX_D3DX_LIBRARY)
+                       set (DirectX_D3DX_FOUND 1)
+               endif (DirectX_D3DX_INCLUDE_DIR AND DirectX_D3DX_LIBRARY)
+       endif (DirectX_D3D_INCLUDE_DIR AND DirectX_D3D_LIBRARY)
+
+
        find_path (DirectX_D3D8_INCLUDE_DIR d3d8.h
                PATHS
                        "$ENV{DXSDK_DIR}/Include"
diff --git a/d3d.py b/d3d.py
index f5b7638edc134692fe0b4cacd7b865ffbc897be2..dbda94c8670b04baaa6de424edfd2d3cdbec3c4f 100644 (file)
--- a/d3d.py
+++ b/d3d.py
 """d3d.h"""
 
 from winapi import *
+from ddraw import *
 from d3dtypes import *
 from d3dcaps import *
 
+def OutPointer(type):
+    return Out(Pointer(type), "out")
+
 D3DNEXT = Flags(DWORD, [
     "D3DNEXT_NEXT",
     "D3DNEXT_HEAD",
@@ -225,7 +229,8 @@ IDirect3DDevice.methods += [
     Method(HRESULT, "GetPickRecords", [LPDWORD,LPD3DPICKRECORD]),
     Method(HRESULT, "EnumTextureFormats", [LPD3DENUMTEXTUREFORMATSCALLBACK,LPVOID]),
     Method(HRESULT, "CreateMatrix", [LPD3DMATRIXHANDLE]),
-    Method(HRESULT, "SetMatrix", [D3DMATRIXHANDLE,Const(LPD3DMATRIX)]),
+    #Method(HRESULT, "SetMatrix", [D3DMATRIXHANDLE,Const(LPD3DMATRIX)]),
+    Method(HRESULT, "SetMatrix", [D3DMATRIXHANDLE,LPD3DMATRIX]),
     Method(HRESULT, "GetMatrix", [D3DMATRIXHANDLE,LPD3DMATRIX]),
     Method(HRESULT, "DeleteMatrix", [D3DMATRIXHANDLE]),
     Method(HRESULT, "BeginScene", []),
@@ -451,3 +456,58 @@ IDirect3DVertexBuffer7.methods += [
     Method(HRESULT, "Optimize", [LPDIRECT3DDEVICE7,DWORD]),
     Method(HRESULT, "ProcessVerticesStrided", [DWORD,DWORD,DWORD,LPD3DDRAWPRIMITIVESTRIDEDDATA,DWORD,LPDIRECT3DDEVICE7,DWORD]),
 ]
+
+interfaces = [
+    IDirectDraw,
+    IDirectDraw2,
+    IDirectDraw4,
+    IDirectDraw7,
+    IDirect3D,
+    IDirect3D2,
+    IDirect3D3,
+    IDirect3D7,
+]
+
+ddraw.add_interfaces(interfaces)
+
+
+class DDrawTracer(DllTracer):
+
+    def wrap_arg(self, function, arg):
+        if function.name == 'DirectDrawCreateEx' and arg.name == 'lplpDD':
+            print '    if (*lplpDD) {'
+            for iface in interfaces:
+                print '        if (iid == IID_%s) {' % iface.name
+                print '            *lplpDD = (LPVOID) new Wrap%s((%s *)*lplpDD);' % (iface.name, iface.name)
+                print '        }'
+            print '    }'
+        # Dump shaders as strings
+        if function.name in ('CreateVertexShader', 'CreatePixelShader') and arg.name == 'pFunction':
+            print '    DumpShader(%s);' % (arg.name)
+            return
+
+        DllTracer.dump_arg_instance(self, function, arg)
+
+
+if __name__ == '__main__':
+    print '#define INITGUID'
+    print '#include <windows.h>'
+    print '#include <ddraw.h>'
+    print '#include <d3d.h>'
+    print
+    print '''
+
+#ifndef D3DLIGHT_PARALLELPOINT
+#define D3DLIGHT_PARALLELPOINT (D3DLIGHTTYPE)4
+#endif
+
+#ifndef D3DLIGHT_GLSPOT
+#define D3DLIGHT_GLSPOT (D3DLIGHTTYPE)5
+#endif
+
+'''
+    print '#include "trace_writer.hpp"'
+    print '#include "os.hpp"'
+    print
+    tracer = DDrawTracer('ddraw.dll')
+    tracer.trace_api(ddraw)
index 609682688f9174466a2db88601acc4e5036f6a60..0fa9f1cc162f3bac95512d4858bb3a40cc795928 100644 (file)
@@ -461,6 +461,6 @@ D3DFINDDEVICERESULT = Struct("D3DFINDDEVICERESULT", [
 ])
 LPD3DFINDDEVICERESULT = Pointer(D3DFINDDEVICERESULT)
 
-LPD3DENUMDEVICESCALLBACK = StdFunction(HRESULT, "LPD3DENUMDEVICESCALLBACK", [(Pointer(GUID), "lpGuid"), (LPSTR, "lpDeviceDescription"), (LPSTR, "lpDeviceName"), LPD3DDEVICEDESC, LPD3DDEVICEDESC, LPVOID])
-LPD3DENUMDEVICESCALLBACK7 = StdFunction(HRESULT, "LPD3DENUMDEVICESCALLBACK7", [(LPSTR, "lpDeviceDescription"), (LPSTR, "lpDeviceName"), LPD3DDEVICEDESC7, LPVOID])
+LPD3DENUMDEVICESCALLBACK = FunctionPointer(HRESULT, "LPD3DENUMDEVICESCALLBACK", [(Pointer(GUID), "lpGuid"), (LPSTR, "lpDeviceDescription"), (LPSTR, "lpDeviceName"), LPD3DDEVICEDESC, LPD3DDEVICEDESC, LPVOID])
+LPD3DENUMDEVICESCALLBACK7 = FunctionPointer(HRESULT, "LPD3DENUMDEVICESCALLBACK7", [(LPSTR, "lpDeviceDescription"), (LPSTR, "lpDeviceName"), LPD3DDEVICEDESC7, LPVOID])
 
index 3f40f42a0a08dc228f29fc35d2c07e24d8f9556c..3ac19a540aa76afe76647d8e69d9475a772b344d 100644 (file)
 """d3dtypes.h"""
 
 from winapi import *
-from ddraw import *
 
 D3DVALUE = Float
 LPD3DVALUE = Pointer(Float)
 D3DFIXED = LONG
 
-LPD3DVALIDATECALLBACK = LPVOID
-LPD3DENUMTEXTUREFORMATSCALLBACK = LPVOID
-LPD3DENUMPIXELFORMATSCALLBACK = LPVOID
+LPD3DVALIDATECALLBACK = Opaque("LPD3DVALIDATECALLBACK")
+LPD3DENUMTEXTUREFORMATSCALLBACK = Opaque("LPD3DENUMTEXTUREFORMATSCALLBACK")
+LPD3DENUMPIXELFORMATSCALLBACK = Opaque("LPD3DENUMPIXELFORMATSCALLBACK")
 
 D3DCOLOR = DWORD
 LPD3DCOLOR = Pointer(D3DCOLOR)
@@ -116,7 +115,12 @@ D3DVERTEX = Struct("D3DVERTEX", [
 LPD3DVERTEX = Pointer(D3DVERTEX)
 
 D3DMATRIX = Struct("D3DMATRIX", [
-    (Array(Array(D3DVALUE, "4"), "4"), "m"),
+    (D3DVALUE, "_%u" % index) for index in [
+         11, 12, 13, 14,
+         21, 22, 23, 24,
+         31, 32, 33, 34,
+         41, 42, 43, 44
+    ]
 ])
 LPD3DMATRIX = Pointer(D3DMATRIX)
 
@@ -639,9 +643,6 @@ D3DRENDERSTATETYPE = Enum("D3DRENDERSTATETYPE", [
     "D3DRENDERSTATE_STIPPLEPATTERN29",
     "D3DRENDERSTATE_STIPPLEPATTERN30",
     "D3DRENDERSTATE_STIPPLEPATTERN31",
-    "D3DRENDERSTATE_FOGTABLESTART",
-    "D3DRENDERSTATE_FOGTABLEEND",
-    "D3DRENDERSTATE_FOGTABLEDENSITY",
 ])
 
 D3DMATERIALCOLORSOURCE = Enum("D3DMATERIALCOLORSOURCE", [
index 3ce1083eed58f4530394985bbe0d49051218e372..155162aeb0d64ded6db00c4ce97866e9e95871b3 100644 (file)
--- a/ddraw.def
+++ b/ddraw.def
@@ -6,3 +6,8 @@ EXPORTS
        DirectDrawEnumerateW
        DirectDrawEnumerateExA
        DirectDrawEnumerateExW
+    AcquireDDThreadLock
+    ReleaseDDThreadLock
+    D3DParseUnknownCommand
+    DllCanUnloadNow
+    DllGetClassObject
index cc585ec85b34a353cd4062c0a411aae7d7e0056f..fd8c5f5b25fd29890f84e1c1eee752b546bdf729 100644 (file)
--- a/ddraw.py
+++ b/ddraw.py
@@ -26,6 +26,7 @@
 """ddraw.h"""
 
 from winapi import *
+from trace import DllTracer
 
 IDirectDraw = Interface("IDirectDraw", IUnknown)
 IDirectDraw2 = Interface("IDirectDraw2", IUnknown)
@@ -1248,107 +1249,107 @@ LPDDENUMSURFACESCALLBACK7 = FunctionPointer(HRESULT, "LPDDENUMSURFACESCALLBACK7"
 
 IDirectDraw.methods += [
     Method(HRESULT, "Compact", []),
-    Method(HRESULT, "CreateClipper", [DWORD, Pointer(LPDIRECTDRAWCLIPPER) , Pointer(IUnknown) ]),
-    Method(HRESULT, "CreatePalette", [DWORD, LPPALETTEENTRY, Pointer(LPDIRECTDRAWPALETTE) , Pointer(IUnknown) ]),
-    Method(HRESULT, "CreateSurface", [LPDDSURFACEDESC, Pointer(LPDIRECTDRAWSURFACE) , Pointer(IUnknown) ]),
-    Method(HRESULT, "DuplicateSurface", [ LPDIRECTDRAWSURFACE, Pointer(LPDIRECTDRAWSURFACE) ]),
-    Method(HRESULT, "EnumDisplayModes", [ DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK ]),
-    Method(HRESULT, "EnumSurfaces", [DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK ]),
+    Method(HRESULT, "CreateClipper", [DWORD, Pointer(LPDIRECTDRAWCLIPPER), Pointer(IUnknown)]),
+    Method(HRESULT, "CreatePalette", [DWORD, LPPALETTEENTRY, Pointer(LPDIRECTDRAWPALETTE) , Pointer(IUnknown)]),
+    Method(HRESULT, "CreateSurface", [LPDDSURFACEDESC, Pointer(LPDIRECTDRAWSURFACE) , Pointer(IUnknown)]),
+    Method(HRESULT, "DuplicateSurface", [LPDIRECTDRAWSURFACE, Pointer(LPDIRECTDRAWSURFACE)]),
+    Method(HRESULT, "EnumDisplayModes", [DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK]),
+    Method(HRESULT, "EnumSurfaces", [DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK]),
     Method(HRESULT, "FlipToGDISurface", []),
-    Method(HRESULT, "GetCaps", [ LPDDCAPS, LPDDCAPS]),
-    Method(HRESULT, "GetDisplayMode", [ LPDDSURFACEDESC]),
-    Method(HRESULT, "GetFourCCCodes", [LPDWORD, LPDWORD ]),
-    Method(HRESULT, "GetGDISurface", [Pointer(LPDIRECTDRAWSURFACE) ]),
+    Method(HRESULT, "GetCaps", [LPDDCAPS, LPDDCAPS]),
+    Method(HRESULT, "GetDisplayMode", [LPDDSURFACEDESC]),
+    Method(HRESULT, "GetFourCCCodes", [LPDWORD, LPDWORD]),
+    Method(HRESULT, "GetGDISurface", [Pointer(LPDIRECTDRAWSURFACE)]),
     Method(HRESULT, "GetMonitorFrequency", [LPDWORD]),
     Method(HRESULT, "GetScanLine", [LPDWORD]),
-    Method(HRESULT, "GetVerticalBlankStatus", [LPBOOL ]),
-    Method(HRESULT, "Initialize", [Pointer(GUID) ]),
+    Method(HRESULT, "GetVerticalBlankStatus", [LPBOOL]),
+    Method(HRESULT, "Initialize", [Pointer(GUID)]),
     Method(HRESULT, "RestoreDisplayMode", []),
     Method(HRESULT, "SetCooperativeLevel", [HWND, DWORD]),
     Method(HRESULT, "SetDisplayMode", [DWORD, DWORD,DWORD]),
-    Method(HRESULT, "WaitForVerticalBlank", [DWORD, HANDLE ]),
+    Method(HRESULT, "WaitForVerticalBlank", [DWORD, HANDLE]),
 ]
 
 IDirectDraw2.methods += [
     Method(HRESULT, "Compact", []),
-    Method(HRESULT, "CreateClipper", [DWORD, Pointer(LPDIRECTDRAWCLIPPER) , Pointer(IUnknown) ]),
-    Method(HRESULT, "CreatePalette", [DWORD, LPPALETTEENTRY, Pointer(LPDIRECTDRAWPALETTE) , Pointer(IUnknown) ]),
-    Method(HRESULT, "CreateSurface", [LPDDSURFACEDESC, Pointer(LPDIRECTDRAWSURFACE) , Pointer(IUnknown) ]),
-    Method(HRESULT, "DuplicateSurface", [ LPDIRECTDRAWSURFACE, Pointer(LPDIRECTDRAWSURFACE) ]),
-    Method(HRESULT, "EnumDisplayModes", [ DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK ]),
-    Method(HRESULT, "EnumSurfaces", [DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK ]),
+    Method(HRESULT, "CreateClipper", [DWORD, Pointer(LPDIRECTDRAWCLIPPER) , Pointer(IUnknown)]),
+    Method(HRESULT, "CreatePalette", [DWORD, LPPALETTEENTRY, Pointer(LPDIRECTDRAWPALETTE) , Pointer(IUnknown)]),
+    Method(HRESULT, "CreateSurface", [LPDDSURFACEDESC, Pointer(LPDIRECTDRAWSURFACE) , Pointer(IUnknown)]),
+    Method(HRESULT, "DuplicateSurface", [LPDIRECTDRAWSURFACE, Pointer(LPDIRECTDRAWSURFACE)]),
+    Method(HRESULT, "EnumDisplayModes", [DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK]),
+    Method(HRESULT, "EnumSurfaces", [DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK]),
     Method(HRESULT, "FlipToGDISurface", []),
-    Method(HRESULT, "GetCaps", [ LPDDCAPS, LPDDCAPS]),
-    Method(HRESULT, "GetDisplayMode", [ LPDDSURFACEDESC]),
-    Method(HRESULT, "GetFourCCCodes", [LPDWORD, LPDWORD ]),
-    Method(HRESULT, "GetGDISurface", [Pointer(LPDIRECTDRAWSURFACE) ]),
+    Method(HRESULT, "GetCaps", [LPDDCAPS, LPDDCAPS]),
+    Method(HRESULT, "GetDisplayMode", [LPDDSURFACEDESC]),
+    Method(HRESULT, "GetFourCCCodes", [LPDWORD, LPDWORD]),
+    Method(HRESULT, "GetGDISurface", [Pointer(LPDIRECTDRAWSURFACE)]),
     Method(HRESULT, "GetMonitorFrequency", [LPDWORD]),
     Method(HRESULT, "GetScanLine", [LPDWORD]),
-    Method(HRESULT, "GetVerticalBlankStatus", [LPBOOL ]),
-    Method(HRESULT, "Initialize", [Pointer(GUID) ]),
+    Method(HRESULT, "GetVerticalBlankStatus", [LPBOOL]),
+    Method(HRESULT, "Initialize", [Pointer(GUID)]),
     Method(HRESULT, "RestoreDisplayMode", []),
     Method(HRESULT, "SetCooperativeLevel", [HWND, DWORD]),
     Method(HRESULT, "SetDisplayMode", [DWORD, DWORD,DWORD, DWORD, DWORD]),
-    Method(HRESULT, "WaitForVerticalBlank", [DWORD, HANDLE ]),
+    Method(HRESULT, "WaitForVerticalBlank", [DWORD, HANDLE]),
     Method(HRESULT, "GetAvailableVidMem", [LPDDSCAPS, LPDWORD, LPDWORD]),
 ]
 
 IDirectDraw4.methods += [
     Method(HRESULT, "Compact", []),
-    Method(HRESULT, "CreateClipper", [DWORD, Pointer(LPDIRECTDRAWCLIPPER) , Pointer(IUnknown) ]),
-    Method(HRESULT, "CreatePalette", [DWORD, LPPALETTEENTRY, Pointer(LPDIRECTDRAWPALETTE) , Pointer(IUnknown) ]),
-    Method(HRESULT, "CreateSurface", [LPDDSURFACEDESC2, Pointer(LPDIRECTDRAWSURFACE4) , Pointer(IUnknown) ]),
-    Method(HRESULT, "DuplicateSurface", [ LPDIRECTDRAWSURFACE4, Pointer(LPDIRECTDRAWSURFACE4) ]),
-    Method(HRESULT, "EnumDisplayModes", [ DWORD, LPDDSURFACEDESC2, LPVOID, LPDDENUMMODESCALLBACK2 ]),
-    Method(HRESULT, "EnumSurfaces", [DWORD, LPDDSURFACEDESC2, LPVOID,LPDDENUMSURFACESCALLBACK2 ]),
+    Method(HRESULT, "CreateClipper", [DWORD, Pointer(LPDIRECTDRAWCLIPPER) , Pointer(IUnknown)]),
+    Method(HRESULT, "CreatePalette", [DWORD, LPPALETTEENTRY, Pointer(LPDIRECTDRAWPALETTE) , Pointer(IUnknown)]),
+    Method(HRESULT, "CreateSurface", [LPDDSURFACEDESC2, Pointer(LPDIRECTDRAWSURFACE4) , Pointer(IUnknown)]),
+    Method(HRESULT, "DuplicateSurface", [LPDIRECTDRAWSURFACE4, Pointer(LPDIRECTDRAWSURFACE4)]),
+    Method(HRESULT, "EnumDisplayModes", [DWORD, LPDDSURFACEDESC2, LPVOID, LPDDENUMMODESCALLBACK2]),
+    Method(HRESULT, "EnumSurfaces", [DWORD, LPDDSURFACEDESC2, LPVOID,LPDDENUMSURFACESCALLBACK2]),
     Method(HRESULT, "FlipToGDISurface", []),
-    Method(HRESULT, "GetCaps", [ LPDDCAPS, LPDDCAPS]),
-    Method(HRESULT, "GetDisplayMode", [ LPDDSURFACEDESC2]),
-    Method(HRESULT, "GetFourCCCodes", [LPDWORD, LPDWORD ]),
-    Method(HRESULT, "GetGDISurface", [Pointer(LPDIRECTDRAWSURFACE4) ]),
+    Method(HRESULT, "GetCaps", [LPDDCAPS, LPDDCAPS]),
+    Method(HRESULT, "GetDisplayMode", [LPDDSURFACEDESC2]),
+    Method(HRESULT, "GetFourCCCodes", [LPDWORD, LPDWORD]),
+    Method(HRESULT, "GetGDISurface", [Pointer(LPDIRECTDRAWSURFACE4)]),
     Method(HRESULT, "GetMonitorFrequency", [LPDWORD]),
     Method(HRESULT, "GetScanLine", [LPDWORD]),
-    Method(HRESULT, "GetVerticalBlankStatus", [LPBOOL ]),
-    Method(HRESULT, "Initialize", [Pointer(GUID) ]),
+    Method(HRESULT, "GetVerticalBlankStatus", [LPBOOL]),
+    Method(HRESULT, "Initialize", [Pointer(GUID)]),
     Method(HRESULT, "RestoreDisplayMode", []),
     Method(HRESULT, "SetCooperativeLevel", [HWND, DWORD]),
     Method(HRESULT, "SetDisplayMode", [DWORD, DWORD,DWORD, DWORD, DWORD]),
-    Method(HRESULT, "WaitForVerticalBlank", [DWORD, HANDLE ]),
+    Method(HRESULT, "WaitForVerticalBlank", [DWORD, HANDLE]),
     Method(HRESULT, "GetAvailableVidMem", [LPDDSCAPS2, LPDWORD, LPDWORD]),
     Method(HRESULT, "GetSurfaceFromDC", [HDC, Pointer(LPDIRECTDRAWSURFACE4)]),
     Method(HRESULT, "RestoreAllSurfaces", []),
     Method(HRESULT, "TestCooperativeLevel", []),
-    Method(HRESULT, "GetDeviceIdentifier", [LPDDDEVICEIDENTIFIER, DWORD ]),
+    Method(HRESULT, "GetDeviceIdentifier", [LPDDDEVICEIDENTIFIER, DWORD]),
 ]
 
 IDirectDraw7.methods += [
     Method(HRESULT, "Compact", []),
-    Method(HRESULT, "CreateClipper", [DWORD, Pointer(LPDIRECTDRAWCLIPPER) , Pointer(IUnknown) ]),
-    Method(HRESULT, "CreatePalette", [DWORD, LPPALETTEENTRY, Pointer(LPDIRECTDRAWPALETTE) , Pointer(IUnknown) ]),
-    Method(HRESULT, "CreateSurface", [LPDDSURFACEDESC2, Pointer(LPDIRECTDRAWSURFACE7) , Pointer(IUnknown) ]),
-    Method(HRESULT, "DuplicateSurface", [ LPDIRECTDRAWSURFACE7, Pointer(LPDIRECTDRAWSURFACE7) ]),
-    Method(HRESULT, "EnumDisplayModes", [ DWORD, LPDDSURFACEDESC2, LPVOID, LPDDENUMMODESCALLBACK2 ]),
-    Method(HRESULT, "EnumSurfaces", [DWORD, LPDDSURFACEDESC2, LPVOID,LPDDENUMSURFACESCALLBACK7 ]),
+    Method(HRESULT, "CreateClipper", [DWORD, Pointer(LPDIRECTDRAWCLIPPER) , Pointer(IUnknown)]),
+    Method(HRESULT, "CreatePalette", [DWORD, LPPALETTEENTRY, Pointer(LPDIRECTDRAWPALETTE) , Pointer(IUnknown)]),
+    Method(HRESULT, "CreateSurface", [LPDDSURFACEDESC2, Pointer(LPDIRECTDRAWSURFACE7) , Pointer(IUnknown)]),
+    Method(HRESULT, "DuplicateSurface", [LPDIRECTDRAWSURFACE7, Pointer(LPDIRECTDRAWSURFACE7)]),
+    Method(HRESULT, "EnumDisplayModes", [DWORD, LPDDSURFACEDESC2, LPVOID, LPDDENUMMODESCALLBACK2]),
+    Method(HRESULT, "EnumSurfaces", [DWORD, LPDDSURFACEDESC2, LPVOID,LPDDENUMSURFACESCALLBACK7]),
     Method(HRESULT, "FlipToGDISurface", []),
-    Method(HRESULT, "GetCaps", [ LPDDCAPS, LPDDCAPS]),
-    Method(HRESULT, "GetDisplayMode", [ LPDDSURFACEDESC2]),
-    Method(HRESULT, "GetFourCCCodes", [LPDWORD, LPDWORD ]),
-    Method(HRESULT, "GetGDISurface", [Pointer(LPDIRECTDRAWSURFACE7) ]),
+    Method(HRESULT, "GetCaps", [LPDDCAPS, LPDDCAPS]),
+    Method(HRESULT, "GetDisplayMode", [LPDDSURFACEDESC2]),
+    Method(HRESULT, "GetFourCCCodes", [LPDWORD, LPDWORD]),
+    Method(HRESULT, "GetGDISurface", [Pointer(LPDIRECTDRAWSURFACE7)]),
     Method(HRESULT, "GetMonitorFrequency", [LPDWORD]),
     Method(HRESULT, "GetScanLine", [LPDWORD]),
-    Method(HRESULT, "GetVerticalBlankStatus", [LPBOOL ]),
-    Method(HRESULT, "Initialize", [Pointer(GUID) ]),
+    Method(HRESULT, "GetVerticalBlankStatus", [LPBOOL]),
+    Method(HRESULT, "Initialize", [Pointer(GUID)]),
     Method(HRESULT, "RestoreDisplayMode", []),
     Method(HRESULT, "SetCooperativeLevel", [HWND, DWORD]),
     Method(HRESULT, "SetDisplayMode", [DWORD, DWORD,DWORD, DWORD, DWORD]),
-    Method(HRESULT, "WaitForVerticalBlank", [DWORD, HANDLE ]),
+    Method(HRESULT, "WaitForVerticalBlank", [DWORD, HANDLE]),
     Method(HRESULT, "GetAvailableVidMem", [LPDDSCAPS2, LPDWORD, LPDWORD]),
     Method(HRESULT, "GetSurfaceFromDC", [HDC, Pointer(LPDIRECTDRAWSURFACE7)]),
     Method(HRESULT, "RestoreAllSurfaces", []),
     Method(HRESULT, "TestCooperativeLevel", []),
-    Method(HRESULT, "GetDeviceIdentifier", [LPDDDEVICEIDENTIFIER2, DWORD ]),
-    Method(HRESULT, "StartModeTest", [LPSIZE, DWORD, DWORD ]),
-    Method(HRESULT, "EvaluateMode", [DWORD, Pointer(DWORD) ]),
+    Method(HRESULT, "GetDeviceIdentifier", [LPDDDEVICEIDENTIFIER2, DWORD]),
+    Method(HRESULT, "StartModeTest", [LPSIZE, DWORD, DWORD]),
+    Method(HRESULT, "EvaluateMode", [DWORD, Pointer(DWORD)]),
 ]
 
 IDirectDrawPalette.methods += [
@@ -1360,11 +1361,11 @@ IDirectDrawPalette.methods += [
 
 IDirectDrawClipper.methods += [
     Method(HRESULT, "GetClipList", [LPRECT, LPRGNDATA, LPDWORD]),
-    Method(HRESULT, "GetHWnd", [Pointer(HWND) ]),
+    Method(HRESULT, "GetHWnd", [Pointer(HWND)]),
     Method(HRESULT, "Initialize", [LPDIRECTDRAW, DWORD]),
-    Method(HRESULT, "IsClipListChanged", [Pointer(BOOL) ]),
+    Method(HRESULT, "IsClipListChanged", [Pointer(BOOL)]),
     Method(HRESULT, "SetClipList", [LPRGNDATA,DWORD]),
-    Method(HRESULT, "SetHWnd", [DWORD, HWND ]),
+    Method(HRESULT, "SetHWnd", [DWORD, HWND]),
 ]
 
 
@@ -1372,21 +1373,21 @@ IDirectDrawSurface.methods += [
     Method(HRESULT, "AddAttachedSurface", [LPDIRECTDRAWSURFACE]),
     Method(HRESULT, "AddOverlayDirtyRect", [LPRECT]),
     Method(HRESULT, "Blt", [LPRECT,LPDIRECTDRAWSURFACE, LPRECT,DWORD, LPDDBLTFX]),
-    Method(HRESULT, "BltBatch", [LPDDBLTBATCH, DWORD, DWORD ]),
+    Method(HRESULT, "BltBatch", [LPDDBLTBATCH, DWORD, DWORD]),
     Method(HRESULT, "BltFast", [DWORD,DWORD,LPDIRECTDRAWSURFACE, LPRECT,DWORD]),
     Method(HRESULT, "DeleteAttachedSurface", [DWORD,LPDIRECTDRAWSURFACE]),
     Method(HRESULT, "EnumAttachedSurfaces", [LPVOID,LPDDENUMSURFACESCALLBACK]),
     Method(HRESULT, "EnumOverlayZOrders", [DWORD,LPVOID,LPDDENUMSURFACESCALLBACK]),
     Method(HRESULT, "Flip", [LPDIRECTDRAWSURFACE, DWORD]),
-    Method(HRESULT, "GetAttachedSurface", [LPDDSCAPS, Pointer(LPDIRECTDRAWSURFACE) ]),
+    Method(HRESULT, "GetAttachedSurface", [LPDDSCAPS, Pointer(LPDIRECTDRAWSURFACE)]),
     Method(HRESULT, "GetBltStatus", [DWORD]),
     Method(HRESULT, "GetCaps", [LPDDSCAPS]),
-    Method(HRESULT, "GetClipper", [Pointer(LPDIRECTDRAWCLIPPER) ]),
+    Method(HRESULT, "GetClipper", [Pointer(LPDIRECTDRAWCLIPPER)]),
     Method(HRESULT, "GetColorKey", [DWORD, LPDDCOLORKEY]),
-    Method(HRESULT, "GetDC", [Pointer(HDC) ]),
+    Method(HRESULT, "GetDC", [Pointer(HDC)]),
     Method(HRESULT, "GetFlipStatus", [DWORD]),
-    Method(HRESULT, "GetOverlayPosition", [LPLONG, LPLONG ]),
-    Method(HRESULT, "GetPalette", [Pointer(LPDIRECTDRAWPALETTE) ]),
+    Method(HRESULT, "GetOverlayPosition", [LPLONG, LPLONG]),
+    Method(HRESULT, "GetPalette", [Pointer(LPDIRECTDRAWPALETTE)]),
     Method(HRESULT, "GetPixelFormat", [LPDDPIXELFORMAT]),
     Method(HRESULT, "GetSurfaceDesc", [LPDDSURFACEDESC]),
     Method(HRESULT, "Initialize", [LPDIRECTDRAW, LPDDSURFACEDESC]),
@@ -1396,7 +1397,7 @@ IDirectDrawSurface.methods += [
     Method(HRESULT, "Restore", []),
     Method(HRESULT, "SetClipper", [LPDIRECTDRAWCLIPPER]),
     Method(HRESULT, "SetColorKey", [DWORD, LPDDCOLORKEY]),
-    Method(HRESULT, "SetOverlayPosition", [LONG, LONG ]),
+    Method(HRESULT, "SetOverlayPosition", [LONG, LONG]),
     Method(HRESULT, "SetPalette", [LPDIRECTDRAWPALETTE]),
     Method(HRESULT, "Unlock", [LPVOID]),
     Method(HRESULT, "UpdateOverlay", [LPRECT, LPDIRECTDRAWSURFACE,LPRECT,DWORD, LPDDOVERLAYFX]),
@@ -1408,21 +1409,21 @@ IDirectDrawSurface2.methods += [
     Method(HRESULT, "AddAttachedSurface", [LPDIRECTDRAWSURFACE2]),
     Method(HRESULT, "AddOverlayDirtyRect", [LPRECT]),
     Method(HRESULT, "Blt", [LPRECT,LPDIRECTDRAWSURFACE2, LPRECT,DWORD, LPDDBLTFX]),
-    Method(HRESULT, "BltBatch", [LPDDBLTBATCH, DWORD, DWORD ]),
+    Method(HRESULT, "BltBatch", [LPDDBLTBATCH, DWORD, DWORD]),
     Method(HRESULT, "BltFast", [DWORD,DWORD,LPDIRECTDRAWSURFACE2, LPRECT,DWORD]),
     Method(HRESULT, "DeleteAttachedSurface", [DWORD,LPDIRECTDRAWSURFACE2]),
     Method(HRESULT, "EnumAttachedSurfaces", [LPVOID,LPDDENUMSURFACESCALLBACK]),
     Method(HRESULT, "EnumOverlayZOrders", [DWORD,LPVOID,LPDDENUMSURFACESCALLBACK]),
     Method(HRESULT, "Flip", [LPDIRECTDRAWSURFACE2, DWORD]),
-    Method(HRESULT, "GetAttachedSurface", [LPDDSCAPS, Pointer(LPDIRECTDRAWSURFACE2) ]),
+    Method(HRESULT, "GetAttachedSurface", [LPDDSCAPS, Pointer(LPDIRECTDRAWSURFACE2)]),
     Method(HRESULT, "GetBltStatus", [DWORD]),
     Method(HRESULT, "GetCaps", [LPDDSCAPS]),
-    Method(HRESULT, "GetClipper", [Pointer(LPDIRECTDRAWCLIPPER) ]),
+    Method(HRESULT, "GetClipper", [Pointer(LPDIRECTDRAWCLIPPER)]),
     Method(HRESULT, "GetColorKey", [DWORD, LPDDCOLORKEY]),
-    Method(HRESULT, "GetDC", [Pointer(HDC) ]),
+    Method(HRESULT, "GetDC", [Pointer(HDC)]),
     Method(HRESULT, "GetFlipStatus", [DWORD]),
-    Method(HRESULT, "GetOverlayPosition", [LPLONG, LPLONG ]),
-    Method(HRESULT, "GetPalette", [Pointer(LPDIRECTDRAWPALETTE) ]),
+    Method(HRESULT, "GetOverlayPosition", [LPLONG, LPLONG]),
+    Method(HRESULT, "GetPalette", [Pointer(LPDIRECTDRAWPALETTE)]),
     Method(HRESULT, "GetPixelFormat", [LPDDPIXELFORMAT]),
     Method(HRESULT, "GetSurfaceDesc", [LPDDSURFACEDESC]),
     Method(HRESULT, "Initialize", [LPDIRECTDRAW, LPDDSURFACEDESC]),
@@ -1432,13 +1433,13 @@ IDirectDrawSurface2.methods += [
     Method(HRESULT, "Restore", []),
     Method(HRESULT, "SetClipper", [LPDIRECTDRAWCLIPPER]),
     Method(HRESULT, "SetColorKey", [DWORD, LPDDCOLORKEY]),
-    Method(HRESULT, "SetOverlayPosition", [LONG, LONG ]),
+    Method(HRESULT, "SetOverlayPosition", [LONG, LONG]),
     Method(HRESULT, "SetPalette", [LPDIRECTDRAWPALETTE]),
     Method(HRESULT, "Unlock", [LPVOID]),
     Method(HRESULT, "UpdateOverlay", [LPRECT, LPDIRECTDRAWSURFACE2,LPRECT,DWORD, LPDDOVERLAYFX]),
     Method(HRESULT, "UpdateOverlayDisplay", [DWORD]),
     Method(HRESULT, "UpdateOverlayZOrder", [DWORD, LPDIRECTDRAWSURFACE2]),
-    Method(HRESULT, "GetDDInterface", [Pointer(LPVOID) ]),
+    Method(HRESULT, "GetDDInterface", [Pointer(LPVOID)]),
     Method(HRESULT, "PageLock", [DWORD]),
     Method(HRESULT, "PageUnlock", [DWORD]),
 ]
@@ -1447,21 +1448,21 @@ IDirectDrawSurface3.methods += [
     Method(HRESULT, "AddAttachedSurface", [LPDIRECTDRAWSURFACE3]),
     Method(HRESULT, "AddOverlayDirtyRect", [LPRECT]),
     Method(HRESULT, "Blt", [LPRECT,LPDIRECTDRAWSURFACE3, LPRECT,DWORD, LPDDBLTFX]),
-    Method(HRESULT, "BltBatch", [LPDDBLTBATCH, DWORD, DWORD ]),
+    Method(HRESULT, "BltBatch", [LPDDBLTBATCH, DWORD, DWORD]),
     Method(HRESULT, "BltFast", [DWORD,DWORD,LPDIRECTDRAWSURFACE3, LPRECT,DWORD]),
     Method(HRESULT, "DeleteAttachedSurface", [DWORD,LPDIRECTDRAWSURFACE3]),
     Method(HRESULT, "EnumAttachedSurfaces", [LPVOID,LPDDENUMSURFACESCALLBACK]),
     Method(HRESULT, "EnumOverlayZOrders", [DWORD,LPVOID,LPDDENUMSURFACESCALLBACK]),
     Method(HRESULT, "Flip", [LPDIRECTDRAWSURFACE3, DWORD]),
-    Method(HRESULT, "GetAttachedSurface", [LPDDSCAPS, Pointer(LPDIRECTDRAWSURFACE3) ]),
+    Method(HRESULT, "GetAttachedSurface", [LPDDSCAPS, Pointer(LPDIRECTDRAWSURFACE3)]),
     Method(HRESULT, "GetBltStatus", [DWORD]),
     Method(HRESULT, "GetCaps", [LPDDSCAPS]),
-    Method(HRESULT, "GetClipper", [Pointer(LPDIRECTDRAWCLIPPER) ]),
+    Method(HRESULT, "GetClipper", [Pointer(LPDIRECTDRAWCLIPPER)]),
     Method(HRESULT, "GetColorKey", [DWORD, LPDDCOLORKEY]),
-    Method(HRESULT, "GetDC", [Pointer(HDC) ]),
+    Method(HRESULT, "GetDC", [Pointer(HDC)]),
     Method(HRESULT, "GetFlipStatus", [DWORD]),
-    Method(HRESULT, "GetOverlayPosition", [LPLONG, LPLONG ]),
-    Method(HRESULT, "GetPalette", [Pointer(LPDIRECTDRAWPALETTE) ]),
+    Method(HRESULT, "GetOverlayPosition", [LPLONG, LPLONG]),
+    Method(HRESULT, "GetPalette", [Pointer(LPDIRECTDRAWPALETTE)]),
     Method(HRESULT, "GetPixelFormat", [LPDDPIXELFORMAT]),
     Method(HRESULT, "GetSurfaceDesc", [LPDDSURFACEDESC]),
     Method(HRESULT, "Initialize", [LPDIRECTDRAW, LPDDSURFACEDESC]),
@@ -1471,13 +1472,13 @@ IDirectDrawSurface3.methods += [
     Method(HRESULT, "Restore", []),
     Method(HRESULT, "SetClipper", [LPDIRECTDRAWCLIPPER]),
     Method(HRESULT, "SetColorKey", [DWORD, LPDDCOLORKEY]),
-    Method(HRESULT, "SetOverlayPosition", [LONG, LONG ]),
+    Method(HRESULT, "SetOverlayPosition", [LONG, LONG]),
     Method(HRESULT, "SetPalette", [LPDIRECTDRAWPALETTE]),
     Method(HRESULT, "Unlock", [LPVOID]),
     Method(HRESULT, "UpdateOverlay", [LPRECT, LPDIRECTDRAWSURFACE3,LPRECT,DWORD, LPDDOVERLAYFX]),
     Method(HRESULT, "UpdateOverlayDisplay", [DWORD]),
     Method(HRESULT, "UpdateOverlayZOrder", [DWORD, LPDIRECTDRAWSURFACE3]),
-    Method(HRESULT, "GetDDInterface", [Pointer(LPVOID) ]),
+    Method(HRESULT, "GetDDInterface", [Pointer(LPVOID)]),
     Method(HRESULT, "PageLock", [DWORD]),
     Method(HRESULT, "PageUnlock", [DWORD]),
     Method(HRESULT, "SetSurfaceDesc", [LPDDSURFACEDESC, DWORD]),
@@ -1487,21 +1488,21 @@ IDirectDrawSurface4.methods += [
     Method(HRESULT, "AddAttachedSurface", [LPDIRECTDRAWSURFACE4]),
     Method(HRESULT, "AddOverlayDirtyRect", [LPRECT]),
     Method(HRESULT, "Blt", [LPRECT,LPDIRECTDRAWSURFACE4, LPRECT,DWORD, LPDDBLTFX]),
-    Method(HRESULT, "BltBatch", [LPDDBLTBATCH, DWORD, DWORD ]),
+    Method(HRESULT, "BltBatch", [LPDDBLTBATCH, DWORD, DWORD]),
     Method(HRESULT, "BltFast", [DWORD,DWORD,LPDIRECTDRAWSURFACE4, LPRECT,DWORD]),
     Method(HRESULT, "DeleteAttachedSurface", [DWORD,LPDIRECTDRAWSURFACE4]),
     Method(HRESULT, "EnumAttachedSurfaces", [LPVOID,LPDDENUMSURFACESCALLBACK2]),
     Method(HRESULT, "EnumOverlayZOrders", [DWORD,LPVOID,LPDDENUMSURFACESCALLBACK2]),
     Method(HRESULT, "Flip", [LPDIRECTDRAWSURFACE4, DWORD]),
-    Method(HRESULT, "GetAttachedSurface", [LPDDSCAPS2, Pointer(LPDIRECTDRAWSURFACE4) ]),
+    Method(HRESULT, "GetAttachedSurface", [LPDDSCAPS2, Pointer(LPDIRECTDRAWSURFACE4)]),
     Method(HRESULT, "GetBltStatus", [DWORD]),
     Method(HRESULT, "GetCaps", [LPDDSCAPS2]),
-    Method(HRESULT, "GetClipper", [Pointer(LPDIRECTDRAWCLIPPER) ]),
+    Method(HRESULT, "GetClipper", [Pointer(LPDIRECTDRAWCLIPPER)]),
     Method(HRESULT, "GetColorKey", [DWORD, LPDDCOLORKEY]),
-    Method(HRESULT, "GetDC", [Pointer(HDC) ]),
+    Method(HRESULT, "GetDC", [Pointer(HDC)]),
     Method(HRESULT, "GetFlipStatus", [DWORD]),
-    Method(HRESULT, "GetOverlayPosition", [LPLONG, LPLONG ]),
-    Method(HRESULT, "GetPalette", [Pointer(LPDIRECTDRAWPALETTE) ]),
+    Method(HRESULT, "GetOverlayPosition", [LPLONG, LPLONG]),
+    Method(HRESULT, "GetPalette", [Pointer(LPDIRECTDRAWPALETTE)]),
     Method(HRESULT, "GetPixelFormat", [LPDDPIXELFORMAT]),
     Method(HRESULT, "GetSurfaceDesc", [LPDDSURFACEDESC2]),
     Method(HRESULT, "Initialize", [LPDIRECTDRAW, LPDDSURFACEDESC2]),
@@ -1511,13 +1512,13 @@ IDirectDrawSurface4.methods += [
     Method(HRESULT, "Restore", []),
     Method(HRESULT, "SetClipper", [LPDIRECTDRAWCLIPPER]),
     Method(HRESULT, "SetColorKey", [DWORD, LPDDCOLORKEY]),
-    Method(HRESULT, "SetOverlayPosition", [LONG, LONG ]),
+    Method(HRESULT, "SetOverlayPosition", [LONG, LONG]),
     Method(HRESULT, "SetPalette", [LPDIRECTDRAWPALETTE]),
     Method(HRESULT, "Unlock", [LPRECT]),
     Method(HRESULT, "UpdateOverlay", [LPRECT, LPDIRECTDRAWSURFACE4,LPRECT,DWORD, LPDDOVERLAYFX]),
     Method(HRESULT, "UpdateOverlayDisplay", [DWORD]),
     Method(HRESULT, "UpdateOverlayZOrder", [DWORD, LPDIRECTDRAWSURFACE4]),
-    Method(HRESULT, "GetDDInterface", [Pointer(LPVOID) ]),
+    Method(HRESULT, "GetDDInterface", [Pointer(LPVOID)]),
     Method(HRESULT, "PageLock", [DWORD]),
     Method(HRESULT, "PageUnlock", [DWORD]),
     Method(HRESULT, "SetSurfaceDesc", [LPDDSURFACEDESC2, DWORD]),
@@ -1532,21 +1533,21 @@ IDirectDrawSurface7.methods += [
     Method(HRESULT, "AddAttachedSurface", [LPDIRECTDRAWSURFACE7]),
     Method(HRESULT, "AddOverlayDirtyRect", [LPRECT]),
     Method(HRESULT, "Blt", [LPRECT,LPDIRECTDRAWSURFACE7, LPRECT,DWORD, LPDDBLTFX]),
-    Method(HRESULT, "BltBatch", [LPDDBLTBATCH, DWORD, DWORD ]),
+    Method(HRESULT, "BltBatch", [LPDDBLTBATCH, DWORD, DWORD]),
     Method(HRESULT, "BltFast", [DWORD,DWORD,LPDIRECTDRAWSURFACE7, LPRECT,DWORD]),
     Method(HRESULT, "DeleteAttachedSurface", [DWORD,LPDIRECTDRAWSURFACE7]),
     Method(HRESULT, "EnumAttachedSurfaces", [LPVOID,LPDDENUMSURFACESCALLBACK7]),
     Method(HRESULT, "EnumOverlayZOrders", [DWORD,LPVOID,LPDDENUMSURFACESCALLBACK7]),
     Method(HRESULT, "Flip", [LPDIRECTDRAWSURFACE7, DWORD]),
-    Method(HRESULT, "GetAttachedSurface", [LPDDSCAPS2, Pointer(LPDIRECTDRAWSURFACE7) ]),
+    Method(HRESULT, "GetAttachedSurface", [LPDDSCAPS2, Pointer(LPDIRECTDRAWSURFACE7)]),
     Method(HRESULT, "GetBltStatus", [DWORD]),
     Method(HRESULT, "GetCaps", [LPDDSCAPS2]),
-    Method(HRESULT, "GetClipper", [Pointer(LPDIRECTDRAWCLIPPER) ]),
+    Method(HRESULT, "GetClipper", [Pointer(LPDIRECTDRAWCLIPPER)]),
     Method(HRESULT, "GetColorKey", [DWORD, LPDDCOLORKEY]),
-    Method(HRESULT, "GetDC", [Pointer(HDC) ]),
+    Method(HRESULT, "GetDC", [Pointer(HDC)]),
     Method(HRESULT, "GetFlipStatus", [DWORD]),
-    Method(HRESULT, "GetOverlayPosition", [LPLONG, LPLONG ]),
-    Method(HRESULT, "GetPalette", [Pointer(LPDIRECTDRAWPALETTE) ]),
+    Method(HRESULT, "GetOverlayPosition", [LPLONG, LPLONG]),
+    Method(HRESULT, "GetPalette", [Pointer(LPDIRECTDRAWPALETTE)]),
     Method(HRESULT, "GetPixelFormat", [LPDDPIXELFORMAT]),
     Method(HRESULT, "GetSurfaceDesc", [LPDDSURFACEDESC2]),
     Method(HRESULT, "Initialize", [LPDIRECTDRAW, LPDDSURFACEDESC2]),
@@ -1556,13 +1557,13 @@ IDirectDrawSurface7.methods += [
     Method(HRESULT, "Restore", []),
     Method(HRESULT, "SetClipper", [LPDIRECTDRAWCLIPPER]),
     Method(HRESULT, "SetColorKey", [DWORD, LPDDCOLORKEY]),
-    Method(HRESULT, "SetOverlayPosition", [LONG, LONG ]),
+    Method(HRESULT, "SetOverlayPosition", [LONG, LONG]),
     Method(HRESULT, "SetPalette", [LPDIRECTDRAWPALETTE]),
     Method(HRESULT, "Unlock", [LPRECT]),
     Method(HRESULT, "UpdateOverlay", [LPRECT, LPDIRECTDRAWSURFACE7,LPRECT,DWORD, LPDDOVERLAYFX]),
     Method(HRESULT, "UpdateOverlayDisplay", [DWORD]),
     Method(HRESULT, "UpdateOverlayZOrder", [DWORD, LPDIRECTDRAWSURFACE7]),
-    Method(HRESULT, "GetDDInterface", [Pointer(LPVOID) ]),
+    Method(HRESULT, "GetDDInterface", [Pointer(LPVOID)]),
     Method(HRESULT, "PageLock", [DWORD]),
     Method(HRESULT, "PageUnlock", [DWORD]),
     Method(HRESULT, "SetSurfaceDesc", [LPDDSURFACEDESC2, DWORD]),
@@ -1603,8 +1604,8 @@ DDCREATE = Flags(DWORD, [
     "DDCREATE_EMULATIONONLY",
 ])
 
-ddraw = Dll("ddraw")
-ddraw.functions += [
+ddraw = API("ddraw")
+ddraw.add_functions([
     StdFunction(HRESULT, "DirectDrawEnumerateW", [(LPDDENUMCALLBACKW, "lpCallback"), (LPVOID, "lpContext")]),
     StdFunction(HRESULT, "DirectDrawEnumerateA", [(LPDDENUMCALLBACKA, "lpCallback"), (LPVOID, "lpContext")]),
     StdFunction(HRESULT, "DirectDrawEnumerateExW", [(LPDDENUMCALLBACKEXW, "lpCallback"), (LPVOID, "lpContext"), (DDENUM, "dwFlags")]),
@@ -1612,13 +1613,10 @@ ddraw.functions += [
     StdFunction(HRESULT, "DirectDrawCreate", [(Pointer(GUID), "lpGUID"), Out(Pointer(LPDIRECTDRAW), "lplpDD"), (Pointer(IUnknown), "pUnkOuter")]),
     StdFunction(HRESULT, "DirectDrawCreateEx", [(Pointer(GUID), "lpGuid"), Out(Pointer(LPVOID), "lplpDD"), (REFIID, "iid"), (Pointer(IUnknown), "pUnkOuter")]),
     StdFunction(HRESULT, "DirectDrawCreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (Pointer(IUnknown), "pUnkOuter")]),
-]
+    StdFunction(Void, "AcquireDDThreadLock", []),
+    StdFunction(Void, "ReleaseDDThreadLock", []),
+    StdFunction(DWORD, "D3DParseUnknownCommand", [(LPVOID, "lpCmd"), Out(Pointer(LPVOID), "lpRetCmd")]),
+    StdFunction(HRESULT, "DllCanUnloadNow", []),
+    StdFunction(HRESULT, "DllGetClassObject", [(REFCLSID, "rclsid"), (REFIID, "riid"), Out(Pointer(OpaquePointer(Void)), "ppv")]),
+])
 
-if __name__ == '__main__':
-    print '#include <windows.h>'
-    print '#include <tchar.h>'
-    print '#include <ddraw.h>'
-    print
-    print '#include "trace_writer.hpp"'
-    print
-    wrap()
index 8a2756641663c265e7290432c21cec4409ecdf00..8852345884a69ce26b081a755201d9aa12e050bc 100644 (file)
--- a/stdapi.py
+++ b/stdapi.py
@@ -225,8 +225,12 @@ class Function:
         self.args = []
         index = 0
         for arg in args:
-            if isinstance(arg, tuple):
-                arg_type, arg_name = arg
+            if not isinstance(arg, Arg):
+                if isinstance(arg, tuple):
+                    arg_type, arg_name = arg
+                else:
+                    arg_type = arg
+                    arg_name = "arg%u" % index
                 arg = Arg(arg_type, arg_name)
             arg.index = index
             index += 1
index 3777dcbf3c8baab08f5a3818a1b64da977e91f0d..ee619821aff8fd3992838d824b368fe4f5589c50 100644 (file)
--- a/winapi.py
+++ b/winapi.py
@@ -43,13 +43,13 @@ BYTE = Literal("BYTE", "UInt", base=16)
 WORD = Literal("WORD", "UInt", base=16)
 DWORD = Literal("DWORD", "UInt", base=16)
 
+
 BOOL = Alias("BOOL", Bool)
 
 LPLONG = Pointer(LONG)
 LPWORD = Pointer(WORD)
 LPDWORD = Pointer(DWORD)
 LPBOOL = Pointer(BOOL)
-LPSIZE = LPDWORD
 
 LPSTR = CString
 LPCSTR = Const(CString)
@@ -109,6 +109,12 @@ POINT = Struct("POINT", (
 )) 
 LPPOINT = Pointer(POINT)
 
+SIZE = Struct("SIZE", (
+  (LONG, "cx"),
+  (LONG, "cy"),
+)) 
+LPSIZE = Pointer(SIZE)
+
 RECT = Struct("RECT", (
   (LONG, "left"),
   (LONG, "top"),