Guidance
指路人
g.yi.org
software / rapidq / Examples / Game / directx & direct3d / DirectX Dev / DDRAW_001.INC

Register 
注册
Search 搜索
首页 
Home Home
Software
Upload

  
'------------------------------------------------------------------------------
'
' INCLUE FILE for DirectDraw development in RapidQ
' modeled after PB_DDRAW.INC by Vladimir Shulakov
' (inital release May 12, 2003). by E-Mail:       overloc@uch.net
'
'------------------------------------------------------------------------------
'
'################################################################################
'#                                Direct Draw version 7.0                       #
'################################################################################
'
'
     CONST DIRECTX_VERSION = &h0700
     CONST S_FALSE               = &H00000001&
     CONST E_FAIL                = &H80004005&
     CONST E_INVALIDARG          = &H80070057&
     CONST E_OUTOFMEMORY         = &H8007000E&
     CONST E_NOTIMPL             = &H80004001&
     CONST CO_E_NOTINITIALIZED   = &H800401F0&


'DirectDrawEnumerate     = DirectDrawEnumerateA
'DirectDrawEnumerateEx   = DirectDrawEnumerateExA
     DECLARE FUNCTION DDDirectDrawCreate        LIB "DDRAW.DLL" ALIAS "DirectDrawCreate"        (BYVAL DWORD,BYVAL DWORD,BYVAL DWORD) AS LONG
     DECLARE FUNCTION DDDirectDrawCreateClipper LIB "DDRAW.DLL" ALIAS "DirectDrawCreateClipper" (BYVAL DWORD,BYVAL DWORD,BYVAL DWORD) AS LONG
     DECLARE FUNCTION DDDirectDrawEnumerate     LIB "DDRAW.DLL" ALIAS "DirectDrawEnumerateA"    (BYVAL DWORD,BYVAL DWORD) AS LONG
     DECLARE FUNCTION DDDirectDrawEnumerateEx   LIB "DDRAW.DLL" ALIAS "DirectDrawEnumerateExA"  (BYVAL DWORD,BYVAL DWORD,BYVAL DWORD) AS LONG
     DECLARE SUB DDINIT()
     DECLARE FUNCTION MCALL (BYVAL ObjectPtr AS DWORD,BYVAL MethodName AS DWORD,_
      BYVAL v1  AS DWORD, _
      BYVAL v2  AS DWORD, _
      BYVAL v3  AS DWORD, _
      BYVAL v4  AS DWORD, _
      BYVAL v5  AS DWORD, _
      BYVAL v6  AS DWORD, _
      BYVAL v7  AS DWORD, _
      BYVAL v8  AS DWORD, _
      BYVAL v9  AS DWORD, _
      BYVAL v10 AS DWORD, _
      BYVAL v11 AS DWORD, _
      BYVAL v12 AS DWORD) AS LONG		'uses CDECL stack loading, OPTIONAL param directive
' GUIDS used by DirectDraw objects
     DIM CLSID_DirectDraw            AS STRING * 16
     DIM CLSID_DirectDrawClipper     AS STRING * 16
     DIM CLSID_DirectDrawFactory     AS STRING * 16
     DIM IID_IDirectDraw             AS STRING * 16
     DIM IID_IDirectDraw2            AS STRING * 16
     DIM IID_IDirectDraw3            AS STRING * 16
     DIM IID_IDirectDraw4            AS STRING * 16
     DIM IID_IDirectDrawSurface      AS STRING * 16
     DIM IID_IDirectDrawSurface2     AS STRING * 16
     DIM IID_IDirectDrawSurface3     AS STRING * 16
     DIM IID_IDirectDrawSurface4     AS STRING * 16
     DIM IID_IDirectDrawPalette      AS STRING * 16
     DIM IID_IDirectDrawClipper      AS STRING * 16
     DIM IID_IDirectDrawColorControl AS STRING * 16
     DIM IID_IDirectDrawGammaControl AS STRING * 16


     SUB DDINIT
      CLSID_DirectDraw            = CHR$(&HE0)+CHR$(&H0E)+CHR$(&HB7)+CHR$(&HD7)+CHR$( &H40)+CHR$(&H43)+CHR$( &HCF)+CHR$(&H11)+CHR$( &HB0)+CHR$(&H63)+CHR$( &H00)+CHR$(&H20)+CHR$(&HAF)+CHR$(&HC2)+CHR$(&HCD)+CHR$(&H35)
      CLSID_DirectDrawClipper     = CHR$(&HA0)+CHR$(&H17)+CHR$(&H38)+CHR$(&H59)+CHR$( &HB3)+CHR$(&H7D)+CHR$( &HCF)+CHR$(&H11)+CHR$( &HA2)+CHR$(&HDE)+CHR$( &H00)+CHR$(&HAA)+CHR$(&H00)+CHR$(&HB9)+CHR$(&H33)+CHR$(&H56)
      CLSID_DirectDrawFactory     = CHR$(&H32)+CHR$(&HA8)+CHR$(&HD2)+CHR$(&H4F)+CHR$( &HC8)+CHR$(&H86)+CHR$( &HD0)+CHR$(&H11)+CHR$( &H8F)+CHR$(&HCA)+CHR$( &H00)+CHR$(&Hc0)+CHR$(&H4f)+CHR$(&Hd9)+CHR$(&H18)+CHR$(&H9d)
      IID_IDirectDraw             = CHR$(&H80)+CHR$(&HDB)+CHR$(&H14)+CHR$(&H6C)+CHR$( &H33)+CHR$(&HA7)+CHR$( &HCE)+CHR$(&H11)+CHR$( &HA5)+CHR$(&H21)+CHR$( &H00)+CHR$(&H20)+CHR$(&HAF)+CHR$(&H0B)+CHR$(&HE5)+CHR$(&H60)
      IID_IDirectDraw2            = CHR$(&HE0)+CHR$(&HF3)+CHR$(&HA6)+CHR$(&HB3)+CHR$( &H43)+CHR$(&H2B)+CHR$( &HCF)+CHR$(&H11)+CHR$( &HA2)+CHR$(&HDE)+CHR$( &H00)+CHR$(&HAA)+CHR$(&H00)+CHR$(&HB9)+CHR$(&H33)+CHR$(&H56)
      IID_IDirectDraw3            = CHR$(&HD4)+CHR$(&H8A)+CHR$(&H8F)+CHR$(&H61)+CHR$( &H7A)+CHR$(&H8b)+CHR$( &HD0)+CHR$(&H11)+CHR$( &H8F)+CHR$(&HCC)+CHR$( &H00)+CHR$(&Hc0)+CHR$(&H4f)+CHR$(&Hd9)+CHR$(&H18)+CHR$(&H9d)
      IID_IDirectDraw4            = CHR$(&H9A)+CHR$(&H50)+CHR$(&H59)+CHR$(&H9c)+CHR$( &HBD)+CHR$(&H39)+CHR$( &HD1)+CHR$(&H11)+CHR$( &H8C)+CHR$(&H4A)+CHR$( &H00)+CHR$(&Hc0)+CHR$(&H4f)+CHR$(&Hd9)+CHR$(&H30)+CHR$(&Hc5)
      IID_IDirectDrawSurface      = CHR$(&H81)+CHR$(&HDB)+CHR$(&H14)+CHR$(&H6C)+CHR$( &H33)+CHR$(&HA7)+CHR$( &HCE)+CHR$(&H11)+CHR$( &HA5)+CHR$(&H21)+CHR$( &H00)+CHR$(&H20)+CHR$(&HAF)+CHR$(&H0B)+CHR$(&HE5)+CHR$(&H60)
      IID_IDirectDrawSurface2     = CHR$(&H85)+CHR$(&H58)+CHR$(&H80)+CHR$(&H57)+CHR$( &HEC)+CHR$(&H6E)+CHR$( &HCF)+CHR$(&H11)+CHR$( &H94)+CHR$(&H41)+CHR$( &HA8)+CHR$(&H23)+CHR$(&H03)+CHR$(&HC1)+CHR$(&H0E)+CHR$(&H27)
      IID_IDirectDrawSurface3     = CHR$(&H00)+CHR$(&H4E)+CHR$(&H04)+CHR$(&HDA)+CHR$( &HB2)+CHR$(&H69)+CHR$( &HD0)+CHR$(&H11)+CHR$( &HA1)+CHR$(&HD5)+CHR$( &H00)+CHR$(&HAA)+CHR$(&H00)+CHR$(&HB8)+CHR$(&HDF)+CHR$(&HBB)
      IID_IDirectDrawSurface4     = CHR$(&H30)+CHR$(&H86)+CHR$(&H2B)+CHR$(&H0B)+CHR$( &H35)+CHR$(&HAD)+CHR$( &HD0)+CHR$(&H11)+CHR$( &HA6)+CHR$(&H8E)+CHR$( &H00)+CHR$(&H60)+CHR$(&H97)+CHR$(&H97)+CHR$(&HEA)+CHR$(&H5B)
      IID_IDirectDrawPalette      = CHR$(&H84)+CHR$(&HDB)+CHR$(&H14)+CHR$(&H6C)+CHR$( &H33)+CHR$(&HA7)+CHR$( &HCE)+CHR$(&H11)+CHR$( &HA5)+CHR$(&H21)+CHR$( &H00)+CHR$(&H20)+CHR$(&HAF)+CHR$(&H0B)+CHR$(&HE5)+CHR$(&H60)
      IID_IDirectDrawClipper      = CHR$(&H85)+CHR$(&HDB)+CHR$(&H14)+CHR$(&H6C)+CHR$( &H33)+CHR$(&HA7)+CHR$( &HCE)+CHR$(&H11)+CHR$( &HA5)+CHR$(&H21)+CHR$( &H00)+CHR$(&H20)+CHR$(&HAF)+CHR$(&H0B)+CHR$(&HE5)+CHR$(&H60)
      IID_IDirectDrawColorControl = CHR$(&HE0)+CHR$(&H0E)+CHR$(&H9F)+CHR$(&H4B)+CHR$( &H7E)+CHR$(&H0D)+CHR$( &HD0)+CHR$(&H11)+CHR$( &H9B)+CHR$(&H06)+CHR$( &H00)+CHR$(&HA0)+CHR$(&HC9)+CHR$(&H03)+CHR$(&HA3)+CHR$(&HB8)
      IID_IDirectDrawGammaControl = CHR$(&H3E)+CHR$(&H1C)+CHR$(&HC1)+CHR$(&H69)+CHR$( &H6B)+CHR$(&HB4)+CHR$( &HD1)+CHR$(&H11)+CHR$( &H7A)+CHR$(&HAD)+CHR$( &H00)+CHR$(&HC0)+CHR$(&H4F)+CHR$(&HC2)+CHR$(&H9B)+CHR$(&H4E)
     END SUB

     CONST DD_ROP_SPACE               = (256 / 32)'       '' space required to store ROP array
     CONST MAX_DDDEVICEID_STRING      = 512
     CONST DDGDI_GETHOSTIDENTIFIER    = &h00000001
     DIM DDXInterface     AS STRING *16

     TYPE REFGUID
      guid_or_Flags	AS DWORD
     END TYPE

     TYPE DDRGBA
      red         AS BYTE
      green       AS BYTE
      blue        AS BYTE
      alpha       AS BYTE
     END TYPE

     TYPE DDCOLORKEY
      dwColorSpaceLowValue    AS DWORD
      dwColorSpaceHighValue   AS DWORD
     END TYPE

