########################################################################## # # Copyright 2008-2009 VMware, Inc. # All Rights Reserved. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. # ##########################################################################/ """ddraw.h""" from winapi import * from trace import DllTracer DirectDrawOptSurfaceDescFlags = Flags(DWORD, [ "DDOSD_GUID", "DDOSD_COMPRESSION_RATIO", "DDOSD_SCAPS", "DDOSD_OSCAPS", "DDOSD_ALL", ]) DirectDrawOptSurfaceDescCapsFlags = Flags(DWORD, [ "DDOSDCAPS_OPTCOMPRESSED", "DDOSDCAPS_OPTREORDERED", "DDOSDCAPS_MONOLITHICMIPMAP", ]) DirectDrawGetDeviceIdentifierFlags = Flags(DWORD, [ "DDGDI_GETHOSTIDENTIFIER", ]) IDirectDraw = Interface("IDirectDraw", IUnknown) IDirectDraw2 = Interface("IDirectDraw2", IUnknown) IDirectDraw4 = Interface("IDirectDraw4", IUnknown) IDirectDraw7 = Interface("IDirectDraw7", IUnknown) IDirectDrawPalette = Interface("IDirectDrawPalette", IUnknown) IDirectDrawClipper = Interface("IDirectDrawClipper", IUnknown) IDirectDrawSurface = Interface("IDirectDrawSurface", IUnknown) IDirectDrawSurface2 = Interface("IDirectDrawSurface2", IUnknown) IDirectDrawSurface3 = Interface("IDirectDrawSurface3", IUnknown) IDirectDrawSurface4 = Interface("IDirectDrawSurface4", IUnknown) IDirectDrawSurface7 = Interface("IDirectDrawSurface7", IUnknown) IDirectDrawColorControl = Interface("IDirectDrawColorControl", IUnknown) IDirectDrawGammaControl = Interface("IDirectDrawGammaControl", IUnknown) LPDIRECTDRAW = Pointer(IDirectDraw) LPDIRECTDRAW2 = Pointer(IDirectDraw2) LPDIRECTDRAW4 = Pointer(IDirectDraw4) LPDIRECTDRAW7 = Pointer(IDirectDraw7) LPDIRECTDRAWSURFACE = Pointer(IDirectDrawSurface) LPDIRECTDRAWSURFACE2 = Pointer(IDirectDrawSurface2) LPDIRECTDRAWSURFACE3 = Pointer(IDirectDrawSurface3) LPDIRECTDRAWSURFACE4 = Pointer(IDirectDrawSurface4) LPDIRECTDRAWSURFACE7 = Pointer(IDirectDrawSurface7) LPDIRECTDRAWPALETTE = Pointer(IDirectDrawPalette) LPDIRECTDRAWCLIPPER = Pointer(IDirectDrawClipper) LPDIRECTDRAWCOLORCONTROL = Pointer(IDirectDrawColorControl) LPDIRECTDRAWGAMMACONTROL = Pointer(IDirectDrawGammaControl) DDARGB = Struct("DDARGB", [ (BYTE, "blue"), (BYTE, "green"), (BYTE, "red"), (BYTE, "alpha"), ]) LPDDARGB = Pointer(DDARGB) DDRGBA = Struct("DDRGBA", [ (BYTE, "red"), (BYTE, "green"), (BYTE, "blue"), (BYTE, "alpha"), ]) LPDDRGBA = Pointer(DDRGBA) DDCOLORKEY = Struct("DDCOLORKEY", [ (DWORD, "dwColorSpaceLowValue"), (DWORD, "dwColorSpaceHighValue"), ]) LPDDCOLORKEY = Pointer(DDCOLORKEY) DDBLTFX = Struct("DDBLTFX", [ (DWORD, "dwSize"), (DWORD, "dwDDFX"), (DWORD, "dwROP"), (DWORD, "dwDDROP"), (DWORD, "dwRotationAngle"), (DWORD, "dwZBufferOpCode"), (DWORD, "dwZBufferLow"), (DWORD, "dwZBufferHigh"), (DWORD, "dwZBufferBaseDest"), (DWORD, "dwZDestConstBitDepth"), (DWORD, "dwZDestConst"), (LPDIRECTDRAWSURFACE, "lpDDSZBufferDest"), (DWORD, "dwZSrcConstBitDepth"), (DWORD, "dwZSrcConst"), (LPDIRECTDRAWSURFACE, "lpDDSZBufferSrc"), (DWORD, "dwAlphaEdgeBlendBitDepth"), (DWORD, "dwAlphaEdgeBlend"), (DWORD, "dwReserved"), (DWORD, "dwAlphaDestConstBitDepth"), (DWORD, "dwAlphaDestConst"), (LPDIRECTDRAWSURFACE, "lpDDSAlphaDest"), (DWORD, "dwAlphaSrcConstBitDepth"), (DWORD, "dwAlphaSrcConst"), (LPDIRECTDRAWSURFACE, "lpDDSAlphaSrc"), (DWORD, "dwFillColor"), (DWORD, "dwFillDepth"), (DWORD, "dwFillPixel"), (LPDIRECTDRAWSURFACE, "lpDDSPattern"), (DDCOLORKEY, "ddckDestColorkey"), (DDCOLORKEY, "ddckSrcColorkey"), ]) LPDDBLTFX = Pointer(DDBLTFX) DDSCAPS = Struct("DDSCAPS", [ (DWORD, "dwCaps"), ]) LPDDSCAPS = Pointer(DDSCAPS) DDOSCAPS = Struct("DDOSCAPS", [ (DWORD, "dwCaps"), ]) LPDDOSCAPS = Pointer(DDOSCAPS) DDSCAPSEX = Struct("DDSCAPSEX", [ (DWORD, "dwCaps2"), (DWORD, "dwCaps3"), (DWORD, "dwCaps4"), ]) DDSCAPS2 = Struct("DDSCAPS2", [ (DWORD, "dwCaps"), (DWORD, "dwCaps2"), (DWORD, "dwCaps3"), (DWORD, "dwCaps4"), ]) LPDDSCAPS2 = Pointer(DDSCAPS2) DDCAPS_DX1 = Struct("DDCAPS_DX1", [ (DWORD, "dwSize"), (DWORD, "dwCaps"), (DWORD, "dwCaps2"), (DWORD, "dwCKeyCaps"), (DWORD, "dwFXCaps"), (DWORD, "dwFXAlphaCaps"), (DWORD, "dwPalCaps"), (DWORD, "dwSVCaps"), (DWORD, "dwAlphaBltConstBitDepths"), (DWORD, "dwAlphaBltPixelBitDepths"), (DWORD, "dwAlphaBltSurfaceBitDepths"), (DWORD, "dwAlphaOverlayConstBitDepths"), (DWORD, "dwAlphaOverlayPixelBitDepths"), (DWORD, "dwAlphaOverlaySurfaceBitDepths"), (DWORD, "dwZBufferBitDepths"), (DWORD, "dwVidMemTotal"), (DWORD, "dwVidMemFree"), (DWORD, "dwMaxVisibleOverlays"), (DWORD, "dwCurrVisibleOverlays"), (DWORD, "dwNumFourCCCodes"), (DWORD, "dwAlignBoundarySrc"), (DWORD, "dwAlignSizeSrc"), (DWORD, "dwAlignBoundaryDest"), (DWORD, "dwAlignSizeDest"), (DWORD, "dwAlignStrideAlign"), (Array(DWORD, "DD_ROP_SPACE"), "dwRops"), (DDSCAPS, "ddsCaps"), (DWORD, "dwMinOverlayStretch"), (DWORD, "dwMaxOverlayStretch"), (DWORD, "dwMinLiveVideoStretch"), (DWORD, "dwMaxLiveVideoStretch"), (DWORD, "dwMinHwCodecStretch"), (DWORD, "dwMaxHwCodecStretch"), (DWORD, "dwReserved1"), (DWORD, "dwReserved2"), (DWORD, "dwReserved3"), ]) LPDDCAPS_DX1 = Pointer(DDCAPS_DX1) DDCAPS_DX3 = Struct("DDCAPS_DX3", [ (DWORD, "dwSize"), (DWORD, "dwCaps"), (DWORD, "dwCaps2"), (DWORD, "dwCKeyCaps"), (DWORD, "dwFXCaps"), (DWORD, "dwFXAlphaCaps"), (DWORD, "dwPalCaps"), (DWORD, "dwSVCaps"), (DWORD, "dwAlphaBltConstBitDepths"), (DWORD, "dwAlphaBltPixelBitDepths"), (DWORD, "dwAlphaBltSurfaceBitDepths"), (DWORD, "dwAlphaOverlayConstBitDepths"), (DWORD, "dwAlphaOverlayPixelBitDepths"), (DWORD, "dwAlphaOverlaySurfaceBitDepths"), (DWORD, "dwZBufferBitDepths"), (DWORD, "dwVidMemTotal"), (DWORD, "dwVidMemFree"), (DWORD, "dwMaxVisibleOverlays"), (DWORD, "dwCurrVisibleOverlays"), (DWORD, "dwNumFourCCCodes"), (DWORD, "dwAlignBoundarySrc"), (DWORD, "dwAlignSizeSrc"), (DWORD, "dwAlignBoundaryDest"), (DWORD, "dwAlignSizeDest"), (DWORD, "dwAlignStrideAlign"), (Array(DWORD, "DD_ROP_SPACE"), "dwRops"), (DDSCAPS, "ddsCaps"), (DWORD, "dwMinOverlayStretch"), (DWORD, "dwMaxOverlayStretch"), (DWORD, "dwMinLiveVideoStretch"), (DWORD, "dwMaxLiveVideoStretch"), (DWORD, "dwMinHwCodecStretch"), (DWORD, "dwMaxHwCodecStretch"), (DWORD, "dwReserved1"), (DWORD, "dwReserved2"), (DWORD, "dwReserved3"), (DWORD, "dwSVBCaps"), (DWORD, "dwSVBCKeyCaps"), (DWORD, "dwSVBFXCaps"), (Array(DWORD, "DD_ROP_SPACE"), "dwSVBRops"), (DWORD, "dwVSBCaps"), (DWORD, "dwVSBCKeyCaps"), (DWORD, "dwVSBFXCaps"), (Array(DWORD, "DD_ROP_SPACE"), "dwVSBRops"), (DWORD, "dwSSBCaps"), (DWORD, "dwSSBCKeyCaps"), (DWORD, "dwSSBFXCaps"), (Array(DWORD, "DD_ROP_SPACE"), "dwSSBRops"), (DWORD, "dwReserved4"), (DWORD, "dwReserved5"), (DWORD, "dwReserved6"), ]) LPDDCAPS_DX3 = Pointer(DDCAPS_DX3) DDCAPS_DX5 = Struct("DDCAPS_DX5", [ (DWORD, "dwSize"), (DWORD, "dwCaps"), (DWORD, "dwCaps2"), (DWORD, "dwCKeyCaps"), (DWORD, "dwFXCaps"), (DWORD, "dwFXAlphaCaps"), (DWORD, "dwPalCaps"), (DWORD, "dwSVCaps"), (DWORD, "dwAlphaBltConstBitDepths"), (DWORD, "dwAlphaBltPixelBitDepths"), (DWORD, "dwAlphaBltSurfaceBitDepths"), (DWORD, "dwAlphaOverlayConstBitDepths"), (DWORD, "dwAlphaOverlayPixelBitDepths"), (DWORD, "dwAlphaOverlaySurfaceBitDepths"), (DWORD, "dwZBufferBitDepths"), (DWORD, "dwVidMemTotal"), (DWORD, "dwVidMemFree"), (DWORD, "dwMaxVisibleOverlays"), (DWORD, "dwCurrVisibleOverlays"), (DWORD, "dwNumFourCCCodes"), (DWORD, "dwAlignBoundarySrc"), (DWORD, "dwAlignSizeSrc"), (DWORD, "dwAlignBoundaryDest"), (DWORD, "dwAlignSizeDest"), (DWORD, "dwAlignStrideAlign"), (Array(DWORD, "DD_ROP_SPACE"), "dwRops"), (DDSCAPS, "ddsCaps"), (DWORD, "dwMinOverlayStretch"), (DWORD, "dwMaxOverlayStretch"), (DWORD, "dwMinLiveVideoStretch"), (DWORD, "dwMaxLiveVideoStretch"), (DWORD, "dwMinHwCodecStretch"), (DWORD, "dwMaxHwCodecStretch"), (DWORD, "dwReserved1"), (DWORD, "dwReserved2"), (DWORD, "dwReserved3"), (DWORD, "dwSVBCaps"), (DWORD, "dwSVBCKeyCaps"), (DWORD, "dwSVBFXCaps"), (Array(DWORD, "DD_ROP_SPACE"), "dwSVBRops"), (DWORD, "dwVSBCaps"), (DWORD, "dwVSBCKeyCaps"), (DWORD, "dwVSBFXCaps"), (Array(DWORD, "DD_ROP_SPACE"), "dwVSBRops"), (DWORD, "dwSSBCaps"), (DWORD, "dwSSBCKeyCaps"), (DWORD, "dwSSBFXCaps"), (Array(DWORD, "DD_ROP_SPACE"), "dwSSBRops"), (DWORD, "dwMaxVideoPorts"), (DWORD, "dwCurrVideoPorts"), (DWORD, "dwSVBCaps2"), (DWORD, "dwNLVBCaps"), (DWORD, "dwNLVBCaps2"), (DWORD, "dwNLVBCKeyCaps"), (DWORD, "dwNLVBFXCaps"), (Array(DWORD, "DD_ROP_SPACE"), "dwNLVBRops"), ]) LPDDCAPS_DX5 = Pointer(DDCAPS_DX5) DDCAPS_DX6 = Struct("DDCAPS_DX6", [ (DWORD, "dwSize"), (DWORD, "dwCaps"), (DWORD, "dwCaps2"), (DWORD, "dwCKeyCaps"), (DWORD, "dwFXCaps"), (DWORD, "dwFXAlphaCaps"), (DWORD, "dwPalCaps"), (DWORD, "dwSVCaps"), (DWORD, "dwAlphaBltConstBitDepths"), (DWORD, "dwAlphaBltPixelBitDepths"), (DWORD, "dwAlphaBltSurfaceBitDepths"), (DWORD, "dwAlphaOverlayConstBitDepths"), (DWORD, "dwAlphaOverlayPixelBitDepths"), (DWORD, "dwAlphaOverlaySurfaceBitDepths"), (DWORD, "dwZBufferBitDepths"), (DWORD, "dwVidMemTotal"), (DWORD, "dwVidMemFree"), (DWORD, "dwMaxVisibleOverlays"), (DWORD, "dwCurrVisibleOverlays"), (DWORD, "dwNumFourCCCodes"), (DWORD, "dwAlignBoundarySrc"), (DWORD, "dwAlignSizeSrc"), (DWORD, "dwAlignBoundaryDest"), (DWORD, "dwAlignSizeDest"), (DWORD, "dwAlignStrideAlign"), (Array(DWORD, "DD_ROP_SPACE"), "dwRops"), (DDSCAPS, "ddsOldCaps"), (DWORD, "dwMinOverlayStretch"), (DWORD, "dwMaxOverlayStretch"), (DWORD, "dwMinLiveVideoStretch"), (DWORD, "dwMaxLiveVideoStretch"), (DWORD, "dwMinHwCodecStretch"), (DWORD, "dwMaxHwCodecStretch"), (DWORD, "dwReserved1"), (DWORD, "dwReserved2"), (DWORD, "dwReserved3"), (DWORD, "dwSVBCaps"), (DWORD, "dwSVBCKeyCaps"), (DWORD, "dwSVBFXCaps"), (Array(DWORD, "DD_ROP_SPACE"), "dwSVBRops"), (DWORD, "dwVSBCaps"), (DWORD, "dwVSBCKeyCaps"), (DWORD, "dwVSBFXCaps"), (Array(DWORD, "DD_ROP_SPACE"), "dwVSBRops"), (DWORD, "dwSSBCaps"), (DWORD, "dwSSBCKeyCaps"), (DWORD, "dwSSBFXCaps"), (Array(DWORD, "DD_ROP_SPACE"), "dwSSBRops"), (DWORD, "dwMaxVideoPorts"), (DWORD, "dwCurrVideoPorts"), (DWORD, "dwSVBCaps2"), (DWORD, "dwNLVBCaps"), (DWORD, "dwNLVBCaps2"), (DWORD, "dwNLVBCKeyCaps"), (DWORD, "dwNLVBFXCaps"), (Array(DWORD, "DD_ROP_SPACE"), "dwNLVBRops"), (DDSCAPS2, "ddsCaps"), ]) LPDDCAPS_DX6 = Pointer(DDCAPS_DX6) DDCAPS_DX7 = Struct("DDCAPS_DX7", [ (DWORD, "dwSize"), (DWORD, "dwCaps"), (DWORD, "dwCaps2"), (DWORD, "dwCKeyCaps"), (DWORD, "dwFXCaps"), (DWORD, "dwFXAlphaCaps"), (DWORD, "dwPalCaps"), (DWORD, "dwSVCaps"), (DWORD, "dwAlphaBltConstBitDepths"), (DWORD, "dwAlphaBltPixelBitDepths"), (DWORD, "dwAlphaBltSurfaceBitDepths"), (DWORD, "dwAlphaOverlayConstBitDepths"), (DWORD, "dwAlphaOverlayPixelBitDepths"), (DWORD, "dwAlphaOverlaySurfaceBitDepths"), (DWORD, "dwZBufferBitDepths"), (DWORD, "dwVidMemTotal"), (DWORD, "dwVidMemFree"), (DWORD, "dwMaxVisibleOverlays"), (DWORD, "dwCurrVisibleOverlays"), (DWORD, "dwNumFourCCCodes"), (DWORD, "dwAlignBoundarySrc"), (DWORD, "dwAlignSizeSrc"), (DWORD, "dwAlignBoundaryDest"), (DWORD, "dwAlignSizeDest"), (DWORD, "dwAlignStrideAlign"), (Array(DWORD, "DD_ROP_SPACE"), "dwRops"), (DDSCAPS, "ddsOldCaps"), (DWORD, "dwMinOverlayStretch"), (DWORD, "dwMaxOverlayStretch"), (DWORD, "dwMinLiveVideoStretch"), (DWORD, "dwMaxLiveVideoStretch"), (DWORD, "dwMinHwCodecStretch"), (DWORD, "dwMaxHwCodecStretch"), (DWORD, "dwReserved1"), (DWORD, "dwReserved2"), (DWORD, "dwReserved3"), (DWORD, "dwSVBCaps"), (DWORD, "dwSVBCKeyCaps"), (DWORD, "dwSVBFXCaps"), (Array(DWORD, "DD_ROP_SPACE"), "dwSVBRops"), (DWORD, "dwVSBCaps"), (DWORD, "dwVSBCKeyCaps"), (DWORD, "dwVSBFXCaps"), (Array(DWORD, "DD_ROP_SPACE"), "dwVSBRops"), (DWORD, "dwSSBCaps"), (DWORD, "dwSSBCKeyCaps"), (DWORD, "dwSSBFXCaps"), (Array(DWORD, "DD_ROP_SPACE"), "dwSSBRops"), (DWORD, "dwMaxVideoPorts"), (DWORD, "dwCurrVideoPorts"), (DWORD, "dwSVBCaps2"), (DWORD, "dwNLVBCaps"), (DWORD, "dwNLVBCaps2"), (DWORD, "dwNLVBCKeyCaps"), (DWORD, "dwNLVBFXCaps"), (Array(DWORD, "DD_ROP_SPACE"), "dwNLVBRops"), (DDSCAPS2, "ddsCaps"), ]) LPDDCAPS_DX7 = Pointer(DDCAPS_DX7) DDCAPS = DDCAPS_DX7 LPDDCAPS = Pointer(DDCAPS) DDPIXELFORMAT = Struct("DDPIXELFORMAT", [ (DWORD, "dwSize"), (DWORD, "dwFlags"), (DWORD, "dwFourCC"), (DWORD, "dwRGBBitCount"), (DWORD, "dwYUVBitCount"), (DWORD, "dwZBufferBitDepth"), (DWORD, "dwAlphaBitDepth"), (DWORD, "dwLuminanceBitCount"), (DWORD, "dwBumpBitCount"), (DWORD, "dwPrivateFormatBitCount"), (DWORD, "dwRBitMask"), (DWORD, "dwYBitMask"), (DWORD, "dwStencilBitDepth"), (DWORD, "dwLuminanceBitMask"), (DWORD, "dwBumpDuBitMask"), (DWORD, "dwOperations"), (DWORD, "dwGBitMask"), (DWORD, "dwUBitMask"), (DWORD, "dwZBitMask"), (DWORD, "dwBumpDvBitMask"), (WORD, "MultiSampleCaps.wFlipMSTypes"), (WORD, "MultiSampleCaps.wBltMSTypes"), (DWORD, "dwBBitMask"), (DWORD, "dwVBitMask"), (DWORD, "dwStencilBitMask"), (DWORD, "dwBumpLuminanceBitMask"), (DWORD, "dwRGBAlphaBitMask"), (DWORD, "dwYUVAlphaBitMask"), (DWORD, "dwLuminanceAlphaBitMask"), (DWORD, "dwRGBZBitMask"), (DWORD, "dwYUVZBitMask"), ]) LPDDPIXELFORMAT = Pointer(DDPIXELFORMAT) DDOVERLAYFX = Struct("DDOVERLAYFX", [ (DWORD, "dwSize"), (DWORD, "dwAlphaEdgeBlendBitDepth"), (DWORD, "dwAlphaEdgeBlend"), (DWORD, "dwReserved"), (DWORD, "dwAlphaDestConstBitDepth"), (DWORD, "dwAlphaDestConst"), (LPDIRECTDRAWSURFACE, "lpDDSAlphaDest"), (DWORD, "dwAlphaSrcConstBitDepth"), (DWORD, "dwAlphaSrcConst"), (LPDIRECTDRAWSURFACE, "lpDDSAlphaSrc"), (DDCOLORKEY, "dckDestColorkey"), (DDCOLORKEY, "dckSrcColorkey"), (DWORD, "dwDDFX"), (DWORD, "dwFlags"), ]) LPDDOVERLAYFX = Pointer(DDOVERLAYFX) DDBLTBATCH = Struct("DDBLTBATCH", [ (LPRECT, "lprDest"), (LPDIRECTDRAWSURFACE, "lpDDSSrc"), (LPRECT, "lprSrc"), (DWORD, "dwFlags"), (LPDDBLTFX, "lpDDBltFx"), ]) LPDDBLTBATCH = Pointer(DDBLTBATCH) DDGAMMARAMP = Struct("DDGAMMARAMP", [ (Array(WORD, "256"), "red"), (Array(WORD, "256"), "green"), (Array(WORD, "256"), "blue"), ]) LPDDGAMMARAMP = Pointer(DDGAMMARAMP) DDDEVICEIDENTIFIER = Struct("DDDEVICEIDENTIFIER", [ (CString, "szDriver"), (CString, "szDescription"), (LARGE_INTEGER, "liDriverVersion"), (DWORD, "dwVendorId"), (DWORD, "dwDeviceId"), (DWORD, "dwSubSysId"), (DWORD, "dwRevision"), (GUID, "guidDeviceIdentifier"), ]) LPDDDEVICEIDENTIFIER = Pointer(DDDEVICEIDENTIFIER) DDDEVICEIDENTIFIER2 = Struct("DDDEVICEIDENTIFIER2", [ (CString, "szDriver"), (CString, "szDescription"), (LARGE_INTEGER, "liDriverVersion"), (DWORD, "dwVendorId"), (DWORD, "dwDeviceId"), (DWORD, "dwSubSysId"), (DWORD, "dwRevision"), (GUID, "guidDeviceIdentifier"), (DWORD, "dwWHQLLevel"), ]) LPDDDEVICEIDENTIFIER2 = Pointer(DDDEVICEIDENTIFIER2) LPCLIPPERCALLBACK = FunctionPointer(DWORD, "LPCLIPPERCALLBACK", [(LPDIRECTDRAWCLIPPER, "lpDDClipper"), (HWND, "hWnd"), (DWORD, "code"), (LPVOID, "lpContext")]) LPSURFACESTREAMINGCALLBACK = FunctionPointer(DWORD, "LPSURFACESTREAMINGCALLBACK", [DWORD]) DDSURFACEDESC = Struct("DDSURFACEDESC", [ (DWORD, "dwSize"), (DWORD, "dwFlags"), (DWORD, "dwHeight"), (DWORD, "dwWidth"), (LONG, "lPitch"), (DWORD, "dwLinearSize"), (DWORD, "dwBackBufferCount"), (DWORD, "dwMipMapCount"), (DWORD, "dwZBufferBitDepth"), (DWORD, "dwRefreshRate"), (DWORD, "dwAlphaBitDepth"), (DWORD, "dwReserved"), (LPVOID, "lpSurface"), (DDCOLORKEY, "ddckCKDestOverlay"), (DDCOLORKEY, "ddckCKDestBlt"), (DDCOLORKEY, "ddckCKSrcOverlay"), (DDCOLORKEY, "ddckCKSrcBlt"), (DDPIXELFORMAT, "ddpfPixelFormat"), (DDSCAPS, "ddsCaps"), ]) LPDDSURFACEDESC = Pointer(DDSURFACEDESC) DDSURFACEDESC2 = Struct("DDSURFACEDESC2", [ (DWORD, "dwSize"), (DWORD, "dwFlags"), (DWORD, "dwHeight"), (DWORD, "dwWidth"), (LONG, "lPitch"), (DWORD, "dwLinearSize"), (DWORD, "dwBackBufferCount"), (DWORD, "dwDepth"), (DWORD, "dwMipMapCount"), (DWORD, "dwRefreshRate"), (DWORD, "dwSrcVBHandle"), (DWORD, "dwAlphaBitDepth"), (DWORD, "dwReserved"), (LPVOID, "lpSurface"), (DDCOLORKEY, "ddckCKDestOverlay"), (DWORD, "dwEmptyFaceColor"), (DDCOLORKEY, "ddckCKDestBlt"), (DDCOLORKEY, "ddckCKSrcOverlay"), (DDCOLORKEY, "ddckCKSrcBlt"), (DDPIXELFORMAT, "ddpfPixelFormat"), (DWORD, "dwFVF"), (DDSCAPS2, "ddsCaps"), (DWORD, "dwTextureStage"), ]) LPDDSURFACEDESC2 = Pointer(DDSURFACEDESC2) DirectDrawSurfaceDescFlags = Flags(DWORD, [ "DDSD_CAPS", "DDSD_HEIGHT", "DDSD_WIDTH", "DDSD_PITCH", "DDSD_BACKBUFFERCOUNT", "DDSD_ZBUFFERBITDEPTH", "DDSD_ALPHABITDEPTH", "DDSD_LPSURFACE", "DDSD_PIXELFORMAT", "DDSD_CKDESTOVERLAY", "DDSD_CKDESTBLT", "DDSD_CKSRCOVERLAY", "DDSD_CKSRCBLT", "DDSD_MIPMAPCOUNT", "DDSD_REFRESHRATE", "DDSD_LINEARSIZE", "DDSD_TEXTURESTAGE", "DDSD_FVF", "DDSD_SRCVBHANDLE", "DDSD_DEPTH", "DDSD_ALL", ]) DDOPTSURFACEDESC = Struct("DDOPTSURFACEDESC", [ (DWORD, "dwSize"), (DWORD, "dwFlags"), (DDSCAPS2, "ddSCaps"), (DDOSCAPS, "ddOSCaps"), (GUID, "guid"), (DWORD, "dwCompressionRatio"), ]) DDSD = Flags(DWORD, [ "DDOSD_GUID", "DDOSD_COMPRESSION_RATIO", "DDOSD_SCAPS", "DDOSD_OSCAPS", "DDOSD_ALL", ]) DDOSDCAPS = Flags(DWORD, [ "DDOSDCAPS_OPTCOMPRESSED", "DDOSDCAPS_OPTREORDERED", "DDOSDCAPS_MONOLITHICMIPMAP", "DDOSDCAPS_VALIDSCAPS", "DDOSDCAPS_VALIDOSCAPS", ]) DDCOLORCONTROL = Struct("DDCOLORCONTROL", [ (DWORD, "dwSize"), (DWORD, "dwFlags"), (LONG, "lBrightness"), (LONG, "lContrast"), (LONG, "lHue"), (LONG, "lSaturation"), (LONG, "lSharpness"), (LONG, "lGamma"), (LONG, "lColorEnable"), (DWORD, "dwReserved1"), ]) LPDDCOLORCONTROL = Pointer(DDCOLORCONTROL) DirectDrawEnumerateExFlags = Flags(DWORD, [ "DDENUM_ATTACHEDSECONDARYDEVICES", "DDENUM_DETACHEDSECONDARYDEVICES", "DDENUM_NONDISPLAYDEVICES", ]) DirectDrawCreateFlags = FakeEnum(DWORD, [ "DDCREATE_HARDWAREONLY", "DDCREATE_EMULATIONONLY", ]) DirectDrawColorControlFlags = Flags(DWORD, [ "DDCOLOR_BRIGHTNESS", "DDCOLOR_CONTRAST", "DDCOLOR_HUE", "DDCOLOR_SATURATION", "DDCOLOR_SHARPNESS", "DDCOLOR_GAMMA", "DDCOLOR_COLORENABLE", ]) DirectDrawCapsFlags = Flags(DWORD, [ "DDSCAPS_RESERVED1", "DDSCAPS_ALPHA", "DDSCAPS_BACKBUFFER", "DDSCAPS_COMPLEX", "DDSCAPS_FLIP", "DDSCAPS_FRONTBUFFER", "DDSCAPS_OFFSCREENPLAIN", "DDSCAPS_OVERLAY", "DDSCAPS_PALETTE", "DDSCAPS_PRIMARYSURFACE", "DDSCAPS_RESERVED3", "DDSCAPS_PRIMARYSURFACELEFT", "DDSCAPS_SYSTEMMEMORY", "DDSCAPS_TEXTURE", "DDSCAPS_3DDEVICE", "DDSCAPS_VIDEOMEMORY", "DDSCAPS_VISIBLE", "DDSCAPS_WRITEONLY", "DDSCAPS_ZBUFFER", "DDSCAPS_OWNDC", "DDSCAPS_LIVEVIDEO", "DDSCAPS_HWCODEC", "DDSCAPS_MODEX", "DDSCAPS_MIPMAP", "DDSCAPS_RESERVED2", "DDSCAPS_ALLOCONLOAD", "DDSCAPS_VIDEOPORT", "DDSCAPS_LOCALVIDMEM", "DDSCAPS_NONLOCALVIDMEM", "DDSCAPS_STANDARDVGAMODE", "DDSCAPS_OPTIMIZED", ]) DirectDrawCapabilityFlags2 = Flags(DWORD, [ "DDSCAPS2_RESERVED4", "DDSCAPS2_HARDWAREDEINTERLACE", "DDSCAPS2_HINTDYNAMIC", "DDSCAPS2_HINTSTATIC", "DDSCAPS2_TEXTUREMANAGE", "DDSCAPS2_RESERVED1", "DDSCAPS2_RESERVED2", "DDSCAPS2_OPAQUE", "DDSCAPS2_HINTANTIALIASING", "DDSCAPS2_CUBEMAP", "DDSCAPS2_CUBEMAP_ALLFACES", "DDSCAPS2_CUBEMAP_POSITIVEX", "DDSCAPS2_CUBEMAP_NEGATIVEX", "DDSCAPS2_CUBEMAP_POSITIVEY", "DDSCAPS2_CUBEMAP_NEGATIVEY", "DDSCAPS2_CUBEMAP_POSITIVEZ", "DDSCAPS2_CUBEMAP_NEGATIVEZ", "DDSCAPS2_MIPMAPSUBLEVEL", "DDSCAPS2_D3DTEXTUREMANAGE", "DDSCAPS2_DONOTPERSIST", "DDSCAPS2_STEREOSURFACELEFT", "DDSCAPS2_VOLUME", "DDSCAPS2_NOTUSERLOCKABLE", "DDSCAPS2_POINTS", "DDSCAPS2_RTPATCHES", "DDSCAPS2_NPATCHES", "DDSCAPS2_RESERVED3", "DDSCAPS2_DISCARDBACKBUFFER", "DDSCAPS2_ENABLEALPHACHANNEL", "DDSCAPS2_EXTENDEDFORMATPRIMARY", "DDSCAPS2_ADDITIONALPRIMARY", ]) DDSCAPS3 = Flags(DWORD, [ "DDSCAPS3_MULTISAMPLE_MASK", "DDSCAPS3_MULTISAMPLE_QUALITY_MASK", "DDSCAPS3_MULTISAMPLE_QUALITY_SHIFT", "DDSCAPS3_RESERVED1", "DDSCAPS3_RESERVED2", "DDSCAPS3_LIGHTWEIGHTMIPMAP", "DDSCAPS3_AUTOGENMIPMAP", "DDSCAPS3_DMAP", "DDSCAPS3_CREATESHAREDRESOURCE", "DDSCAPS3_READONLYRESOURCE", "DDSCAPS3_OPENSHAREDRESOURCE", ]) DirectDrawDriverCapsFlags = Flags(DWORD, [ "DDCAPS_3D", "DDCAPS_ALIGNBOUNDARYDEST", "DDCAPS_ALIGNSIZEDEST", "DDCAPS_ALIGNBOUNDARYSRC", "DDCAPS_ALIGNSIZESRC", "DDCAPS_ALIGNSTRIDE", "DDCAPS_BLT", "DDCAPS_BLTQUEUE", "DDCAPS_BLTFOURCC", "DDCAPS_BLTSTRETCH", "DDCAPS_GDI", "DDCAPS_OVERLAY", "DDCAPS_OVERLAYCANTCLIP", "DDCAPS_OVERLAYFOURCC", "DDCAPS_OVERLAYSTRETCH", "DDCAPS_PALETTE", "DDCAPS_PALETTEVSYNC", "DDCAPS_READSCANLINE", "DDCAPS_RESERVED1", "DDCAPS_VBI", "DDCAPS_ZBLTS", "DDCAPS_ZOVERLAYS", "DDCAPS_COLORKEY", "DDCAPS_ALPHA", "DDCAPS_COLORKEYHWASSIST", "DDCAPS_NOHARDWARE", "DDCAPS_BLTCOLORFILL", "DDCAPS_BANKSWITCHED", "DDCAPS_BLTDEPTHFILL", "DDCAPS_CANCLIP", "DDCAPS_CANCLIPSTRETCHED", "DDCAPS_CANBLTSYSMEM", ]) DirectDrawDriverCapsFlags2 = Flags(DWORD, [ "DDCAPS2_CERTIFIED", "DDCAPS2_NO2DDURING3DSCENE", "DDCAPS2_VIDEOPORT", "DDCAPS2_AUTOFLIPOVERLAY", "DDCAPS2_CANBOBINTERLEAVED", "DDCAPS2_CANBOBNONINTERLEAVED", "DDCAPS2_COLORCONTROLOVERLAY", "DDCAPS2_COLORCONTROLPRIMARY", "DDCAPS2_CANDROPZ16BIT", "DDCAPS2_NONLOCALVIDMEM", "DDCAPS2_NONLOCALVIDMEMCAPS", "DDCAPS2_NOPAGELOCKREQUIRED", "DDCAPS2_WIDESURFACES", "DDCAPS2_CANFLIPODDEVEN", "DDCAPS2_CANBOBHARDWARE", "DDCAPS2_COPYFOURCC", "DDCAPS2_PRIMARYGAMMA", "DDCAPS2_CANRENDERWINDOWED", "DDCAPS2_CANCALIBRATEGAMMA", "DDCAPS2_FLIPINTERVAL", "DDCAPS2_FLIPNOVSYNC", "DDCAPS2_CANMANAGETEXTURE", "DDCAPS2_TEXMANINNONLOCALVIDMEM", "DDCAPS2_STEREO", "DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL", "DDCAPS2_RESERVED1", "DDCAPS2_CANMANAGERESOURCE", "DDCAPS2_DYNAMICTEXTURES", "DDCAPS2_CANAUTOGENMIPMAP", "DDCAPS2_CANSHARERESOURCE", ]) DirectDrawFxAlphaCapsFlags = Flags(DWORD, [ "DDFXALPHACAPS_BLTALPHAEDGEBLEND", "DDFXALPHACAPS_BLTALPHAPIXELS", "DDFXALPHACAPS_BLTALPHAPIXELSNEG", "DDFXALPHACAPS_BLTALPHASURFACES", "DDFXALPHACAPS_BLTALPHASURFACESNEG", "DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND", "DDFXALPHACAPS_OVERLAYALPHAPIXELS", "DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG", "DDFXALPHACAPS_OVERLAYALPHASURFACES", "DDFXALPHACAPS_OVERLAYALPHASURFACESNEG", ]) DirectDrawFxCapsFlags = Flags(DWORD, [ "DDFXCAPS_BLTARITHSTRETCHY", "DDFXCAPS_BLTARITHSTRETCHYN", "DDFXCAPS_BLTMIRRORLEFTRIGHT", "DDFXCAPS_BLTMIRRORUPDOWN", "DDFXCAPS_BLTROTATION", "DDFXCAPS_BLTROTATION90", "DDFXCAPS_BLTSHRINKX", "DDFXCAPS_BLTSHRINKXN", "DDFXCAPS_BLTSHRINKY", "DDFXCAPS_BLTSHRINKYN", "DDFXCAPS_BLTSTRETCHX", "DDFXCAPS_BLTSTRETCHXN", "DDFXCAPS_BLTSTRETCHY", "DDFXCAPS_BLTSTRETCHYN", "DDFXCAPS_OVERLAYARITHSTRETCHY", "DDFXCAPS_OVERLAYARITHSTRETCHYN", "DDFXCAPS_OVERLAYSHRINKX", "DDFXCAPS_OVERLAYSHRINKXN", "DDFXCAPS_OVERLAYSHRINKY", "DDFXCAPS_OVERLAYSHRINKYN", "DDFXCAPS_OVERLAYSTRETCHX", "DDFXCAPS_OVERLAYSTRETCHXN", "DDFXCAPS_OVERLAYSTRETCHY", "DDFXCAPS_OVERLAYSTRETCHYN", "DDFXCAPS_OVERLAYMIRRORLEFTRIGHT", "DDFXCAPS_OVERLAYMIRRORUPDOWN", "DDFXCAPS_OVERLAYDEINTERLACE", "DDFXCAPS_BLTALPHA", "DDFXCAPS_BLTFILTER", "DDFXCAPS_OVERLAYALPHA", "DDFXCAPS_OVERLAYFILTER", ]) DirectDrawStereoViewCapsFlags = Flags(DWORD, [ "DDSVCAPS_RESERVED1", "DDSVCAPS_RESERVED2", "DDSVCAPS_RESERVED3", "DDSVCAPS_RESERVED4", "DDSVCAPS_STEREOSEQUENTIAL", ]) DirectDrawPaletteCapsFlags = Flags(DWORD, [ "DDPCAPS_4BIT", "DDPCAPS_8BITENTRIES", "DDPCAPS_8BIT", "DDPCAPS_INITIALIZE", "DDPCAPS_PRIMARYSURFACE", "DDPCAPS_PRIMARYSURFACELEFT", "DDPCAPS_ALLOW256", "DDPCAPS_VSYNC", "DDPCAPS_1BIT", "DDPCAPS_2BIT", "DDPCAPS_ALPHA", ]) DirectDrawSurfaceSetPrivateDataConstants = FakeEnum(DWORD, [ "DDSPD_IUNKNOWNPOINTER", "DDSPD_VOLATILE", ]) DirectDrawSurfaceSetPaletteConstants = FakeEnum(DWORD, [ "DDBD_1", "DDBD_2", "DDBD_4", "DDBD_8", "DDBD_16", "DDBD_24", "DDBD_32", ]) DirectDrawSurfaceSetGetColorKeyFlags = Flags(DWORD, [ "DDCKEY_COLORSPACE", "DDCKEY_DESTBLT", "DDCKEY_DESTOVERLAY", "DDCKEY_SRCBLT", "DDCKEY_SRCOVERLAY", ]) DirectDrawColorKeyCapsFlags = Flags(DWORD, [ "DDCKEYCAPS_DESTBLT", "DDCKEYCAPS_DESTBLTCLRSPACE", "DDCKEYCAPS_DESTBLTCLRSPACEYUV", "DDCKEYCAPS_DESTBLTYUV", "DDCKEYCAPS_DESTOVERLAY", "DDCKEYCAPS_DESTOVERLAYCLRSPACE", "DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV", "DDCKEYCAPS_DESTOVERLAYONEACTIVE", "DDCKEYCAPS_DESTOVERLAYYUV", "DDCKEYCAPS_SRCBLT", "DDCKEYCAPS_SRCBLTCLRSPACE", "DDCKEYCAPS_SRCBLTCLRSPACEYUV", "DDCKEYCAPS_SRCBLTYUV", "DDCKEYCAPS_SRCOVERLAY", "DDCKEYCAPS_SRCOVERLAYCLRSPACE", "DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV", "DDCKEYCAPS_SRCOVERLAYONEACTIVE", "DDCKEYCAPS_SRCOVERLAYYUV", "DDCKEYCAPS_NOCOSTOVERLAY", ]) DirectDrawPixelFormatFlags = Flags(DWORD, [ "DDPF_ALPHAPIXELS", "DDPF_ALPHA", "DDPF_FOURCC", "DDPF_PALETTEINDEXED4", "DDPF_PALETTEINDEXEDTO8", "DDPF_PALETTEINDEXED8", "DDPF_RGB", "DDPF_COMPRESSED", "DDPF_RGBTOYUV", "DDPF_YUV", "DDPF_ZBUFFER", "DDPF_PALETTEINDEXED1", "DDPF_PALETTEINDEXED2", "DDPF_ZPIXELS", "DDPF_STENCILBUFFER", "DDPF_ALPHAPREMULT", "DDPF_LUMINANCE", "DDPF_BUMPLUMINANCE", "DDPF_BUMPDUDV", ]) DirectDrawEnumSurfacesFlags = Flags(DWORD, [ "DDENUMSURFACES_ALL", "DDENUMSURFACES_MATCH", "DDENUMSURFACES_NOMATCH", "DDENUMSURFACES_CANBECREATED", "DDENUMSURFACES_DOESEXIST", ]) DirectDrawSetDisplayModeFlags = Flags(DWORD, [ "DDSDM_STANDARDVGAMODE", ]) DirectDrawEnumDisplayModesFlags = Flags(DWORD, [ "DDEDM_REFRESHRATES", "DDEDM_STANDARDVGAMODES", ]) DirectDrawSetCooperativeLevelFlags = Flags(DWORD, [ "DDSCL_FULLSCREEN", "DDSCL_ALLOWREBOOT", "DDSCL_NOWINDOWCHANGES", "DDSCL_NORMAL", "DDSCL_EXCLUSIVE", "DDSCL_ALLOWMODEX", "DDSCL_SETFOCUSWINDOW", "DDSCL_SETDEVICEWINDOW", "DDSCL_CREATEDEVICEWINDOW", "DDSCL_MULTITHREADED", "DDSCL_FPUSETUP", "DDSCL_FPUPRESERVE", ]) DirectDrawBltFlags = Flags(DWORD, [ "DDBLT_ALPHADEST", "DDBLT_ALPHADESTCONSTOVERRIDE", "DDBLT_ALPHADESTNEG", "DDBLT_ALPHADESTSURFACEOVERRIDE", "DDBLT_ALPHAEDGEBLEND", "DDBLT_ALPHASRC", "DDBLT_ALPHASRCCONSTOVERRIDE", "DDBLT_ALPHASRCNEG", "DDBLT_ALPHASRCSURFACEOVERRIDE", "DDBLT_ASYNC", "DDBLT_COLORFILL", "DDBLT_DDFX", "DDBLT_DDROPS", "DDBLT_KEYDEST", "DDBLT_KEYDESTOVERRIDE", "DDBLT_KEYSRC", "DDBLT_KEYSRCOVERRIDE", "DDBLT_ROP", "DDBLT_ROTATIONANGLE", "DDBLT_ZBUFFER", "DDBLT_ZBUFFERDESTCONSTOVERRIDE", "DDBLT_ZBUFFERDESTOVERRIDE", "DDBLT_ZBUFFERSRCCONSTOVERRIDE", "DDBLT_ZBUFFERSRCOVERRIDE", "DDBLT_WAIT", "DDBLT_DEPTHFILL", "DDBLT_DONOTWAIT", "DDBLT_PRESENTATION", "DDBLT_LAST_PRESENTATION", "DDBLT_EXTENDED_FLAGS", "DDBLT_EXTENDED_LINEAR_CONTENT", ]) DirectDrawBltFastFlags = Flags(DWORD, [ "DDBLTFAST_NOCOLORKEY", "DDBLTFAST_SRCCOLORKEY", "DDBLTFAST_DESTCOLORKEY", "DDBLTFAST_WAIT", "DDBLTFAST_DONOTWAIT", ]) DirectDrawFlipFlags = Flags(DWORD, [ "DDFLIP_WAIT", "DDFLIP_EVEN", "DDFLIP_ODD", "DDFLIP_NOVSYNC", "DDFLIP_INTERVAL2", "DDFLIP_INTERVAL3", "DDFLIP_INTERVAL4", "DDFLIP_STEREO", "DDFLIP_DONOTWAIT", ]) DirectDrawSurfaceOverlayFlags = Flags(DWORD, [ "DDOVER_ALPHADEST", "DDOVER_ALPHADESTCONSTOVERRIDE", "DDOVER_ALPHADESTNEG", "DDOVER_ALPHADESTSURFACEOVERRIDE", "DDOVER_ALPHAEDGEBLEND", "DDOVER_ALPHASRC", "DDOVER_ALPHASRCCONSTOVERRIDE", "DDOVER_ALPHASRCNEG", "DDOVER_ALPHASRCSURFACEOVERRIDE", "DDOVER_HIDE", "DDOVER_KEYDEST", "DDOVER_KEYDESTOVERRIDE", "DDOVER_KEYSRC", "DDOVER_KEYSRCOVERRIDE", "DDOVER_SHOW", "DDOVER_ADDDIRTYRECT", "DDOVER_REFRESHDIRTYRECTS", "DDOVER_REFRESHALL", "DDOVER_DDFX", "DDOVER_AUTOFLIP", "DDOVER_BOB", "DDOVER_OVERRIDEBOBWEAVE", "DDOVER_INTERLEAVED", "DDOVER_BOBHARDWARE", "DDOVER_ARGBSCALEFACTORS", "DDOVER_DEGRADEARGBSCALING", ]) DDSETSURFACEDESC = Flags(DWORD, [ #"DDSETSURFACEDESC_RECREATEDC", #"DDSETSURFACEDESC_PRESERVEDC", ]) DirectDrawSurfaceLockFlags = Flags(DWORD, [ "DDLOCK_SURFACEMEMORYPTR", "DDLOCK_WAIT", "DDLOCK_EVENT", "DDLOCK_READONLY", "DDLOCK_WRITEONLY", "DDLOCK_NOSYSLOCK", "DDLOCK_NOOVERWRITE", "DDLOCK_DISCARDCONTENTS", "DDLOCK_OKTOSWAP", "DDLOCK_DONOTWAIT", "DDLOCK_HASVOLUMETEXTUREBOXRECT", "DDLOCK_NODIRTYUPDATE", ]) DirectDrawSurfaceBltFxFlags = Flags(DWORD, [ "DDBLTFX_ARITHSTRETCHY", "DDBLTFX_MIRRORLEFTRIGHT", "DDBLTFX_MIRRORUPDOWN", "DDBLTFX_NOTEARING", "DDBLTFX_ROTATE180", "DDBLTFX_ROTATE270", "DDBLTFX_ROTATE90", "DDBLTFX_ZBUFFERRANGE", "DDBLTFX_ZBUFFERBASEDEST", ]) DirectDrawOverlayFxFlags = Flags(DWORD, [ "DDOVERFX_ARITHSTRETCHY", "DDOVERFX_MIRRORLEFTRIGHT", "DDOVERFX_MIRRORUPDOWN", "DDOVERFX_DEINTERLACE", ]) DirectDrawWaitForVerticalBlankFlags = Flags(DWORD, [ "DDWAITVB_BLOCKBEGIN", "DDWAITVB_BLOCKBEGINEVENT", "DDWAITVB_BLOCKEND", ]) DirectDrawGetFlipStatusFlags = Flags(DWORD, [ "DDGFS_CANFLIP", "DDGFS_ISFLIPDONE", ]) DirectDrawGetBltStatusFlags = Flags(DWORD, [ "DDGBS_CANBLT", "DDGBS_ISBLTDONE", ]) DirectDrawEnumOverlayZOrderFlags = Flags(DWORD, [ "DDENUMOVERLAYZ_BACKTOFRONT", "DDENUMOVERLAYZ_FRONTTOBACK", ]) DirectDrawUpdateOverlayZOrderFlags = Flags(DWORD, [ "DDOVERZ_SENDTOFRONT", "DDOVERZ_SENDTOBACK", "DDOVERZ_MOVEFORWARD", "DDOVERZ_MOVEBACKWARD", "DDOVERZ_INSERTINFRONTOF", "DDOVERZ_INSERTINBACKOF", ]) DirectDrawSetGammaRampFlags = Flags(DWORD, [ "DDSGR_CALIBRATE", ]) DirectDrawStartModeTestFlags = Flags(DWORD, [ "DDSMT_ISTESTREQUIRED", ]) DirectDrawEvaluateModeFlags = Flags(DWORD, [ "DDEM_MODEPASSED", "DDEM_MODEFAILED", ]) DDRESULT = FakeEnum(HRESULT, [ "DD_OK", "DD_FALSE", "DDERR_ALREADYINITIALIZED", "DDERR_CANNOTATTACHSURFACE", "DDERR_CANNOTDETACHSURFACE", "DDERR_CURRENTLYNOTAVAIL", "DDERR_EXCEPTION", "DDERR_GENERIC", "DDERR_HEIGHTALIGN", "DDERR_INCOMPATIBLEPRIMARY", "DDERR_INVALIDCAPS", "DDERR_INVALIDCLIPLIST", "DDERR_INVALIDMODE", "DDERR_INVALIDOBJECT", "DDERR_INVALIDPARAMS", "DDERR_INVALIDPIXELFORMAT", "DDERR_INVALIDRECT", "DDERR_LOCKEDSURFACES", "DDERR_NO3D", "DDERR_NOALPHAHW", "DDERR_NOSTEREOHARDWARE", "DDERR_NOSURFACELEFT", "DDERR_NOCLIPLIST", "DDERR_NOCOLORCONVHW", "DDERR_NOCOOPERATIVELEVELSET", "DDERR_NOCOLORKEY", "DDERR_NOCOLORKEYHW", "DDERR_NODIRECTDRAWSUPPORT", "DDERR_NOEXCLUSIVEMODE", "DDERR_NOFLIPHW", "DDERR_NOGDI", "DDERR_NOMIRRORHW", "DDERR_NOTFOUND", "DDERR_NOOVERLAYHW", "DDERR_OVERLAPPINGRECTS", "DDERR_NORASTEROPHW", "DDERR_NOROTATIONHW", "DDERR_NOSTRETCHHW", "DDERR_NOT4BITCOLOR", "DDERR_NOT4BITCOLORINDEX", "DDERR_NOT8BITCOLOR", "DDERR_NOTEXTUREHW", "DDERR_NOVSYNCHW", "DDERR_NOZBUFFERHW", "DDERR_NOZOVERLAYHW", "DDERR_OUTOFCAPS", "DDERR_OUTOFMEMORY", "DDERR_OUTOFVIDEOMEMORY", "DDERR_OVERLAYCANTCLIP", "DDERR_OVERLAYCOLORKEYONLYONEACTIVE", "DDERR_PALETTEBUSY", "DDERR_COLORKEYNOTSET", "DDERR_SURFACEALREADYATTACHED", "DDERR_SURFACEALREADYDEPENDENT", "DDERR_SURFACEBUSY", "DDERR_CANTLOCKSURFACE", "DDERR_SURFACEISOBSCURED", "DDERR_SURFACELOST", "DDERR_SURFACENOTATTACHED", "DDERR_TOOBIGHEIGHT", "DDERR_TOOBIGSIZE", "DDERR_TOOBIGWIDTH", "DDERR_UNSUPPORTED", "DDERR_UNSUPPORTEDFORMAT", "DDERR_UNSUPPORTEDMASK", "DDERR_INVALIDSTREAM", "DDERR_VERTICALBLANKINPROGRESS", "DDERR_WASSTILLDRAWING", "DDERR_DDSCAPSCOMPLEXREQUIRED", "DDERR_XALIGN", "DDERR_INVALIDDIRECTDRAWGUID", "DDERR_DIRECTDRAWALREADYCREATED", "DDERR_NODIRECTDRAWHW", "DDERR_PRIMARYSURFACEALREADYEXISTS", "DDERR_NOEMULATION", "DDERR_REGIONTOOSMALL", "DDERR_CLIPPERISUSINGHWND", "DDERR_NOCLIPPERATTACHED", "DDERR_NOHWND", "DDERR_HWNDSUBCLASSED", "DDERR_HWNDALREADYSET", "DDERR_NOPALETTEATTACHED", "DDERR_NOPALETTEHW", "DDERR_BLTFASTCANTCLIP", "DDERR_NOBLTHW", "DDERR_NODDROPSHW", "DDERR_OVERLAYNOTVISIBLE", "DDERR_NOOVERLAYDEST", "DDERR_INVALIDPOSITION", "DDERR_NOTAOVERLAYSURFACE", "DDERR_EXCLUSIVEMODEALREADYSET", "DDERR_NOTFLIPPABLE", "DDERR_CANTDUPLICATE", "DDERR_NOTLOCKED", "DDERR_CANTCREATEDC", "DDERR_NODC", "DDERR_WRONGMODE", "DDERR_IMPLICITLYCREATED", "DDERR_NOTPALETTIZED", "DDERR_UNSUPPORTEDMODE", "DDERR_NOMIPMAPHW", "DDERR_INVALIDSURFACETYPE", "DDERR_NOOPTIMIZEHW", "DDERR_NOTLOADED", "DDERR_NOFOCUSWINDOW", "DDERR_NOTONMIPMAPSUBLEVEL", "DDERR_DCALREADYCREATED", "DDERR_NONONLOCALVIDMEM", "DDERR_CANTPAGELOCK", "DDERR_CANTPAGEUNLOCK", "DDERR_NOTPAGELOCKED", "DDERR_MOREDATA", "DDERR_EXPIRED", "DDERR_TESTFINISHED", "DDERR_NEWMODE", "DDERR_D3DNOTINITIALIZED", "DDERR_VIDEONOTACTIVE", "DDERR_NOMONITORINFORMATION", "DDERR_NODRIVERSUPPORT", "DDERR_DEVICEDOESNTOWNSURFACE", "DDERR_NOTINITIALIZED", ]) LPDDENUMMODESCALLBACK = FunctionPointer(HRESULT, "LPDDENUMMODESCALLBACK", [LPDDSURFACEDESC, LPVOID]) LPDDENUMMODESCALLBACK2 = FunctionPointer(HRESULT, "LPDDENUMMODESCALLBACK2", [LPDDSURFACEDESC2, LPVOID]) LPDDENUMSURFACESCALLBACK = FunctionPointer(HRESULT, "LPDDENUMSURFACESCALLBACK", [LPDIRECTDRAWSURFACE, LPDDSURFACEDESC, LPVOID]) LPDDENUMSURFACESCALLBACK2 = FunctionPointer(HRESULT, "LPDDENUMSURFACESCALLBACK2", [LPDIRECTDRAWSURFACE4, LPDDSURFACEDESC2, LPVOID]) LPDDENUMSURFACESCALLBACK7 = FunctionPointer(HRESULT, "LPDDENUMSURFACESCALLBACK7", [LPDIRECTDRAWSURFACE7, LPDDSURFACEDESC2, LPVOID]) IDirectDraw.methods += [ Method(DDRESULT, "Compact", []), Method(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (Pointer(IUnknown), "pUnkOuter")]), Method(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (Pointer(IUnknown), "pUnkOuter")]), Method(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDDSurface"), (Pointer(IUnknown), "pUnkOuter")]), Method(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDupDDSurface")]), Method(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK, "lpEnumModesCallback")]), Method(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")]), Method(DDRESULT, "FlipToGDISurface", []), Method(DDRESULT, "GetCaps", [Out(LPDDCAPS, "lpDDDriverCaps"), Out(LPDDCAPS, "lpDDHELCaps")]), Method(DDRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")]), Method(DDRESULT, "GetFourCCCodes", [Out(LPDWORD, "lpNumCodes"), Out(LPDWORD, "lpCodes")]), Method(DDRESULT, "GetGDISurface", [Out(Pointer(LPDIRECTDRAWSURFACE), "lplpGDIDDSSurface")]), Method(DDRESULT, "GetMonitorFrequency", [Out(LPDWORD, "lpdwFrequency")]), Method(DDRESULT, "GetScanLine", [Out(LPDWORD, "lpdwScanLine")]), Method(DDRESULT, "GetVerticalBlankStatus", [Out(LPBOOL, "lpbIsInVB")]), Method(DDRESULT, "Initialize", [(Pointer(GUID), "lpGUID")]), Method(DDRESULT, "RestoreDisplayMode", []), Method(DDRESULT, "SetCooperativeLevel", [(HWND, "hWnd"), (DirectDrawSetCooperativeLevelFlags, "dwFlags")]), Method(DDRESULT, "SetDisplayMode", [(DWORD, "dwWidth"), (DWORD, "dwHeight"), (DWORD, "dwBPP")]), Method(DDRESULT, "WaitForVerticalBlank", [(DirectDrawWaitForVerticalBlankFlags, "dwFlags"), (HANDLE, "hEvent")]), ] IDirectDraw2.methods += [ Method(DDRESULT, "Compact", []), Method(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (Pointer(IUnknown), "pUnkOuter")]), Method(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (Pointer(IUnknown), "pUnkOuter")]), Method(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDDSurface"), (Pointer(IUnknown), "pUnkOuter")]), Method(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDupDDSurface")]), Method(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK, "lpEnumModesCallback")]), Method(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")]), Method(DDRESULT, "FlipToGDISurface", []), Method(DDRESULT, "GetCaps", [Out(LPDDCAPS, "lpDDDriverCaps"), Out(LPDDCAPS, "lpDDHELCaps")]), Method(DDRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")]), Method(DDRESULT, "GetFourCCCodes", [Out(LPDWORD, "lpNumCodes"), Out(LPDWORD, "lpCodes")]), Method(DDRESULT, "GetGDISurface", [Out(Pointer(LPDIRECTDRAWSURFACE), "lplpGDIDDSSurface")]), Method(DDRESULT, "GetMonitorFrequency", [Out(LPDWORD, "lpdwFrequency")]), Method(DDRESULT, "GetScanLine", [Out(LPDWORD, "lpdwScanLine")]), Method(DDRESULT, "GetVerticalBlankStatus", [Out(LPBOOL, "lpbIsInVB")]), Method(DDRESULT, "Initialize", [(Pointer(GUID), "lpGUID")]), Method(DDRESULT, "RestoreDisplayMode", []), Method(DDRESULT, "SetCooperativeLevel", [(HWND, "hWnd"), (DirectDrawSetCooperativeLevelFlags, "dwFlags")]), Method(DDRESULT, "SetDisplayMode", [(DWORD, "dwWidth"), (DWORD, "dwHeight"), (DWORD, "dwBPP"), (DWORD, "dwRefreshRate"), (DirectDrawSetDisplayModeFlags, "dwFlags")]), Method(DDRESULT, "WaitForVerticalBlank", [(DirectDrawWaitForVerticalBlankFlags, "dwFlags"), (HANDLE, "hEvent")]), Method(DDRESULT, "GetAvailableVidMem", [(LPDDSCAPS, "lpDDSCaps"), Out(LPDWORD, "lpdwTotal"), Out(LPDWORD, "lpdwFree")]), ] IDirectDraw4.methods += [ Method(DDRESULT, "Compact", []), Method(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (Pointer(IUnknown), "pUnkOuter")]), Method(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (Pointer(IUnknown), "pUnkOuter")]), Method(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC2, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpDDSurface"), (Pointer(IUnknown), "pUnkOuter")]), Method(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE4, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpDupDDSurface")]), Method(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK2, "lpEnumModesCallback")]), Method(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK2, "lpEnumSurfacesCallback")]), Method(DDRESULT, "FlipToGDISurface", []), Method(DDRESULT, "GetCaps", [Out(LPDDCAPS, "lpDDDriverCaps"), Out(LPDDCAPS, "lpDDHELCaps")]), Method(DDRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")]), Method(DDRESULT, "GetFourCCCodes", [Out(LPDWORD, "lpNumCodes"), Out(LPDWORD, "lpCodes")]), Method(DDRESULT, "GetGDISurface", [Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpGDIDDSSurface")]), Method(DDRESULT, "GetMonitorFrequency", [Out(LPDWORD, "lpdwFrequency")]), Method(DDRESULT, "GetScanLine", [Out(LPDWORD, "lpdwScanLine")]), Method(DDRESULT, "GetVerticalBlankStatus", [Out(LPBOOL, "lpbIsInVB")]), Method(DDRESULT, "Initialize", [(Pointer(GUID), "lpGUID")]), Method(DDRESULT, "RestoreDisplayMode", []), Method(DDRESULT, "SetCooperativeLevel", [(HWND, "hWnd"), (DirectDrawSetCooperativeLevelFlags, "dwFlags")]), Method(DDRESULT, "SetDisplayMode", [(DWORD, "dwWidth"), (DWORD, "dwHeight"), (DWORD, "dwBPP"), (DWORD, "dwRefreshRate"), (DirectDrawSetDisplayModeFlags, "dwFlags")]), Method(DDRESULT, "WaitForVerticalBlank", [(DirectDrawWaitForVerticalBlankFlags, "dwFlags"), (HANDLE, "hEvent")]), Method(DDRESULT, "GetAvailableVidMem", [(LPDDSCAPS2, "lpDDSCaps"), Out(LPDWORD, "lpdwTotal"), Out(LPDWORD, "lpdwFree")]), Method(DDRESULT, "GetSurfaceFromDC", [(HDC, "hdc"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lpDDSurface")]), Method(DDRESULT, "RestoreAllSurfaces", []), Method(DDRESULT, "TestCooperativeLevel", []), Method(DDRESULT, "GetDeviceIdentifier", [Out(LPDDDEVICEIDENTIFIER, "lpDDDI"), (DirectDrawGetDeviceIdentifierFlags, "dwFlags")]), ] IDirectDraw7.methods += [ Method(DDRESULT, "Compact", []), Method(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (Pointer(IUnknown), "pUnkOuter")]), Method(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (Pointer(IUnknown), "pUnkOuter")]), Method(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC2, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpDDSurface"), (Pointer(IUnknown), "pUnkOuter")]), Method(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE7, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpDupDDSurface")]), Method(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK2, "lpEnumModesCallback")]), Method(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK7, "lpEnumSurfacesCallback")]), Method(DDRESULT, "FlipToGDISurface", []), Method(DDRESULT, "GetCaps", [Out(LPDDCAPS, "lpDDDriverCaps"), Out(LPDDCAPS, "lpDDHELCaps")]), Method(DDRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")]), Method(DDRESULT, "GetFourCCCodes", [Out(LPDWORD, "lpNumCodes"), Out(LPDWORD, "lpCodes")]), Method(DDRESULT, "GetGDISurface", [Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpGDIDDSSurface")]), Method(DDRESULT, "GetMonitorFrequency", [Out(LPDWORD, "lpdwFrequency")]), Method(DDRESULT, "GetScanLine", [Out(LPDWORD, "lpdwScanLine")]), Method(DDRESULT, "GetVerticalBlankStatus", [Out(LPBOOL, "lpbIsInVB")]), Method(DDRESULT, "Initialize", [(Pointer(GUID), "lpGUID")]), Method(DDRESULT, "RestoreDisplayMode", []), Method(DDRESULT, "SetCooperativeLevel", [(HWND, "hWnd"), (DirectDrawSetCooperativeLevelFlags, "dwFlags")]), Method(DDRESULT, "SetDisplayMode", [(DWORD, "dwWidth"), (DWORD, "dwHeight"), (DWORD, "dwBPP"), (DWORD, "dwRefreshRate"), (DirectDrawSetDisplayModeFlags, "dwFlags")]), Method(DDRESULT, "WaitForVerticalBlank", [(DirectDrawWaitForVerticalBlankFlags, "dwFlags"), (HANDLE, "hEvent")]), Method(DDRESULT, "GetAvailableVidMem", [(LPDDSCAPS2, "lpDDSCaps"), Out(LPDWORD, "lpdwTotal"), Out(LPDWORD, "lpdwFree")]), Method(DDRESULT, "GetSurfaceFromDC", [(HDC, "hdc"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lpDDSurface")]), Method(DDRESULT, "RestoreAllSurfaces", []), Method(DDRESULT, "TestCooperativeLevel", []), Method(DDRESULT, "GetDeviceIdentifier", [Out(LPDDDEVICEIDENTIFIER2, "lpDDDI"), (DirectDrawGetDeviceIdentifierFlags, "dwFlags")]), Method(DDRESULT, "StartModeTest", [(LPSIZE, "lpModesToTest"), (DWORD, "dwNumEntries"), (DirectDrawStartModeTestFlags, "dwFlags")]), Method(DDRESULT, "EvaluateMode", [(DirectDrawEvaluateModeFlags, "dwFlags"), Out(Pointer(DWORD), "pSecondsUntilTimeout")]), ] IDirectDrawPalette.methods += [ Method(DDRESULT, "GetCaps", [Out(Pointer(DirectDrawPaletteCapsFlags), "lpdwCaps")]), Method(DDRESULT, "GetEntries", [(DWORD, "dwFlags"), (DWORD, "dwBase"), (DWORD, "dwNumEntries"), Out(LPPALETTEENTRY, "lpEntries")]), Method(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (DWORD, "dwFlags"), (LPPALETTEENTRY, "lpDDColorTable")]), Method(DDRESULT, "SetEntries", [(DWORD, "dwFlags"), (DWORD, "dwStartingEntry"), (DWORD, "dwCount"), (LPPALETTEENTRY, "lpEntries")]), ] IDirectDrawClipper.methods += [ Method(DDRESULT, "GetClipList", [(LPRECT, "lpRect"), (LPRGNDATA, "lpClipList"), Out(LPDWORD, "lpdwSize")]), Method(DDRESULT, "GetHWnd", [Out(Pointer(HWND), "hWnd")]), Method(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (DWORD, "dwFlags")]), Method(DDRESULT, "IsClipListChanged", [Out(Pointer(BOOL), "lpbChanged")]), Method(DDRESULT, "SetClipList", [(LPRGNDATA, "lpClipList"), (DWORD, "dwFlags")]), Method(DDRESULT, "SetHWnd", [(DWORD, "dwFlags"), (HWND, "hWnd")]), ] IDirectDrawSurface.methods += [ Method(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE, "lpDDSAttachedSurface")]), Method(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]), Method(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]), Method(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]), Method(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]), Method(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE, "lpDDSurface")]), Method(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")]), Method(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpfnCallback")]), Method(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]), Method(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDDAttachedSurface")]), Method(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")]), Method(DDRESULT, "GetCaps", [Out(LPDDSCAPS, "lpDDSCaps")]), Method(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]), Method(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]), Method(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")]), Method(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")]), Method(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")]), Method(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]), Method(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")]), Method(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")]), Method(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC, "lpDDSurfaceDesc")]), Method(DDRESULT, "IsLost", []), Method(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]), Method(DDRESULT, "ReleaseDC", [(HDC, "hDC")]), Method(DDRESULT, "Restore", []), Method(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]), Method(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]), Method(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]), Method(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]), Method(DDRESULT, "Unlock", [(LPVOID, "lp")]), Method(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]), Method(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]), Method(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE, "lpDDSReference")]), ] IDirectDrawSurface2.methods += [ Method(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE2, "lpDDSAttachedSurface")]), Method(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]), Method(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE2, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]), Method(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]), Method(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE2, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]), Method(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE2, "lpDDSurface")]), Method(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")]), Method(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpfnCallback")]), Method(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE2, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]), Method(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE2), "lplpDDAttachedSurface")]), Method(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")]), Method(DDRESULT, "GetCaps", [Out(LPDDSCAPS, "lpDDSCaps")]), Method(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]), Method(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]), Method(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")]), Method(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")]), Method(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")]), Method(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]), Method(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")]), Method(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")]), Method(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC, "lpDDSurfaceDesc")]), Method(DDRESULT, "IsLost", []), Method(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]), Method(DDRESULT, "ReleaseDC", [(HDC, "hDC")]), Method(DDRESULT, "Restore", []), Method(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]), Method(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]), Method(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]), Method(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]), Method(DDRESULT, "Unlock", [(LPVOID, "lp")]), Method(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE2, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]), Method(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]), Method(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE2, "lpDDSReference")]), Method(DDRESULT, "GetDDInterface", [Out(Pointer(IUnknown), "lplpDD")]), Method(DDRESULT, "PageLock", [(DWORD, "dwFlags")]), Method(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]), ] IDirectDrawSurface3.methods += [ Method(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE3, "lpDDSAttachedSurface")]), Method(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]), Method(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE3, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]), Method(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]), Method(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE3, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]), Method(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE3, "lpDDSurface")]), Method(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")]), Method(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpfnCallback")]), Method(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE3, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]), Method(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE3), "lplpDDAttachedSurface")]), Method(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")]), Method(DDRESULT, "GetCaps", [Out(LPDDSCAPS, "lpDDSCaps")]), Method(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]), Method(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]), Method(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")]), Method(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")]), Method(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")]), Method(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]), Method(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")]), Method(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")]), Method(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC, "lpDDSurfaceDesc")]), Method(DDRESULT, "IsLost", []), Method(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]), Method(DDRESULT, "ReleaseDC", [(HDC, "hDC")]), Method(DDRESULT, "Restore", []), Method(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]), Method(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]), Method(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]), Method(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]), Method(DDRESULT, "Unlock", [(LPVOID, "lp")]), Method(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE3, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]), Method(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]), Method(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE3, "lpDDSReference")]), Method(DDRESULT, "GetDDInterface", [Out(Pointer(IUnknown), "lplpDD")]), Method(DDRESULT, "PageLock", [(DWORD, "dwFlags")]), Method(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]), Method(DDRESULT, "SetSurfaceDesc", [(LPDDSURFACEDESC, "lpDDSD"), (DWORD, "dwFlags")]), ] IDirectDrawSurface4.methods += [ Method(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE4, "lpDDSAttachedSurface")]), Method(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]), Method(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE4, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]), Method(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]), Method(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE4, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]), Method(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE4, "lpDDSurface")]), Method(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK2, "lpEnumSurfacesCallback")]), Method(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK2, "lpfnCallback")]), Method(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE4, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]), Method(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS2, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpDDAttachedSurface")]), Method(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")]), Method(DDRESULT, "GetCaps", [Out(LPDDSCAPS2, "lpDDSCaps")]), Method(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]), Method(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]), Method(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")]), Method(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")]), Method(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")]), Method(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]), Method(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")]), Method(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")]), Method(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc")]), Method(DDRESULT, "IsLost", []), Method(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]), Method(DDRESULT, "ReleaseDC", [(HDC, "hDC")]), Method(DDRESULT, "Restore", []), Method(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]), Method(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]), Method(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]), Method(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]), Method(DDRESULT, "Unlock", [(LPRECT, "lpRect")]), Method(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE4, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]), Method(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]), Method(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE4, "lpDDSReference")]), Method(DDRESULT, "GetDDInterface", [Out(Pointer(LPVOID), "lplpDD")]), Method(DDRESULT, "PageLock", [(DWORD, "dwFlags")]), Method(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]), Method(DDRESULT, "SetSurfaceDesc", [(LPDDSURFACEDESC2, "lpDDSD"), (DWORD, "dwFlags")]), Method(DDRESULT, "SetPrivateData", [(REFGUID, "guidTag"), (LPVOID, "lpData"), (DWORD, "cbSize"), (DWORD, "dwFlags")]), Method(DDRESULT, "GetPrivateData", [(REFGUID, "guidTag"), (LPVOID, "lpData"), Out(LPDWORD, "lpcbBufferSize")]), Method(DDRESULT, "FreePrivateData", [(REFGUID, "guidTag")]), Method(DDRESULT, "GetUniquenessValue", [Out(LPDWORD, "lpValue")]), Method(DDRESULT, "ChangeUniquenessValue", []), ] IDirectDrawSurface7.methods += [ Method(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE7, "lpDDSAttachedSurface")]), Method(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]), Method(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE7, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]), Method(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]), Method(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE7, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]), Method(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE7, "lpDDSurface")]), Method(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK7, "lpEnumSurfacesCallback")]), Method(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK7, "lpfnCallback")]), Method(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE7, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]), Method(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS2, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpDDAttachedSurface")]), Method(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")]), Method(DDRESULT, "GetCaps", [Out(LPDDSCAPS2, "lpDDSCaps")]), Method(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]), Method(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]), Method(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")]), Method(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")]), Method(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")]), Method(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]), Method(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")]), Method(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")]), Method(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc")]), Method(DDRESULT, "IsLost", []), Method(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]), Method(DDRESULT, "ReleaseDC", [(HDC, "hDC")]), Method(DDRESULT, "Restore", []), Method(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]), Method(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]), Method(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]), Method(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]), Method(DDRESULT, "Unlock", [(LPRECT, "lpRect")]), Method(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE7, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]), Method(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]), Method(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE7, "lpDDSReference")]), Method(DDRESULT, "GetDDInterface", [Out(Pointer(LPVOID), "lplpDD")]), Method(DDRESULT, "PageLock", [(DWORD, "dwFlags")]), Method(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]), Method(DDRESULT, "SetSurfaceDesc", [(LPDDSURFACEDESC2, "lpDDSD"), (DWORD, "dwFlags")]), Method(DDRESULT, "SetPrivateData", [(REFGUID, "guidTag"), (LPVOID, "lpData"), (DWORD, "cbSize"), (DWORD, "dwFlags")]), Method(DDRESULT, "GetPrivateData", [(REFGUID, "guidTag"), (LPVOID, "lpData"), Out(LPDWORD, "lpcbBufferSize")]), Method(DDRESULT, "FreePrivateData", [(REFGUID, "guidTag")]), Method(DDRESULT, "GetUniquenessValue", [Out(LPDWORD, "lpValue")]), Method(DDRESULT, "ChangeUniquenessValue", []), Method(DDRESULT, "SetPriority", [(DWORD, "dwPriority")]), Method(DDRESULT, "GetPriority", [Out(LPDWORD, "lpdwPriority")]), Method(DDRESULT, "SetLOD", [(DWORD, "dwMaxLOD")]), Method(DDRESULT, "GetLOD", [Out(LPDWORD, "lpdwMaxLOD")]), ] IDirectDrawColorControl.methods += [ Method(DDRESULT, "GetColorControls", [(LPDDCOLORCONTROL, "lpColorControl")]), Method(DDRESULT, "SetColorControls", [(LPDDCOLORCONTROL, "lpColorControl")]), ] IDirectDrawGammaControl.methods += [ Method(DDRESULT, "GetGammaRamp", [(DWORD, "dwFlags"), Out(LPDDGAMMARAMP, "lpRampData")]), Method(DDRESULT, "SetGammaRamp", [(DirectDrawSetGammaRampFlags, "dwFlags"), (LPDDGAMMARAMP, "lpRampData")]), ] LPDDENUMCALLBACKA = FunctionPointer(BOOL, "LPDDENUMCALLBACKA", [Pointer(GUID), LPSTR, LPSTR, LPVOID]) LPDDENUMCALLBACKW = FunctionPointer(BOOL, "LPDDENUMCALLBACKW", [Pointer(GUID), LPWSTR, LPWSTR, LPVOID]) LPDDENUMCALLBACKEXA = FunctionPointer(BOOL, "LPDDENUMCALLBACKEXA", [Pointer(GUID), LPSTR, LPSTR, LPVOID, HMONITOR]) LPDDENUMCALLBACKEXW = FunctionPointer(BOOL, "LPDDENUMCALLBACKEXW", [Pointer(GUID), LPWSTR, LPWSTR, LPVOID, HMONITOR]) DDENUM = Flags(DWORD, [ "DDENUM_ATTACHEDSECONDARYDEVICES", "DDENUM_DETACHEDSECONDARYDEVICES", "DDENUM_NONDISPLAYDEVICES", ]) DDCREATE = Flags(DWORD, [ "DDCREATE_HARDWAREONLY", "DDCREATE_EMULATIONONLY", ]) 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")]), StdFunction(HRESULT, "DirectDrawEnumerateExA", [(LPDDENUMCALLBACKEXA, "lpCallback"), (LPVOID, "lpContext"), (DDENUM, "dwFlags")]), 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")]), # XXX StdFunction(HRESULT, "CompleteCreateSysmemSurface", [Int, Int]), StdFunction(HRESULT, "GetSurfaceFromDC", [Int, Int, Int]), StdFunction(HRESULT, "DDInternalLock", [Int, Int]), StdFunction(HRESULT, "DDInternalUnlock", [Int]), StdFunction(HRESULT, "DSoundHelp", [HWND, Int, Int]), StdFunction(HRESULT, "GetDDSurfaceLocal", [Int, Int, Int]), StdFunction(HANDLE, "GetOLEThunkData", [Int]), StdFunction(HRESULT, "RegisterSpecialCase", [Int, Int, Int, Int]), StdFunction(HRESULT, "DDGetAttachedSurfaceLcl", [Int, Int, Int]), # TODO: SetAppCompatData ])