I know most people are moving on to 8, but I just got DX7 working, and figuring out the structuers was a bit of a task.


DDCOLORKEY STRUC
dwColorSpaceLowValue DWORD ?
dwColorSpaceHighValue DWORD ?
DDCOLORKEY ENDS

DDSCAPS2 STRUC
dwCaps DWORD ?
dwCaps2 DWORD ?
dwCaps3 DWORD ?
dwCaps4 DWORD ?
DDSCAPS2 ENDS

DDPIXELFORMAT STRUC
dwSize DWORD ?
dwFlags DWORD ?
dwFourCC DWORD ?
UNION
dwRGBBitCount DWORD ?
dwYUVBitCount DWORD ?
dwZBufferBitDepth DWORD ?
dwAlphaBitDepth DWORD ?
dwLuminanceBitCount DWORD ?
dwBumpBitCount DWORD ?
ENDS
UNION
dwRBitMask DWORD ?
dwYBitMask DWORD ?
dwStencilBitDepth DWORD ?
dwLuminanceBitMask DWORD ?
dwBumpDvBitMask DWORD ?
ENDS
UNION
dwGBitMask DWORD ?
dwUBitMask DWORD ?
dwZBitMask DWORD ?
dwBumpDuBitMask DWORD ?
ENDS
UNION
dwBBitMask DWORD ?
dwVBitMask DWORD ?
dwStencilBitMask DWORD ?
dwBumpLuminanceBitMask DWORD ?
ENDS
UNION
dwRGBAlphaBitMask DWORD ?
dwYUVAlphaBitMask DWORD ?
dwLuminanceAlphaBitMask DWORD ?
dwRGBZBitMask DWORD ?
dwYUVZBitMask DWORD ?
ENDS
DDPIXELFORMAT ENDS

DDSURFACEDESC2 STRUC
dwSize DWORD ?
dwFlags DWORD ?
dwHeight DWORD ?
dwWidth DWORD ?
UNION
lPitch DWORD ?
dwLinearSize DWORD ?
ENDS
dwBackBufferCount DWORD ?
UNION
dwMipMapCount DWORD ?
dwRefreshRate DWORD ?
ENDS
dwAlphaBitDepth DWORD ?
dwReserved DWORD ?
lpSurface DWORD ?
UNION
ddckCKDestOverlay DDCOLORKEY <>
dwEmptyFaceColor DWORD ?
ENDS
ddckCKDestBlt DDCOLORKEY <>
ddckCKSrcOverlay DDCOLORKEY <>
ddckCKSrcBlt DDCOLORKEY <>
UNION
ddpfPixelFormat DDPIXELFORMAT <>
dwFVF DWORD ?
ENDS
ddsCaps DDSCAPS2 <>
dwTextureStage DWORD ?
DDSURFACEDESC2 ENDS

All the structs you need to make a DirectDraw7 surface.

To create a valid pointer it a DD& interface:


includelib \masm32\lib\ddraw.lib
includelib \masm32\lib\dxguid.lib

EXTERNDEF C IID_IDirectDraw7:GUID

invoke DirectDrawCreateEx,NULL,ADDR LPDD,ADDR IID_IDirectDraw7,NULL
Posted on 2002-11-11 08:00:44 by ThoughtCriminal