* Updated d3d headers to make it possible to include both d3d and d3d9 at the same...
[reactos.git] / reactos / include / ddk / ddrawint.h
index 0ec46f4..c2a5ff4 100644 (file)
-/* 
+/*
  * DirectDraw NT driver interface
  */
 
 #ifndef __DD_INCLUDED__
 #define __DD_INCLUDED__
 
+
+DEFINE_GUID( GUID_MiscellaneousCallbacks,  0xEFD60CC0, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
+DEFINE_GUID( GUID_Miscellaneous2Callbacks, 0x406B2F00, 0x3E5A, 0x11D1, 0xB6, 0x40, 0x00, 0xAA, 0x00, 0xA1, 0xF9, 0x6A);
+DEFINE_GUID( GUID_VideoPortCallbacks,      0xefd60cc1, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
+DEFINE_GUID( GUID_ColorControlCallbacks,   0xefd60cc2, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
+DEFINE_GUID( GUID_MotionCompCallbacks,     0xb1122b40, 0x5dA5, 0x11d1, 0x8f, 0xcF, 0x00, 0xc0, 0x4f, 0xc2, 0x9b, 0x4e);
+DEFINE_GUID( GUID_VideoPortCaps,           0xefd60cc3, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
+DEFINE_GUID( GUID_D3DCaps,                 0x7bf06991, 0x8794, 0x11d0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xd2, 0xef, 0x02);
+DEFINE_GUID( GUID_D3DExtendedCaps,         0x7de41f80, 0x9d93, 0x11d0, 0x89, 0xab, 0x00, 0xa0, 0xc9, 0x05, 0x41, 0x29);
+DEFINE_GUID( GUID_D3DCallbacks,            0x7bf06990, 0x8794, 0x11d0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xd2, 0xef, 0x02);
+DEFINE_GUID( GUID_D3DCallbacks2,           0xba584e1, 0x70b6, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
+DEFINE_GUID( GUID_D3DCallbacks3,           0xddf41230, 0xec0a, 0x11d0, 0xa9, 0xb6, 0x00, 0xaa, 0x00, 0xc0, 0x99, 0x3e);
+DEFINE_GUID( GUID_NonLocalVidMemCaps,      0x86c4fa80, 0x8d84, 0x11d0, 0x94, 0xe8, 0x00, 0xc0, 0x4f, 0xc3, 0x41, 0x37);
+DEFINE_GUID( GUID_KernelCallbacks,         0x80863800, 0x6B06, 0x11D0, 0x9B, 0x06, 0x0, 0xA0, 0xC9, 0x03, 0xA3, 0xB8);
+DEFINE_GUID( GUID_KernelCaps,              0xFFAA7540, 0x7AA8, 0x11D0, 0x9B, 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8);
+DEFINE_GUID( GUID_ZPixelFormats,           0x93869880, 0x36cf, 0x11d1, 0x9b, 0x1b, 0x0, 0xaa, 0x0, 0xbb, 0xb8, 0xae);
+DEFINE_GUID( GUID_DDMoreCaps,              0x880baf30, 0xb030, 0x11d0, 0x8e, 0xa7, 0x00, 0x60, 0x97, 0x97, 0xea, 0x5b);
+DEFINE_GUID( GUID_D3DParseUnknownCommandCallback, 0x2e04ffa0, 0x98e4, 0x11d1, 0x8c, 0xe1, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
+DEFINE_GUID( GUID_NTCallbacks,             0x6fe9ecde, 0xdf89, 0x11d1, 0x9d, 0xb0, 0x00, 0x60, 0x08, 0x27, 0x71, 0xba);
+DEFINE_GUID( GUID_DDMoreSurfaceCaps,       0x3b8a0466, 0xf269, 0x11d1, 0x88, 0x0b, 0x0, 0xc0, 0x4f, 0xd9, 0x30, 0xc5);
+DEFINE_GUID( GUID_GetHeapAlignment,        0x42e02f16, 0x7b41, 0x11d2, 0x8b, 0xff, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6);
+DEFINE_GUID( GUID_UpdateNonLocalHeap,      0x42e02f17, 0x7b41, 0x11d2, 0x8b, 0xff, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6);
+DEFINE_GUID( GUID_NTPrivateDriverCaps,     0xfad16a23, 0x7b66, 0x11d2, 0x83, 0xd7, 0x0, 0xc0, 0x4f, 0x7c, 0xe5, 0x8c);
+DEFINE_GUID( GUID_DDStereoMode,            0xf828169c, 0xa8e8, 0x11d2, 0xa1, 0xf2, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6);
+DEFINE_GUID( GUID_VPE2Callbacks,            0x52882147, 0x2d47, 0x469a, 0xa0, 0xd1, 0x3, 0x45, 0x58, 0x90, 0xf6, 0xc8);
+
+
+#ifndef GUID_DEFS_ONLY
+
+#ifndef _NO_DDRAWINT_NO_COM
+#ifndef _NO_COM
+#define _NO_COM
+#include <ddraw.h>
+#include <dvp.h>
+#undef _NO_COM
+#else
 #include <ddraw.h>
-#include <ddrawi.h>
+#include <dvp.h>
+#endif
+#else
+#include <ddraw.h>
+#include <dvp.h>
+#endif
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-// FIXME: These should have been defined in other header files!
-typedef struct _DDVIDEOPORTDESC      *LPDDVIDEOPORTDESC; /* should be in dvp.h */
-typedef struct _DDVIDEOPORTBANDWIDTH *LPDDVIDEOPORTBANDWIDTH; /* should be in dvp.h */
-typedef struct _DDVIDEOPORTCONNECT   *LPDDVIDEOPORTCONNECT; /* should be in dvp.h */
-typedef struct _DDVIDEOPORTINFO      *LPDDVIDEOPORTINFO; /* should be in dvp.h */
-typedef struct _DD_VIDEOPORT_LOCAL   *PDD_VIDEOPORT_LOCAL; /* should be defined here once we have dvp.h */
+#ifndef MAKE_HRESULT // fixme this if statment should not be here, but MAKE_HRESULT should be here
+#define MAKE_HRESULT(sev,fac,code) ((HRESULT) (((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))) )
+#endif
+
+typedef ULONG_PTR FLATPTR;
+
+typedef struct _DD_VIDEOPORT_LOCAL   *PDD_VIDEOPORT_LOCAL;
+
+/************************************************************************/
+/* _DD_GETHEAPALIGNMENTDATA is defined in dmemmgr.h                     */
+ /************************************************************************/
+struct _DD_GETHEAPALIGNMENTDATA;
+typedef struct _DD_GETHEAPALIGNMENTDATA *PDD_GETHEAPALIGNMENTDATA;
 
 /************************************************************************/
 /* Video memory info structures                                         */
 /************************************************************************/
 
-typedef struct
-{
-       DWORD          dwFlags;
-       FLATPTR        fpStart;
-       union
-       {
-               FLATPTR    fpEnd;
-               DWORD      dwWidth;
-       };
-       DDSCAPS        ddsCaps;
-       DDSCAPS        ddsCapsAlt;
-       union
-       {
-               LPVMEMHEAP lpHeap;
-               DWORD      dwHeight;
-       };
+typedef struct _VIDEOMEMORY
+{
+    DWORD          dwFlags;
+    FLATPTR        fpStart;
+    union
+    {
+        FLATPTR    fpEnd;
+        DWORD      dwWidth;
+    };
+    DDSCAPS        ddsCaps;
+    DDSCAPS        ddsCapsAlt;
+    union
+    {
+        struct _VMEMHEAP *lpHeap;
+        DWORD      dwHeight;
+    };
 } VIDEOMEMORY, *PVIDEOMEMORY;
 
-typedef struct
-{
-       FLATPTR       fpPrimary;
-       DWORD         dwFlags;
-       DWORD         dwDisplayWidth;
-       DWORD         dwDisplayHeight;
-       LONG          lDisplayPitch;
-       DDPIXELFORMAT ddpfDisplay;
-       DWORD         dwOffscreenAlign;
-       DWORD         dwOverlayAlign;
-       DWORD         dwTextureAlign;
-       DWORD         dwZBufferAlign;
-       DWORD         dwAlphaAlign;
-       PVOID         pvPrimary;
+typedef struct _VIDEOMEMORYINFO
+{
+    FLATPTR       fpPrimary;
+    DWORD         dwFlags;
+    DWORD         dwDisplayWidth;
+    DWORD         dwDisplayHeight;
+    LONG          lDisplayPitch;
+    DDPIXELFORMAT ddpfDisplay;
+    DWORD         dwOffscreenAlign;
+    DWORD         dwOverlayAlign;
+    DWORD         dwTextureAlign;
+    DWORD         dwZBufferAlign;
+    DWORD         dwAlphaAlign;
+    PVOID         pvPrimary;
 } VIDEOMEMORYINFO;
 typedef VIDEOMEMORYINFO *LPVIDEOMEMORYINFO;
 
-/************************************************************************/
-/* DDI representation of the DirectDraw object                          */
-/************************************************************************/
-
-typedef struct
+typedef struct _DD_DIRECTDRAW_GLOBAL
 {
-       PVOID             dhpdev;
-       ULONG_PTR         dwReserved1;
-       ULONG_PTR         dwReserved2;
-       LPDDVIDEOPORTCAPS lpDDVideoPortCaps;
+    PVOID             dhpdev;
+    ULONG_PTR         dwReserved1;
+    ULONG_PTR         dwReserved2;
+    LPDDVIDEOPORTCAPS lpDDVideoPortCaps;
 } DD_DIRECTDRAW_GLOBAL, *PDD_DIRECTDRAW_GLOBAL;
 
-typedef struct
+typedef struct _DD_DIRECTDRAW_LOCAL
 {
-       PDD_DIRECTDRAW_GLOBAL lpGbl;
+    PDD_DIRECTDRAW_GLOBAL lpGbl;
 } DD_DIRECTDRAW_LOCAL, *PDD_DIRECTDRAW_LOCAL;
 
-/************************************************************************/
-/* DDI representation of the DirectDrawSurface object                   */
-/************************************************************************/
 
-typedef struct
-{
-       union 
-       {
-               DWORD        dwBlockSizeY;
-               LONG         lSlicePitch;
-       };
-
-       union 
-       {
-               PVIDEOMEMORY lpVidMemHeap;
-               DWORD        dwBlockSizeX;
-               DWORD        dwUserMemSize;
-       };
-
-       FLATPTR          fpVidMem;
-       union
-       {
-               LONG         lPitch;
-               DWORD        dwLinearSize;
-       };
-       LONG             yHint;
-       LONG             xHint;
-       DWORD            wHeight;
-       DWORD            wWidth;
-       ULONG_PTR        dwReserved1;
-       DDPIXELFORMAT    ddpfSurface;
-       FLATPTR          fpHeapOffset;
-       HANDLE           hCreatorProcess;
+typedef struct _DD_SURFACE_GLOBAL
+{
+    union
+    {
+        DWORD        dwBlockSizeY;
+        LONG         lSlicePitch;
+    };
+
+    union
+    {
+        PVIDEOMEMORY lpVidMemHeap;
+        DWORD        dwBlockSizeX;
+        DWORD        dwUserMemSize;
+    };
+
+    FLATPTR          fpVidMem;
+    union
+    {
+        LONG         lPitch;
+        DWORD        dwLinearSize;
+    };
+    LONG             yHint;
+    LONG             xHint;
+    DWORD            wHeight;
+    DWORD            wWidth;
+    ULONG_PTR        dwReserved1;
+    DDPIXELFORMAT    ddpfSurface;
+    FLATPTR          fpHeapOffset;
+    HANDLE           hCreatorProcess;
 } DD_SURFACE_GLOBAL, *PDD_SURFACE_GLOBAL;
 
-typedef struct
+typedef struct _DD_SURFACE_MORE
 {
-       DWORD               dwMipMapCount;
-       PDD_VIDEOPORT_LOCAL lpVideoPort;
-       DWORD               dwOverlayFlags;
-       DDSCAPSEX           ddsCapsEx;
-       DWORD               dwSurfaceHandle;
+    DWORD               dwMipMapCount;
+    PDD_VIDEOPORT_LOCAL lpVideoPort;
+    DWORD               dwOverlayFlags;
+    DDSCAPSEX           ddsCapsEx;
+    DWORD               dwSurfaceHandle;
 } DD_SURFACE_MORE, *PDD_SURFACE_MORE;
 
 typedef struct _DD_ATTACHLIST *PDD_ATTACHLIST;
 
-typedef struct
+typedef struct _DD_SURFACE_LOCAL
 {
        PDD_SURFACE_GLOBAL lpGbl;
        DWORD              dwFlags;
@@ -149,7 +190,7 @@ typedef struct _DD_ATTACHLIST
        PDD_SURFACE_LOCAL  lpAttached;
 } DD_ATTACHLIST;
 
-typedef struct
+typedef struct _DD_SURFACE_INT
 {
        PDD_SURFACE_LOCAL lpLcl;
 } DD_SURFACE_INT, *PDD_SURFACE_INT;
@@ -158,7 +199,7 @@ typedef struct
 /* DDI representation of the DirectDrawPalette object                   */
 /************************************************************************/
 
-typedef struct
+typedef struct _DD_PALETTE_GLOBAL
 {
     ULONG_PTR Reserved1;
 } DD_PALETTE_GLOBAL, *PDD_PALETTE_GLOBAL;
@@ -182,11 +223,26 @@ typedef struct
        LPVOID               lpDriverReserved3;
 } DD_MOTIONCOMP_LOCAL, *PDD_MOTIONCOMP_LOCAL;
 
+
+typedef struct _DD_VIDEOPORT_LOCAL
+{
+    PDD_DIRECTDRAW_LOCAL  lpDD;
+    DDVIDEOPORTDESC       ddvpDesc;
+    DDVIDEOPORTINFO       ddvpInfo;
+    PDD_SURFACE_INT       lpSurface;
+    PDD_SURFACE_INT      lpVBISurface;
+    DWORD                 dwNumAutoflip;
+    DWORD                      dwNumVBIAutoflip;
+    ULONG_PTR                   dwReserved1;
+    ULONG_PTR                   dwReserved2;
+    ULONG_PTR                   dwReserved3;
+} DD_VIDEOPORT_LOCAL ;
+
 /************************************************************************/
 /* IDirectDrawSurface callbacks                                         */
 /************************************************************************/
 
-typedef struct
+typedef struct _DD_LOCKDATA
 {
        PDD_DIRECTDRAW_GLOBAL         lpDD;
        PDD_SURFACE_LOCAL             lpDDSurface;
@@ -200,7 +256,8 @@ typedef struct
 } DD_LOCKDATA, *PDD_LOCKDATA;
 typedef DWORD (STDCALL *PDD_SURFCB_LOCK)(PDD_LOCKDATA);
 
-typedef struct
+
+typedef struct _DD_UNLOCKDATA
 {
        PDD_DIRECTDRAW_GLOBAL         lpDD;
        PDD_SURFACE_LOCAL             lpDDSurface;
@@ -212,12 +269,9 @@ typedef DWORD (STDCALL *PDD_SURFCB_UNLOCK)(PDD_UNLOCKDATA);
 #define DDABLT_SRCOVERDEST        0x00000001
 #define DDBLT_AFLAGS              0x80000000
 
-typedef struct
-{
-       BYTE blue, green, red, alpha;
-} DDARGB, *PDDARGB;
 
-typedef struct
+
+typedef struct _DD_BLTDATA
 {
        PDD_DIRECTDRAW_GLOBAL         lpDD;
        PDD_SURFACE_LOCAL             lpDDDestSurface;
@@ -239,7 +293,7 @@ typedef struct
 } DD_BLTDATA, *PDD_BLTDATA;
 typedef DWORD (STDCALL *PDD_SURFCB_BLT)(PDD_BLTDATA);
 
-typedef struct
+typedef struct _DD_UPDATEOVERLAYDATA
 {
        PDD_DIRECTDRAW_GLOBAL         lpDD;
        PDD_SURFACE_LOCAL             lpDDDestSurface;
@@ -253,7 +307,7 @@ typedef struct
 } DD_UPDATEOVERLAYDATA, *PDD_UPDATEOVERLAYDATA;
 typedef DWORD (STDCALL *PDD_SURFCB_UPDATEOVERLAY)(PDD_UPDATEOVERLAYDATA);
 
-typedef struct
+typedef struct _DD_SETOVERLAYPOSITIONDATA
 {
        PDD_DIRECTDRAW_GLOBAL         lpDD;
        PDD_SURFACE_LOCAL             lpDDSrcSurface;
@@ -265,7 +319,7 @@ typedef struct
 } DD_SETOVERLAYPOSITIONDATA, *PDD_SETOVERLAYPOSITIONDATA;
 typedef DWORD (STDCALL *PDD_SURFCB_SETOVERLAYPOSITION)(PDD_SETOVERLAYPOSITIONDATA);
 
-typedef struct
+typedef struct _DD_SETPALETTEDATA
 {
        PDD_DIRECTDRAW_GLOBAL         lpDD;
        PDD_SURFACE_LOCAL             lpDDSurface;
@@ -276,7 +330,7 @@ typedef struct
 } DD_SETPALETTEDATA, *PDD_SETPALETTEDATA;
 typedef DWORD (STDCALL *PDD_SURFCB_SETPALETTE)(PDD_SETPALETTEDATA);
 
-typedef struct
+typedef struct _DD_FLIPDATA
 {
        PDD_DIRECTDRAW_GLOBAL         lpDD;
        PDD_SURFACE_LOCAL             lpSurfCurr;
@@ -289,7 +343,7 @@ typedef struct
 } DD_FLIPDATA, *PDD_FLIPDATA;
 typedef DWORD (STDCALL *PDD_SURFCB_FLIP)(PDD_FLIPDATA);
 
-typedef struct
+typedef struct _DD_DESTROYSURFACEDATA
 {
        PDD_DIRECTDRAW_GLOBAL         lpDD;
        PDD_SURFACE_LOCAL             lpDDSurface;
@@ -298,7 +352,7 @@ typedef struct
 } DD_DESTROYSURFACEDATA, *PDD_DESTROYSURFACEDATA;
 typedef DWORD (STDCALL *PDD_SURFCB_DESTROYSURFACE)(PDD_DESTROYSURFACEDATA);
 
-typedef struct
+typedef struct _DD_SETCLIPLISTDATA
 {
        PDD_DIRECTDRAW_GLOBAL         lpDD;
        PDD_SURFACE_LOCAL             lpDDSurface;
@@ -307,7 +361,7 @@ typedef struct
 } DD_SETCLIPLISTDATA, *PDD_SETCLIPLISTDATA;
 typedef DWORD (STDCALL *PDD_SURFCB_SETCLIPLIST)(PDD_SETCLIPLISTDATA);
 
-typedef struct
+typedef struct _DD_ADDATTACHEDSURFACEDATA
 {
        PDD_DIRECTDRAW_GLOBAL         lpDD;
        PDD_SURFACE_LOCAL             lpDDSurface;
@@ -317,7 +371,7 @@ typedef struct
 } DD_ADDATTACHEDSURFACEDATA, *PDD_ADDATTACHEDSURFACEDATA;
 typedef DWORD (STDCALL *PDD_SURFCB_ADDATTACHEDSURFACE)(PDD_ADDATTACHEDSURFACEDATA);
 
-typedef struct
+typedef struct _DD_SETCOLORKEYDATA
 {
        PDD_DIRECTDRAW_GLOBAL         lpDD;
        PDD_SURFACE_LOCAL             lpDDSurface;
@@ -328,7 +382,7 @@ typedef struct
 } DD_SETCOLORKEYDATA, *PDD_SETCOLORKEYDATA;
 typedef DWORD (STDCALL *PDD_SURFCB_SETCOLORKEY)(PDD_SETCOLORKEYDATA);
 
-typedef struct
+typedef struct _DD_GETBLTSTATUSDATA
 {
        PDD_DIRECTDRAW_GLOBAL         lpDD;
        PDD_SURFACE_LOCAL             lpDDSurface;
@@ -338,7 +392,7 @@ typedef struct
 } DD_GETBLTSTATUSDATA, *PDD_GETBLTSTATUSDATA;
 typedef DWORD (STDCALL *PDD_SURFCB_GETBLTSTATUS)(PDD_GETBLTSTATUSDATA);
 
-typedef struct
+typedef struct _DD_GETFLIPSTATUSDATA
 {
        PDD_DIRECTDRAW_GLOBAL         lpDD;
        PDD_SURFACE_LOCAL             lpDDSurface;
@@ -348,7 +402,7 @@ typedef struct
 } DD_GETFLIPSTATUSDATA, *PDD_GETFLIPSTATUSDATA;
 typedef DWORD (STDCALL *PDD_SURFCB_GETFLIPSTATUS)(PDD_GETFLIPSTATUSDATA);
 
-typedef struct
+typedef struct DD_SURFACECALLBACKS
 {
        DWORD                         dwSize;
        DWORD                         dwFlags;
@@ -364,32 +418,30 @@ typedef struct
        PDD_SURFCB_GETFLIPSTATUS      GetFlipStatus;
        PDD_SURFCB_UPDATEOVERLAY      UpdateOverlay;
        PDD_SURFCB_SETOVERLAYPOSITION SetOverlayPosition;
-       PVOID                         Reserved;
+       PVOID                         reserved4;
        PDD_SURFCB_SETPALETTE         SetPalette;
 } DD_SURFACECALLBACKS, *PDD_SURFACECALLBACKS;
 
-enum
-{
-       DDHAL_SURFCB32_DESTROYSURFACE     = 1<<0,
-       DDHAL_SURFCB32_FLIP               = 1<<1,
-       DDHAL_SURFCB32_SETCLIPLIST        = 1<<2,
-       DDHAL_SURFCB32_LOCK               = 1<<3,
-       DDHAL_SURFCB32_UNLOCK             = 1<<4,
-       DDHAL_SURFCB32_BLT                = 1<<5,
-       DDHAL_SURFCB32_SETCOLORKEY        = 1<<6,
-       DDHAL_SURFCB32_ADDATTACHEDSURFACE = 1<<7,
-       DDHAL_SURFCB32_GETBLTSTATUS       = 1<<8,
-       DDHAL_SURFCB32_GETFLIPSTATUS      = 1<<9,
-       DDHAL_SURFCB32_UPDATEOVERLAY      = 1<<10,
-       DDHAL_SURFCB32_SETOVERLAYPOSITION = 1<<11,
-       DDHAL_SURFCB32_SETPALETTE         = 1<<13,
-};
 
+#define DDHAL_SURFCB32_DESTROYSURFACE       0x00000001
+#define DDHAL_SURFCB32_FLIP                 0x00000002
+#define DDHAL_SURFCB32_SETCLIPLIST          0x00000004
+#define DDHAL_SURFCB32_LOCK                 0x00000008
+#define DDHAL_SURFCB32_UNLOCK               0x00000010
+#define DDHAL_SURFCB32_BLT                  0x00000020
+#define DDHAL_SURFCB32_SETCOLORKEY          0x00000040
+#define DDHAL_SURFCB32_ADDATTACHEDSURFACE   0x00000080
+#define DDHAL_SURFCB32_GETBLTSTATUS         0x00000100
+#define DDHAL_SURFCB32_GETFLIPSTATUS        0x00000200
+#define DDHAL_SURFCB32_UPDATEOVERLAY        0x00000400
+#define DDHAL_SURFCB32_SETOVERLAYPOSITION   0x00000800
+#define DDHAL_SURFCB32_RESERVED4            0x00001000
+#define DDHAL_SURFCB32_SETPALETTE           0x00002000
 /************************************************************************/
 /* IDirectDraw callbacks                                                */
 /************************************************************************/
 
-typedef struct
+typedef struct _DD_CREATESURFACEDATA
 {
        PDD_DIRECTDRAW_GLOBAL    lpDD;
        DDSURFACEDESC           *lpDDSurfaceDesc;
@@ -400,7 +452,7 @@ typedef struct
 } DD_CREATESURFACEDATA, *PDD_CREATESURFACEDATA;
 typedef DWORD (STDCALL *PDD_CREATESURFACE)(PDD_CREATESURFACEDATA);
 
-typedef struct
+typedef struct _DD_DRVSETCOLORKEYDATA
 {
        PDD_SURFACE_LOCAL        lpDDSurface;
        DWORD                    dwFlags;
@@ -412,7 +464,7 @@ typedef DWORD (STDCALL *PDD_SETCOLORKEY)(PDD_DRVSETCOLORKEYDATA);
 
 #define DDWAITVB_I_TESTVB    0x80000006
 
-typedef struct
+typedef struct _DD_WAITFORVERTICALBLANKDATA
 {
        PDD_DIRECTDRAW_GLOBAL    lpDD;
        DWORD                    dwFlags;
@@ -423,7 +475,7 @@ typedef struct
 } DD_WAITFORVERTICALBLANKDATA, *PDD_WAITFORVERTICALBLANKDATA;
 typedef DWORD (STDCALL *PDD_WAITFORVERTICALBLANK)(PDD_WAITFORVERTICALBLANKDATA);
 
-typedef struct
+typedef struct _DD_CANCREATESURFACEDATA
 {
        PDD_DIRECTDRAW_GLOBAL    lpDD;
        DDSURFACEDESC           *lpDDSurfaceDesc;
@@ -433,7 +485,7 @@ typedef struct
 } DD_CANCREATESURFACEDATA, *PDD_CANCREATESURFACEDATA;
 typedef DWORD (STDCALL *PDD_CANCREATESURFACE)(PDD_CANCREATESURFACEDATA);
 
-typedef struct
+typedef struct _DD_CREATEPALETTEDATA
 {
        PDD_DIRECTDRAW_GLOBAL    lpDD;
        PDD_PALETTE_GLOBAL       lpDDPalette;
@@ -444,7 +496,7 @@ typedef struct
 } DD_CREATEPALETTEDATA, *PDD_CREATEPALETTEDATA;
 typedef DWORD (STDCALL *PDD_CREATEPALETTE)(PDD_CREATEPALETTEDATA);
 
-typedef struct
+typedef struct _DD_GETSCANLINEDATA
 {
        PDD_DIRECTDRAW_GLOBAL    lpDD;
        DWORD                    dwScanLine;
@@ -453,7 +505,7 @@ typedef struct
 } DD_GETSCANLINEDATA, *PDD_GETSCANLINEDATA;
 typedef DWORD (STDCALL *PDD_GETSCANLINE)(PDD_GETSCANLINEDATA);
 
-typedef struct
+typedef struct _DD_MAPMEMORYDATA
 {
        PDD_DIRECTDRAW_GLOBAL    lpDD;
        BOOL                     bMap;
@@ -463,33 +515,43 @@ typedef struct
 } DD_MAPMEMORYDATA, *PDD_MAPMEMORYDATA;
 typedef DWORD (STDCALL *PDD_MAPMEMORY)(PDD_MAPMEMORYDATA);
 
-typedef struct
+
+
+
+typedef struct _DD_DESTROYDRIVERDATA *PDD_DESTROYDRIVERDATA;
+typedef struct _DD_SETMODEDATA *PDD_SETMODEDATA;
+
+typedef DWORD   (APIENTRY *PDD_DESTROYDRIVER)(PDD_DESTROYDRIVERDATA);
+typedef DWORD   (APIENTRY *PDD_SETMODE)(PDD_SETMODEDATA);
+
+typedef struct DD_CALLBACKS
 {
-       DWORD                    dwSize;
-       DWORD                    dwFlags;
-       PVOID                    Reserved1;
-       PDD_CREATESURFACE        CreateSurface;
-       PDD_SETCOLORKEY          SetColorKey;
-       PVOID                    Reserved2;
-       PDD_WAITFORVERTICALBLANK WaitForVerticalBlank;
-       PDD_CANCREATESURFACE     CanCreateSurface;
-       PDD_CREATEPALETTE        CreatePalette;
-       PDD_GETSCANLINE          GetScanLine;
-       PDD_MAPMEMORY            MapMemory;
+    DWORD                     dwSize;
+    DWORD                     dwFlags;
+    PDD_DESTROYDRIVER         DestroyDriver;
+    PDD_CREATESURFACE         CreateSurface;
+    PDD_SETCOLORKEY           SetColorKey;
+    PDD_SETMODE               SetMode;
+    PDD_WAITFORVERTICALBLANK  WaitForVerticalBlank;
+    PDD_CANCREATESURFACE      CanCreateSurface;
+    PDD_CREATEPALETTE         CreatePalette;
+    PDD_GETSCANLINE           GetScanLine;
+    PDD_MAPMEMORY             MapMemory;
 } DD_CALLBACKS, *PDD_CALLBACKS;
 
-enum
-{
-       DDHAL_CB32_CREATESURFACE        = 1<<1,
-       DDHAL_CB32_SETCOLORKEY          = 1<<2,
-       DDHAL_CB32_WAITFORVERTICALBLANK = 1<<4,
-       DDHAL_CB32_CANCREATESURFACE     = 1<<5,
-       DDHAL_CB32_CREATEPALETTE        = 1<<6,
-       DDHAL_CB32_GETSCANLINE          = 1<<7,
-       DDHAL_CB32_MAPMEMORY            = 1<<31,
-};
 
-typedef struct
+
+#define DDHAL_CB32_DESTROYDRIVER        0x00000001l
+#define DDHAL_CB32_CREATESURFACE        0x00000002l
+#define DDHAL_CB32_SETCOLORKEY          0x00000004l
+#define DDHAL_CB32_SETMODE              0x00000008l
+#define DDHAL_CB32_WAITFORVERTICALBLANK 0x00000010l
+#define DDHAL_CB32_CANCREATESURFACE     0x00000020l
+#define DDHAL_CB32_CREATEPALETTE        0x00000040l
+#define DDHAL_CB32_GETSCANLINE          0x00000080l
+#define DDHAL_CB32_MAPMEMORY            0x80000000l
+
+typedef struct _DD_GETAVAILDRIVERMEMORYDATA
 {
        PDD_DIRECTDRAW_GLOBAL    lpDD;
        DDSCAPS                  DDSCaps;
@@ -500,23 +562,18 @@ typedef struct
 } DD_GETAVAILDRIVERMEMORYDATA, *PDD_GETAVAILDRIVERMEMORYDATA;
 typedef DWORD (STDCALL *PDD_GETAVAILDRIVERMEMORY)(PDD_GETAVAILDRIVERMEMORYDATA);
 
-DEFINE_GUID(GUID_MiscellaneousCallbacks, 0xEFD60CC0, 0x49E7, 0x11D0, 0x88, 0x9D, 0x00, 0xAA, 0x00, 0xBB, 0xB7, 0x6A);
-
-typedef struct
+typedef struct _DD_MISCELLANEOUSCALLBACKS
 {
        DWORD                    dwSize;
        DWORD                    dwFlags;
        PDD_GETAVAILDRIVERMEMORY GetAvailDriverMemory;
 } DD_MISCELLANEOUSCALLBACKS, *PDD_MISCELLANEOUSCALLBACKS;
 
-enum
-{
-       DDHAL_MISCCB32_GETAVAILDRIVERMEMORY = 1<<0,
-};
+#define DDHAL_MISCCB32_GETAVAILDRIVERMEMORY 0x00000001
 
 typedef DWORD (STDCALL *PDD_ALPHABLT)(PDD_BLTDATA);
 
-typedef struct
+typedef struct _DD_CREATESURFACEEXDATA
 {
        DWORD                     dwFlags;
        PDD_DIRECTDRAW_LOCAL      lpDDLcl;
@@ -525,7 +582,7 @@ typedef struct
 } DD_CREATESURFACEEXDATA, *PDD_CREATESURFACEEXDATA;
 typedef DWORD (STDCALL *PDD_CREATESURFACEEX)(PDD_CREATESURFACEEXDATA);
 
-typedef struct
+typedef struct _DD_GETDRIVERSTATEDATA
 {
        DWORD                     dwFlags;
        union
@@ -539,7 +596,7 @@ typedef struct
 } DD_GETDRIVERSTATEDATA, *PDD_GETDRIVERSTATEDATA;
 typedef DWORD (STDCALL *PDD_GETDRIVERSTATE)(PDD_GETDRIVERSTATEDATA);
 
-typedef struct
+typedef struct _DD_DESTROYDDLOCALDATA
 {
        DWORD                     dwFlags;
        PDD_DIRECTDRAW_LOCAL      pDDLcl;
@@ -547,9 +604,9 @@ typedef struct
 } DD_DESTROYDDLOCALDATA, *PDD_DESTROYDDLOCALDATA;
 typedef DWORD (STDCALL *PDD_DESTROYDDLOCAL)(PDD_DESTROYDDLOCALDATA);
 
-DEFINE_GUID(GUID_Miscellaneous2Callbacks, 0x406B2F00, 0x3E5A, 0x11D1, 0xB6, 0x40, 0x00, 0xAA, 0x00, 0xA1, 0xF9, 0x6A);
 
-typedef struct
+
+typedef struct _DD_MISCELLANEOUS2CALLBACKS
 {
        DWORD                     dwSize;
        DWORD                     dwFlags;
@@ -559,15 +616,14 @@ typedef struct
        PDD_DESTROYDDLOCAL        DestroyDDLocal;
 } DD_MISCELLANEOUS2CALLBACKS, *PDD_MISCELLANEOUS2CALLBACKS;
 
-enum
-{
-       DDHAL_MISC2CB32_ALPHABLT        = 1<<0,
-       DDHAL_MISC2CB32_CREATESURFACEEX = 1<<1,
-       DDHAL_MISC2CB32_GETDRIVERSTATE  = 1<<2,
-       DDHAL_MISC2CB32_DESTROYDDLOCAL  = 1<<3,
-};
 
-typedef struct
+#define DDHAL_MISC2CB32_ALPHABLT            0x00000001
+#define DDHAL_MISC2CB32_CREATESURFACEEX     0x00000002
+#define DDHAL_MISC2CB32_GETDRIVERSTATE      0x00000004
+#define DDHAL_MISC2CB32_DESTROYDDLOCAL      0x00000008
+
+
+typedef struct _DD_FREEDRIVERMEMORYDATA
 {
        PDD_DIRECTDRAW_GLOBAL lpDD;
        PDD_SURFACE_LOCAL     lpDDSurface;
@@ -576,7 +632,7 @@ typedef struct
 } DD_FREEDRIVERMEMORYDATA, *PDD_FREEDRIVERMEMORYDATA;
 typedef DWORD (STDCALL *PDD_FREEDRIVERMEMORY)(PDD_FREEDRIVERMEMORYDATA);
 
-typedef struct
+typedef struct _DD_SETEXCLUSIVEMODEDATA
 {
        PDD_DIRECTDRAW_GLOBAL lpDD;
        DWORD                 dwEnterExcl;
@@ -586,7 +642,7 @@ typedef struct
 } DD_SETEXCLUSIVEMODEDATA, *PDD_SETEXCLUSIVEMODEDATA;
 typedef DWORD (STDCALL *PDD_SETEXCLUSIVEMODE)(PDD_SETEXCLUSIVEMODEDATA);
 
-typedef struct
+typedef struct _DD_FLIPTOGDISURFACEDATA
 {
        PDD_DIRECTDRAW_GLOBAL lpDD;
        DWORD                 dwToGDI;
@@ -596,9 +652,9 @@ typedef struct
 } DD_FLIPTOGDISURFACEDATA, *PDD_FLIPTOGDISURFACEDATA;
 typedef DWORD (STDCALL *PDD_FLIPTOGDISURFACE)(PDD_FLIPTOGDISURFACEDATA);
 
-DEFINE_GUID(GUID_NTCallbacks, 0x6FE9ECDE, 0xDF89, 0x11D1, 0x9D, 0xB0, 0x00, 0x60, 0x08, 0x27, 0x71, 0xBA);
 
-typedef struct
+
+typedef struct _DD_NTCALLBACKS
 {
        DWORD                 dwSize;
        DWORD                 dwFlags;
@@ -607,18 +663,16 @@ typedef struct
        PDD_FLIPTOGDISURFACE  FlipToGDISurface;
 } DD_NTCALLBACKS, *PDD_NTCALLBACKS;
 
-enum
-{
-       DDHAL_NTCB32_FREEDRIVERMEMORY = 1<<0,
-       DDHAL_NTCB32_SETEXCLUSIVEMODE = 1<<1,
-       DDHAL_NTCB32_FLIPTOGDISURFACE = 1<<2,
-};
+
+#define DDHAL_NTCB32_FREEDRIVERMEMORY 0x00000001
+#define DDHAL_NTCB32_SETEXCLUSIVEMODE 0x00000002
+#define DDHAL_NTCB32_FLIPTOGDISURFACE 0x00000004
 
 /************************************************************************/
 /* IDirectDrawPalette callbacks                                         */
 /************************************************************************/
 
-typedef struct
+typedef struct _DD_DESTROYPALETTEDATA
 {
        PDD_DIRECTDRAW_GLOBAL    lpDD;
        PDD_PALETTE_GLOBAL       lpDDPalette;
@@ -627,7 +681,7 @@ typedef struct
 } DD_DESTROYPALETTEDATA, *PDD_DESTROYPALETTEDATA;
 typedef DWORD (STDCALL *PDD_PALCB_DESTROYPALETTE)(PDD_DESTROYPALETTEDATA);
 
-typedef struct
+typedef struct _DD_SETENTRIESDATA
 {
        PDD_DIRECTDRAW_GLOBAL    lpDD;
        PDD_PALETTE_GLOBAL       lpDDPalette;
@@ -639,7 +693,7 @@ typedef struct
 } DD_SETENTRIESDATA, *PDD_SETENTRIESDATA;
 typedef DWORD (STDCALL *PDD_PALCB_SETENTRIES)(PDD_SETENTRIESDATA);
 
-typedef struct
+typedef struct DD_PALETTECALLBACKS
 {
        DWORD                    dwSize;
        DWORD                    dwFlags;
@@ -647,17 +701,14 @@ typedef struct
        PDD_PALCB_SETENTRIES     SetEntries;
 } DD_PALETTECALLBACKS, *PDD_PALETTECALLBACKS;
 
-enum
-{
-       DDHAL_PALCB32_DESTROYPALETTE = 1<<0,
-       DDHAL_PALCB32_SETENTRIES     = 1<<1,
-};
+#define DDHAL_PALCB32_DESTROYPALETTE    0x00000001l
+#define DDHAL_PALCB32_SETENTRIES    0x00000002l
 
 /************************************************************************/
 /* IDirectDrawVideoport callbacks                                       */
 /************************************************************************/
 
-typedef struct
+typedef struct _DD_CANCREATEVPORTDATA
 {
        PDD_DIRECTDRAW_LOCAL           lpDD;
        LPDDVIDEOPORTDESC              lpDDVideoPortDesc;
@@ -666,7 +717,7 @@ typedef struct
 } DD_CANCREATEVPORTDATA, *PDD_CANCREATEVPORTDATA;
 typedef DWORD (STDCALL *PDD_VPORTCB_CANCREATEVIDEOPORT)(PDD_CANCREATEVPORTDATA);
 
-typedef struct
+typedef struct _DD_CREATEVPORTDATA
 {
        PDD_DIRECTDRAW_LOCAL           lpDD;
        LPDDVIDEOPORTDESC              lpDDVideoPortDesc;
@@ -676,7 +727,7 @@ typedef struct
 } DD_CREATEVPORTDATA, *PDD_CREATEVPORTDATA;
 typedef DWORD (STDCALL *PDD_VPORTCB_CREATEVIDEOPORT)(PDD_CREATEVPORTDATA);
 
-typedef struct
+typedef struct _DD_FLIPVPORTDATA
 {
        PDD_DIRECTDRAW_LOCAL           lpDD;
        PDD_VIDEOPORT_LOCAL            lpVideoPort;
@@ -687,7 +738,7 @@ typedef struct
 } DD_FLIPVPORTDATA, *PDD_FLIPVPORTDATA;
 typedef DWORD (STDCALL *PDD_VPORTCB_FLIP)(PDD_FLIPVPORTDATA);
 
-typedef struct
+typedef struct _DD_GETVPORTBANDWIDTHDATA
 {
        PDD_DIRECTDRAW_LOCAL           lpDD;
        PDD_VIDEOPORT_LOCAL            lpVideoPort;
@@ -701,7 +752,7 @@ typedef struct
 } DD_GETVPORTBANDWIDTHDATA, *PDD_GETVPORTBANDWIDTHDATA;
 typedef DWORD (STDCALL *PDD_VPORTCB_GETBANDWIDTH)(PDD_GETVPORTBANDWIDTHDATA);
 
-typedef struct
+typedef struct _DD_GETVPORTINPUTFORMATDATA
 {
        PDD_DIRECTDRAW_LOCAL           lpDD;
        PDD_VIDEOPORT_LOCAL            lpVideoPort;
@@ -713,7 +764,7 @@ typedef struct
 } DD_GETVPORTINPUTFORMATDATA, *PDD_GETVPORTINPUTFORMATDATA;
 typedef DWORD (STDCALL *PDD_VPORTCB_GETINPUTFORMATS)(PDD_GETVPORTINPUTFORMATDATA);
 
-typedef struct
+typedef struct _DD_GETVPORTOUTPUTFORMATDATA
 {
        PDD_DIRECTDRAW_LOCAL           lpDD;
        PDD_VIDEOPORT_LOCAL            lpVideoPort;
@@ -726,7 +777,7 @@ typedef struct
 } DD_GETVPORTOUTPUTFORMATDATA, *PDD_GETVPORTOUTPUTFORMATDATA;
 typedef DWORD (STDCALL *PDD_VPORTCB_GETOUTPUTFORMATS)(PDD_GETVPORTOUTPUTFORMATDATA);
 
-typedef struct
+typedef struct _DD_GETVPORTFIELDDATA
 {
        PDD_DIRECTDRAW_LOCAL           lpDD;
        PDD_VIDEOPORT_LOCAL            lpVideoPort;
@@ -736,7 +787,7 @@ typedef struct
 } DD_GETVPORTFIELDDATA, *PDD_GETVPORTFIELDDATA;
 typedef DWORD (STDCALL *PDD_VPORTCB_GETFIELD)(PDD_GETVPORTFIELDDATA);
 
-typedef struct
+typedef struct _DD_GETVPORTLINEDATA
 {
        PDD_DIRECTDRAW_LOCAL           lpDD;
        PDD_VIDEOPORT_LOCAL            lpVideoPort;
@@ -746,7 +797,7 @@ typedef struct
 } DD_GETVPORTLINEDATA, *PDD_GETVPORTLINEDATA;
 typedef DWORD (STDCALL *PDD_VPORTCB_GETLINE)(PDD_GETVPORTLINEDATA);
 
-typedef struct
+typedef struct _DD_GETVPORTCONNECTDATA
 {
        PDD_DIRECTDRAW_LOCAL           lpDD;
        DWORD                          dwPortId;
@@ -757,7 +808,7 @@ typedef struct
 } DD_GETVPORTCONNECTDATA, *PDD_GETVPORTCONNECTDATA;
 typedef DWORD (STDCALL *PDD_VPORTCB_GETVPORTCONNECT)(PDD_GETVPORTCONNECTDATA);
 
-typedef struct
+typedef struct _DD_DESTROYVPORTDATA
 {
        PDD_DIRECTDRAW_LOCAL           lpDD;
        PDD_VIDEOPORT_LOCAL            lpVideoPort;
@@ -766,7 +817,7 @@ typedef struct
 } DD_DESTROYVPORTDATA, *PDD_DESTROYVPORTDATA;
 typedef DWORD (STDCALL *PDD_VPORTCB_DESTROYVPORT)(PDD_DESTROYVPORTDATA);
 
-typedef struct
+typedef struct _DD_GETVPORTFLIPSTATUSDATA
 {
        PDD_DIRECTDRAW_LOCAL           lpDD;
        FLATPTR                        fpSurface;
@@ -775,11 +826,9 @@ typedef struct
 } DD_GETVPORTFLIPSTATUSDATA, *PDD_GETVPORTFLIPSTATUSDATA;
 typedef DWORD (STDCALL *PDD_VPORTCB_GETFLIPSTATUS)(PDD_GETVPORTFLIPSTATUSDATA);
 
-#define DDRAWI_VPORTSTART          1
-#define DDRAWI_VPORTSTOP           2
-#define DDRAWI_VPORTUPDATE         3
 
-typedef struct
+
+typedef struct _DD_UPDATEVPORTDATA
 {
        PDD_DIRECTDRAW_LOCAL           lpDD;
        PDD_VIDEOPORT_LOCAL            lpVideoPort;
@@ -794,7 +843,7 @@ typedef struct
 } DD_UPDATEVPORTDATA, *PDD_UPDATEVPORTDATA;
 typedef DWORD (STDCALL *PDD_VPORTCB_UPDATE)(PDD_UPDATEVPORTDATA);
 
-typedef struct
+typedef struct _DD_WAITFORVPORTSYNCDATA
 {
        PDD_DIRECTDRAW_LOCAL           lpDD;
        PDD_VIDEOPORT_LOCAL            lpVideoPort;
@@ -806,7 +855,7 @@ typedef struct
 } DD_WAITFORVPORTSYNCDATA, *PDD_WAITFORVPORTSYNCDATA;
 typedef DWORD (STDCALL *PDD_VPORTCB_WAITFORSYNC)(PDD_WAITFORVPORTSYNCDATA);
 
-typedef struct
+typedef struct _DD_GETVPORTSIGNALDATA
 {
        PDD_DIRECTDRAW_LOCAL           lpDD;
        PDD_VIDEOPORT_LOCAL            lpVideoPort;
@@ -816,10 +865,9 @@ typedef struct
 } DD_GETVPORTSIGNALDATA, *PDD_GETVPORTSIGNALDATA;
 typedef DWORD (STDCALL *PDD_VPORTCB_GETSIGNALSTATUS)(PDD_GETVPORTSIGNALDATA);
 
-#define DDRAWI_VPORTGETCOLOR       1
-#define DDRAWI_VPORTSETCOLOR       2
 
-typedef struct
+
+typedef struct _DD_VPORTCOLORDATA
 {
        PDD_DIRECTDRAW_LOCAL           lpDD;
        PDD_VIDEOPORT_LOCAL            lpVideoPort;
@@ -830,9 +878,8 @@ typedef struct
 } DD_VPORTCOLORDATA, *PDD_VPORTCOLORDATA;
 typedef DWORD (STDCALL *PDD_VPORTCB_COLORCONTROL)(PDD_VPORTCOLORDATA);
 
-DEFINE_GUID(GUID_VideoPortCallbacks, 0xEFD60CC1, 0x49E7, 0x11D0, 0x88, 0x9D, 0x00, 0xAA, 0x00, 0xBB, 0xB7, 0x6A);
 
-typedef struct
+typedef struct DD_VIDEOPORTCALLBACKS
 {
        DWORD                          dwSize;
        DWORD                          dwFlags;
@@ -842,7 +889,7 @@ typedef struct
        PDD_VPORTCB_GETBANDWIDTH       GetVideoPortBandwidth;
        PDD_VPORTCB_GETINPUTFORMATS    GetVideoPortInputFormats;
        PDD_VPORTCB_GETOUTPUTFORMATS   GetVideoPortOutputFormats;
-       PVOID                          Reserved;
+       PVOID                          lpReserved1;
        PDD_VPORTCB_GETFIELD           GetVideoPortField;
        PDD_VPORTCB_GETLINE            GetVideoPortLine;
        PDD_VPORTCB_GETVPORTCONNECT    GetVideoPortConnectInfo;
@@ -854,33 +901,31 @@ typedef struct
        PDD_VPORTCB_COLORCONTROL       ColorControl;
 } DD_VIDEOPORTCALLBACKS, *PDD_VIDEOPORTCALLBACKS;
 
-enum
-{
-       DDHAL_VPORT32_CANCREATEVIDEOPORT = 1<<0,
-       DDHAL_VPORT32_CREATEVIDEOPORT    = 1<<1,
-       DDHAL_VPORT32_FLIP               = 1<<2,
-       DDHAL_VPORT32_GETBANDWIDTH       = 1<<3,
-       DDHAL_VPORT32_GETINPUTFORMATS    = 1<<4,
-       DDHAL_VPORT32_GETOUTPUTFORMATS   = 1<<5,
-       DDHAL_VPORT32_GETFIELD           = 1<<7,
-       DDHAL_VPORT32_GETLINE            = 1<<8,
-       DDHAL_VPORT32_GETCONNECT         = 1<<9,
-       DDHAL_VPORT32_DESTROY            = 1<<10,
-       DDHAL_VPORT32_GETFLIPSTATUS      = 1<<11,
-       DDHAL_VPORT32_UPDATE             = 1<<12,
-       DDHAL_VPORT32_WAITFORSYNC        = 1<<13,
-       DDHAL_VPORT32_GETSIGNALSTATUS    = 1<<14,
-       DDHAL_VPORT32_COLORCONTROL       = 1<<15,
-};
+#define DDHAL_VPORT32_CANCREATEVIDEOPORT    0x00000001
+#define DDHAL_VPORT32_CREATEVIDEOPORT       0x00000002
+#define DDHAL_VPORT32_FLIP                  0x00000004
+#define DDHAL_VPORT32_GETBANDWIDTH          0x00000008
+#define DDHAL_VPORT32_GETINPUTFORMATS       0x00000010
+#define DDHAL_VPORT32_GETOUTPUTFORMATS      0x00000020
+#define DDHAL_VPORT32_GETFIELD              0x00000080
+#define DDHAL_VPORT32_GETLINE               0x00000100
+#define DDHAL_VPORT32_GETCONNECT            0x00000200
+#define DDHAL_VPORT32_DESTROY               0x00000400
+#define DDHAL_VPORT32_GETFLIPSTATUS         0x00000800
+#define DDHAL_VPORT32_UPDATE                0x00001000
+#define DDHAL_VPORT32_WAITFORSYNC           0x00002000
+#define DDHAL_VPORT32_GETSIGNALSTATUS       0x00004000
+#define DDHAL_VPORT32_COLORCONTROL          0x00008000
+
 
 /************************************************************************/
 /* IDirectDrawColorControl callbacks                                    */
 /************************************************************************/
 
-#define DDRAWI_GETCOLOR      1
-#define DDRAWI_SETCOLOR      2
+#define DDRAWI_GETCOLOR      0x0001
+#define DDRAWI_SETCOLOR      0x0002
 
-typedef struct
+typedef struct _DD_COLORCONTROLDATA
 {
        PDD_DIRECTDRAW_GLOBAL    lpDD;
        PDD_SURFACE_LOCAL        lpDDSurface;
@@ -891,25 +936,22 @@ typedef struct
 } DD_COLORCONTROLDATA, *PDD_COLORCONTROLDATA;
 typedef DWORD (STDCALL *PDD_COLORCB_COLORCONTROL)(PDD_COLORCONTROLDATA);
 
-DEFINE_GUID(GUID_ColorControlCallbacks, 0xEFD60CC2, 0x49E7, 0x11D0, 0x88, 0x9D, 0x00, 0xAA, 0x00, 0xBB, 0xB7, 0x6A);
 
-typedef struct
+
+typedef struct _DD_COLORCONTROLCALLBACKS
 {
        DWORD                    dwSize;
        DWORD                    dwFlags;
        PDD_COLORCB_COLORCONTROL ColorControl;
 } DD_COLORCONTROLCALLBACKS, *PDD_COLORCONTROLCALLBACKS;
 
-enum
-{
-       DDHAL_COLOR_COLORCONTROL = 1<<0,
-};
+#define DDHAL_COLOR_COLORCONTROL            0x00000001
 
 /************************************************************************/
 /* IDirectDrawVideo callbacks                                           */
 /************************************************************************/
 
-typedef struct
+typedef struct _DD_GETMOCOMPGUIDSDATA
 {
        PDD_DIRECTDRAW_LOCAL         lpDD;
        DWORD                        dwNumGuids;
@@ -918,7 +960,7 @@ typedef struct
 } DD_GETMOCOMPGUIDSDATA, *PDD_GETMOCOMPGUIDSDATA;
 typedef DWORD (STDCALL *PDD_MOCOMPCB_GETGUIDS)(PDD_GETMOCOMPGUIDSDATA);
 
-typedef struct
+typedef struct _DD_GETMOCOMPFORMATSDATA
 {
        PDD_DIRECTDRAW_LOCAL         lpDD;
        GUID                        *lpGuid;
@@ -928,7 +970,7 @@ typedef struct
 } DD_GETMOCOMPFORMATSDATA, *PDD_GETMOCOMPFORMATSDATA;
 typedef DWORD (STDCALL *PDD_MOCOMPCB_GETFORMATS)(PDD_GETMOCOMPFORMATSDATA);
 
-typedef struct
+typedef struct _DD_CREATEMOCOMPDATA
 {
        PDD_DIRECTDRAW_LOCAL         lpDD;
        PDD_MOTIONCOMP_LOCAL         lpMoComp;
@@ -942,7 +984,7 @@ typedef struct
 } DD_CREATEMOCOMPDATA, *PDD_CREATEMOCOMPDATA;
 typedef DWORD (STDCALL *PDD_MOCOMPCB_CREATE)(PDD_CREATEMOCOMPDATA);
 
-typedef struct
+typedef struct _DDCOMPBUFFERINFO
 {
        DWORD                        dwSize;
        DWORD                        dwNumCompBuffers;
@@ -951,9 +993,9 @@ typedef struct
        DWORD                        dwBytesToAllocate;
        DDSCAPS2                     ddCompCaps;
        DDPIXELFORMAT                ddPixelFormat;
-} DDCOMPBUFFERINFO, *PDDCOMPBUFFERINFO;
+} DDCOMPBUFFERINFO, *LPDDCOMPBUFFERINFO;
 
-typedef struct
+typedef struct _DD_GETMOCOMPCOMPBUFFDATA
 {
        PDD_DIRECTDRAW_LOCAL         lpDD;
        GUID                        *lpGuid;
@@ -961,12 +1003,12 @@ typedef struct
        DWORD                        dwHeight;
        DDPIXELFORMAT                ddPixelFormat;
        DWORD                        dwNumTypesCompBuffs;
-       PDDCOMPBUFFERINFO            lpCompBuffInfo;
+       LPDDCOMPBUFFERINFO            lpCompBuffInfo;
        HRESULT                      ddRVal;
 } DD_GETMOCOMPCOMPBUFFDATA, *PDD_GETMOCOMPCOMPBUFFDATA;
 typedef DWORD (STDCALL *PDD_MOCOMPCB_GETCOMPBUFFINFO)(PDD_GETMOCOMPCOMPBUFFDATA);
 
-typedef struct
+typedef struct _DD_GETINTERNALMOCOMPDATA
 {
        PDD_DIRECTDRAW_LOCAL         lpDD;
        GUID                        *lpGuid;
@@ -978,7 +1020,7 @@ typedef struct
 } DD_GETINTERNALMOCOMPDATA, *PDD_GETINTERNALMOCOMPDATA;
 typedef DWORD (STDCALL *PDD_MOCOMPCB_GETINTERNALINFO)(PDD_GETINTERNALMOCOMPDATA);
 
-typedef struct
+typedef struct _DD_BEGINMOCOMPFRAMEDATA
 {
        PDD_DIRECTDRAW_LOCAL         lpDD;
        PDD_MOTIONCOMP_LOCAL         lpMoComp;
@@ -991,7 +1033,7 @@ typedef struct
 } DD_BEGINMOCOMPFRAMEDATA, *PDD_BEGINMOCOMPFRAMEDATA;
 typedef DWORD (STDCALL *PDD_MOCOMPCB_BEGINFRAME)(PDD_BEGINMOCOMPFRAMEDATA);
 
-typedef struct
+typedef struct _DD_ENDMOCOMPFRAMEDATA
 {
        PDD_DIRECTDRAW_LOCAL         lpDD;
        PDD_MOTIONCOMP_LOCAL         lpMoComp;
@@ -1001,21 +1043,21 @@ typedef struct
 } DD_ENDMOCOMPFRAMEDATA, *PDD_ENDMOCOMPFRAMEDATA;
 typedef DWORD (STDCALL *PDD_MOCOMPCB_ENDFRAME)(PDD_ENDMOCOMPFRAMEDATA);
 
-typedef struct
+typedef struct _DDMOCOMPBUFFERINFO
 {
        DWORD                        dwSize;
        PDD_SURFACE_LOCAL            lpCompSurface;
        DWORD                        dwDataOffset;
        DWORD                        dwDataSize;
        LPVOID                       lpPrivate;
-} DDMOCOMPBUFFERINFO, *PDDMOCOMPBUFFERINFO;
+} DDMOCOMPBUFFERINFO, *LPDDMOCOMPBUFFERINFO;
 
-typedef struct
+typedef struct _DD_RENDERMOCOMPDATA
 {
        PDD_DIRECTDRAW_LOCAL         lpDD;
        PDD_MOTIONCOMP_LOCAL         lpMoComp;
        DWORD                        dwNumBuffers;
-       PDDMOCOMPBUFFERINFO          lpBufferInfo;
+       LPDDMOCOMPBUFFERINFO         lpBufferInfo;
        DWORD                        dwFunction;
        LPVOID                       lpInputData;
        DWORD                        dwInputDataSize;
@@ -1025,9 +1067,9 @@ typedef struct
 } DD_RENDERMOCOMPDATA, *PDD_RENDERMOCOMPDATA;
 typedef DWORD (STDCALL *PDD_MOCOMPCB_RENDER)(PDD_RENDERMOCOMPDATA);
 
-#define DDMCQUERY_READ 1
+#define DDMCQUERY_READ 0x00000001
 
-typedef struct
+typedef struct _DD_QUERYMOCOMPSTATUSDATA
 {
        PDD_DIRECTDRAW_LOCAL         lpDD;
        PDD_MOTIONCOMP_LOCAL         lpMoComp;
@@ -1037,7 +1079,7 @@ typedef struct
 } DD_QUERYMOCOMPSTATUSDATA, *PDD_QUERYMOCOMPSTATUSDATA;
 typedef DWORD (STDCALL *PDD_MOCOMPCB_QUERYSTATUS)(PDD_QUERYMOCOMPSTATUSDATA);
 
-typedef struct
+typedef struct _DD_DESTROYMOCOMPDATA
 {
        PDD_DIRECTDRAW_LOCAL         lpDD;
        PDD_MOTIONCOMP_LOCAL         lpMoComp;
@@ -1045,9 +1087,9 @@ typedef struct
 } DD_DESTROYMOCOMPDATA, *PDD_DESTROYMOCOMPDATA;
 typedef DWORD (STDCALL *PDD_MOCOMPCB_DESTROY)(PDD_DESTROYMOCOMPDATA);
 
-DEFINE_GUID(GUID_MotionCompCallbacks, 0xB1122B40, 0x5DA5, 0x11D1, 0x8F, 0xCF, 0x00, 0xC0, 0x4F, 0xC2, 0x9B, 0x4E);
 
-typedef struct
+
+typedef struct DD_MOTIONCOMPCALLBACKS
 {
        DWORD                        dwSize;
        DWORD                        dwFlags;
@@ -1061,28 +1103,24 @@ typedef struct
        PDD_MOCOMPCB_RENDER          RenderMoComp;
        PDD_MOCOMPCB_QUERYSTATUS     QueryMoCompStatus;
        PDD_MOCOMPCB_DESTROY         DestroyMoComp;
-} DD_MOTIONCOMPCALLBACKS;
-typedef DD_MOTIONCOMPCALLBACKS *PDD_MOTIONCOMPCALLBACKS;
-
-enum
-{
-       DDHAL_MOCOMP32_GETGUIDS        = 1<<0,
-       DDHAL_MOCOMP32_GETFORMATS      = 1<<1,
-       DDHAL_MOCOMP32_CREATE          = 1<<2,
-       DDHAL_MOCOMP32_GETCOMPBUFFINFO = 1<<3,
-       DDHAL_MOCOMP32_GETINTERNALINFO = 1<<4,
-       DDHAL_MOCOMP32_BEGINFRAME      = 1<<5,
-       DDHAL_MOCOMP32_ENDFRAME        = 1<<6,
-       DDHAL_MOCOMP32_RENDER          = 1<<7,
-       DDHAL_MOCOMP32_QUERYSTATUS     = 1<<8,
-       DDHAL_MOCOMP32_DESTROY         = 1<<9,
-};
+} DD_MOTIONCOMPCALLBACKS, *PDD_MOTIONCOMPCALLBACKS;
+
+#define DDHAL_MOCOMP32_GETGUIDS             0x00000001
+#define DDHAL_MOCOMP32_GETFORMATS           0x00000002
+#define DDHAL_MOCOMP32_CREATE               0x00000004
+#define DDHAL_MOCOMP32_GETCOMPBUFFINFO      0x00000008
+#define DDHAL_MOCOMP32_GETINTERNALINFO      0x00000010
+#define DDHAL_MOCOMP32_BEGINFRAME           0x00000020
+#define DDHAL_MOCOMP32_ENDFRAME             0x00000040
+#define DDHAL_MOCOMP32_RENDER               0x00000080
+#define DDHAL_MOCOMP32_QUERYSTATUS          0x00000100
+#define DDHAL_MOCOMP32_DESTROY              0x00000200
 
 /************************************************************************/
 /* D3D buffer callbacks                                                 */
 /************************************************************************/
 
-typedef struct
+typedef struct _DD_D3DBUFCALLBACKS
 {
        DWORD                     dwSize;
        DWORD                     dwFlags;
@@ -1097,7 +1135,7 @@ typedef struct
 /* DdGetDriverInfo callback                                             */
 /************************************************************************/
 
-typedef struct
+typedef struct _DD_GETDRIVERINFODATA
 {
        // Input:
        PVOID   dhpdev;
@@ -1109,7 +1147,6 @@ typedef struct
        // Output:
        DWORD   dwActualSize;
        HRESULT ddRVal;
-       ULONG_PTR  dwContext;
 } DD_GETDRIVERINFODATA, *PDD_GETDRIVERINFODATA;
 typedef DWORD (STDCALL *PDD_GETDRIVERINFO)(PDD_GETDRIVERINFODATA);
 
@@ -1120,7 +1157,7 @@ typedef DWORD (STDCALL *PDD_GETDRIVERINFO)(PDD_GETDRIVERINFODATA);
 /* Driver info structures                                               */
 /************************************************************************/
 
-typedef struct
+typedef struct _DDNTCORECAPS
 {
        DWORD   dwSize;
        DWORD   dwCaps;
@@ -1175,7 +1212,17 @@ typedef struct
        DWORD   dwSVBCaps2;
 } DDNTCORECAPS, *PDDNTCORECAPS;
 
-typedef struct
+
+typedef struct _DD_HALINFO_V4
+{
+    DWORD              dwSize;
+    VIDEOMEMORYINFO    vmiData;
+    DDNTCORECAPS       ddCaps;
+    PDD_GETDRIVERINFO  GetDriverInfo;
+    DWORD              dwFlags;
+} DD_HALINFO_V4, *PDD_HALINFO_V4;
+
+typedef struct _DD_HALINFO
 {
        DWORD               dwSize;
        VIDEOMEMORYINFO     vmiData;
@@ -1188,9 +1235,8 @@ typedef struct
 } DD_HALINFO, *PDD_HALINFO;
 
 
-DEFINE_GUID(GUID_NonLocalVidMemCaps, 0x86C4FA80, 0x8D84, 0x11D0, 0x94, 0xE8, 0x00, 0xC0, 0x4F, 0xC3, 0x41, 0x37);
 
-typedef struct
+typedef struct _DD_NONLOCALVIDMEMCAPS
 {
        DWORD dwSize;
        DWORD dwNLVBCaps;
@@ -1200,13 +1246,13 @@ typedef struct
        DWORD dwNLVBRops[DD_ROP_SPACE];
 } DD_NONLOCALVIDMEMCAPS, *PDD_NONLOCALVIDMEMCAPS;
 
-DEFINE_GUID(GUID_DDMoreSurfaceCaps, 0x3B8A0466, 0xF269, 0x11D1, 0x88, 0x0B, 0x00, 0xC0, 0x4F, 0xD9, 0x30, 0xC5);
 
-typedef struct
+
+typedef struct _DD_MORESURFACECAPS
 {
        DWORD         dwSize;
        DDSCAPSEX     ddsCapsMore;
-       struct
+       struct tagNTExtendedHeapRestrictions
        {
                DDSCAPSEX ddsCapsEx;
                DDSCAPSEX ddsCapsExAlt;
@@ -1214,9 +1260,202 @@ typedef struct
 } DD_MORESURFACECAPS, *PDD_MORESURFACECAPS;
 
 
+/*********************************************************/
+/* Kernel Callbacks                                      */
+/*********************************************************/
+typedef struct _DD_SYNCSURFACEDATA
+{
+    PDD_DIRECTDRAW_LOCAL  lpDD;
+    PDD_SURFACE_LOCAL     lpDDSurface;
+    DWORD                 dwSurfaceOffset;
+    ULONG_PTR             fpLockPtr;
+    LONG                  lPitch;
+    DWORD                 dwOverlayOffset;
+    ULONG                 dwDriverReserved1;
+    ULONG                 dwDriverReserved2;
+    ULONG                 dwDriverReserved3;
+    ULONG                 dwDriverReserved4;
+    HRESULT               ddRVal;
+} DD_SYNCSURFACEDATA, *PDD_SYNCSURFACEDATA;
+typedef DWORD (STDCALL *PDD_KERNELCB_SYNCSURFACE)(PDD_SYNCSURFACEDATA);
+
+typedef struct _DD_SYNCVIDEOPORTDATA
+{
+    PDD_DIRECTDRAW_LOCAL  lpDD;
+    PDD_VIDEOPORT_LOCAL   lpVideoPort;
+    DWORD                 dwOriginOffset;
+    DWORD                 dwHeight;
+    DWORD                 dwVBIHeight;
+    ULONG                 dwDriverReserved1;
+    ULONG                 dwDriverReserved2;
+    ULONG                 dwDriverReserved3;
+    HRESULT               ddRVal;
+} DD_SYNCVIDEOPORTDATA, *PDD_SYNCVIDEOPORTDATA;
+typedef DWORD (STDCALL *PDD_KERNELCB_SYNCVIDEOPORT)(PDD_SYNCVIDEOPORTDATA);
+
+
+typedef struct DD_NTPRIVATEDRIVERCAPS
+{
+    DWORD                   dwSize;
+    DWORD                   dwPrivateCaps;
+} DD_NTPRIVATEDRIVERCAPS;
+
+typedef struct _DD_UPDATENONLOCALHEAPDATA
+{
+    PDD_DIRECTDRAW_GLOBAL   lpDD;
+    DWORD                   dwHeap;
+    FLATPTR                 fpGARTLin;
+    FLATPTR                 fpGARTDev;
+    ULONG_PTR               ulPolicyMaxBytes;
+    HRESULT                 ddRVal;
+    VOID*                   UpdateNonLocalHeap;
+} DD_UPDATENONLOCALHEAPDATA, *PDD_UPDATENONLOCALHEAPDATA;
+
+typedef struct _DD_STEREOMODE
+{
+    DWORD dwSize;
+    DWORD dwHeight;
+    DWORD dwWidth;
+    DWORD dwBpp;
+    DWORD dwRefreshRate;
+    BOOL bSupported;
+} DD_STEREOMODE, *PDD_STEREOMODE;
+
+typedef struct _DD_MORECAPS
+{
+    DWORD dwSize;
+    DWORD dwAlphaCaps;
+    DWORD dwSVBAlphaCaps;
+    DWORD dwVSBAlphaCaps;
+    DWORD dwSSBAlphaCaps;
+    DWORD dwFilterCaps;
+    DWORD dwSVBFilterCaps;
+    DWORD dwVSBFilterCaps;
+    DWORD dwSSBFilterCaps;
+} DD_MORECAPS, *PDD_MORECAPS;
+
+typedef struct _DD_CLIPPER_GLOBAL
+{
+    ULONG_PTR dwReserved1;
+} DD_CLIPPER_GLOBAL;
+
+typedef struct _DD_CLIPPER_LOCAL
+{
+    ULONG_PTR dwReserved1;
+} DD_CLIPPER_LOCAL;
+
+typedef struct _DD_PALETTE_LOCAL
+{
+    ULONG  dwReserved0;
+    ULONG_PTR dwReserved1;
+} DD_PALETTE_LOCAL;
+
+
+typedef struct DD_KERNELCALLBACKS
+{
+    DWORD dwSize;
+    DWORD  dwFlags;
+    PDD_KERNELCB_SYNCSURFACE   SyncSurfaceData;
+    PDD_KERNELCB_SYNCVIDEOPORT SyncVideoPortData;
+} DD_KERNELCALLBACKS, *PDD_KERNELCALLBACKS;
+
+
+#define MAX_AUTOFLIP_BUFFERS                  10
+#define DDSCAPS_EXECUTEBUFFER                 DDSCAPS_RESERVED2
+#define DDSCAPS_COMMANDBUFFER                 DDSCAPS_RESERVED3
+#define DDSCAPS_VERTEXBUFFER                  DDSCAPS_RESERVED4
+#define DDPF_D3DFORMAT                        0x00200000l
+#define D3DFORMAT_OP_TEXTURE                  0x00000001L
+#define D3DFORMAT_OP_VOLUMETEXTURE            0x00000002L
+#define D3DFORMAT_OP_CUBETEXTURE              0x00000004L
+#define D3DFORMAT_OP_OFFSCREEN_RENDERTARGET   0x00000008L
+#define D3DFORMAT_OP_SAME_FORMAT_RENDERTARGET 0x00000010L
+#define D3DFORMAT_OP_ZSTENCIL                 0x00000040L
+#define D3DFORMAT_OP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH    0x00000080L
+#define D3DFORMAT_OP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET   0x00000100L
+#define D3DFORMAT_OP_DISPLAYMODE              0x00000400L
+#define D3DFORMAT_OP_3DACCELERATION           0x00000800L
+#define D3DFORMAT_OP_PIXELSIZE                0x00001000L
+#define D3DFORMAT_OP_CONVERT_TO_ARGB          0x00002000L
+#define D3DFORMAT_OP_OFFSCREENPLAIN           0x00004000L
+#define D3DFORMAT_OP_SRGBREAD                 0x00008000L
+#define D3DFORMAT_OP_BUMPMAP                  0x00010000L
+#define D3DFORMAT_OP_DMAP                     0x00020000L
+#define D3DFORMAT_OP_NOFILTER                 0x00040000L
+#define D3DFORMAT_MEMBEROFGROUP_ARGB          0x00080000L
+#define D3DFORMAT_OP_SRGBWRITE                0x00100000L
+#define D3DFORMAT_OP_NOALPHABLEND             0x00200000L
+#define D3DFORMAT_OP_AUTOGENMIPMAP            0x00400000L
+#define D3DFORMAT_OP_VERTEXTEXTURE            0x00800000L
+#define D3DFORMAT_OP_NOTEXCOORDWRAPNORMIP        0x01000000L
+#define DDHAL_PLEASEALLOC_BLOCKSIZE           0x00000002l
+#define DDHAL_PLEASEALLOC_USERMEM             0x00000004l
+
+
+#define VIDMEM_ISLINEAR                       0x00000001l
+#define VIDMEM_ISRECTANGULAR                  0x00000002l
+#define VIDMEM_ISHEAP                         0x00000004l
+#define VIDMEM_ISNONLOCAL                     0x00000008l
+#define VIDMEM_ISWC                           0x00000010l
+#define VIDMEM_HEAPDISABLED                   0x00000020l
+
+#define DDHAL_CREATESURFACEEX_SWAPHANDLES     0x00000001l
+
+#define DDHAL_KERNEL_SYNCSURFACEDATA          0x00000001l
+#define DDHAL_KERNEL_SYNCVIDEOPORTDATA        0x00000002l
+
+#define DDHAL_DRIVER_NOTHANDLED               0x00000000l
+#define DDHAL_DRIVER_HANDLED                  0x00000001l
+#define DDHAL_DRIVER_NOCKEYHW                 0x00000002l
+
+#define DDRAWISURF_HASCKEYSRCBLT              0x00000800L
+#define DDRAWISURF_HASPIXELFORMAT             0x00002000L
+#define DDRAWISURF_HASOVERLAYDATA             0x00004000L
+#define DDRAWISURF_FRONTBUFFER                0x04000000L
+#define DDRAWISURF_BACKBUFFER                 0x08000000L
+#define DDRAWISURF_INVALID                    0x10000000L
+#define DDRAWISURF_DRIVERMANAGED              0x40000000L
+
+#define ROP_HAS_SOURCE                        0x00000001l
+#define ROP_HAS_PATTERN                       0x00000002l
+#define ROP_HAS_SOURCEPATTERN                 ROP_HAS_SOURCE | ROP_HAS_PATTERN
+
+#define DDHAL_EXEBUFCB32_CANCREATEEXEBUF      0x00000001l
+#define DDHAL_EXEBUFCB32_CREATEEXEBUF         0x00000002l
+#define DDHAL_EXEBUFCB32_DESTROYEXEBUF        0x00000004l
+#define DDHAL_EXEBUFCB32_LOCKEXEBUF           0x00000008l
+#define DDHAL_EXEBUFCB32_UNLOCKEXEBUF         0x00000010l
+
+#define DDHAL_D3DBUFCB32_CANCREATED3DBUF      DDHAL_EXEBUFCB32_CANCREATEEXEBUF
+#define DDHAL_D3DBUFCB32_CREATED3DBUF         DDHAL_EXEBUFCB32_CREATEEXEBUF
+#define DDHAL_D3DBUFCB32_DESTROYD3DBUF        DDHAL_EXEBUFCB32_DESTROYEXEBUF
+#define DDHAL_D3DBUFCB32_LOCKD3DBUF           DDHAL_EXEBUFCB32_LOCKEXEBUF
+#define DDHAL_D3DBUFCB32_UNLOCKD3DBUF         DDHAL_EXEBUFCB32_UNLOCKEXEBUF
+
+#define DDHALINFO_ISPRIMARYDISPLAY            0x00000001
+#define DDHALINFO_MODEXILLEGAL                0x00000002
+#define DDHALINFO_GETDRIVERINFOSET            0x00000004
+#define DDHALINFO_GETDRIVERINFO2              0x00000008
+
+#define DDRAWIVPORT_ON                        0x00000001
+#define DDRAWIVPORT_SOFTWARE_AUTOFLIP         0x00000002
+#define DDRAWIVPORT_COLORKEYANDINTERP         0x00000004
+
+#define DDHAL_PRIVATECAP_ATOMICSURFACECREATION   0x00000001l
+#define DDHAL_PRIVATECAP_NOTIFYPRIMARYCREATION   0x00000002l
+#define DDHAL_PRIVATECAP_RESERVED1               0x00000004l
+
+#define DDRAWI_VPORTSTART                     0x0001
+#define DDRAWI_VPORTSTOP                      0x0002
+#define DDRAWI_VPORTUPDATE                    0x0003
+#define DDRAWI_VPORTGETCOLOR                  0x0001
+#define DDRAWI_VPORTSETCOLOR                  0x0002
+
 
 #ifdef __cplusplus
 } /* extern "C" */
 #endif
 
+#endif /* GUID_DEFS_ONLY */
+
 #endif /* __DD_INCLUDED__ */