'---------------------
     TYPE DDBLTFX
      dwSize                       AS DWORD
      dwDDFX                       AS DWORD
      dwROP                        AS DWORD
      dwDDROP                      AS DWORD
      dwRotationAngle              AS DWORD
      dwZBufferOpCode              AS DWORD
      dwZBufferLow                 AS DWORD
      dwZBufferHigh                AS DWORD
      dwZBufferBaseDest            AS DWORD
      dwZDestConstBitDepth         AS DWORD
      dwZDestConst_or_lpDDSZBufferDest       AS DWORD    'union 1
      dwZSrcConstBitDepth          AS DWORD
      dwZSrcConst_or_lpDDSZBufferSrc         AS DWORD    'union 2
      dwAlphaEdgeBlendBitDepth     AS DWORD
      dwAlphaEdgeBlend             AS DWORD
      dwBltFxReserved              AS DWORD
      dwAlphaDestConstBitDepth     AS DWORD
      dwAlphaDestConst_or_lpDDSAlphaDest     AS DWORD    'union 3
      dwAlphaSrcConstBitDepth      AS DWORD
      dwAlphaSrcConst_or_lpDDSAlphaSrc       AS DWORD    'union 4
      dwFillColor_or_Depth_or_Pixel_or_lpDDSPattern  AS DWORD    'union 5
      ddckDestColorkey_dwColorSpaceLowValue    AS DWORD
      ddckSrcColorkey_dwColorSpaceHighValue	AS DWORD
     END TYPE

     TYPE DDSCAPS
      dwCaps      AS DWORD    'FAR* LPDDSCAPS --ONLY THIS STRUCTURE NOT MODIFIED, ADDING TO MEMBER NAME TAG NAME
     END TYPE

     TYPE DDOSCAPS
      dwCaps      AS DWORD
     END TYPE
     TYPE DDSCAPSEX
      dwCaps2     AS DWORD
      dwCaps3     AS DWORD
      dwCaps4     AS DWORD
     END TYPE

     TYPE DDSCAPS2
      lCaps                 AS LONG
      lCaps2                AS LONG
      lCaps3                AS LONG
      lCaps4                AS LONG
     END TYPE

     TYPE DDCAPS
      dwSize                            AS DWORD ' size of  DDDRIVERCAPS
      dwCaps                            AS DWORD
      dwCaps2                           AS DWORD
      dwCKeyCaps                        AS DWORD
      dwFXCaps                          AS DWORD
      dwFXAlphaCaps                     AS DWORD
      dwPalCaps                         AS DWORD
      dwSVCaps                          AS DWORD
      dwAlphaBltConstBitDepths          AS DWORD ' DDBD_2,4,8
      dwAlphaBltPixelBitDepths          AS DWORD ' DDBD_1,2,4,8
      dwAlphaBltSurfaceBitDepths        AS DWORD ' DDBD_1,2,4,8
      dwAlphaOverlayConstBitDepths      AS DWORD ' DDBD_2,4,8
      dwAlphaOverlayPixelBitDepths      AS DWORD ' DDBD_1,2,4,8
      dwAlphaOverlaySurfaceBitDepths    AS DWORD ' DDBD_1,2,4,8
      dwZBufferBitDepths                AS DWORD ' DDBD_8,16,24,32
      dwVidMemTotal                     AS DWORD
      dwVidMemFree                      AS DWORD
      dwMaxVisibleOverlays              AS DWORD
      dwCurrVisibleOverlays             AS DWORD
      dwNumFourCCCodes                  AS DWORD
      dwAlignBoundarySrc                AS DWORD
      dwAlignSizeSrc                    AS DWORD
      dwAlignBoundaryDest               AS DWORD
      dwAlignSizeDest                   AS DWORD
      dwAlignStrideAlign                AS DWORD
      dwRops(CONST DD_ROP_SPACE)        AS DWORD
      ddsOldCaps_dwCaps				 AS DWORD ' was ddsCaps DDSCAPS, in dx6 is ddsOldCaps DDSCAPS
      dwMinOverlayStretch               AS DWORD ' min overlay stretch factor * 1000
      dwMaxOverlayStretch               AS DWORD ' max overlay stretch factor * 1000
      dwMinLiveVideoStretch             AS DWORD ' min live video stretch factor * 1000
      dwMaxLiveVideoStretch             AS DWORD ' max live video stretch factor * 1000
      dwMinHwCodecStretch               AS DWORD ' min hardware codec stretch factor * 1000
      dwMaxHwCodecStretch               AS DWORD ' max hardware codec stretch factor * 1000
      dwReserved1                       AS DWORD
      dwReserved2                       AS DWORD
      dwReserved3                       AS DWORD
      dwSVBCaps                         AS DWORD
      dwSVBCKeyCaps                     AS DWORD
      dwSVBFXCaps                       AS DWORD
      dwSVBRops(CONST DD_ROP_SPACE)     AS DWORD
      dwVSBCaps                         AS DWORD
      dwVSBCKeyCaps                     AS DWORD
      dwVSBFXCaps                       AS DWORD
      dwVSBRops(CONST DD_ROP_SPACE)     AS DWORD
      dwSSBCaps                         AS DWORD
      dwSSBCKeyCaps                     AS DWORD
      dwSSBFXCaps                       AS DWORD
      dwSSBRops(CONST DD_ROP_SPACE)     AS DWORD
    ' Members added for DX5 release
      dwMaxVideoPorts                   AS DWORD ' maximum number of usable video ports
      dwCurrVideoPorts                  AS DWORD ' current number of video ports used
      dwSVBCaps2                        AS DWORD ' more driver specific capabilities for System->Vmem blts
      dwNLVBCaps                        AS DWORD ' driver specific capabilities for non-local->local vidmem blts
      dwNLVBCaps2                       AS DWORD ' more driver specific capabilities non-local->local vidmem blts
      dwNLVBCKeyCaps                    AS DWORD ' driver color key capabilities for non-local->local vidmem blts
      dwNLVBFXCaps                      AS DWORD ' driver FX capabilities for non-local->local blts
      dwNLVBRops(CONST DD_ROP_SPACE)    AS DWORD ' ROPS supported for non-local->local blts
    ' Members added for DX6 release
    '  ddsCaps			AS DDSCAPS2
      ddsCaps_lCaps      			   	AS LONG
      ddsCaps_lCaps2      		 	AS LONG
      ddsCaps_lCaps3      		 	AS LONG
      ddsCaps_lCaps4      		 	AS LONG
     END TYPE
'___________________________________________________________________
'

     TYPE DDPIXELFORMAT
      dwSize                       AS DWORD
      dwFlags                      AS DWORD
      dwFourCC                     AS DWORD
      UNION1                       AS DWORD
      UNION2                       AS DWORD
      UNION3                       AS DWORD
      UNION4                       AS DWORD
      UNION5                       AS DWORD
     END TYPE
'_____________________________________________________________________
'
     TYPE DDOVERLAYFX
      dwSize                         AS DWORD
      dwAlphaEdgeBlendBitDepth       AS DWORD
      dwAlphaEdgeBlend               AS DWORD
      dwReserved                     AS DWORD
      dwAlphaDestConstBitDepth       AS DWORD
      UNION1                         AS DWORD
      dwAlphaSrcConstBitDepth        AS DWORD
      UNION2                         AS DWORD
     END TYPE
'___________________________________________________________________
'
     TYPE DDBLTBATCH
      lprDest          AS DWORD
      lpDDSSrc         AS DWORD
      lprSrc           AS DWORD
      dwFlags          AS DWORD
      lpDDBltFx        AS DWORD
     END TYPE

     TYPE DDGAMMARAMP
      red(256)            AS WORD    'DW 256 DUP (?)
      green(256)          AS WORD
      blue(256)           AS WORD
     END TYPE

     TYPE DDDEVICEIDENTIFIER
      szDriver(CONST MAX_DDDEVICEID_STRING)      AS BYTE
      szDescription(CONST MAX_DDDEVICEID_STRING) AS BYTE
      liDriverVersion         AS QUAD 'DQ ?
      dwVendorId              AS DWORD
      dwDeviceId              AS DWORD
      dwSubSysId              AS DWORD
      dwRevision              AS DWORD
      guidDeviceIdentifier    AS STRING * 16     'GUID
     END TYPE
