From 8384ccb5de91cf5b3dcc16d4a3ef2830c6113ad5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Wed, 25 May 2011 10:12:02 +0100 Subject: [PATCH] Get DDraw/D3D7 building. Untested. --- CMakeLists.txt | 17 ++++ cmake/FindDirectX.cmake | 32 ++++++ d3d.py | 62 +++++++++++- d3dcaps.py | 4 +- d3dtypes.py | 17 ++-- ddraw.def | 5 + ddraw.py | 216 ++++++++++++++++++++-------------------- stdapi.py | 8 +- winapi.py | 8 +- 9 files changed, 246 insertions(+), 123 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0319ddf..57361b6 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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}) diff --git a/cmake/FindDirectX.cmake b/cmake/FindDirectX.cmake index 1ad00b1..4b4824c 100644 --- a/cmake/FindDirectX.cmake +++ b/cmake/FindDirectX.cmake @@ -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 f5b7638..dbda94c 100644 --- a/d3d.py +++ b/d3d.py @@ -26,9 +26,13 @@ """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 ' + print '#include ' + print '#include ' + 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) diff --git a/d3dcaps.py b/d3dcaps.py index 6096826..0fa9f1c 100644 --- a/d3dcaps.py +++ b/d3dcaps.py @@ -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]) diff --git a/d3dtypes.py b/d3dtypes.py index 3f40f42..3ac19a5 100644 --- a/d3dtypes.py +++ b/d3dtypes.py @@ -26,15 +26,14 @@ """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", [ diff --git a/ddraw.def b/ddraw.def index 3ce1083..155162a 100644 --- a/ddraw.def +++ b/ddraw.def @@ -6,3 +6,8 @@ EXPORTS DirectDrawEnumerateW DirectDrawEnumerateExA DirectDrawEnumerateExW + AcquireDDThreadLock + ReleaseDDThreadLock + D3DParseUnknownCommand + DllCanUnloadNow + DllGetClassObject diff --git a/ddraw.py b/ddraw.py index cc585ec..fd8c5f5 100644 --- 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 ' - print '#include ' - print '#include ' - print - print '#include "trace_writer.hpp"' - print - wrap() diff --git a/stdapi.py b/stdapi.py index 8a27566..8852345 100644 --- 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 diff --git a/winapi.py b/winapi.py index 3777dcb..ee61982 100644 --- 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"), -- 2.43.0