'______________________________________________________________
'
     TYPE DDSURFACEDESC
      dwSize                                      AS DWORD
      dwFlags                                     AS DWORD
      dwHeight                                    AS DWORD
      dwWidth                                     AS DWORD
      UNION1                                      AS DWORD
      dwBackBufferCount                           AS DWORD
      UNION2                                      AS DWORD
      dwAlphaBitDepth                             AS DWORD
      dwReserved                                  AS DWORD
      lpSurface                                   AS DWORD
      ddckCKDestOverlay_dwColorSpaceLowValue	 	AS DWORD
      ddckCKDestOverlay_dwColorSpaceHighValue 	AS DWORD
      ddckCKDestBlt_dwColorSpaceLowValue		 	AS DWORD
      ddckCKDestBlt_dwColorSpaceHighValue         AS DWORD
      ddckCKSrcOverlay_dwColorSpaceLowValue    	 AS DWORD
      ddckCKSrcOverlay_dwColorSpaceHighValue    	AS DWORD
      ddckCKSrcBlt_dwColorSpaceLowValue    	 	AS DWORD
      ddckCKSrcBlt_dwColorSpaceHighValue   	 	AS DWORD
'''''''''''''    ddpfPixelFormat                 AS DDPIXELFORMAT
      ddpfPixelFormat_dwSize                       AS DWORD
      ddpfPixelFormat_dwFlags                      AS DWORD
      ddpfPixelFormat_dwFourCC                     AS DWORD
      ddpfPixelFormat_UNION1                       AS DWORD
      ddpfPixelFormat_UNION2                       AS DWORD
      ddpfPixelFormat_UNION3                       AS DWORD
      ddpfPixelFormat_UNION4                       AS DWORD
      ddpfPixelFormat_UNION5                       AS DWORD
      ddssurfCaps_dwCaps                           AS DWORD' was  AS DDSCAPS
     END TYPE
'______________________________________________________________
'
     TYPE DDSURFACEDESC2
      dwSize                                     AS DWORD
      dwFlags                                    AS DWORD
      dwHeight                                   AS DWORD
      dwWidth                                    AS DWORD
      UNION1                                     AS DWORD
      dwBackBufferCount                          AS DWORD
      UNION2                                     AS DWORD
      dwAlphaBitDepth                            AS DWORD
      dwReserved                                 AS DWORD
      lpSurface                                  AS DWORD
      ddckCKDestOverlay_dwColorSpaceLowValue     AS DWORD
      ddckCKDestOverlay_dwColorSpaceHighValue    AS DWORD
      ddckCKDestBlt_dwColorSpaceLowValue         AS DWORD
      ddckCKDestBlt_dwColorSpaceHighValue        AS DWORD
      ddckCKSrcOverlay_dwColorSpaceLowValue      AS DWORD
      ddckCKSrcOverlay_dwColorSpaceHighValue     AS DWORD
      ddckCKSrcBlt_dwColorSpaceLowValue    		 AS DWORD
      ddckCKSrcBlt_dwColorSpaceHighValue   		 AS DWORD
'''''''''''    ddpfPixelFormat                AS DDPIXELFORMAT
      ddpfPixelFormat_dwSize                    AS DWORD
      ddpfPixelFormat_dwFlags                   AS DWORD
      ddpfPixelFormat_dwFourCC                  AS DWORD
      ddpfPixelFormat_UNION1                    AS DWORD
      ddpfPixelFormat_UNION2                    AS DWORD
      ddpfPixelFormat_UNION3                    AS DWORD
      ddpfPixelFormat_UNION4                    AS DWORD
      ddpfPixelFormat_UNION5                    AS DWORD
'''''''''''    ddssurfCaps                    AS DDSCAPS2
      ddssurfCaps_lCaps                         AS LONG
      ddssurfCaps_lCaps2                        AS LONG
      ddssurfCaps_lCaps3                        AS LONG
      ddssurfCaps_lCaps4                        AS LONG
      dwTextureStage                            AS DWORD
     END TYPE
'_______________________________________________________________
'
     TYPE DDOPTSURFACEDESC
      dwSize              AS DWORD    ' size of the DDOPTSURFACEDESC structure
      dwFlags             AS DWORD    ' determines what fields are valid
'    ddSCaps             AS DDSCAPS2 ' Common caps like: Memory type
      lCaps               AS LONG
      lCaps2              AS LONG
      lCaps3              AS LONG
      lCaps4              AS LONG
      ddOSCaps            AS DWORD ' Common caps like: Memory type
      guid                AS STRING * 16 ' Compression technique GUID
      dwCompressionRatio  AS DWORD    ' Compression ratio
     END TYPE

     TYPE DDCOLORCONTROL
      dwSize          AS DWORD
      dwFlags         AS DWORD
      lBrightness     AS DWORD
      lContrast       AS DWORD
      lHue            AS DWORD
      lSaturation     AS DWORD
      lSharpness      AS DWORD
      lGamma          AS DWORD
      lColorEnable    AS DWORD
      dwReserved1     AS DWORD
     END TYPE
'==============================================================================
'                                    METHODS...
'==============================================================================

' IDirectDraw
' IUnknown methods
     TYPE IUnknown EXTENDS QOBJECT
PUBLIC:
      DIM Ipointer		AS LONG			'interface base pointer address
PRIVATE:
      DIM InterfaceOffset	AS LONG			'each sub/function called by base address + offset
      FUNCTION QueryInterface(BYVAL lpIUnknown AS LONG, riid AS STRING * 16, ppvObj AS LONG) AS LONG
       InterfaceOffset = 0
       FUNCTION AddRef(BYVAL lpIUnknown AS LONG) AS LONG
        InterfaceOffset = 4
        FUNCTION Release(BYVAL lpIUnknown AS LONG) AS LONG
         InterfaceOffset = 8
        END TYPE



' IDirectDraw methods
        TYPE IDirectDraw EXTENDS IUnknown
         FUNCTION DDCompact(BYVAL lpDD AS LONG) AS LONG
          CONST DDCompact                   = 12
          FUNCTION DDCreateClipper(BYVAL lpDD AS LONG, BYVAL dwFlags AS DWORD, lpDDClipper AS LONG, pUnkOuter AS LONG) AS LONG
           CONST DDCreateClipper             = 16
           FUNCTION DDCreatePalette(BYVAL lpDD AS LONG, lpColorTable AS PALETTEENTRY PTR, lpDDPalette AS LONG, pUnkOuter AS LONG) AS LONG
            CONST DDCreatePalette             = 20
            FUNCTION DDCreateSurface(BYVAL lpDD AS LONG, lpDDSurfaceDesc AS DDSURFACEDESC PTR, lpDDSurface AS LONG) AS LONG
             CONST DDCreateSurface             = 24
             FUNCTION DDDuplicateSurface(BYVAL lpDD AS LONG, BYVAL lpDDSurface AS LONG, lpDupDDSurface AS LONG) AS LONG
              CONST DDDuplicateSurface          = 28
              FUNCTION DDEnumDisplayModes(BYVAL lpDD AS LONG, BYVAL dwFlags AS DWORD, lpDDSurfaceDesc AS DDSURFACEDESC PTR, BYVAL lpContext AS LONG, BYVAL lpEnumModesCallback AS LONG) AS LONG
               CONST DDEnumDisplayModes          = 32
               FUNCTION DDEnumSurfaces(BYVAL lpDD AS LONG, BYVAL dwFlags AS DWORD, lpDDSurfaceDesc AS DDSURFACEDESC PTR, BYVAL lpContext AS LONG, BYVAL lpEnumModesCallback AS LONG) AS LONG
                CONST DDEnumSurfaces              = 36
                FUNCTION DDFlipToGDISurface(BYVAL lpDD AS LONG) AS LONG
                 CONST DDFlipToGDISurface          = 40
                 FUNCTION DDGetCaps(BYVAL lpDD AS LONG, lpDDDriverCaps AS DDCAPS PTR, lpDDHELCaps AS DDCAPS PTR) AS LONG
                  CONST DDGetCaps                   = 44
                  FUNCTION DDGetDisplayMode(BYVAL lpDD AS LONG, lpDDSurfaceDesc AS DDSURFACEDESC PTR) AS LONG
                   CONST DDGetDisplayMode            = 48
                   FUNCTION DDGetFourCCCodes(BYVAL lpDD AS LONG, lpNumCodes AS DWORD, lpCodes AS DWORD) AS LONG
                    CONST DDGetFourCCCodes            = 52
                    FUNCTION DDGetGDISurface(BYVAL lpDD AS LONG, lpGDIDDSSurface AS LONG) AS LONG
                     CONST DDGetGDISurface             = 56
                     FUNCTION DDGetMonitorFrequency(BYVAL lpDD AS LONG, lpdwFrequency AS DWORD) AS LONG
                      CONST DDGetMonitorFrequency       = 60
                      FUNCTION DDGetScanLine(BYVAL lpDD AS LONG, lpdwScanLine AS DWORD) AS LONG
                       CONST DDGetScanLine               = 64
                       FUNCTION DDGetVerticalBlankStatus(BYVAL lpDD AS LONG, lpbIsInVB AS LONG) AS LONG
                        CONST DDGetVerticalBlankStatus    = 68
                        FUNCTION DDInitialize(BYVAL lpDD AS LONG, lpGUID AS STRING * 16) AS LONG
                         CONST DDInitialize                = 72
                         FUNCTION DDRestoreDisplayMode(BYVAL lpDD AS LONG) AS LONG
                          CONST DDRestoreDisplayMode        = 76
                          FUNCTION DDSetCooperativeLevel(BYVAL lpDD AS LONG, BYVAL hWnd AS LONG, BYVAL dwFlags AS DWORD) AS LONG
                           CONST DDSetCooperativeLevel       = 80
                           FUNCTION DDSetDisplayMode(BYVAL lpDD AS LONG, BYVAL dwWidth AS DWORD, BYVAL dwHeight AS DWORD, BYVAL dwBpp AS DWORD) AS LONG
                            CONST DDSetDisplayMode            = 84
                            FUNCTION DDWaitForVerticalBlank(BYVAL lpDD AS LONG, BYVAL dwFlags AS DWORD, BYVAL hEvent AS LONG) AS LONG
                             CONST DDWaitForVerticalBlank      = 88
' IDirectDraw2
                             FUNCTION DDGetAvailableVidMem(BYVAL lpDD AS LONG, lpDDSCaps AS DWORD, lpdwTotal AS DWORD, lpdwFree AS DWORD) AS LONG
                              CONST DD2GetAvailableVidMem       = 92

'***************************** continue from here **********************************
' IDirectDraw3
                              CONST DD3GetSurfaceFromDC         = 96
' IDirectDraw4
                              CONST DD3RestoreAllSurfaces       = 100
                              CONST DD3TestCooperativeLevel     = 104
                              CONST DD3GetDeviceIdentifier      = 108



' IDirectDrawPalette
' IUnknown methods
                              CONST DDPQueryInterface                   = 0
                              CONST DDPAddRef                           = 4
                              CONST DDPRelease                          = 8
' IDirectDrawPalette methods
                              CONST DDPGetCaps                          = 12
                              CONST DDPGetEntries                       = 16
                              CONST DDPInitialize                       = 20
                              CONST DDPSetEntries                       = 24

' IDirectDrawSurface
' IUnknown methods
                              CONST DDSQueryInterface                   = 0
                              CONST DDSAddRef                           = 4
                              CONST DDSRelease                          = 8
 ' IDirectDrawSurface methods
                              CONST DDSAddAttachedSurface               = 12
                              CONST DDSAddOverlayDirtyRect              = 16
                              CONST DDSBlt                              = 20
                              CONST DDSBltBatch                         = 24
                              CONST DDSBltFast                          = 28
                              CONST DDSDeleteAttachedSurface            = 32
                              CONST DDSEnumAttachedSurfaces             = 36
                              CONST DDSEnumOverlayZOrders               = 40
                              CONST DDSFlip                             = 44
                              CONST DDSGetAttachedSurface               = 48
                              CONST DDSGetBltStatus                     = 52
                              CONST DDSGetCaps                          = 56
                              CONST DDSGetClipper                       = 60
                              CONST DDSGetColorKey                      = 64
                              CONST DDSGetDC                            = 68
                              CONST DDSGetFlipStatus                    = 72
                              CONST DDSGetOverlayPosition               = 76
                              CONST DDSGetPalette                       = 80
                              CONST DDSGetPixelFormat                   = 84
                              CONST DDSGetSurfaceDesc                   = 88
                              CONST DDSInitialize                       = 92
                              CONST DDSIsLost                           = 96
                              CONST DDSLock                             = 100
                              CONST DDSReleaseDC                        = 104
                              CONST DDSRestore                          = 108
                              CONST DDSSetClipper                       = 112
                              CONST DDSSetColorKey                      = 116
                              CONST DDSSetOverlayPosition               = 120
                              CONST DDSSetPalette                       = 124
                              CONST DDSUnlock                           = 128
                              CONST DDSUpdateOverlay                    = 132
                              CONST DDSUpdateOverlayDisplay             = 136
                              CONST DDSUpdateOverlayZOrder              = 140
' IDirectDrawSurface2
                              CONST DDS2GetDDInterface                  = 144
                              CONST DDS2PageLock                        = 148
                              CONST DDS2PageUnlock                      = 152
' IDirectDrawSurface3
                              CONST DDS3SetSurfaceDesc                  = 156
' IDirectDrawSurface4
                              CONST DDS4SetPrivateData                  = 160
                              CONST DDS4GetPrivateData                  = 164
                              CONST DDS4FreePrivateData                 = 168
                              CONST DDS4GetUniquenessValue              = 172
                              CONST DDS4ChangeUniquenessValue           = 176


' IDirectDrawClipper
' IUnknown methods
                              CONST DDCQueryInterface                   = 0
                              CONST DDCAddRef                           = 4
                              CONST DDCRelease                          = 8
 'IDirectDrawClipper methods
                              CONST DDCGetClipList                      = 12
                              CONST DDCGetHWnd                          = 16
                              CONST DDCInitialize                       = 20
                              CONST DDCIsClipListChanged                = 24
                              CONST DDCSetClipList                      = 28
                              CONST DDCSetHWnd                          = 32


' IDirectDrawColorControl
' IUnknown methods
                              CONST DDCCQueryInterface                  = 0
                              CONST DDCCAddRef                          = 4
                              CONST DDCCRelease                         = 8
'IDirectDrawColorControl methods
                              CONST DDCCGetColorControls                = 12
                              CONST DDCCSetColorControls                = 16


' IDirectDrawGammaControl
' IUnknown methods
                              CONST DDGCQueryInterface                  = 0
                              CONST DDGCAddRef                          = 4
                              CONST DDGCRelease                         = 8
'IDirectDrawGammaControl methods
                              CONST DDGCGetGammaRamp                    = 12
                              CONST DDGCSetGammaRamp                    = 16

' IDirectDrawFactory
' IUnknown methods
                              CONST DDFQueryInterface           = 0
                              CONST DDFAddRef                   = 4
                              CONST DDFRelease                  = 8
' IDirectDrawFactory methods
                              CONST DDFCreateDirectDraw         = 12
                              CONST DDFDirectDrawEnumerate      = 16

'==============================================================================
'                       FLAGS, RETURN CODES, etc...
'==============================================================================
                              CONST DDSD_CAPS               = &h00000001' ddsCaps field is valid.
                              CONST DDSD_HEIGHT             = &h00000002' dwHeight field is valid.
                              CONST DDSD_WIDTH              = &h00000004' dwWidth field is valid.
                              CONST DDSD_PITCH              = &h00000008' lPitch is valid.
                              CONST DDSD_BACKBUFFERCOUNT    = &h00000020' dwBackBufferCount is valid.
                              CONST DDSD_ZBUFFERBITDEPTH    = &h00000040' dwZBufferBitDepth is valid.  (shouldnt be used in CONST DDSURFACEDESC2)
                              CONST DDSD_ALPHABITDEPTH      = &h00000080' dwAlphaBitDepth is valid.
                              CONST DDSD_LPSURFACE          = &h00000800' lpSurface is valid.
                              CONST DDSD_PIXELFORMAT        = &h00001000' ddpfPixelFormat is valid.
                              CONST DDSD_CKDESTOVERLAY      = &h00002000' ddckCKDestOverlay is valid.
                              CONST DDSD_CKDESTBLT          = &h00004000' ddckCKDestBlt is valid.
                              CONST DDSD_CKSRCOVERLAY       = &h00008000' ddckCKSrcOverlay is valid.
                              CONST DDSD_CKSRCBLT           = &h00010000' ddckCKSrcBlt is valid.
                              CONST DDSD_MIPMAPCOUNT        = &h00020000' dwMipMapCount is valid.
                              CONST DDSD_REFRESHRATE        = &h00040000' dwRefreshRate is valid
                              CONST DDSD_LINEARSIZE         = &h00080000' dwLinearSize is valid
                              CONST DDSD_TEXTURESTAGE       = &h00100000' dwTextureStage is valid
                              CONST DDSD_ALL                = &h001ff9ee' All input fields are valid.
                              CONST DDOSD_GUID              = &h00000001' guid field is valid.
                              CONST DDOSD_COMPRESSION_RATIO = &h00000002' dwCompressionRatio field is valid.
                              CONST DDOSD_SCAPS             = &h00000004' ddSCaps field is valid.
                              CONST DDOSD_OSCAPS            = &h00000008' ddOSCaps field is valid.
                              CONST DDOSD_ALL               = &h0000000f' All input fields are valid.
                              CONST DDOSDCAPS_OPTCOMPRESSED = &h00000001' The surface's optimized pixelformat is compressed
                              CONST DDOSDCAPS_OPTREORDERED  = &h00000002' The surface's optimized pixelformat is reordered
                              CONST DDOSDCAPS_MONOLITHICMIPMAP  = &h00000004' The opt surface is a monolithic mipmap

' The valid Surf caps:
'CONST DDSCAPS_SYSTEMMEMORY       = &h000000800'
'CONST DDSCAPS_VIDEOMEMORY        = &h000004000'
'CONST DDSCAPS_LOCALVIDMEM        = &h010000000'
'CONST DDSCAPS_NONLOCALVIDMEM     = &h020000000'
                              CONST DDOSDCAPS_VALIDSCAPS       = &h030004800'
                              CONST DDOSDCAPS_VALIDOSCAPS      = &h000000007' The valid OptSurf caps

                              CONST DDCOLOR_BRIGHTNESS          = &h00000001' lBrightness field is valid.
                              CONST DDCOLOR_CONTRAST            = &h00000002' lContrast field is valid.
                              CONST DDCOLOR_HUE                 = &h00000004' lHue field is valid.
                              CONST DDCOLOR_SATURATION          = &h00000008' lSaturation field is valid.
                              CONST DDCOLOR_SHARPNESS           = &h00000010' lSharpness field is valid.
                              CONST DDCOLOR_GAMMA               = &h00000020' lGamma field is valid.
                              CONST DDCOLOR_COLORENABLE         = &h00000040' lColorEnable field is valid.
' *
' * DIRECTDRAWSURFACE CAPABILITY FLAGS
' *
                              CONST DDSCAPS_RESERVED1           = &h00000001' This bit currently has no meaning.
                              CONST DDSCAPS_ALPHA               = &h00000002'
                              CONST DDSCAPS_BACKBUFFER          = &h00000004'
                              CONST DDSCAPS_COMPLEX             = &h00000008'
                              CONST DDSCAPS_FLIP                = &h00000010'
                              CONST DDSCAPS_FRONTBUFFER         = &h00000020'
                              CONST DDSCAPS_OFFSCREENPLAIN      = &h00000040'
                              CONST DDSCAPS_OVERLAY             = &h00000080'
                              CONST DDSCAPS_PALETTE             = &h00000100'
                              CONST DDSCAPS_PRIMARYSURFACE      = &h00000200'
                              CONST DDSCAPS_PRIMARYSURFACELEFT  = &h00000400'
                              CONST DDSCAPS_SYSTEMMEMORY        = &h00000800'
                              CONST DDSCAPS_TEXTURE             = &h00001000'
                              CONST DDSCAPS_3DDEVICE            = &h00002000'
                              CONST DDSCAPS_VIDEOMEMORY         = &h00004000'
                              CONST DDSCAPS_VISIBLE             = &h00008000'
                              CONST DDSCAPS_WRITEONLY           = &h00010000'
                              CONST DDSCAPS_ZBUFFER             = &h00020000'
                              CONST DDSCAPS_OWNDC               = &h00040000'
                              CONST DDSCAPS_LIVEVIDEO           = &h00080000'
                              CONST DDSCAPS_HWCODEC             = &h00100000'
                              CONST DDSCAPS_MODEX               = &h00200000'
                              CONST DDSCAPS_MIPMAP              = &h00400000'
                              CONST DDSCAPS_RESERVED2           = &h00800000'
                              CONST DDSCAPS_ALLOCONLOAD         = &h04000000'
                              CONST DDSCAPS_VIDEOPORT           = &h08000000'
                              CONST DDSCAPS_LOCALVIDMEM         = &h10000000'
                              CONST DDSCAPS_NONLOCALVIDMEM      = &h20000000'
                              CONST DDSCAPS_STANDARDVGAMODE     = &h40000000'
                              CONST DDSCAPS_OPTIMIZED           = &h80000000'
                              CONST DDSCAPS2_HARDWAREDEINTERLACE = &h00000002'
                              CONST DDSCAPS2_HINTDYNAMIC        = &h00000004'
                              CONST DDSCAPS2_HINTSTATIC         = &h00000008'
                              CONST DDSCAPS2_TEXTUREMANAGE      = &h00000010'
                              CONST DDSCAPS2_RESERVED1          = &h00000020'
                              CONST DDSCAPS2_RESERVED2          = &h00000040'
                              CONST DDSCAPS2_OPAQUE             = &h00000080'
                              CONST DDSCAPS2_HINTANTIALIASING   = &h00000100'
' *
' * DIRECTDRAW DRIVER CAPABILITY FLAGS
' *
                              CONST DDCAPS_3D                       = &h000000001'
                              CONST DDCAPS_ALIGNBOUNDARYDEST        = &h000000002'
                              CONST DDCAPS_ALIGNSIZEDEST            = &h000000004'
                              CONST DDCAPS_ALIGNBOUNDARYSRC         = &h000000008'
                              CONST DDCAPS_ALIGNSIZESRC             = &h000000010'
                              CONST DDCAPS_ALIGNSTRIDE              = &h000000020'
                              CONST DDCAPS_BLT                      = &h000000040'
                              CONST DDCAPS_BLTQUEUE                 = &h000000080'
                              CONST DDCAPS_BLTFOURCC                = &h000000100'
                              CONST DDCAPS_BLTSTRETCH               = &h000000200'
                              CONST DDCAPS_GDI                      = &h000000400'
                              CONST DDCAPS_OVERLAY                  = &h000000800'
                              CONST DDCAPS_OVERLAYCANTCLIP          = &h000001000'
                              CONST DDCAPS_OVERLAYFOURCC            = &h000002000'
                              CONST DDCAPS_OVERLAYSTRETCH           = &h000004000'
                              CONST DDCAPS_PALETTE                  = &h000008000'
                              CONST DDCAPS_PALETTEVSYNC             = &h000010000'
                              CONST DDCAPS_READSCANLINE             = &h000020000'
                              CONST DDCAPS_STEREOVIEW               = &h000040000'
                              CONST DDCAPS_VBI                      = &h000080000'
                              CONST DDCAPS_ZBLTS                    = &h000100000'
                              CONST DDCAPS_ZOVERLAYS                = &h000200000'
                              CONST DDCAPS_COLORKEY                 = &h000400000'
                              CONST DDCAPS_ALPHA                    = &h000800000'
                              CONST DDCAPS_COLORKEYHWASSIST         = &h001000000'
                              CONST DDCAPS_NOHARDWARE               = &h002000000'
                              CONST DDCAPS_BLTCOLORFILL             = &h004000000'
                              CONST DDCAPS_BANKSWITCHED             = &h008000000'
                              CONST DDCAPS_BLTDEPTHFILL             = &h010000000'
                              CONST DDCAPS_CANCLIP                  = &h020000000'
                              CONST DDCAPS_CANCLIPSTRETCHED         = &h040000000'
                              CONST DDCAPS_CANBLTSYSMEM             = &h080000000'

' *
' * MORE DIRECTDRAW DRIVER CAPABILITY FLAGS (dwCaps2)
' *
                              CONST DDCAPS2_CERTIFIED                 = &h000000001
                              CONST DDCAPS2_NO2DDURING3DSCENE         = &h000000002
                              CONST DDCAPS2_VIDEOPORT                 = &h000000004
                              CONST DDCAPS2_AUTOFLIPOVERLAY           = &h000000008
                              CONST DDCAPS2_CANBOBINTERLEAVED         = &h000000010
                              CONST DDCAPS2_CANBOBNONINTERLEAVED      = &h000000020
                              CONST DDCAPS2_COLORCONTROLOVERLAY       = &h000000040
                              CONST DDCAPS2_COLORCONTROLPRIMARY       = &h000000080
                              CONST DDCAPS2_CANDROPZ16BIT             = &h000000100
                              CONST DDCAPS2_NONLOCALVIDMEM            = &h000000200
                              CONST DDCAPS2_NONLOCALVIDMEMCAPS        = &h000000400
                              CONST DDCAPS2_NOPAGELOCKREQUIRED        = &h000000800
                              CONST DDCAPS2_WIDESURFACES              = &h000001000
                              CONST DDCAPS2_CANFLIPODDEVEN            = &h000002000
                              CONST DDCAPS2_CANBOBHARDWARE            = &h000004000
                              CONST DDCAPS2_COPYFOURCC                = &h000008000
                              CONST DDCAPS2_PRIMARYGAMMA              = &h000020000
                              CONST DDCAPS2_CANRENDERWINDOWED         = &h000080000
                              CONST DDCAPS2_CANCALIBRATEGAMMA         = &h000100000
                              CONST DDCAPS2_FLIPINTERVAL              = &h000200000
                              CONST DDCAPS2_FLIPNOVSYNC               = &h000400000
' *
' * DIRECTDRAW FX ALPHA CAPABILITY FLAGS
' *
                              CONST DDFXALPHACAPS_BLTALPHAEDGEBLEND         = &h00000001
                              CONST DDFXALPHACAPS_BLTALPHAPIXELS            = &h00000002
                              CONST DDFXALPHACAPS_BLTALPHAPIXELSNEG         = &h00000004
                              CONST DDFXALPHACAPS_BLTALPHASURFACES          = &h00000008
                              CONST DDFXALPHACAPS_BLTALPHASURFACESNEG       = &h00000010
                              CONST DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND     = &h00000020
                              CONST DDFXALPHACAPS_OVERLAYALPHAPIXELS        = &h00000040
                              CONST DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG     = &h00000080
                              CONST DDFXALPHACAPS_OVERLAYALPHASURFACES      = &h00000100
                              CONST DDFXALPHACAPS_OVERLAYALPHASURFACESNEG   = &h00000200
' *
' * DIRECTDRAW FX CAPABILITY FLAGS
' *
                              CONST DDFXCAPS_BLTARITHSTRETCHY       = &h00000020
                              CONST DDFXCAPS_BLTARITHSTRETCHYN      = &h00000010
                              CONST DDFXCAPS_BLTMIRRORLEFTRIGHT     = &h00000040
                              CONST DDFXCAPS_BLTMIRRORUPDOWN        = &h00000080
                              CONST DDFXCAPS_BLTROTATION            = &h00000100
                              CONST DDFXCAPS_BLTROTATION90          = &h00000200
                              CONST DDFXCAPS_BLTSHRINKX             = &h00000400
                              CONST DDFXCAPS_BLTSHRINKXN            = &h00000800
                              CONST DDFXCAPS_BLTSHRINKY             = &h00001000
                              CONST DDFXCAPS_BLTSHRINKYN            = &h00002000
                              CONST DDFXCAPS_BLTSTRETCHX            = &h00004000
                              CONST DDFXCAPS_BLTSTRETCHXN           = &h00008000
                              CONST DDFXCAPS_BLTSTRETCHY            = &h00010000
                              CONST DDFXCAPS_BLTSTRETCHYN           = &h00020000
                              CONST DDFXCAPS_OVERLAYARITHSTRETCHY   = &h00040000
                              CONST DDFXCAPS_OVERLAYARITHSTRETCHYN  = &h00000008
                              CONST DDFXCAPS_OVERLAYSHRINKX         = &h00080000
                              CONST DDFXCAPS_OVERLAYSHRINKXN        = &h00100000
                              CONST DDFXCAPS_OVERLAYSHRINKY         = &h00200000
                              CONST DDFXCAPS_OVERLAYSHRINKYN        = &h00400000
                              CONST DDFXCAPS_OVERLAYSTRETCHX        = &h00800000
                              CONST DDFXCAPS_OVERLAYSTRETCHXN       = &h01000000
                              CONST DDFXCAPS_OVERLAYSTRETCHY        = &h02000000
                              CONST DDFXCAPS_OVERLAYSTRETCHYN       = &h04000000
                              CONST DDFXCAPS_OVERLAYMIRRORLEFTRIGHT = &h08000000
                              CONST DDFXCAPS_OVERLAYMIRRORUPDOWN    = &h10000000
                              CONST DDFXCAPS_BLTALPHA               = &h00000001
                              CONST DDFXCAPS_BLTTRANSFORM           = &h00000002
                              CONST DDFXCAPS_BLTFILTER              = DDFXCAPS_BLTARITHSTRETCHY'
                              CONST DDFXCAPS_OVERLAYALPHA           = &h000000004
                              CONST DDFXCAPS_OVERLAYTRANSFORM       = &h020000000
                              CONST DDFXCAPS_OVERLAYFILTER          = DDFXCAPS_OVERLAYARITHSTRETCHY'
' *
' * DIRECTDRAW STEREO VIEW CAPABILITIES
' *
                              CONST DDSVCAPS_ENIGMA                 = &h00000001
                              CONST DDSVCAPS_FLICKER                = &h00000002
                              CONST DDSVCAPS_REDBLUE                = &h00000004
                              CONST DDSVCAPS_SPLIT                  = &h00000008
' *
' * DIRECTDRAWPALETTE CAPABILITIES
' *
                              CONST DDPCAPS_4BIT                    = &h00000001
                              CONST DDPCAPS_8BITENTRIES             = &h00000002
                              CONST DDPCAPS_8BIT                    = &h00000004
                              CONST DDPCAPS_INITIALIZE              = &h00000008
                              CONST DDPCAPS_PRIMARYSURFACE          = &h00000010
                              CONST DDPCAPS_PRIMARYSURFACELEFT      = &h00000020
                              CONST DDPCAPS_ALLOW256                = &h00000040
                              CONST DDPCAPS_VSYNC                   = &h00000080
                              CONST DDPCAPS_1BIT                    = &h00000100
                              CONST DDPCAPS_2BIT                    = &h00000200
                              CONST DDPCAPS_ALPHA                   = &h00000400

' * DIRECTDRAWSURFACE SETPALETTE CONSTANTS
                              CONST DDSPD_IUNKNOWNPOINTER           = &h00000001
                              CONST DDSPD_VOLATILE                  = &h00000002
' * DIRECTDRAW BITDEPTH CONSTANTS
' * NOTE:  These are only used to indicate supported bit depths.   These
' * are flags only, they are not to be used as an actual bit depth.   The
' * absolute numbers 1, 2, 4, 8, 16, 24 and 32 are used to indicate actual
' * bit depths in a surface or for changing the display mode.
                              CONST DDBD_1                                 = &h00004000
                              CONST DDBD_2                                  = &h00002000
                              CONST DDBD_4                                  = &h00001000
                              CONST DDBD_8                                  = &h00000800
                              CONST DDBD_16                                 = &h00000400
                              CONST DDBD_24                                 = &h00000200
                              CONST DDBD_32                                 = &h00000100
' * DIRECTDRAWSURFACE SET/GET COLOR KEY FLAGS
                              CONST DDCKEY_COLORSPACE                       = &h00000001
                              CONST DDCKEY_DESTBLT                          = &h00000002
                              CONST DDCKEY_DESTOVERLAY                      = &h00000004
                              CONST DDCKEY_SRCBLT                           = &h00000008
                              CONST DDCKEY_SRCOVERLAY                       = &h00000010
' * DIRECTDRAW COLOR KEY CAPABILITY FLAGS
                              CONST DDCKEYCAPS_DESTBLT                      = &h00000001
                              CONST DDCKEYCAPS_DESTBLTCLRSPACE              = &h00000002
                              CONST DDCKEYCAPS_DESTBLTCLRSPACEYUV           = &h00000004
                              CONST DDCKEYCAPS_DESTBLTYUV                   = &h00000008
                              CONST DDCKEYCAPS_DESTOVERLAY                  = &h00000010
                              CONST DDCKEYCAPS_DESTOVERLAYCLRSPACE          = &h00000020
                              CONST DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV       = &h00000040
                              CONST DDCKEYCAPS_DESTOVERLAYONEACTIVE         = &h00000080
                              CONST DDCKEYCAPS_DESTOVERLAYYUV               = &h00000100
                              CONST DDCKEYCAPS_SRCBLT                       = &h00000200
                              CONST DDCKEYCAPS_SRCBLTCLRSPACE               = &h00000400
                              CONST DDCKEYCAPS_SRCBLTCLRSPACEYUV            = &h00000800
                              CONST DDCKEYCAPS_SRCBLTYUV                    = &h00001000
                              CONST DDCKEYCAPS_SRCOVERLAY                   = &h00002000
                              CONST DDCKEYCAPS_SRCOVERLAYCLRSPACE           = &h00004000
                              CONST DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV        = &h00008000
                              CONST DDCKEYCAPS_SRCOVERLAYONEACTIVE          = &h00010000
                              CONST DDCKEYCAPS_SRCOVERLAYYUV                = &h00020000
                              CONST DDCKEYCAPS_NOCOSTOVERLAY                = &h00040000

' *
' * DIRECTDRAW PIXELFORMAT FLAGS
' *
                              CONST DDPF_ALPHAPIXELS                        = &h00000001
                              CONST DDPF_ALPHA                              = &h00000002
                              CONST DDPF_FOURCC                             = &h00000004
                              CONST DDPF_PALETTEINDEXED4                    = &h00000008
                              CONST DDPF_PALETTEINDEXEDTO8                  = &h00000010
                              CONST DDPF_PALETTEINDEXED8                    = &h00000020
                              CONST DDPF_RGB                                = &h00000040
                              CONST DDPF_COMPRESSED                         = &h00000080
                              CONST DDPF_RGBTOYUV                           = &h00000100
                              CONST DDPF_YUV                                = &h00000200
                              CONST DDPF_ZBUFFER                            = &h00000400
                              CONST DDPF_PALETTEINDEXED1                    = &h00000800
                              CONST DDPF_PALETTEINDEXED2                    = &h00001000
                              CONST DDPF_ZPIXELS                            = &h00002000
                              CONST DDPF_STENCILBUFFER                      = &h00004000
                              CONST DDPF_ALPHAPREMULT                       = &h00008000
                              CONST DDPF_LUMINANCE                          = &h00020000
                              CONST DDPF_BUMPLUMINANCE                      = &h00040000
                              CONST DDPF_BUMPDUDV                           = &h00080000
' * DIRECTDRAW ENUMSURFACES FLAGS
                              CONST DDENUMSURFACES_ALL                      = &h00000001
                              CONST DDENUMSURFACES_MATCH                    = &h00000002
                              CONST DDENUMSURFACES_NOMATCH                  = &h00000004
                              CONST DDENUMSURFACES_CANBECREATED             = &h00000008
                              CONST DDENUMSURFACES_DOESEXIST                = &h00000010
' * DIRECTDRAW SETDISPLAYMODE FLAGS
                              CONST DDSDM_STANDARDVGAMODE                   = &h00000001
' * DIRECTDRAW ENUMDISPLAYMODES FLAGS
                              CONST DDEDM_REFRESHRATES                      = &h00000001
                              CONST DDEDM_STANDARDVGAMODES                  = &h00000002
' * DIRECTDRAW SETCOOPERATIVELEVEL FLAGS
                              CONST DDSCL_FULLSCREEN                        = &h00000001
                              CONST DDSCL_ALLOWREBOOT                       = &h00000002
                              CONST DDSCL_NOWINDOWCHANGES                   = &h00000004
                              CONST DDSCL_NORMAL                            = &h00000008
                              CONST DDSCL_EXCLUSIVE                         = &h00000010
                              CONST DDSCL_ALLOWMODEX                        = &h00000040
                              CONST DDSCL_SETFOCUSWINDOW                    = &h00000080
                              CONST DDSCL_SETDEVICEWINDOW                   = &h00000100
                              CONST DDSCL_CREATEDEVICEWINDOW                = &h00000200
                              CONST DDSCL_MULTITHREADED                     = &h00000400
                              CONST DDSCL_FPUSETUP                          = &h00000800
' *
' * DIRECTDRAW BLT FLAGS
' *
                              CONST DDBLT_ALPHADEST                         = &h00000001
                              CONST DDBLT_ALPHADESTCONSTOVERRIDE            = &h00000002
                              CONST DDBLT_ALPHADESTNEG                      = &h00000004
                              CONST DDBLT_ALPHADESTSURFACEOVERRIDE          = &h00000008
                              CONST DDBLT_ALPHAEDGEBLEND                    = &h00000010
                              CONST DDBLT_ALPHASRC                          = &h00000020
                              CONST DDBLT_ALPHASRCCONSTOVERRIDE             = &h00000040
                              CONST DDBLT_ALPHASRCNEG                       = &h00000080
                              CONST DDBLT_ALPHASRCSURFACEOVERRIDE           = &h00000100
                              CONST DDBLT_ASYNC                             = &h00000200
                              CONST DDBLT_COLORFILL                         = &h00000400
                              CONST DDBLT_DDFX                              = &h00000800
                              CONST DDBLT_DDROPS                            = &h00001000
                              CONST DDBLT_KEYDEST                           = &h00002000
                              CONST DDBLT_KEYDESTOVERRIDE                   = &h00004000
                              CONST DDBLT_KEYSRC                            = &h00008000
                              CONST DDBLT_KEYSRCOVERRIDE                    = &h00010000
                              CONST DDBLT_ROP                               = &h00020000
                              CONST DDBLT_ROTATIONANGLE                     = &h00040000
                              CONST DDBLT_ZBUFFER                           = &h00080000
                              CONST DDBLT_ZBUFFERDESTCONSTOVERRIDE          = &h00100000
                              CONST DDBLT_ZBUFFERDESTOVERRIDE               = &h00200000
                              CONST DDBLT_ZBUFFERSRCCONSTOVERRIDE           = &h00400000
                              CONST DDBLT_ZBUFFERSRCOVERRIDE                = &h00800000
                              CONST DDBLT_WAIT                              = &h01000000
                              CONST DDBLT_DEPTHFILL                         = &h02000000

' *
' * BLTFAST FLAGS
' *
                              CONST DDBLTFAST_NOCOLORKEY                    = &h00000000
                              CONST DDBLTFAST_SRCCOLORKEY                   = &h00000001
                              CONST DDBLTFAST_DESTCOLORKEY                  = &h00000002
                              CONST DDBLTFAST_WAIT                          = &h00000010
' * FLIP FLAGS
                              CONST DDFLIP_WAIT                             = &h00000001
                              CONST DDFLIP_EVEN                             = &h00000002
                              CONST DDFLIP_ODD                              = &h00000004
                              CONST DDFLIP_NOVSYNC                          = &h00000008
                              CONST DDFLIP_INTERVAL2                        = &h02000000
                              CONST DDFLIP_INTERVAL3                        = &h03000000
                              CONST DDFLIP_INTERVAL4                        = &h04000000
' * DIRECTDRAW SURFACE OVERLAY FLAGS
                              CONST DDOVER_ALPHADEST                        = &h00000001
                              CONST DDOVER_ALPHADESTCONSTOVERRIDE           = &h00000002
                              CONST DDOVER_ALPHADESTNEG                     = &h00000004
                              CONST DDOVER_ALPHADESTSURFACEOVERRIDE         = &h00000008
                              CONST DDOVER_ALPHAEDGEBLEND                   = &h00000010
                              CONST DDOVER_ALPHASRC                         = &h00000020
                              CONST DDOVER_ALPHASRCCONSTOVERRIDE            = &h00000040
                              CONST DDOVER_ALPHASRCNEG                      = &h00000080
                              CONST DDOVER_ALPHASRCSURFACEOVERRIDE          = &h00000100
                              CONST DDOVER_HIDE                             = &h00000200
                              CONST DDOVER_KEYDEST                          = &h00000400
                              CONST DDOVER_KEYDESTOVERRIDE                  = &h00000800
                              CONST DDOVER_KEYSRC                           = &h00001000
                              CONST DDOVER_KEYSRCOVERRIDE                   = &h00002000
                              CONST DDOVER_SHOW                             = &h00004000
                              CONST DDOVER_ADDDIRTYRECT                     = &h00008000
                              CONST DDOVER_REFRESHDIRTYRECTS                = &h00010000
                              CONST DDOVER_REFRESHALL                       = &h00020000
                              CONST DDOVER_DDFX                             = &h00080000
                              CONST DDOVER_AUTOFLIP                         = &h00100000
                              CONST DDOVER_BOB                              = &h00200000
                              CONST DDOVER_OVERRIDEBOBWEAVE                 = &h00400000
                              CONST DDOVER_INTERLEAVED                      = &h00800000
                              CONST DDOVER_BOBHARDWARE                      = &h01000000
' *
' * DIRECTDRAWSURFACE LOCK FLAGS
' *
                              CONST DDLOCK_SURFACEMEMORYPTR                 = &h00000000    ' default
                              CONST DDLOCK_WAIT                             = &h00000001
                              CONST DDLOCK_EVENT                            = &h00000002
                              CONST DDLOCK_READONLY                         = &h00000010
                              CONST DDLOCK_WRITEONLY                        = &h00000020
                              CONST DDLOCK_NOSYSLOCK                        = &h00000800
' * DIRECTDRAWSURFACE BLT FX FLAGS
                              CONST DDBLTFX_ARITHSTRETCHY                   = &h00000001
                              CONST DDBLTFX_MIRRORLEFTRIGHT                 = &h00000002
                              CONST DDBLTFX_MIRRORUPDOWN                    = &h00000004
                              CONST DDBLTFX_NOTEARING                       = &h00000008
                              CONST DDBLTFX_ROTATE180                       = &h00000010
                              CONST DDBLTFX_ROTATE270                       = &h00000020
                              CONST DDBLTFX_ROTATE90                        = &h00000040
                              CONST DDBLTFX_ZBUFFERRANGE                    = &h00000080
                              CONST DDBLTFX_ZBUFFERBASEDEST                 = &h00000100
' * DIRECTDRAWSURFACE OVERLAY FX FLAGS
                              CONST DDOVERFX_ARITHSTRETCHY                   = &h00000001
                              CONST DDOVERFX_MIRRORLEFTRIGHT                 = &h00000002
                              CONST DDOVERFX_MIRRORUPDOWN                    = &h00000004
' * Flags for dwDDFX member of DDSPRITEFX structure
                              CONST DDSPRITEFX_AFFINETRANSFORM              = &h00000001
                              CONST DDSPRITEFX_RGBASCALING                  = &h00000002
                              CONST DDSPRITEFX_DEGRADERGBASCALING           = &h00000004
                              CONST DDSPRITEFX_BILINEARFILTER               = &h00000008
                              CONST DDSPRITEFX_BLURFILTER                   = &h00000010
                              CONST DDSPRITEFX_FLATFILTER                   = &h00000020
                              CONST DDSPRITEFX_DEGRADEFILTER                = &h00000040
' * DIRECTDRAW WAITFORVERTICALBLANK FLAGS
                              CONST DDWAITVB_BLOCKBEGIN                     = &h00000001
                              CONST DDWAITVB_BLOCKBEGINEVENT                = &h00000002
                              CONST DDWAITVB_BLOCKEND                       = &h00000004
' *
' * DIRECTDRAW GETFLIPSTATUS FLAGS
                              CONST DDGFS_CANFLIP                           = &h00000001
                              CONST DDGFS_ISFLIPDONE                        = &h00000002
' * DIRECTDRAW GETBLTSTATUS FLAGS
                              CONST DDGBS_CANBLT                            = &h00000001
                              CONST DDGBS_ISBLTDONE                         = &h00000002
' * DIRECTDRAW ENUMOVERLAYZORDER FLAGS
                              CONST DDENUMOVERLAYZ_BACKTOFRONT              = &h00000000
                              CONST DDENUMOVERLAYZ_FRONTTOBACK              = &h00000001
' * DIRECTDRAW UPDATEOVERLAYZORDER FLAGS
                              CONST DDOVERZ_SENDTOFRONT                     = &h00000000
                              CONST DDOVERZ_SENDTOBACK                      = &h00000001
                              CONST DDOVERZ_MOVEFORWARD                     = &h00000002
                              CONST DDOVERZ_MOVEBACKWARD                    = &h00000003
                              CONST DDOVERZ_INSERTINFRONTOF                 = &h00000004
                              CONST DDOVERZ_INSERTINBACKOF                  = &h00000005
' * DIRECTDRAW SETGAMMARAMP FLAGS
                              CONST DDSGR_CALIBRATE                         = &h00000001
' * DIRECTDRAW RETURN CODES
                              CONST DD_OK                                   = &h0
                              CONST DD_FALSE                                = S_FALSE
' * DIRECTDRAW ENUMCALLBACK RETURN VALUES
                              CONST DDENUMRET_CANCEL                        = &h0
                              CONST DDENUMRET_OK                            = &h1
' * DIRECTDRAW ERRORS
                              CONST MAKE_DDHRESULT                      = &h088760000
                              CONST DDERR_ALREADYINITIALIZED            = MAKE_DDHRESULT + &h5
                              CONST DDERR_CANNOTATTACHSURFACE           = MAKE_DDHRESULT + &h10
                              CONST DDERR_CANNOTDETACHSURFACE           = MAKE_DDHRESULT + &h20
                              CONST DDERR_CURRENTLYNOTAVAIL             = MAKE_DDHRESULT + &h40
                              CONST DDERR_EXCEPTION                     = MAKE_DDHRESULT + &h55
                              CONST DDERR_GENERIC                       = E_FAIL
                              CONST DDERR_HEIGHTALIGN                   = MAKE_DDHRESULT + &h90
                              CONST DDERR_INCOMPATIBLEPRIMARY           = MAKE_DDHRESULT + &h95
                              CONST DDERR_INVALIDCAPS                   = MAKE_DDHRESULT + &h100
                              CONST DDERR_INVALIDCLIPLIST               = MAKE_DDHRESULT + &h110
                              CONST DDERR_INVALIDMODE                   = MAKE_DDHRESULT + &h120
                              CONST DDERR_INVALIDOBJECT                 = MAKE_DDHRESULT + &h130
                              CONST DDERR_INVALIDPARAMS                 = E_INVALIDARG
                              CONST DDERR_INVALIDPIXELFORMAT            = MAKE_DDHRESULT + &h145
                              CONST DDERR_INVALIDRECT                   = MAKE_DDHRESULT + &h150
                              CONST DDERR_LOCKEDSURFACES                = MAKE_DDHRESULT + &h160
                              CONST DDERR_NO3D                          = MAKE_DDHRESULT + &h170
                              CONST DDERR_NOALPHAHW                     = MAKE_DDHRESULT + &h180
                              CONST DDERR_NOCLIPLIST                    = MAKE_DDHRESULT + &h205
                              CONST DDERR_NOCOLORCONVHW                 = MAKE_DDHRESULT + &h210
                              CONST DDERR_NOCOOPERATIVELEVELSET         = MAKE_DDHRESULT + &h212
                              CONST DDERR_NOCOLORKEY                    = MAKE_DDHRESULT + &h215
                              CONST DDERR_NOCOLORKEYHW                  = MAKE_DDHRESULT + &h220
                              CONST DDERR_NODIRECTDRAWSUPPORT           = MAKE_DDHRESULT + &h222
                              CONST DDERR_NOEXCLUSIVEMODE               = MAKE_DDHRESULT + &h225
                              CONST DDERR_NOFLIPHW                      = MAKE_DDHRESULT + &h230
                              CONST DDERR_NOGDI                         = MAKE_DDHRESULT + &h240
                              CONST DDERR_NOMIRRORHW                    = MAKE_DDHRESULT + &h250
                              CONST DDERR_NOTFOUND                      = MAKE_DDHRESULT + &h255
                              CONST DDERR_NOOVERLAYHW                   = MAKE_DDHRESULT + &h260
                              CONST DDERR_OVERLAPPINGRECTS              = MAKE_DDHRESULT + &h270
                              CONST DDERR_NORASTEROPHW                  = MAKE_DDHRESULT + &h280
                              CONST DDERR_NOROTATIONHW                  = MAKE_DDHRESULT + &h290
                              CONST DDERR_NOSTRETCHHW                   = MAKE_DDHRESULT + &h310
                              CONST DDERR_NOT4BITCOLOR                  = MAKE_DDHRESULT + &h316
                              CONST DDERR_NOT4BITCOLORINDEX             = MAKE_DDHRESULT + &h317
                              CONST DDERR_NOT8BITCOLOR                  = MAKE_DDHRESULT + &h320
                              CONST DDERR_NOTEXTUREHW                   = MAKE_DDHRESULT + &h330
                              CONST DDERR_NOVSYNCHW                     = MAKE_DDHRESULT + &h335
                              CONST DDERR_NOZBUFFERHW                   = MAKE_DDHRESULT + &h340
                              CONST DDERR_NOZOVERLAYHW                  = MAKE_DDHRESULT + &h350
                              CONST DDERR_OUTOFCAPS                     = MAKE_DDHRESULT + &h360
                              CONST DDERR_OUTOFMEMORY                   = E_OUTOFMEMORY
                              CONST DDERR_OUTOFVIDEOMEMORY              = MAKE_DDHRESULT + &h380
                              CONST DDERR_OVERLAYCANTCLIP               = MAKE_DDHRESULT + &h382
                              CONST DDERR_OVERLAYCOLORKEYONLYONEACTIVE  = MAKE_DDHRESULT + &h384
                              CONST DDERR_PALETTEBUSY                   = MAKE_DDHRESULT + &h387
                              CONST DDERR_COLORKEYNOTSET                = MAKE_DDHRESULT + &h400
                              CONST DDERR_SURFACEALREADYATTACHED        = MAKE_DDHRESULT + &h410
                              CONST DDERR_SURFACEALREADYDEPENDENT       = MAKE_DDHRESULT + &h420
                              CONST DDERR_SURFACEBUSY                   = MAKE_DDHRESULT + &h430
                              CONST DDERR_CANTLOCKSURFACE               = MAKE_DDHRESULT + &h435
                              CONST DDERR_SURFACEISOBSCURED             = MAKE_DDHRESULT + &h440
                              CONST DDERR_SURFACELOST                   = MAKE_DDHRESULT + &h450
                              CONST DDERR_SURFACENOTATTACHED            = MAKE_DDHRESULT + &h460
                              CONST DDERR_TOOBIGHEIGHT                  = MAKE_DDHRESULT + &h470
                              CONST DDERR_TOOBIGSIZE                    = MAKE_DDHRESULT + &h480
                              CONST DDERR_TOOBIGWIDTH                   = MAKE_DDHRESULT + &h490
                              CONST DDERR_UNSUPPORTED                   = E_NOTIMPL
                              CONST DDERR_UNSUPPORTEDFORMAT             = MAKE_DDHRESULT + &h510
                              CONST DDERR_UNSUPPORTEDMASK               = MAKE_DDHRESULT + &h520
                              CONST DDERR_INVALIDSTREAM                 = MAKE_DDHRESULT + &h521
                              CONST DDERR_VERTICALBLANKINPROGRESS       = MAKE_DDHRESULT + &h537
                              CONST DDERR_WASSTILLDRAWING               = MAKE_DDHRESULT + &h540
                              CONST DDERR_XALIGN                        = MAKE_DDHRESULT + &h560
                              CONST DDERR_INVALIDDIRECTDRAWGUID         = MAKE_DDHRESULT + &h561
                              CONST DDERR_DIRECTDRAWALREADYCREATED      = MAKE_DDHRESULT + &h562
                              CONST DDERR_NODIRECTDRAWHW                = MAKE_DDHRESULT + &h563
                              CONST DDERR_PRIMARYSURFACEALREADYEXISTS   = MAKE_DDHRESULT + &h564
                              CONST DDERR_NOEMULATION                   = MAKE_DDHRESULT + &h565
                              CONST DDERR_REGIONTOOSMALL                = MAKE_DDHRESULT + &h566
                              CONST DDERR_CLIPPERISUSINGHWND            = MAKE_DDHRESULT + &h567
                              CONST DDERR_NOCLIPPERATTACHED             = MAKE_DDHRESULT + &h568
                              CONST DDERR_NOHWND                        = MAKE_DDHRESULT + &h569
                              CONST DDERR_HWNDSUBCLASSED                = MAKE_DDHRESULT + &h570
                              CONST DDERR_HWNDALREADYSET                = MAKE_DDHRESULT + &h571
                              CONST DDERR_NOPALETTEATTACHED             = MAKE_DDHRESULT + &h572
                              CONST DDERR_NOPALETTEHW                   = MAKE_DDHRESULT + &h573
                              CONST DDERR_BLTFASTCANTCLIP               = MAKE_DDHRESULT + &h574
                              CONST DDERR_NOBLTHW                       = MAKE_DDHRESULT + &h575
                              CONST DDERR_NODDROPSHW                    = MAKE_DDHRESULT + &h576
                              CONST DDERR_OVERLAYNOTVISIBLE             = MAKE_DDHRESULT + &h577
                              CONST DDERR_NOOVERLAYDEST                 = MAKE_DDHRESULT + &h578
                              CONST DDERR_INVALIDPOSITION               = MAKE_DDHRESULT + &h579
                              CONST DDERR_NOTAOVERLAYSURFACE            = MAKE_DDHRESULT + &h580
                              CONST DDERR_EXCLUSIVEMODEALREADYSET       = MAKE_DDHRESULT + &h581
                              CONST DDERR_NOTFLIPPABLE                  = MAKE_DDHRESULT + &h582
                              CONST DDERR_CANTDUPLICATE                 = MAKE_DDHRESULT + &h583
                              CONST DDERR_NOTLOCKED                     = MAKE_DDHRESULT + &h584
                              CONST DDERR_CANTCREATEDC                  = MAKE_DDHRESULT + &h585
                              CONST DDERR_NODC                          = MAKE_DDHRESULT + &h586
                              CONST DDERR_WRONGMODE                     = MAKE_DDHRESULT + &h587
                              CONST DDERR_IMPLICITLYCREATED             = MAKE_DDHRESULT + &h588
                              CONST DDERR_NOTPALETTIZED                 = MAKE_DDHRESULT + &h589
                              CONST DDERR_UNSUPPORTEDMODE               = MAKE_DDHRESULT + &h590
                              CONST DDERR_NOMIPMAPHW                    = MAKE_DDHRESULT + &h591
                              CONST DDERR_INVALIDSURFACETYPE            = MAKE_DDHRESULT + &h592
                              CONST DDERR_NOOPTIMIZEHW                  = MAKE_DDHRESULT + &h600
                              CONST DDERR_NOTLOADED                     = MAKE_DDHRESULT + &h601
                              CONST DDERR_NOFOCUSWINDOW                 = MAKE_DDHRESULT + &h602
                              CONST DDERR_DCALREADYCREATED              = MAKE_DDHRESULT + &h620
                              CONST DDERR_NONONLOCALVIDMEM              = MAKE_DDHRESULT + &h630
                              CONST DDERR_CANTPAGELOCK                  = MAKE_DDHRESULT + &h640
                              CONST DDERR_CANTPAGEUNLOCK                = MAKE_DDHRESULT + &h660
                              CONST DDERR_NOTPAGELOCKED                 = MAKE_DDHRESULT + &h680
                              CONST DDERR_MOREDATA                      = MAKE_DDHRESULT + &h690
                              CONST DDERR_EXPIRED                       = MAKE_DDHRESULT + &h691
                              CONST DDERR_VIDEONOTACTIVE                = MAKE_DDHRESULT + &h695
                              CONST DDERR_DEVICEDOESNTOWNSURFACE        = MAKE_DDHRESULT + &h699
                              CONST DDERR_NOTINITIALIZED                = CO_E_NOTINITIALIZED

' * Flags for DirectDrawEnumerateEx
                              CONST DDENUM_ATTACHEDSECONDARYDEVICES     = &h00000001
                              CONST DDENUM_DETACHEDSECONDARYDEVICES     = &h00000002
                              CONST DDENUM_NONDISPLAYDEVICES            = &h00000004
                              $REGSTR_KEY_DDHW_DESCRIPTION = "<'Description'>"
                              $REGSTR_KEY_DDHW_DRIVERNAME  = "<'DriverName'>"
                              $REGSTR_PATH_DDHW            = "<'Hardware\DirectDrawDrivers'>"
                              CONST DDCREATE_HARDWAREONLY       = &h00000001
                              CONST DDCREATE_EMULATIONONLY      = &h00000002
'________________________________________________________________
'
'FUNCTION MCALL CDECL (BYVAL ObjectPtr AS DWORD,BYVAL MethodName AS DWORD,_
'                  OPTIONAL BYVAL v1  AS DWORD, _
'                  OPTIONAL BYVAL v2  AS DWORD, _
'                  OPTIONAL BYVAL v3  AS DWORD, _
'                  OPTIONAL BYVAL v4  AS DWORD, _
'                  OPTIONAL BYVAL v5  AS DWORD, _
'                  OPTIONAL BYVAL v6  AS DWORD, _
'                  OPTIONAL BYVAL v7  AS DWORD, _
'                  OPTIONAL BYVAL v8  AS DWORD, _
'                  OPTIONAL BYVAL v9  AS DWORD, _
'                  OPTIONAL BYVAL v10 AS DWORD, _
'                  OPTIONAL BYVAL v11 AS DWORD, _
'                  OPTIONAL BYVAL v12 AS DWORD) AS LONG
'       ! push v12
'       ! push v11
'       ! push v10
'       ! push v9
'       ! push v8
'       ! push v7
'       ! push v6
'       ! push v5
'       ! push v4
'       ! push v3
'       ! push v2
'       ! push v1
'       ! mov eax, ObjectPtr
'       ! mov ecx, MethodName
'       ! push eax
'       ! mov eax, [eax]
'       ! call DWORD PTR [eax+ecx]
'       ! mov FUNCTION,eax
'END FUNCTION

'
' 'example DDraw GetDisplayMode
'       ' lpDD - Newer interfaces  [GLOBAL lpDD AS DWORD]
'       .....
'       DIM surf AS ddsurfacedesc2
'       DIM result AS LONG
'       supf.dwSize =  SIZEOF(ddsurfacedesc2)
'       '***************************************************
'       result = MCALL(lpDD,%DDGetDisplayMode,VARPTR(surf))
'       '***************************************************
'       SHOWMESSAGE HEX$(result) & STR$(surf.dwHeight) & STR$(surf.dwWidth)
掌柜推荐
 
 
 
 
 
 
 
 
 
 
 
 
© Sat 2024-4-20  Guidance Laboratory Inc.
Email:webmaster1g.yi.org Hits:0 Last modified:2004-06-29 13:31:04