[DDK]
authorAmine Khaldi <amine.khaldi@reactos.org>
Mon, 9 Aug 2010 20:58:47 +0000 (20:58 +0000)
committerAmine Khaldi <amine.khaldi@reactos.org>
Mon, 9 Aug 2010 20:58:47 +0000 (20:58 +0000)
- Move several headers to PSDK where they belong.
- Add _ANONYMOUS_UNION.
- De-duplicate __GNU_EXTENSION definition from several headers.
- Remove semicolons after the closing bracket of extern "C"
- Add a missing one in ioaccess.h
- Apply a consistent formatting.
[PSDK]
- De-duplicate __GNU_EXTENSION definition from several headers.
- Add missing extern "C" opening bracket in ddkernel.h and remove the semicolon from the closing one.
- Add __GNU_EXTENSION definition to ddraw.h and remove the semicolon after the closing bracket of extern "C"
- Add missing extern "C" closing bracket in ddrawi.h
- Remove semicolons after the closing brackets of extern "C" in dinput.h, dmemmgr.h and sti.h
- Apply a consistent formatting.
[DXSDK]
- Move ddraw.h to PSDK.

svn path=/trunk/; revision=48497

32 files changed:
reactos/include/ddk/acpiioct.h
reactos/include/ddk/bdasup.h
reactos/include/ddk/d3dhal.h
reactos/include/ddk/d3dhalex.h
reactos/include/ddk/d3dnthal.h [deleted file]
reactos/include/ddk/ddkernel.h [deleted file]
reactos/include/ddk/ddrawi.h [deleted file]
reactos/include/ddk/ddrawint.h [deleted file]
reactos/include/ddk/dvp.h
reactos/include/ddk/ioaccess.h
reactos/include/psdk/d3dnthal.h [new file with mode: 0644]
reactos/include/psdk/ddkernel.h [new file with mode: 0644]
reactos/include/psdk/ddkmapi.h [moved from reactos/include/ddk/ddkmapi.h with 59% similarity]
reactos/include/psdk/ddraw.h [moved from reactos/include/dxsdk/ddraw.h with 99% similarity]
reactos/include/psdk/ddrawi.h [new file with mode: 0644]
reactos/include/psdk/ddrawint.h [new file with mode: 0644]
reactos/include/psdk/dinput.h
reactos/include/psdk/diskguid.h [moved from reactos/include/ddk/diskguid.h with 100% similarity]
reactos/include/psdk/dmemmgr.h [moved from reactos/include/ddk/dmemmgr.h with 99% similarity]
reactos/include/psdk/ntddtape.h [moved from reactos/include/ddk/ntddtape.h with 100% similarity]
reactos/include/psdk/ntddtdi.h [moved from reactos/include/ddk/ntddtdi.h with 100% similarity]
reactos/include/psdk/ntddvdeo.h [moved from reactos/include/ddk/ntddvdeo.h with 100% similarity]
reactos/include/psdk/ntddvol.h [moved from reactos/include/ddk/ntddvol.h with 100% similarity]
reactos/include/psdk/objerror.h [moved from reactos/include/ddk/objerror.h with 100% similarity]
reactos/include/psdk/polarity.h [moved from reactos/include/ddk/polarity.h with 100% similarity]
reactos/include/psdk/prntfont.h [moved from reactos/include/ddk/prntfont.h with 100% similarity]
reactos/include/psdk/sti.h
reactos/include/psdk/stierr.h [moved from reactos/include/ddk/stierr.h with 100% similarity]
reactos/include/psdk/stireg.h [moved from reactos/include/ddk/stireg.h with 100% similarity]
reactos/include/psdk/tdi.h [moved from reactos/include/ddk/tdi.h with 100% similarity]
reactos/include/psdk/tdiinfo.h [moved from reactos/include/ddk/tdiinfo.h with 100% similarity]
reactos/include/psdk/unknown.h [moved from reactos/include/ddk/unknown.h with 100% similarity]

index d4d550f..eeeb6e8 100644 (file)
@@ -35,7 +35,7 @@ extern "C" {
 
 typedef struct _ACPI_EVAL_INPUT_BUFFER {
   ULONG Signature;
-  union {
+  _ANONYMOUS_UNION union {
     UCHAR MethodName[4];
     ULONG MethodNameAsUlong;
   } DUMMYUNIONNAME;
@@ -43,7 +43,7 @@ typedef struct _ACPI_EVAL_INPUT_BUFFER {
 
 typedef struct _ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER {
   ULONG Signature;
-  union {
+  _ANONYMOUS_UNION union {
     UCHAR MethodName[4];
     ULONG MethodNameAsUlong;
   } DUMMYUNIONNAME;
@@ -52,7 +52,7 @@ typedef struct _ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER {
 
 typedef struct _ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING {
   ULONG Signature;
-  union {
+  _ANONYMOUS_UNION union {
     UCHAR MethodName[4];
     ULONG MethodNameAsUlong;
   } DUMMYUNIONNAME;
@@ -63,7 +63,7 @@ typedef struct _ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING {
 typedef struct _ACPI_METHOD_ARGUMENT {
   USHORT Type;
   USHORT DataLength;
-  union {
+  _ANONYMOUS_UNION union {
     ULONG Argument;
     UCHAR Data[ANYSIZE_ARRAY];
   } DUMMYUNIONNAME;
@@ -72,7 +72,7 @@ typedef ACPI_METHOD_ARGUMENT UNALIGNED *PACPI_METHOD_ARGUMENT;
 
 typedef struct _ACPI_EVAL_INPUT_BUFFER_COMPLEX {
   ULONG Signature;
-  union {
+  _ANONYMOUS_UNION union {
     UCHAR MethodName[4];
     ULONG MethodNameAsUlong;
   } DUMMYUNIONNAME;
@@ -142,47 +142,47 @@ typedef struct _ACPI_ENUM_CHILDREN_OUTPUT_BUFFER {
 typedef ACPI_ENUM_CHILDREN_OUTPUT_BUFFER UNALIGNED *PACPI_ENUM_CHILDREN_OUTPUT_BUFFER;
 
 #define ACPI_METHOD_ARGUMENT_LENGTH( DataLength )                           \
-    (FIELD_OFFSET(ACPI_METHOD_ARGUMENT, Data) + max(sizeof(ULONG), DataLength))
+  (FIELD_OFFSET(ACPI_METHOD_ARGUMENT, Data) + max(sizeof(ULONG), DataLength))
 
 #define ACPI_METHOD_ARGUMENT_LENGTH_FROM_ARGUMENT( Argument )               \
-    (ACPI_METHOD_ARGUMENT_LENGTH(((PACPI_METHOD_ARGUMENT)Argument)->DataLength))
+  (ACPI_METHOD_ARGUMENT_LENGTH(((PACPI_METHOD_ARGUMENT)Argument)->DataLength))
 
 #define ACPI_METHOD_NEXT_ARGUMENT( Argument )                               \
-    (PACPI_METHOD_ARGUMENT) ( (PUCHAR) Argument +                           \
-    ACPI_METHOD_ARGUMENT_LENGTH_FROM_ARGUMENT( Argument ) )
+  (PACPI_METHOD_ARGUMENT) ( (PUCHAR) Argument +                             \
+  ACPI_METHOD_ARGUMENT_LENGTH_FROM_ARGUMENT( Argument ) )
 
 
 #define ACPI_METHOD_SET_ARGUMENT_INTEGER( MethodArgument, IntData )         \
-    { MethodArgument->Type = ACPI_METHOD_ARGUMENT_INTEGER;                  \
-      MethodArgument->DataLength = sizeof(ULONG);                           \
-      MethodArgument->Argument = IntData; }
+  { MethodArgument->Type = ACPI_METHOD_ARGUMENT_INTEGER;                    \
+    MethodArgument->DataLength = sizeof(ULONG);                             \
+    MethodArgument->Argument = IntData; }
 
 #define ACPI_METHOD_SET_ARGUMENT_STRING( Argument, StrData )                \
-    { Argument->Type = ACPI_METHOD_ARGUMENT_STRING;                         \
-      Argument->DataLength = strlen((PCHAR)StrData) + sizeof(UCHAR);       \
-      RtlCopyMemory(&Argument->Data[0],(PUCHAR)StrData,Argument->DataLength); }
+  { Argument->Type = ACPI_METHOD_ARGUMENT_STRING;                           \
+    Argument->DataLength = strlen((PCHAR)StrData) + sizeof(UCHAR);          \
+    RtlCopyMemory(&Argument->Data[0],(PUCHAR)StrData,Argument->DataLength); }
 
 #define ACPI_METHOD_SET_ARGUMENT_BUFFER( Argument, BuffData, BuffLength )   \
-    { Argument->Type = ACPI_METHOD_ARGUMENT_BUFFER;                         \
-      Argument->DataLength = BuffLength;                                    \
-      RtlCopyMemory(&Argument->Data[0],(PUCHAR)BuffData,Argument->DataLength); }
+  { Argument->Type = ACPI_METHOD_ARGUMENT_BUFFER;                           \
+    Argument->DataLength = BuffLength;                                      \
+    RtlCopyMemory(&Argument->Data[0],(PUCHAR)BuffData,Argument->DataLength); }
 
-#define ACPI_ENUM_CHILD_LENGTH_FROM_CHILD( Child )              \
-    ( (2* sizeof (ULONG)) + Child->NameLength )
+#define ACPI_ENUM_CHILD_LENGTH_FROM_CHILD( Child ) \
+  ( (2* sizeof (ULONG)) + Child->NameLength )
 
-#define ACPI_ENUM_CHILD_NEXT( Child )                           \
-    (PACPI_ENUM_CHILD) ( (PUCHAR) Child +                       \
-    ACPI_ENUM_CHILD_LENGTH_FROM_CHILD( Child ) )
+#define ACPI_ENUM_CHILD_NEXT( Child )           \
+  (PACPI_ENUM_CHILD) ( (PUCHAR) Child +         \
+  ACPI_ENUM_CHILD_LENGTH_FROM_CHILD( Child ) )
 
-#define IOCTL_ACPI_ASYNC_EVAL_METHOD             CTL_CODE(FILE_DEVICE_ACPI, 0, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
-#define IOCTL_ACPI_EVAL_METHOD                   CTL_CODE(FILE_DEVICE_ACPI, 1, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
-#define IOCTL_ACPI_ACQUIRE_GLOBAL_LOCK           CTL_CODE(FILE_DEVICE_ACPI, 4, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
-#define IOCTL_ACPI_RELEASE_GLOBAL_LOCK           CTL_CODE(FILE_DEVICE_ACPI, 5, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+#define IOCTL_ACPI_ASYNC_EVAL_METHOD    CTL_CODE(FILE_DEVICE_ACPI, 0, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+#define IOCTL_ACPI_EVAL_METHOD          CTL_CODE(FILE_DEVICE_ACPI, 1, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+#define IOCTL_ACPI_ACQUIRE_GLOBAL_LOCK  CTL_CODE(FILE_DEVICE_ACPI, 4, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+#define IOCTL_ACPI_RELEASE_GLOBAL_LOCK  CTL_CODE(FILE_DEVICE_ACPI, 5, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
 
 #if (NTDDI_VERSION >= NTDDI_VISTA)
-#define IOCTL_ACPI_EVAL_METHOD_EX                CTL_CODE(FILE_DEVICE_ACPI, 6, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
-#define IOCTL_ACPI_ASYNC_EVAL_METHOD_EX          CTL_CODE(FILE_DEVICE_ACPI, 7, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
-#define IOCTL_ACPI_ENUM_CHILDREN                 CTL_CODE(FILE_DEVICE_ACPI, 8, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+#define IOCTL_ACPI_EVAL_METHOD_EX       CTL_CODE(FILE_DEVICE_ACPI, 6, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+#define IOCTL_ACPI_ASYNC_EVAL_METHOD_EX CTL_CODE(FILE_DEVICE_ACPI, 7, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+#define IOCTL_ACPI_ENUM_CHILDREN        CTL_CODE(FILE_DEVICE_ACPI, 8, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
 #endif
 
 #ifdef __cplusplus
index 373ccdb..5196411 100644 (file)
@@ -6,15 +6,6 @@
 extern "C" {
 #endif
 
-/* Helper macro to enable gcc's extension. */
-#ifndef __GNU_EXTENSION
-#ifdef __GNUC__
-#define __GNU_EXTENSION __extension__
-#else
-#define __GNU_EXTENSION
-#endif
-#endif
-
 #define STDMETHODCALLTYPE __stdcall
 
 #ifndef _WDMDDK_
index d4ecc2c..a6b0a7b 100644 (file)
 #ifndef _D3DHAL_H_
 #define _D3DHAL_H_
 
-/* Helper macro to enable gcc's extension.  */
-#ifndef __GNU_EXTENSION
-#ifdef __GNUC__
-#define __GNU_EXTENSION __extension__
-#else
-#define __GNU_EXTENSION
-#endif
-#endif
-
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -61,31 +52,31 @@ typedef struct _DDRAWI_DDRAWSURFACE_LCL FAR *LPDDRAWI_DDRAWSURFACE_LCL;
  * device info structures
  */
 typedef struct _D3DDeviceDesc_V1 {
-  DWORD                        dwSize;
-  DWORD                        dwFlags;
-  D3DCOLORMODEL                dcmColorModel;
-  DWORD                        dwDevCaps;
-  D3DTRANSFORMCAPS     dtcTransformCaps;
-  BOOL                 bClipping;
-  D3DLIGHTINGCAPS      dlcLightingCaps;
-  D3DPRIMCAPS          dpcLineCaps;
-  D3DPRIMCAPS          dpcTriCaps;
-  DWORD                        dwDeviceRenderBitDepth;
-  DWORD                        dwDeviceZBufferBitDepth;
-  DWORD                        dwMaxBufferSize;
-  DWORD                        dwMaxVertexCount;
+  DWORD dwSize;
+  DWORD dwFlags;
+  D3DCOLORMODEL dcmColorModel;
+  DWORD dwDevCaps;
+  D3DTRANSFORMCAPS dtcTransformCaps;
+  BOOL bClipping;
+  D3DLIGHTINGCAPS dlcLightingCaps;
+  D3DPRIMCAPS dpcLineCaps;
+  D3DPRIMCAPS dpcTriCaps;
+  DWORD dwDeviceRenderBitDepth;
+  DWORD dwDeviceZBufferBitDepth;
+  DWORD dwMaxBufferSize;
+  DWORD dwMaxVertexCount;
 } D3DDEVICEDESC_V1,*LPD3DDEVICEDESC_V1;
 
 /* this is to allow keeping the bulk of our OpenGL code out of x11drv */
 #define D3DDD_WINE_OPENGL_DEVICE 0x00008000
 
 typedef struct _D3DHAL_GLOBALDRIVERDATA {
-  DWORD                        dwSize;
-  D3DDEVICEDESC_V1     hwCaps;
-  DWORD                        dwNumVertices;
-  DWORD                        dwNumClipVertices;
-  DWORD                        dwNumTextureFormats;
-  LPDDSURFACEDESC      lpTextureFormats;
+  DWORD dwSize;
+  D3DDEVICEDESC_V1 hwCaps;
+  DWORD dwNumVertices;
+  DWORD dwNumClipVertices;
+  DWORD dwNumTextureFormats;
+  LPDDSURFACEDESC lpTextureFormats;
 } D3DHAL_GLOBALDRIVERDATA;
 
 #ifndef D3DHAL_GLOBALDRIVERDATA_DEFINED
@@ -94,103 +85,103 @@ typedef D3DHAL_GLOBALDRIVERDATA *LPD3DHAL_GLOBALDRIVERDATA;
 #endif
 
 typedef struct _D3DHAL_D3DEXTENDEDCAPS {
-  DWORD                        dwSize;
+  DWORD dwSize;
   /* DirectX 5 */
-  DWORD                        dwMinTextureWidth, dwMaxTextureWidth;
-  DWORD                        dwMinTextureHeight, dwMaxTextureHeight;
-  DWORD                        dwMinStippleWidth, dwMaxStippleWidth;
-  DWORD                        dwMinStippleHeight, dwMaxStippleHeight;
+  DWORD dwMinTextureWidth, dwMaxTextureWidth;
+  DWORD dwMinTextureHeight, dwMaxTextureHeight;
+  DWORD dwMinStippleWidth, dwMaxStippleWidth;
+  DWORD dwMinStippleHeight, dwMaxStippleHeight;
   /* DirectX 6 */
-  DWORD                        dwMaxTextureRepeat;
-  DWORD                        dwMaxTextureAspectRatio;
-  DWORD                        dwMaxAnisotropy;
-  D3DVALUE             dvGuardBandLeft;
-  D3DVALUE             dvGuardBandTop;
-  D3DVALUE             dvGuardBandRight;
-  D3DVALUE             dvGuardBandBottom;
-  D3DVALUE             dvExtentsAdjust;
-  DWORD                        dwStencilCaps;
-  DWORD                        dwFVFCaps;
-  DWORD                        dwTextureOpCaps;
-  WORD                 wMaxTextureBlendStages;
-  WORD                 wMaxSimultaneousTextures;
+  DWORD dwMaxTextureRepeat;
+  DWORD dwMaxTextureAspectRatio;
+  DWORD dwMaxAnisotropy;
+  D3DVALUE dvGuardBandLeft;
+  D3DVALUE dvGuardBandTop;
+  D3DVALUE dvGuardBandRight;
+  D3DVALUE dvGuardBandBottom;
+  D3DVALUE dvExtentsAdjust;
+  DWORD dwStencilCaps;
+  DWORD dwFVFCaps;
+  DWORD dwTextureOpCaps;
+  WORD wMaxTextureBlendStages;
+  WORD wMaxSimultaneousTextures;
   /* DirectX 7 */
-  DWORD                        dwMaxActiveLights;
-  D3DVALUE             dvMaxVertexW;
-  WORD                 wMaxUserClipPlanes;
-  WORD                 wMaxVertexBlendMatrices;
-  DWORD                        dwVertexProcessingCaps;
-  DWORD                        dwReserved1;
-  DWORD                        dwReserved2;
-  DWORD                        dwReserved3;
-  DWORD                        dwReserved4;
+  DWORD dwMaxActiveLights;
+  D3DVALUE dvMaxVertexW;
+  WORD wMaxUserClipPlanes;
+  WORD wMaxVertexBlendMatrices;
+  DWORD dwVertexProcessingCaps;
+  DWORD dwReserved1;
+  DWORD dwReserved2;
+  DWORD dwReserved3;
+  DWORD dwReserved4;
 } D3DHAL_D3DEXTENDEDCAPS,*LPD3DHAL_D3DEXTENDEDCAPS;
 
 /*****************************************************************************
  * d3d->driver callbacks
  */
-typedef struct _D3DHAL_CONTEXTCREATEDATA       *LPD3DHAL_CONTEXTCREATEDATA;
-typedef struct _D3DHAL_CONTEXTDESTROYDATA      *LPD3DHAL_CONTEXTDESTROYDATA;
-typedef struct _D3DHAL_CONTEXTDESTROYALLDATA   *LPD3DHAL_CONTEXTDESTROYALLDATA;
-typedef struct _D3DHAL_SCENECAPTUREDATA                *LPD3DHAL_SCENECAPTUREDATA;
-typedef struct _D3DHAL_RENDERSTATEDATA         *LPD3DHAL_RENDERSTATEDATA;
-typedef struct _D3DHAL_RENDERPRIMITIVEDATA     *LPD3DHAL_RENDERPRIMITIVEDATA;
-typedef struct _D3DHAL_TEXTURECREATEDATA       *LPD3DHAL_TEXTURECREATEDATA;
-typedef struct _D3DHAL_TEXTUREDESTROYDATA      *LPD3DHAL_TEXTUREDESTROYDATA;
-typedef struct _D3DHAL_TEXTURESWAPDATA         *LPD3DHAL_TEXTURESWAPDATA;
-typedef struct _D3DHAL_TEXTUREGETSURFDATA      *LPD3DHAL_TEXTUREGETSURFDATA;
-typedef struct _D3DHAL_GETSTATEDATA            *LPD3DHAL_GETSTATEDATA;
+typedef struct _D3DHAL_CONTEXTCREATEDATA *LPD3DHAL_CONTEXTCREATEDATA;
+typedef struct _D3DHAL_CONTEXTDESTROYDATA *LPD3DHAL_CONTEXTDESTROYDATA;
+typedef struct _D3DHAL_CONTEXTDESTROYALLDATA *LPD3DHAL_CONTEXTDESTROYALLDATA;
+typedef struct _D3DHAL_SCENECAPTUREDATA *LPD3DHAL_SCENECAPTUREDATA;
+typedef struct _D3DHAL_RENDERSTATEDATA *LPD3DHAL_RENDERSTATEDATA;
+typedef struct _D3DHAL_RENDERPRIMITIVEDATA *LPD3DHAL_RENDERPRIMITIVEDATA;
+typedef struct _D3DHAL_TEXTURECREATEDATA *LPD3DHAL_TEXTURECREATEDATA;
+typedef struct _D3DHAL_TEXTUREDESTROYDATA *LPD3DHAL_TEXTUREDESTROYDATA;
+typedef struct _D3DHAL_TEXTURESWAPDATA *LPD3DHAL_TEXTURESWAPDATA;
+typedef struct _D3DHAL_TEXTUREGETSURFDATA *LPD3DHAL_TEXTUREGETSURFDATA;
+typedef struct _D3DHAL_GETSTATEDATA *LPD3DHAL_GETSTATEDATA;
 
 typedef DWORD (PASCAL *LPD3DHAL_CONTEXTCREATECB)    (LPD3DHAL_CONTEXTCREATEDATA);
 typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYCB)   (LPD3DHAL_CONTEXTDESTROYDATA);
 typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYALLCB)(LPD3DHAL_CONTEXTDESTROYALLDATA);
-typedef DWORD (PASCAL *LPD3DHAL_SCENECAPTURECB)            (LPD3DHAL_SCENECAPTUREDATA);
-typedef DWORD (PASCAL *LPD3DHAL_RENDERSTATECB)     (LPD3DHAL_RENDERSTATEDATA);
+typedef DWORD (PASCAL *LPD3DHAL_SCENECAPTURECB)     (LPD3DHAL_SCENECAPTUREDATA);
+typedef DWORD (PASCAL *LPD3DHAL_RENDERSTATECB)      (LPD3DHAL_RENDERSTATEDATA);
 typedef DWORD (PASCAL *LPD3DHAL_RENDERPRIMITIVECB)  (LPD3DHAL_RENDERPRIMITIVEDATA);
 typedef DWORD (PASCAL *LPD3DHAL_TEXTURECREATECB)    (LPD3DHAL_TEXTURECREATEDATA);
 typedef DWORD (PASCAL *LPD3DHAL_TEXTUREDESTROYCB)   (LPD3DHAL_TEXTUREDESTROYDATA);
-typedef DWORD (PASCAL *LPD3DHAL_TEXTURESWAPCB)     (LPD3DHAL_TEXTURESWAPDATA);
+typedef DWORD (PASCAL *LPD3DHAL_TEXTURESWAPCB)      (LPD3DHAL_TEXTURESWAPDATA);
 typedef DWORD (PASCAL *LPD3DHAL_TEXTUREGETSURFCB)   (LPD3DHAL_TEXTUREGETSURFDATA);
-typedef DWORD (PASCAL *LPD3DHAL_GETSTATECB)        (LPD3DHAL_GETSTATEDATA);
+typedef DWORD (PASCAL *LPD3DHAL_GETSTATECB)         (LPD3DHAL_GETSTATEDATA);
 
 typedef struct _D3DHAL_CALLBACKS {
-  DWORD                                dwSize;
-  LPD3DHAL_CONTEXTCREATECB     ContextCreate;
-  LPD3DHAL_CONTEXTDESTROYCB    ContextDestroy;
-  LPD3DHAL_CONTEXTDESTROYALLCB ContextDestroyAll;
-  LPD3DHAL_SCENECAPTURECB      SceneCapture;
-  LPVOID                       lpReserved10;
-  LPVOID                       lpReserved11;
-  LPD3DHAL_RENDERSTATECB       RenderState;
-  LPD3DHAL_RENDERPRIMITIVECB   RenderPrimitive;
-  DWORD                                dwReserved;
-  LPD3DHAL_TEXTURECREATECB     TextureCreate;
-  LPD3DHAL_TEXTUREDESTROYCB    TextureDestroy;
-  LPD3DHAL_TEXTURESWAPCB       TextureSwap;
-  LPD3DHAL_TEXTUREGETSURFCB    TextureGetSurf;
+  DWORD dwSize;
+  LPD3DHAL_CONTEXTCREATECB ContextCreate;
+  LPD3DHAL_CONTEXTDESTROYCB ContextDestroy;
+  LPD3DHAL_CONTEXTDESTROYALLCB ContextDestroyAll;
+  LPD3DHAL_SCENECAPTURECB SceneCapture;
+  LPVOID lpReserved10;
+  LPVOID lpReserved11;
+  LPD3DHAL_RENDERSTATECB RenderState;
+  LPD3DHAL_RENDERPRIMITIVECB RenderPrimitive;
+  DWORD dwReserved;
+  LPD3DHAL_TEXTURECREATECB TextureCreate;
+  LPD3DHAL_TEXTUREDESTROYCB TextureDestroy;
+  LPD3DHAL_TEXTURESWAPCB TextureSwap;
+  LPD3DHAL_TEXTUREGETSURFCB TextureGetSurf;
   /* now why did MS create CALLBACKS2 and CALLBACKS3 structures if
    * all these reserved fields were available? we may never know */
-  LPVOID                       lpReserved12;
-  LPVOID                       lpReserved13;
-  LPVOID                       lpReserved14;
-  LPVOID                       lpReserved15;
-  LPVOID                       lpReserved16;
-  LPVOID                       lpReserved17;
-  LPVOID                       lpReserved18;
-  LPVOID                       lpReserved19;
-  LPVOID                       lpReserved20;
-  LPVOID                       lpReserved21;
-  LPD3DHAL_GETSTATECB          GetState;
-  DWORD                                dwReserved0;
-  DWORD                                dwReserved1;
-  DWORD                                dwReserved2;
-  DWORD                                dwReserved3;
-  DWORD                                dwReserved4;
-  DWORD                                dwReserved5;
-  DWORD                                dwReserved6;
-  DWORD                                dwReserved7;
-  DWORD                                dwReserved8;
-  DWORD                                dwReserved9;
+  LPVOID lpReserved12;
+  LPVOID lpReserved13;
+  LPVOID lpReserved14;
+  LPVOID lpReserved15;
+  LPVOID lpReserved16;
+  LPVOID lpReserved17;
+  LPVOID lpReserved18;
+  LPVOID lpReserved19;
+  LPVOID lpReserved20;
+  LPVOID lpReserved21;
+  LPD3DHAL_GETSTATECB GetState;
+  DWORD dwReserved0;
+  DWORD dwReserved1;
+  DWORD dwReserved2;
+  DWORD dwReserved3;
+  DWORD dwReserved4;
+  DWORD dwReserved5;
+  DWORD dwReserved6;
+  DWORD dwReserved7;
+  DWORD dwReserved8;
+  DWORD dwReserved9;
 } D3DHAL_CALLBACKS;
 
 #ifndef D3DHAL_CALLBACKS_DEFINED
@@ -198,132 +189,132 @@ typedef D3DHAL_CALLBACKS *LPD3DHAL_CALLBACKS;
 #define D3DHAL_CALLBACKS_DEFINED
 #endif
 
-typedef struct _D3DHAL_SETRENDERTARGETDATA             *LPD3DHAL_SETRENDERTARGETDATA;
-typedef struct _D3DHAL_CLEARDATA                       *LPD3DHAL_CLEARDATA;
-typedef struct _D3DHAL_DRAWONEPRIMITIVEDATA            *LPD3DHAL_DRAWONEPRIMITIVEDATA;
-typedef struct _D3DHAL_DRAWONEINDEXEDPRIMITIVEDATA     *LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA;
-typedef struct _D3DHAL_DRAWPRIMITIVESDATA              *LPD3DHAL_DRAWPRIMITIVESDATA;
+typedef struct _D3DHAL_SETRENDERTARGETDATA *LPD3DHAL_SETRENDERTARGETDATA;
+typedef struct _D3DHAL_CLEARDATA *LPD3DHAL_CLEARDATA;
+typedef struct _D3DHAL_DRAWONEPRIMITIVEDATA *LPD3DHAL_DRAWONEPRIMITIVEDATA;
+typedef struct _D3DHAL_DRAWONEINDEXEDPRIMITIVEDATA *LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA;
+typedef struct _D3DHAL_DRAWPRIMITIVESDATA *LPD3DHAL_DRAWPRIMITIVESDATA;
 
-typedef DWORD (PASCAL *LPD3DHAL_SETRENDERTARGETCB)       (LPD3DHAL_SETRENDERTARGETDATA);
-typedef DWORD (PASCAL *LPD3DHAL_CLEARCB)                 (LPD3DHAL_CLEARDATA);
-typedef DWORD (PASCAL *LPD3DHAL_DRAWONEPRIMITIVECB)      (LPD3DHAL_DRAWONEPRIMITIVEDATA);
+typedef DWORD (PASCAL *LPD3DHAL_SETRENDERTARGETCB)        (LPD3DHAL_SETRENDERTARGETDATA);
+typedef DWORD (PASCAL *LPD3DHAL_CLEARCB)                  (LPD3DHAL_CLEARDATA);
+typedef DWORD (PASCAL *LPD3DHAL_DRAWONEPRIMITIVECB)       (LPD3DHAL_DRAWONEPRIMITIVEDATA);
 typedef DWORD (PASCAL *LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB)(LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA);
-typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVESCB)        (LPD3DHAL_DRAWPRIMITIVESDATA);
+typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVESCB)         (LPD3DHAL_DRAWPRIMITIVESDATA);
 
 typedef struct _D3DHAL_CALLBACKS2 {
-  DWORD                                        dwSize;
-  DWORD                                        dwFlags;
-  LPD3DHAL_SETRENDERTARGETCB           SetRenderTarget;
-  LPD3DHAL_CLEARCB                     Clear;
-  LPD3DHAL_DRAWONEPRIMITIVECB          DrawOnePrimitive;
-  LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB   DrawOneIndexedPrimitive;
-  LPD3DHAL_DRAWPRIMITIVESCB            DrawPrimitives;
+  DWORD dwSize;
+  DWORD dwFlags;
+  LPD3DHAL_SETRENDERTARGETCB SetRenderTarget;
+  LPD3DHAL_CLEARCB Clear;
+  LPD3DHAL_DRAWONEPRIMITIVECB DrawOnePrimitive;
+  LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB DrawOneIndexedPrimitive;
+  LPD3DHAL_DRAWPRIMITIVESCB DrawPrimitives;
 } D3DHAL_CALLBACKS2,*LPD3DHAL_CALLBACKS2;
 
-typedef struct _D3DHAL_CLEAR2DATA                      *LPD3DHAL_CLEAR2DATA;
-typedef struct _D3DHAL_VALIDATETEXTURESTAGESTATEDATA   *LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA;
-typedef struct _D3DHAL_DRAWPRIMITIVES2DATA             *LPD3DHAL_DRAWPRIMITIVES2DATA;
+typedef struct _D3DHAL_CLEAR2DATA *LPD3DHAL_CLEAR2DATA;
+typedef struct _D3DHAL_VALIDATETEXTURESTAGESTATEDATA *LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA;
+typedef struct _D3DHAL_DRAWPRIMITIVES2DATA *LPD3DHAL_DRAWPRIMITIVES2DATA;
 
-typedef DWORD (PASCAL *LPD3DHAL_CLEAR2CB)                (LPD3DHAL_CLEAR2DATA);
-typedef DWORD (PASCAL *LPD3DHAL_VALIDATETEXTURESTAGESTATECB)(LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA);
-typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVES2CB)       (LPD3DHAL_DRAWPRIMITIVES2DATA);
+typedef DWORD (PASCAL *LPD3DHAL_CLEAR2CB) (LPD3DHAL_CLEAR2DATA);
+typedef DWORD (PASCAL *LPD3DHAL_VALIDATETEXTURESTAGESTATECB) (LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA);
+typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVES2CB) (LPD3DHAL_DRAWPRIMITIVES2DATA);
 
 typedef struct _D3DHAL_CALLBACKS3 {
-  DWORD                                        dwSize;
-  DWORD                                        dwFlags;
-  LPD3DHAL_CLEAR2CB                    Clear2;
-  LPVOID                               lpvReserved;
-  LPD3DHAL_VALIDATETEXTURESTAGESTATECB ValidateTextureStageState;
-  LPD3DHAL_DRAWPRIMITIVES2CB           DrawPrimitives2;
+  DWORD dwSize;
+  DWORD dwFlags;
+  LPD3DHAL_CLEAR2CB Clear2;
+  LPVOID lpvReserved;
+  LPD3DHAL_VALIDATETEXTURESTAGESTATECB ValidateTextureStageState;
+  LPD3DHAL_DRAWPRIMITIVES2CB DrawPrimitives2;
 } D3DHAL_CALLBACKS3,*LPD3DHAL_CALLBACKS3;
 
 /*****************************************************************************
  * parameter structures
  */
 typedef struct _D3DHAL_CONTEXTCREATEDATA {
-  union {
-    LPDDRAWI_DIRECTDRAW_GBL    lpDDGbl; /* pre-DirectX 7 */
-    LPDDRAWI_DIRECTDRAW_LCL    lpDDLcl; /* DirectX 7 */
+  _ANONYMOUS_UNION union {
+    LPDDRAWI_DIRECTDRAW_GBL lpDDGbl; /* pre-DirectX 7 */
+    LPDDRAWI_DIRECTDRAW_LCL lpDDLcl; /* DirectX 7 */
   } DUMMYUNIONNAME1;
-  union {
-    LPDIRECTDRAWSURFACE                lpDDS;
-    LPDDRAWI_DDRAWSURFACE_LCL  lpDDSLcl; /* DirectX 7 */
+  _ANONYMOUS_UNION union {
+    LPDIRECTDRAWSURFACE lpDDS;
+    LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl; /* DirectX 7 */
   } DUMMYUNIONNAME2;
-  union {
-    LPDIRECTDRAWSURFACE                lpDDSZ;
-    LPDDRAWI_DDRAWSURFACE_LCL  lpDDSZLcl; /* DirectX 7 */
+  _ANONYMOUS_UNION union {
+    LPDIRECTDRAWSURFACE lpDDSZ;
+    LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl; /* DirectX 7 */
   } DUMMYUNIONNAME3;
-  union {
-    DWORD                      dwPID;
-    ULONG_PTR                  dwrstates;
+  _ANONYMOUS_UNION union {
+    DWORD dwPID;
+    ULONG_PTR dwrstates;
   } DUMMYUNIONNAME4;
-  ULONG_PTR                    dwhContext;
-  HRESULT                      ddrval;
+  ULONG_PTR dwhContext;
+  HRESULT ddrval;
 } D3DHAL_CONTEXTCREATEDATA;
 
 typedef struct _D3DHAL_CONTEXTDESTROYDATA {
-  ULONG_PTR                    dwhContext;
-  HRESULT                      ddrval;
+  ULONG_PTR dwhContext;
+  HRESULT ddrval;
 } D3DHAL_CONTEXTDESTROYDATA;
 
 typedef struct _D3DHAL_CONTEXTDESTROYALLDATA {
-  DWORD                                dwPID;
-  HRESULT                      ddrval;
+  DWORD dwPID;
+  HRESULT ddrval;
 } D3DHAL_CONTEXTDESTROYALLDATA;
 
 typedef struct _D3DHAL_SCENECAPTUREDATA {
-  ULONG_PTR                    dwhContext;
-  DWORD                                dwFlag;
-  HRESULT                      ddrval;
+  ULONG_PTR dwhContext;
+  DWORD dwFlag;
+  HRESULT ddrval;
 } D3DHAL_SCENECAPTUREDATA;
 
-#define D3DHAL_SCENE_CAPTURE_START     0x00000000
-#define D3DHAL_SCENE_CAPTURE_END       0x00000001
+#define D3DHAL_SCENE_CAPTURE_START 0x00000000
+#define D3DHAL_SCENE_CAPTURE_END   0x00000001
 
 typedef struct _D3DHAL_SETRENDERTARGETDATA {
-  ULONG_PTR                    dwhContext;
-  union {
-    LPDIRECTDRAWSURFACE                lpDDS;
-    LPDDRAWI_DDRAWSURFACE_LCL  lpDDSLcl;
+  ULONG_PTR dwhContext;
+  _ANONYMOUS_UNION union {
+    LPDIRECTDRAWSURFACE lpDDS;
+    LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl;
   } DUMMYUNIONNAME1;
-  union {
-    LPDIRECTDRAWSURFACE                lpDDSZ;
-    LPDDRAWI_DDRAWSURFACE_LCL  lpDDSZLcl;
+  _ANONYMOUS_UNION union {
+    LPDIRECTDRAWSURFACE lpDDSZ;
+    LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl;
   } DUMMYUNIONNAME2;
-  HRESULT                      ddrval;
+  HRESULT ddrval;
 } D3DHAL_SETRENDERTARGETDATA;
 
 typedef struct _D3DHAL_DRAWPRIMITIVES2DATA {
-  ULONG_PTR                    dwhContext;
-  DWORD                                dwFlags;
-  DWORD                                dwVertexType;
-  LPDDRAWI_DDRAWSURFACE_LCL    lpDDCommands;
-  DWORD                                dwCommandOffset;
-  DWORD                                dwCommandLength;
-  union {
-    LPDDRAWI_DDRAWSURFACE_LCL  lpDDVertex;
-    LPVOID                     lpVertices;
+  ULONG_PTR dwhContext;
+  DWORD dwFlags;
+  DWORD dwVertexType;
+  LPDDRAWI_DDRAWSURFACE_LCL lpDDCommands;
+  DWORD dwCommandOffset;
+  DWORD dwCommandLength;
+  _ANONYMOUS_UNION union {
+    LPDDRAWI_DDRAWSURFACE_LCL lpDDVertex;
+    LPVOID lpVertices;
   } DUMMYUNIONNAME1;
-  DWORD                                dwVertexOffset;
-  DWORD                                dwVertexLength;
-  DWORD                                dwReqVertexBufSize;
-  DWORD                                dwReqCommandBufSize;
-  LPDWORD                      lpdwRStates;
-  union {
-    DWORD                      dwVertexSize;
-    HRESULT                    ddrval;
+  DWORD dwVertexOffset;
+  DWORD dwVertexLength;
+  DWORD dwReqVertexBufSize;
+  DWORD dwReqCommandBufSize;
+  LPDWORD lpdwRStates;
+  _ANONYMOUS_UNION union {
+    DWORD dwVertexSize;
+    HRESULT ddrval;
   } DUMMYUNIONNAME2;
-  DWORD                                dwErrorOffset;
+  DWORD dwErrorOffset;
 } D3DHAL_DRAWPRIMITIVES2DATA;
 
-#define D3DHALDP2_USERMEMVERTICES      0x00000001
-#define D3DHALDP2_EXECUTEBUFFER                0x00000002
-#define D3DHALDP2_SWAPVERTEXBUFFER     0x00000004
-#define D3DHALDP2_SWAPCOMMANDBUFFER    0x00000008
-#define D3DHALDP2_REQVERTEXBUFSIZE     0x00000010
-#define D3DHALDP2_REQCOMMANDBUFSIZE    0x00000020
-#define D3DHALDP2_VIDMEMVERTEXBUF      0x00000040
-#define D3DHALDP2_VIDMEMCOMMANDBUF     0x00000080
+#define D3DHALDP2_USERMEMVERTICES   0x00000001
+#define D3DHALDP2_EXECUTEBUFFER     0x00000002
+#define D3DHALDP2_SWAPVERTEXBUFFER  0x00000004
+#define D3DHALDP2_SWAPCOMMANDBUFFER 0x00000008
+#define D3DHALDP2_REQVERTEXBUFSIZE  0x00000010
+#define D3DHALDP2_REQCOMMANDBUFSIZE 0x00000020
+#define D3DHALDP2_VIDMEMVERTEXBUF   0x00000040
+#define D3DHALDP2_VIDMEMCOMMANDBUF  0x00000080
 
 /*****************************************************************************
  * DrawPrimitives2 command structures
@@ -331,50 +322,50 @@ typedef struct _D3DHAL_DRAWPRIMITIVES2DATA {
 typedef struct _D3DHAL_DP2COMMAND {
   BYTE bCommand;
   BYTE bReserved;
-  union {
+  _ANONYMOUS_UNION union {
     WORD wPrimitiveCount;
     WORD wStateCount;
   } DUMMYUNIONNAME;
 } D3DHAL_DP2COMMAND,*LPD3DHAL_DP2COMMAND;
 
 typedef enum _D3DHAL_DP2OPERATION {
-  D3DDP2OP_POINTS              = 1,
-  D3DDP2OP_INDEXEDLINELIST     = 2,
-  D3DDP2OP_INDEXEDTRIANGLELIST = 3,
-  D3DDP2OP_RENDERSTATE         = 8,
-  D3DDP2OP_LINELIST            = 15,
-  D3DDP2OP_LINESTRIP           = 16,
-  D3DDP2OP_INDEXEDLINESTRIP    = 17,
-  D3DDP2OP_TRIANGLELIST                = 18,
-  D3DDP2OP_TRIANGLESTRIP       = 19,
-  D3DDP2OP_INDEXEDTRIANGLESTRIP        = 20,
-  D3DDP2OP_TRIANGLEFAN         = 21,
-  D3DDP2OP_INDEXEDTRIANGLEFAN  = 22,
-  D3DDP2OP_TRIANGLEFAN_IMM     = 23,
-  D3DDP2OP_LINELIST_IMM                = 24,
-  D3DDP2OP_TEXTURESTAGESTATE   = 25,
-  D3DDP2OP_INDEXEDTRIANGLELIST2        = 26,
-  D3DDP2OP_INDEXEDLINELIST2    = 27,
-  D3DDP2OP_VIEWPORTINFO                = 28,
-  D3DDP2OP_WINFO               = 29,
+  D3DDP2OP_POINTS = 1,
+  D3DDP2OP_INDEXEDLINELIST = 2,
+  D3DDP2OP_INDEXEDTRIANGLELIST = 3,
+  D3DDP2OP_RENDERSTATE = 8,
+  D3DDP2OP_LINELIST = 15,
+  D3DDP2OP_LINESTRIP = 16,
+  D3DDP2OP_INDEXEDLINESTRIP = 17,
+  D3DDP2OP_TRIANGLELIST = 18,
+  D3DDP2OP_TRIANGLESTRIP = 19,
+  D3DDP2OP_INDEXEDTRIANGLESTRIP = 20,
+  D3DDP2OP_TRIANGLEFAN = 21,
+  D3DDP2OP_INDEXEDTRIANGLEFAN = 22,
+  D3DDP2OP_TRIANGLEFAN_IMM = 23,
+  D3DDP2OP_LINELIST_IMM = 24,
+  D3DDP2OP_TEXTURESTAGESTATE = 25,
+  D3DDP2OP_INDEXEDTRIANGLELIST2 = 26,
+  D3DDP2OP_INDEXEDLINELIST2 = 27,
+  D3DDP2OP_VIEWPORTINFO = 28,
+  D3DDP2OP_WINFO = 29,
   /* pre-DirectX 7 interfaces */
-  D3DDP2OP_SETPALETTE          = 30,
-  D3DDP2OP_UPDATEPALETTE       = 31,
+  D3DDP2OP_SETPALETTE = 30,
+  D3DDP2OP_UPDATEPALETTE = 31,
   /* DirectX 7 interfaces */
-  D3DDP2OP_ZRANGE              = 32,
-  D3DDP2OP_SETMATERIAL         = 33,
-  D3DDP2OP_SETLIGHT            = 34,
-  D3DDP2OP_CREATELIGHT         = 35,
-  D3DDP2OP_SETTRANSFORM                = 36,
-  D3DDP2OP_TEXBLT              = 38,
-  D3DDP2OP_STATESET            = 39,
-  D3DDP2OP_SETPRIORITY         = 40,
+  D3DDP2OP_ZRANGE = 32,
+  D3DDP2OP_SETMATERIAL = 33,
+  D3DDP2OP_SETLIGHT = 34,
+  D3DDP2OP_CREATELIGHT = 35,
+  D3DDP2OP_SETTRANSFORM = 36,
+  D3DDP2OP_TEXBLT = 38,
+  D3DDP2OP_STATESET = 39,
+  D3DDP2OP_SETPRIORITY = 40,
   /* all interfaces */
-  D3DDP2OP_SETRENDERTARGET     = 41,
-  D3DDP2OP_CLEAR               = 42,
+  D3DDP2OP_SETRENDERTARGET = 41,
+  D3DDP2OP_CLEAR = 42,
   /* DirectX 7 interfaces */
-  D3DDP2OP_SETTEXLOD           = 43,
-  D3DPP2OP_SETCLIPPLANE                = 44,
+  D3DDP2OP_SETTEXLOD = 43,
+  D3DPP2OP_SETCLIPPLANE = 44,
 #if(DIRECT3D_VERSION >= 0x0800)
   D3DDP2OP_CREATEVERTEXSHADER   = 45,
   D3DDP2OP_DELETEVERTEXSHADER   = 46,
@@ -499,16 +490,16 @@ typedef struct _D3DHAL_DP2TRIANGLEFAN_IMM {
 
 /* render states */
 typedef struct _D3DHAL_DP2RENDERSTATE {
-  D3DRENDERSTATETYPE   RenderState;
-  union {
+  D3DRENDERSTATETYPE RenderState;
+  _ANONYMOUS_UNION union {
     D3DVALUE dvState;
     DWORD dwState;
   } DUMMYUNIONNAME;
 } D3DHAL_DP2RENDERSTATE,*LPD3DHAL_DP2RENDERSTATE;
 
 typedef struct _D3DHAL_DP2TEXTURESTAGESTATE {
-  WORD wStage;
-  WORD TSState;
+  WORD wStage;
+  WORD TSState;
   DWORD dwValue;
 } D3DHAL_DP2TEXTURESTAGESTATE,*LPD3DHAL_DP2TEXTURESTAGESTATE;
 
@@ -534,8 +525,8 @@ typedef struct _D3DHAL_DP2SETPALETTE {
 
 typedef struct _D3DHAL_DP2UPDATEPALETTE {
   DWORD dwPaletteHandle;
-  WORD wStartIndex;
-  WORD wNumEntries;
+  WORD wStartIndex;
+  WORD wNumEntries;
 } D3DHAL_DP2UPDATEPALETTE,*LPD3DHAL_DP2UPDATEPALETTE;
 
 typedef struct _D3DHAL_DP2ZRANGE {
@@ -550,17 +541,17 @@ typedef struct _D3DHAL_DP2SETLIGHT {
   DWORD dwDataType;
 } D3DHAL_DP2SETLIGHT,*LPD3DHAL_DP2SETLIGHT;
 
-#define D3DHAL_SETLIGHT_ENABLE 0
-#define D3DHAL_SETLIGHT_DISABLE        1
-#define D3DHAL_SETLIGHT_DATA   2
+#define D3DHAL_SETLIGHT_ENABLE  0
+#define D3DHAL_SETLIGHT_DISABLE 1
+#define D3DHAL_SETLIGHT_DATA    2
 
 typedef struct _D3DHAL_DP2CREATELIGHT {
   DWORD dwIndex;
 } D3DHAL_DP2CREATELIGHT,*LPD3DHAL_DP2CREATELIGHT;
 
 typedef struct _D3DHAL_DP2SETTRANSFORM {
-  D3DTRANSFORMSTATETYPE        xfrmType;
-  D3DMATRIX            matrix;
+  D3DTRANSFORMSTATETYPE xfrmType;
+  D3DMATRIX matrix;
 } D3DHAL_DP2SETTRANSFORM,*LPD3DHAL_DP2SETTRANSFORM;
 
 typedef struct _D3DHAL_DP2TEXBLT {
@@ -572,16 +563,16 @@ typedef struct _D3DHAL_DP2TEXBLT {
 } D3DHAL_DP2TEXBLT,*LPD3DHAL_DP2TEXBLT;
 
 typedef struct _D3DHAL_DP2STATESET {
-  DWORD               dwOperation;
-  DWORD               dwParam;
-  D3DSTATEBLOCKTYPE   sbType;
+  DWORD dwOperation;
+  DWORD dwParam;
+  D3DSTATEBLOCKTYPE sbType;
 } D3DHAL_DP2STATESET,*LPD3DHAL_DP2STATESET;
 
-#define D3DHAL_STATESETBEGIN   0
-#define D3DHAL_STATESETEND     1
-#define D3DHAL_STATESETDELETE  2
-#define D3DHAL_STATESETEXECUTE 3
-#define D3DHAL_STATESETCAPTURE 4
+#define D3DHAL_STATESETBEGIN   0
+#define D3DHAL_STATESETEND     1
+#define D3DHAL_STATESETDELETE  2
+#define D3DHAL_STATESETEXECUTE 3
+#define D3DHAL_STATESETCAPTURE 4
 
 typedef struct _D3DHAL_DP2SETPRIORITY {
   DWORD dwDDSurface;
@@ -594,11 +585,11 @@ typedef struct _D3DHAL_DP2SETRENDERTARGET {
 } D3DHAL_DP2SETRENDERTARGET,*LPD3DHAL_DP2SETRENDERTARGET;
 
 typedef struct _D3DHAL_DP2CLEAR {
-  DWORD                dwFlags;
-  DWORD                dwFillColor;
-  D3DVALUE     dvFillDepth;
-  DWORD                dwFillStencil;
-  RECT         Rects[1];
+  DWORD dwFlags;
+  DWORD dwFillColor;
+  D3DVALUE dvFillDepth;
+  DWORD dwFillStencil;
+  RECT Rects[1];
 } D3DHAL_DP2CLEAR,*LPD3DHAL_DP2CLEAR;
 
 typedef struct _D3DHAL_DP2SETTEXLOD {
@@ -606,35 +597,35 @@ typedef struct _D3DHAL_DP2SETTEXLOD {
   DWORD dwLOD;
 } D3DHAL_DP2SETTEXLOD,*LPD3DHAL_DP2SETTEXLOD;
 
-
 #if (DIRECT3D_VERSION >= 0x0900)
 
-#define DX9_DDI_VERSION     4
+#define DX9_DDI_VERSION 4
 
 #ifndef D3DVTXPCAPS_NO_VSDT_UBYTE4
-#define D3DVTXPCAPS_NO_VSDT_UBYTE4          0x00000080
+#define D3DVTXPCAPS_NO_VSDT_UBYTE4 0x00000080
 #endif
 
-#define D3DPMISCCAPS_LINEPATTERNREP         0x00000004
+#ifndef D3DPMISCCAPS_LINEPATTERNREP
+#define D3DPMISCCAPS_LINEPATTERNREP 0x00000004
+#endif
 
-#define D3DDEVCAPS_HWVERTEXBUFFER           0x02000000
-#define D3DDEVCAPS_HWINDEXBUFFER            0x04000000
-#define D3DDEVCAPS_SUBVOLUMELOCK            0x08000000
+#define D3DDEVCAPS_HWVERTEXBUFFER 0x02000000
+#define D3DDEVCAPS_HWINDEXBUFFER  0x04000000
+#define D3DDEVCAPS_SUBVOLUMELOCK  0x08000000
 
 #ifndef D3DPMISCCAPS_FOGINFVF
-#define D3DPMISCCAPS_FOGINFVF               0x00002000
+#define D3DPMISCCAPS_FOGINFVF 0x00002000
 #endif
 
 #ifndef D3DFVF_FOG
-#define D3DFVF_FOG                          0x00002000
+#define D3DFVF_FOG 0x00002000
 #endif
 
-typedef struct _DD_GETDRIVERINFO2DATA
-{
-    DWORD       dwReserved;
-    DWORD       dwMagic;
-    DWORD       dwType;
-    DWORD       dwExpectedSize;
+typedef struct _DD_GETDRIVERINFO2DATA {
+  DWORD dwReserved;
+  DWORD dwMagic;
+  DWORD dwType;
+  DWORD dwExpectedSize;
 } DD_GETDRIVERINFO2DATA;
 
 /**
@@ -642,19 +633,19 @@ typedef struct _DD_GETDRIVERINFO2DATA
  * D3DGDI2_MAGIC to see if the passed GUID is GUID_GetDriverInfo2
  * or a GUID_DDStereoMode.
  */
-#define GUID_GetDriverInfo2                         GUID_DDStereoMode
+#define GUID_GetDriverInfo2 GUID_DDStereoMode
 
 /**
  * Magic number used in DD_GETDRIVERINFO2DATA.dwHeight when
  * GUID_GetDriverInfo2/GUID_DDStereoMode is specified in a
  * GetDriverInfo call.
  */
-#define D3DGDI2_MAGIC                               0xFFFFFFFF
+#define D3DGDI2_MAGIC 0xFFFFFFFF
 
 #define D3DGDI2_TYPE_GETD3DCAPS8                    0x00000001
 #define D3DGDI2_TYPE_GETFORMATCOUNT                 0x00000002
 #define D3DGDI2_TYPE_GETFORMAT                      0x00000003
-#define D3DGDI2_TYPE_DXVERSION                      0x00000004  /* Make driver aware of currently used DirectX version */
+#define D3DGDI2_TYPE_DXVERSION                      0x00000004 /* Make driver aware of currently used DirectX version */
 #define D3DGDI2_TYPE_GETD3DCAPS9                    0x00000010
 #define D3DGDI2_TYPE_GETEXTENDEDMODECOUNT           0x00000011
 #define D3DGDI2_TYPE_GETEXTENDEDMODE                0x00000012
@@ -665,10 +656,9 @@ typedef struct _DD_GETDRIVERINFO2DATA
 #define D3DGDI2_TYPE_DEFER_AGP_FREES                0x00000020
 #define D3DGDI2_TYPE_GETD3DQUERYCOUNT               0x00000021
 #define D3DGDI2_TYPE_GETD3DQUERY                    0x00000022
-#define D3DGDI2_TYPE_GETDDIVERSION                  0x00000023  /* Returns DX9_DDI_VERSION, used to check which DDK version the driver is compiled against */
+#define D3DGDI2_TYPE_GETDDIVERSION                  0x00000023 /* Returns DX9_DDI_VERSION, used to check which DDK version the driver is compiled against */
 
-typedef struct _D3DCAPS8
-{
+typedef struct _D3DCAPS8 {
   D3DDEVTYPE DeviceType;
   UINT AdapterOrdinal;
   DWORD Caps;
@@ -724,90 +714,77 @@ typedef struct _D3DCAPS8
   float MaxPixelShaderValue;
 } D3DCAPS8;
 
-typedef struct _DD_GETFORMATCOUNTDATA
-{
-    DD_GETDRIVERINFO2DATA gdi2;
-    DWORD dwFormatCount;
-    DWORD dwReserved;
+typedef struct _DD_GETFORMATCOUNTDATA {
+  DD_GETDRIVERINFO2DATA gdi2;
+  DWORD dwFormatCount;
+  DWORD dwReserved;
 } DD_GETFORMATCOUNTDATA;
 
-typedef struct _DD_GETFORMATDATA
-{
-    DD_GETDRIVERINFO2DATA gdi2;
-    DWORD dwFormatIndex;
-    DDPIXELFORMAT format;
+typedef struct _DD_GETFORMATDATA {
+  DD_GETDRIVERINFO2DATA gdi2;
+  DWORD dwFormatIndex;
+  DDPIXELFORMAT format;
 } DD_GETFORMATDATA;
 
-typedef struct _DD_DXVERSION
-{
-    DD_GETDRIVERINFO2DATA gdi2;
-    DWORD dwDXVersion;
-    DWORD dwReserved;
+typedef struct _DD_DXVERSION {
+  DD_GETDRIVERINFO2DATA gdi2;
+  DWORD dwDXVersion;
+  DWORD dwReserved;
 } DD_DXVERSION;
 
-typedef struct _DD_DEFERRED_AGP_AWARE_DATA
-{
-    DD_GETDRIVERINFO2DATA gdi2;
+typedef struct _DD_DEFERRED_AGP_AWARE_DATA {
+  DD_GETDRIVERINFO2DATA gdi2;
 } DD_DEFERRED_AGP_AWARE_DATA;
 
-typedef struct _DD_FREE_DEFERRED_AGP_DATA
-{
-    DD_GETDRIVERINFO2DATA gdi2;
-    DWORD dwProcessId;
+typedef struct _DD_FREE_DEFERRED_AGP_DATA {
+  DD_GETDRIVERINFO2DATA gdi2;
+  DWORD dwProcessId;
 } DD_FREE_DEFERRED_AGP_DATA;
 
-typedef struct _DD_GETEXTENDEDMODECOUNTDATA
-{
-    DD_GETDRIVERINFO2DATA gdi2;
-    DWORD dwModeCount;
-    DWORD dwReserved;
+typedef struct _DD_GETEXTENDEDMODECOUNTDATA {
+  DD_GETDRIVERINFO2DATA gdi2;
+  DWORD dwModeCount;
+  DWORD dwReserved;
 } DD_GETEXTENDEDMODECOUNTDATA;
 
-typedef struct _DD_GETEXTENDEDMODEDATA
-{
-    DD_GETDRIVERINFO2DATA gdi2;
-    DWORD                 dwModeIndex;
-    D3DDISPLAYMODE        mode;
+typedef struct _DD_GETEXTENDEDMODEDATA {
+  DD_GETDRIVERINFO2DATA gdi2;
+  DWORD dwModeIndex;
+  D3DDISPLAYMODE mode;
 } DD_GETEXTENDEDMODEDATA;
 
-typedef struct _DD_GETADAPTERGROUPDATA
-{
-    DD_GETDRIVERINFO2DATA gdi2;
-    ULONG_PTR ulUniqueAdapterGroupId;
-    DWORD dwReserved1;
-    DWORD dwReserved2;
+typedef struct _DD_GETADAPTERGROUPDATA {
+  DD_GETDRIVERINFO2DATA gdi2;
+  ULONG_PTR ulUniqueAdapterGroupId;
+  DWORD dwReserved1;
+  DWORD dwReserved2;
 } DD_GETADAPTERGROUPDATA;
 
-typedef struct _DD_MULTISAMPLEQUALITYLEVELSDATA
-{
-    DD_GETDRIVERINFO2DATA gdi2;
-    D3DFORMAT Format;
-    BOOL                    bFlip  :  1;
-    D3DMULTISAMPLE_TYPE     MSType : 31;
-    DWORD QualityLevels;
+typedef struct _DD_MULTISAMPLEQUALITYLEVELSDATA {
+  DD_GETDRIVERINFO2DATA gdi2;
+  D3DFORMAT Format;
+  WINBOOL bFlip : 1;
+  D3DMULTISAMPLE_TYPE MSType : 31;
+  DWORD QualityLevels;
 } DD_MULTISAMPLEQUALITYLEVELSDATA;
 
-typedef struct _DD_GETD3DQUERYCOUNTDATA
-{
-    DD_GETDRIVERINFO2DATA gdi2;
-    DWORD dwNumQueries;
+typedef struct _DD_GETD3DQUERYCOUNTDATA {
+  DD_GETDRIVERINFO2DATA gdi2;
+  DWORD dwNumQueries;
 } DD_GETD3DQUERYCOUNTDATA;
 
-typedef struct _DD_GETD3DQUERYDATA
-{
-    DD_GETDRIVERINFO2DATA gdi2;
-    __GNU_EXTENSION union
-    {
-        DWORD dwQueryIndex;
-        D3DQUERYTYPE QueryType;
-    };
+typedef struct _DD_GETD3DQUERYDATA {
+  DD_GETDRIVERINFO2DATA gdi2;
+  __GNU_EXTENSION union {
+    DWORD dwQueryIndex;
+    D3DQUERYTYPE QueryType;
+  };
 } DD_GETD3DQUERYDATA;
 
-typedef struct _DD_GETDDIVERSIONDATA
-{
-    DD_GETDRIVERINFO2DATA gdi2;
-    DWORD dwDXVersion;
-    DWORD dwDDIVersion;
+typedef struct _DD_GETDDIVERSIONDATA {
+  DD_GETDRIVERINFO2DATA gdi2;
+  DWORD dwDXVersion;
+  DWORD dwDDIVersion;
 } DD_GETDDIVERSIONDATA;
 
 #endif /* (DIRECT3D_VERSION >= 0x0900) */
index c040876..7c852ae 100644 (file)
@@ -1,10 +1,10 @@
 
-
 #ifndef _D3DHALEX_H
 #define _D3DHALEX_H
+
 #define D3DGDI_IS_GDI2(pData)               ((((DD_GETDRIVERINFO2DATA*)(pData->lpvData))->dwMagic)  == D3DGDI2_MAGIC)
 #define D3DGDI_IS_STEREOMODE(pData)         ((((DD_STEREOMODE*)        (pData->lpvData))->dwHeight) != D3DGDI2_MAGIC)
 #define D3DGDI_GET_GDI2_DATA(pData)         (D3DGDI_IS_GDI2(pData) ? (((DD_GETDRIVERINFO2DATA*)(pData->lpvData))) : NULL)
 #define D3DGDI_GET_STEREOMODE_DATA(pData)   (D3DGDI_IS_STEREOMODE(pData) ? (((DD_STEREOMODE*)(pData->lpvData)))   : NULL)
 
-#endif
+#endif /* _D3DHALEX_H */
diff --git a/reactos/include/ddk/d3dnthal.h b/reactos/include/ddk/d3dnthal.h
deleted file mode 100644 (file)
index b396e6f..0000000
+++ /dev/null
@@ -1,272 +0,0 @@
-/* 
- * Direct3D NT driver interface
- */
-
-#ifndef __DDK_D3DNTHAL_H
-#define __DDK_D3DNTHAL_H
-
-#include <ddrawint.h>
-#include <d3dtypes.h>
-#include <d3dcaps.h>
-
-/* Helper macro to enable gcc's extension.  */
-#ifndef __GNU_EXTENSION
-#ifdef __GNUC__
-#define __GNU_EXTENSION __extension__
-#else
-#define __GNU_EXTENSION
-#endif
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-DEFINE_GUID(GUID_D3DCallbacks,                   0x7BF06990, 0x8794, 0x11D0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xD2, 0xEF, 0x02);
-DEFINE_GUID(GUID_D3DCallbacks3,                  0xDDF41230, 0xEC0A, 0x11D0, 0xA9, 0xB6, 0x00, 0xAA, 0x00, 0xC0, 0x99, 0x3E);
-DEFINE_GUID(GUID_D3DExtendedCaps,                0x7DE41F80, 0x9D93, 0x11D0, 0x89, 0xAB, 0x00, 0xA0, 0xC9, 0x05, 0x41, 0x29);
-DEFINE_GUID(GUID_D3DParseUnknownCommandCallback, 0x2E04FFA0, 0x98E4, 0x11D1, 0x8C, 0xE1, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0xA8);
-DEFINE_GUID(GUID_ZPixelFormats,                  0x93869880, 0x36CF, 0x11D1, 0x9B, 0x1B, 0x00, 0xAA, 0x00, 0xBB, 0xB8, 0xAE);
-DEFINE_GUID(GUID_DDStereoMode,                   0xF828169C, 0xA8E8, 0x11D2, 0xA1, 0xF2, 0x00, 0xA0, 0xC9, 0x83, 0xEA, 0xF6);
-
-typedef struct _D3DNTHAL_CONTEXTCREATEDATA
-{
-    __GNU_EXTENSION union
-    {
-        PDD_DIRECTDRAW_GLOBAL lpDDGbl;
-        PDD_DIRECTDRAW_LOCAL lpDDLcl;
-    };
-    __GNU_EXTENSION union
-    {
-        PDD_SURFACE_LOCAL lpDDS;
-        PDD_SURFACE_LOCAL lpDDSLcl;
-    };
-    __GNU_EXTENSION union
-    {
-        PDD_SURFACE_LOCAL lpDDSZ;
-        PDD_SURFACE_LOCAL lpDDSZLcl;
-    };
-    DWORD dwPID;
-    ULONG_PTR dwhContext;
-    HRESULT ddrval;
-} D3DNTHAL_CONTEXTCREATEDATA, *LPD3DNTHAL_CONTEXTCREATEDATA;
-
-typedef struct _D3DNTHAL_CONTEXTDESTROYDATA
-{
-    ULONG_PTR dwhContext;
-    HRESULT ddrval;
-} D3DNTHAL_CONTEXTDESTROYDATA, *LPD3DNTHAL_CONTEXTDESTROYDATA;
-
-typedef struct _D3DNTHAL_CONTEXTDESTROYALLDATA
-{
-    DWORD dwPID;
-    HRESULT ddrval;
-} D3DNTHAL_CONTEXTDESTROYALLDATA, *LPD3DNTHAL_CONTEXTDESTROYALLDATA;
-
-typedef struct _D3DNTHAL_SCENECAPTUREDATA
-{
-    ULONG_PTR dwhContext;
-    DWORD dwFlag;
-    HRESULT ddrval;
-} D3DNTHAL_SCENECAPTUREDATA, *LPD3DNTHAL_SCENECAPTUREDATA;
-
-typedef struct _D3DNTHAL_TEXTURECREATEDATA
-{
-    ULONG_PTR dwhContext;
-    HANDLE hDDS;
-    ULONG_PTR dwHandle;
-    HRESULT ddrval;
-} D3DNTHAL_TEXTURECREATEDATA, *LPD3DNTHAL_TEXTURECREATEDATA;
-
-typedef struct _D3DNTHAL_TEXTUREDESTROYDATA
-{
-    ULONG_PTR dwhContext;
-    ULONG_PTR dwHandle;
-    HRESULT ddrval;
-} D3DNTHAL_TEXTUREDESTROYDATA, *LPD3DNTHAL_TEXTUREDESTROYDATA;
-
-typedef struct _D3DNTHAL_TEXTURESWAPDATA
-{
-    ULONG_PTR dwhContext;
-    ULONG_PTR dwHandle1;
-    ULONG_PTR dwHandle2;
-    HRESULT ddrval;
-} D3DNTHAL_TEXTURESWAPDATA, *LPD3DNTHAL_TEXTURESWAPDATA;
-
-typedef struct _D3DNTHAL_TEXTUREGETSURFDATA
-{
-    ULONG_PTR dwhContext;
-    HANDLE hDDS;
-    ULONG_PTR dwHandle;
-    HRESULT ddrval;
-} D3DNTHAL_TEXTUREGETSURFDATA, *LPD3DNTHAL_TEXTUREGETSURFDATA;
-
-typedef DWORD (APIENTRY *LPD3DNTHAL_CONTEXTCREATECB)(LPD3DNTHAL_CONTEXTCREATEDATA);
-typedef DWORD (APIENTRY *LPD3DNTHAL_CONTEXTDESTROYCB)(LPD3DNTHAL_CONTEXTDESTROYDATA);
-typedef DWORD (APIENTRY *LPD3DNTHAL_CONTEXTDESTROYALLCB)(LPD3DNTHAL_CONTEXTDESTROYALLDATA);
-typedef DWORD (APIENTRY *LPD3DNTHAL_SCENECAPTURECB)(LPD3DNTHAL_SCENECAPTUREDATA);
-typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTURECREATECB)(LPD3DNTHAL_TEXTURECREATEDATA);
-typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTUREDESTROYCB)(LPD3DNTHAL_TEXTUREDESTROYDATA);
-typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTURESWAPCB)(LPD3DNTHAL_TEXTURESWAPDATA);
-typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTUREGETSURFCB)(LPD3DNTHAL_TEXTUREGETSURFDATA);
-
-typedef struct _D3DNTHALDeviceDesc_V1
-{
-       DWORD            dwSize;
-       DWORD            dwFlags;
-       D3DCOLORMODEL    dcmColorModel;
-       DWORD            dwDevCaps;
-       D3DTRANSFORMCAPS dtcTransformCaps;
-       BOOL             bClipping;
-       D3DLIGHTINGCAPS  dlcLightingCaps;
-       D3DPRIMCAPS      dpcLineCaps;
-       D3DPRIMCAPS      dpcTriCaps;
-       DWORD            dwDeviceRenderBitDepth;
-       DWORD            dwDeviceZBufferBitDepth;
-       DWORD            dwMaxBufferSize;
-       DWORD            dwMaxVertexCount;
-} D3DNTHALDEVICEDESC_V1, *LPD3DNTHALDEVICEDESC_V1;
-
-typedef struct _D3DNTHAL_GLOBALDRIVERDATA
-{
-       DWORD               dwSize;
-    D3DNTHALDEVICEDESC_V1 hwCaps;
-       DWORD               dwNumVertices;
-       DWORD               dwNumClipVertices;
-       DWORD               dwNumTextureFormats;
-       LPDDSURFACEDESC     lpTextureFormats;
-} D3DNTHAL_GLOBALDRIVERDATA, *LPD3DNTHAL_GLOBALDRIVERDATA;
-
-typedef struct _D3DNTHAL_CALLBACKS
-{
-    DWORD dwSize;
-    LPD3DNTHAL_CONTEXTCREATECB ContextCreate;
-    LPD3DNTHAL_CONTEXTDESTROYCB ContextDestroy;
-    LPD3DNTHAL_CONTEXTDESTROYALLCB ContextDestroyAll;
-    LPD3DNTHAL_SCENECAPTURECB SceneCapture;
-    LPVOID dwReserved10;
-    LPVOID dwReserved11;
-    LPVOID dwReserved22;
-    LPVOID dwReserved23;
-    ULONG_PTR dwReserved;
-    LPD3DNTHAL_TEXTURECREATECB TextureCreate;
-    LPD3DNTHAL_TEXTUREDESTROYCB TextureDestroy;
-    LPD3DNTHAL_TEXTURESWAPCB TextureSwap;
-    LPD3DNTHAL_TEXTUREGETSURFCB TextureGetSurf;
-    LPVOID dwReserved12;
-    LPVOID dwReserved13;
-    LPVOID dwReserved14;
-    LPVOID dwReserved15;
-    LPVOID dwReserved16;
-    LPVOID dwReserved17;
-    LPVOID dwReserved18;
-    LPVOID dwReserved19;
-    LPVOID dwReserved20;
-    LPVOID dwReserved21;
-    LPVOID dwReserved24;
-    ULONG_PTR dwReserved0;
-    ULONG_PTR dwReserved1;
-    ULONG_PTR dwReserved2;
-    ULONG_PTR dwReserved3;
-    ULONG_PTR dwReserved4;
-    ULONG_PTR dwReserved5;
-    ULONG_PTR dwReserved6;
-    ULONG_PTR dwReserved7;
-    ULONG_PTR dwReserved8;
-    ULONG_PTR dwReserved9;
-} D3DNTHAL_CALLBACKS, *LPD3DNTHAL_CALLBACKS;
-
-
-typedef struct _D3DNTHAL_SETRENDERTARGETDATA
-{
-    ULONG_PTR dwhContext;
-    PDD_SURFACE_LOCAL lpDDS;
-    PDD_SURFACE_LOCAL lpDDSZ;
-    HRESULT ddrval;
-} D3DNTHAL_SETRENDERTARGETDATA;
-typedef D3DNTHAL_SETRENDERTARGETDATA *LPD3DNTHAL_SETRENDERTARGETDATA;
-
-typedef DWORD (APIENTRY *LPD3DNTHAL_SETRENDERTARGETCB)(LPD3DNTHAL_SETRENDERTARGETDATA);
-
-
-typedef struct _D3DNTHAL_CALLBACKS2
-{
-    DWORD dwSize;
-    DWORD dwFlags;
-
-    LPD3DNTHAL_SETRENDERTARGETCB SetRenderTarget;
-    LPVOID dwReserved1;
-    LPVOID dwReserved2;
-    LPVOID dwReserved3;
-    LPVOID dwReserved4;
-} D3DNTHAL_CALLBACKS2, *LPD3DNTHAL_CALLBACKS2;
-
-
-typedef struct _D3DNTHAL_CLEAR2DATA
-{
-    ULONG_PTR dwhContext;
-    DWORD dwFlags;
-    DWORD dwFillColor;
-    D3DVALUE dvFillDepth;
-    DWORD dwFillStencil;
-    LPD3DRECT lpRects;
-    DWORD dwNumRects;
-    HRESULT ddrval;
-} D3DNTHAL_CLEAR2DATA;
-typedef D3DNTHAL_CLEAR2DATA FAR *LPD3DNTHAL_CLEAR2DATA;
-
-typedef struct _D3DNTHAL_VALIDATETEXTURESTAGESTATEDATA
-{
-    ULONG_PTR dwhContext;
-    DWORD dwFlags;
-    ULONG_PTR dwReserved;
-    DWORD dwNumPasses;
-    HRESULT ddrval;
-} D3DNTHAL_VALIDATETEXTURESTAGESTATEDATA, FAR *LPD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA;
-
-typedef struct _D3DNTHAL_DRAWPRIMITIVES2DATA
-{
-    ULONG_PTR dwhContext;
-    DWORD dwFlags;
-    DWORD dwVertexType;
-    PDD_SURFACE_LOCAL lpDDCommands;
-    DWORD dwCommandOffset;
-    DWORD dwCommandLength;
-    __GNU_EXTENSION union
-    {
-        PDD_SURFACE_LOCAL lpDDVertex;
-        LPVOID lpVertices;
-    };
-    DWORD dwVertexOffset;
-    DWORD dwVertexLength;
-    DWORD dwReqVertexBufSize;
-    DWORD dwReqCommandBufSize;
-    LPDWORD lpdwRStates;
-    __GNU_EXTENSION union
-    {
-        DWORD dwVertexSize;
-        HRESULT ddrval;
-    };
-    DWORD dwErrorOffset;
-} D3DNTHAL_DRAWPRIMITIVES2DATA, FAR *LPD3DNTHAL_DRAWPRIMITIVES2DATA;
-
-typedef DWORD (APIENTRY *LPD3DNTHAL_CLEAR2CB)(LPD3DNTHAL_CLEAR2DATA);
-typedef DWORD (APIENTRY *LPD3DNTHAL_VALIDATETEXTURESTAGESTATECB)(LPD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA);
-typedef DWORD (APIENTRY *LPD3DNTHAL_DRAWPRIMITIVES2CB)(LPD3DNTHAL_DRAWPRIMITIVES2DATA);
-
-typedef struct _D3DNTHAL_CALLBACKS3
-{
-    DWORD dwSize; 
-    DWORD dwFlags;
-
-    LPD3DNTHAL_CLEAR2CB Clear2;
-    LPVOID lpvReserved;
-    LPD3DNTHAL_VALIDATETEXTURESTAGESTATECB ValidateTextureStageState;
-    LPD3DNTHAL_DRAWPRIMITIVES2CB DrawPrimitives2;
-} D3DNTHAL_CALLBACKS3, *LPD3DNTHAL_CALLBACKS3;
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* __DDK_D3DNTHAL_H */
diff --git a/reactos/include/ddk/ddkernel.h b/reactos/include/ddk/ddkernel.h
deleted file mode 100644 (file)
index bd46c75..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-/* $Id$
- *
- * COPYRIGHT:            This file is in the public domain.
- * PROJECT:              ReactOS kernel
- * FILE:
- * PURPOSE:              Directx headers
- * PROGRAMMER:           Magnus Olsen (greatlrd)
- *
- */
-
-#ifndef __DDKM_INCLUDED__
-#define __DDKM_INCLUDED__
-
-#if defined (_WIN32) && !defined (_NO_COM)
-DEFINE_GUID (IID_IDirectDrawKernel,        0x8D56C120,0x6A08,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8);
-DEFINE_GUID (IID_IDirectDrawSurfaceKernel, 0x60755DA0,0x6A40,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8);
-#endif
-
-typedef struct _DDKERNELCAPS
-{
-  DWORD dwSize;
-  DWORD dwCaps;
-  DWORD dwIRQCaps;
-} DDKERNELCAPS, *LPDDKERNELCAPS;
-
-#define DDKERNELCAPS_SKIPFIELDS                             0x00000001
-#define DDKERNELCAPS_AUTOFLIP                   0x00000002
-#define DDKERNELCAPS_SETSTATE                   0x00000004
-#define DDKERNELCAPS_LOCK                           0x00000008
-#define DDKERNELCAPS_FLIPVIDEOPORT              0x00000010
-#define DDKERNELCAPS_FLIPOVERLAY                    0x00000020
-#define DDKERNELCAPS_CAPTURE_SYSMEM                 0x00000040
-#define DDKERNELCAPS_CAPTURE_NONLOCALVIDMEM     0x00000080
-#define DDKERNELCAPS_FIELDPOLARITY              0x00000100
-#define DDKERNELCAPS_CAPTURE_INVERTED           0x00000200
-#define DDIRQ_DISPLAY_VSYNC                             0x00000001
-#define DDIRQ_RESERVED1                                         0x00000002
-#define DDIRQ_VPORT0_VSYNC                              0x00000004
-#define DDIRQ_VPORT0_LINE                               0x00000008
-#define DDIRQ_VPORT1_VSYNC                              0x00000010
-#define DDIRQ_VPORT1_LINE                               0x00000020
-#define DDIRQ_VPORT2_VSYNC                              0x00000040
-#define DDIRQ_VPORT2_LINE                               0x00000080
-#define DDIRQ_VPORT3_VSYNC                              0x00000100
-#define DDIRQ_VPORT3_LINE                               0x00000200
-#define DDIRQ_VPORT4_VSYNC                              0x00000400
-#define DDIRQ_VPORT4_LINE                               0x00000800
-#define DDIRQ_VPORT5_VSYNC                              0x00001000
-#define DDIRQ_VPORT5_LINE                               0x00002000
-#define DDIRQ_VPORT6_VSYNC                              0x00004000
-#define DDIRQ_VPORT6_LINE                               0x00008000
-#define DDIRQ_VPORT7_VSYNC                              0x00010000
-#define DDIRQ_VPORT7_LINE                               0x00020000
-#define DDIRQ_VPORT8_VSYNC                              0x00040000
-#define DDIRQ_VPORT8_LINE                               0x00080000
-#define DDIRQ_VPORT9_VSYNC                              0x00010000
-#define DDIRQ_VPORT9_LINE                               0x00020000
-
-typedef struct IDirectDrawKernel* LPDIRECTDRAWKERNEL;
-typedef struct IDirectDrawSurfaceKernel* LPDIRECTDRAWSURFACEKERNEL;
-
-#if defined(_WIN32) && !defined(_NO_COM)
-
-#undef INTERFACE
-#define INTERFACE IDirectDrawKernel
-DECLARE_INTERFACE_ (IDirectDrawKernel, IUnknown)
-{
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS) PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-       STDMETHOD(GetKernelHandle) (THIS_ ULONG*) PURE;
-       STDMETHOD(ReleaseKernelHandle) (THIS) PURE;
-};
-
-#undef INTERFACE
-#define INTERFACE IDirectDrawSurfaceKernel
-DECLARE_INTERFACE_ (IDirectDrawSurfaceKernel, IUnknown)
-{
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS) PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-       STDMETHOD(GetKernelHandle) (THIS_ ULONG*) PURE;
-       STDMETHOD(ReleaseKernelHandle) (THIS) PURE;
-};
-
-#undef INTERFACE
-#endif // defined(_WIN32) && !defined(_NO_COM)
-
-#ifdef __cplusplus
-};
-#endif
-
-#endif
-
-
-
-
diff --git a/reactos/include/ddk/ddrawi.h b/reactos/include/ddk/ddrawi.h
deleted file mode 100644 (file)
index 6b658ff..0000000
+++ /dev/null
@@ -1,2204 +0,0 @@
-/*
- * DirectDraw driver interface
- * (DirectX 7 version)
- *
- * Copyright (C) 2001 Ove Kaaven
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#ifndef __DDRAWI_INCLUDED__
-#define __DDRAWI_INCLUDED__
-
-/* Helper macro to enable gcc's extension.  */
-#ifndef __GNU_EXTENSION
-#ifdef __GNUC__
-#define __GNU_EXTENSION __extension__
-#else
-#define __GNU_EXTENSION
-#endif
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define OBJECT_ISROOT           0x80000000
-
-#include <ddraw.h>
-#include <dvp.h>
-#include <ddkernel.h>
-#include <dmemmgr.h>
-
-#define DDAPI WINAPI
-
-#define VALID_ALIGNMENT(align) \
-          (!((align==0)||(align%2)!= 0 ))
-
-/* the DirectDraw versions */
-#define DD_VERSION             0x0200 /* compatibility version */
-#define DD_RUNTIME_VERSION     0x0902 /* actual version */
-
-/* the HAL version returned from QUERYESCSUPPORT - DCICOMMAND */
-#define DD_HAL_VERSION 0x0100
-
-/* more DCICOMMAND escapes */
-#ifndef DCICOMMAND
-#define DCICOMMAND 3075
-#endif
-
-#define DDCREATEDRIVEROBJECT   10
-#define DDGET32BITDRIVERNAME   11
-#define DDNEWCALLBACKFNS       12
-#define DDVERSIONINFO          13
-
-
-
-#define DDUNSUPPORTEDMODE  ((DWORD) -1)
-
-#include "dciddi.h"
-
-#ifndef CCHDEVICENAME
-#define CCHDEVICENAME 32
-#endif
-#define MAX_DRIVER_NAME                CCHDEVICENAME
-
-#define DDHAL_DRIVER_DLLNAME    "DDRAW16.DLL"
-#define DDHAL_APP_DLLNAME   "DDRAW.DLL"
-
-
-
-/* GUID */
-#ifdef _WIN32
-DEFINE_GUID(GUID_MiscellaneousCallbacks, 0xefd60cc0, 0x49e7, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a);
-DEFINE_GUID(GUID_VideoPortCallbacks,     0xefd60cc1, 0x49e7, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a);
-DEFINE_GUID(GUID_ColorControlCallbacks,  0xefd60cc2, 0x49e7, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a);
-DEFINE_GUID(GUID_VideoPortCaps,          0xefd60cc3, 0x49e7, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a);
-DEFINE_GUID(GUID_D3DCallbacks2,          0x0ba584e1, 0x70b6, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 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_D3DExtendedCaps,        0x7de41f80, 0x9d93, 0x11d0, 0x89, 0xab, 0x0, 0xa0, 0xc9, 0x5, 0x41, 0x29);
-DEFINE_GUID(GUID_ZPixelFormats,          0x93869880, 0x36cf, 0x11d1, 0x9b, 0x1b, 0x0, 0xaa, 0x0, 0xbb, 0xb8, 0xae);
-DEFINE_GUID(GUID_DDMoreSurfaceCaps,      0x3b8a0466, 0xf269, 0x11d1, 0x88, 0x0b, 0x0, 0xc0, 0x4f, 0xd9, 0x30, 0xc5);
-DEFINE_GUID(GUID_DDStereoMode,           0xf828169c, 0xa8e8, 0x11d2, 0xa1, 0xf2, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6);
-DEFINE_GUID(GUID_OptSurfaceKmodeInfo,    0xe05c8472, 0x51d4, 0x11d1, 0x8c, 0xce, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
-DEFINE_GUID(GUID_OptSurfaceUmodeInfo,    0x9d792804, 0x5fa8, 0x11d1, 0x8c, 0xd0, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
-DEFINE_GUID(GUID_UserModeDriverInfo,     0xf0b0e8e2, 0x5f97, 0x11d1, 0x8c, 0xd0, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
-DEFINE_GUID(GUID_UserModeDriverPassword, 0x97f861b6, 0x60a1, 0x11d1, 0x8c, 0xd0, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
-DEFINE_GUID(GUID_D3DParseUnknownCommandCallback,  0x2e04ffa0, 0x98e4, 0x11d1, 0x8c, 0xe1, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
-DEFINE_GUID(GUID_MotionCompCallbacks,           0xb1122b40, 0x5dA5, 0x11d1, 0x8f, 0xcF, 0x00, 0xc0, 0x4f, 0xc2, 0x9b, 0x4e);
-DEFINE_GUID(GUID_Miscellaneous2Callbacks,   0x406B2F00, 0x3E5A, 0x11D1, 0xB6, 0x40, 0x00, 0xAA, 0x00, 0xA1, 0xF9, 0x6A);
-#endif
-
-#ifndef _WIN32
-#undef  E_NOTIMPL
-#undef  E_OUTOFMEMORY
-#undef  E_INVALIDARG
-#undef  E_FAIL
-#define E_NOTIMPL      0x80004001L
-#define E_OUTOFMEMORY  0x8007000EL
-#define E_INVALIDARG   0x80070057L
-#define E_FAIL         0x80004005L
-#endif
-
-
-/*****************************************************************************
- * Initialization stuff
- */
-typedef struct {
-    char szName[260];
-    char szEntryPoint[64];
-    DWORD dwContext;
-} DD32BITDRIVERDATA,*LPDD32BITDRIVERDATA;
-
-typedef struct {
-    DWORD dwHALVersion;
-    ULONG_PTR dwReserved1;
-    ULONG_PTR dwReserved2;
-} DDVERSIONDATA,*LPDDVERSIONDATA;
-
-typedef DWORD (PASCAL *LPDD32BITDRIVERINIT)(DWORD dwContext);
-
-
-
-/* predeclare some structures */
-typedef struct _DDHALINFO *LPDDHALINFO;
-typedef struct _DDRAWI_DIRECTDRAW_INT *LPDDRAWI_DIRECTDRAW_INT;
-
-#ifndef DDRAWI_DIRECTDRAW_DEFINED
-typedef struct _DDRAWI_DIRECTDRAW_LCL *LPDDRAWI_DIRECTDRAW_LCL;
-typedef struct _DDRAWI_DIRECTDRAW_GBL *LPDDRAWI_DIRECTDRAW_GBL;
-#define DDRAWI_DIRECTDRAW_DEFINED
-#endif
-
-typedef struct _DDRAWI_DDRAWSURFACE_INT *LPDDRAWI_DDRAWSURFACE_INT;
-
-#ifndef DDRAWI_DDRAWSURFACE_DEFINED
-typedef struct _DDRAWI_DDRAWSURFACE_LCL *LPDDRAWI_DDRAWSURFACE_LCL;
-#define DDRAWI_DDRAWSURFACE_DEFINED
-#endif
-
-typedef struct _DDRAWI_DDRAWSURFACE_GBL *LPDDRAWI_DDRAWSURFACE_GBL;
-typedef struct _DDRAWI_DDRAWSURFACE_MORE *LPDDRAWI_DDRAWSURFACE_MORE;
-typedef struct _DDRAWI_DDRAWSURFACE_GBL_MORE *LPDDRAWI_DDRAWSURFACE_GBL_MORE;
-typedef struct _DDRAWI_DDRAWPALETTE_INT *LPDDRAWI_DDRAWPALETTE_INT;
-typedef struct _DDRAWI_DDRAWPALETTE_LCL *LPDDRAWI_DDRAWPALETTE_LCL;
-typedef struct _DDRAWI_DDRAWPALETTE_GBL *LPDDRAWI_DDRAWPALETTE_GBL;
-typedef struct _DDRAWI_DDRAWCLIPPER_INT *LPDDRAWI_DDRAWCLIPPER_INT;
-typedef struct _DDRAWI_DDRAWCLIPPER_LCL *LPDDRAWI_DDRAWCLIPPER_LCL;
-typedef struct _DDRAWI_DDRAWCLIPPER_GBL *LPDDRAWI_DDRAWCLIPPER_GBL;
-typedef struct _DDRAWI_DDVIDEOPORT_INT *LPDDRAWI_DDVIDEOPORT_INT;
-typedef struct _DDRAWI_DDVIDEOPORT_LCL *LPDDRAWI_DDVIDEOPORT_LCL;
-typedef struct _DDRAWI_DDMOTIONCOMP_INT *LPDDRAWI_DDMOTIONCOMP_INT;
-typedef struct _DDRAWI_DDMOTIONCOMP_LCL *LPDDRAWI_DDMOTIONCOMP_LCL;
-
-/*****************************************************************************
- * driver->ddraw callbacks
- */
-typedef BOOL    (DDAPI *LPDDHAL_SETINFO)(LPDDHALINFO lpDDHalInfo, BOOL reset);
-typedef FLATPTR (DDAPI *LPDDHAL_VIDMEMALLOC)(LPDDRAWI_DIRECTDRAW_GBL lpDD, int heap, DWORD dwWidth, DWORD dwHeight);
-typedef void    (DDAPI *LPDDHAL_VIDMEMFREE)(LPDDRAWI_DIRECTDRAW_GBL lpDD, int heap, FLATPTR fpMem);
-
-typedef struct {
-    DWORD              dwSize;
-    LPDDHAL_SETINFO    lpSetInfo;
-    LPDDHAL_VIDMEMALLOC        lpVidMemAlloc;
-    LPDDHAL_VIDMEMFREE lpVidMemFree;
-} DDHALDDRAWFNS,*LPDDHALDDRAWFNS;
-
-/*****************************************************************************
- * mode info structure
- */
-typedef struct _DDHALMODEINFO {
-    DWORD      dwWidth;
-    DWORD      dwHeight;
-    LONG       lPitch;
-    DWORD      dwBPP;
-    WORD       wFlags;
-    WORD       wRefreshRate;
-    DWORD      dwRBitMask;
-    DWORD      dwGBitMask;
-    DWORD      dwBBitMask;
-    DWORD      dwAlphaBitMask;
-} DDHALMODEINFO,*LPDDHALMODEINFO;
-
-
-
-
-#define DDMODEINFO_PALETTIZED  0x0001
-#define DDMODEINFO_MODEX       0x0002
-#define DDMODEINFO_UNSUPPORTED 0x0004
-#define DDMODEINFO_STANDARDVGA 0x0008
-#define DDMODEINFO_MAXREFRESH  0x0010
-#define DDMODEINFO_STEREO      0x0020
-
-/*****************************************************************************
- * video memory info structure
- */
-typedef struct _VIDMEM {
-    DWORD      dwFlags;
-    FLATPTR    fpStart;
-    __GNU_EXTENSION union {
-       FLATPTR         fpEnd;
-       DWORD           dwWidth;
-    };
-    DDSCAPS    ddsCaps;
-    DDSCAPS    ddsCapsAlt;
-    __GNU_EXTENSION union {
-       LPVMEMHEAP      lpHeap;
-       DWORD           dwHeight;
-    };
-} VIDMEM;
-
-
-#define VIDMEM_ISLINEAR                       0x00000001l
-#define VIDMEM_ISRECTANGULAR                  0x00000002l
-#define VIDMEM_ISHEAP                         0x00000004l
-#define VIDMEM_ISNONLOCAL                     0x00000008l
-#define VIDMEM_ISWC                           0x00000010l
-#define VIDMEM_HEAPDISABLED                   0x00000020l
-
-typedef struct _VIDMEMINFO {
-    FLATPTR            fpPrimary;
-    DWORD              dwFlags;
-    DWORD              dwDisplayWidth;
-    DWORD              dwDisplayHeight;
-    LONG               lDisplayPitch;
-    DDPIXELFORMAT      ddpfDisplay;
-    DWORD              dwOffscreenAlign;
-    DWORD              dwOverlayAlign;
-    DWORD              dwTextureAlign;
-    DWORD              dwZBufferAlign;
-    DWORD              dwAlphaAlign;
-    DWORD              dwNumHeaps;
-    LPVIDMEM           pvmList;
-} VIDMEMINFO,*LPVIDMEMINFO;
-
-
-
-typedef struct _HEAPALIAS {
-    FLATPTR    fpVidMem;
-    LPVOID     lpAlias;
-    DWORD      dwAliasSize;
-} HEAPALIAS,*LPHEAPALIAS;
-
-typedef struct _HEAPALIASINFO {
-    DWORD      dwRefCnt;
-    DWORD      dwFlags;
-    DWORD      dwNumHeaps;
-    LPHEAPALIAS        lpAliases;
-} HEAPALIASINFO,*LPHEAPALIASINFO;
-
-#define HEAPALIASINFO_MAPPEDREAL       0x00000001
-#define HEAPALIASINFO_MAPPEDDUMMY      0x00000002
-
-/*****************************************************************************
- * capabilities structures
- */
-typedef struct _DDCORECAPS {
-    DWORD      dwSize;
-    DWORD      dwCaps;
-    DWORD      dwCaps2;
-    DWORD      dwCKeyCaps;
-    DWORD      dwFXCaps;
-    DWORD      dwFXAlphaCaps;
-    DWORD      dwPalCaps;
-    DWORD      dwSVCaps;
-    DWORD      dwAlphaBltConstBitDepths;
-    DWORD      dwAlphaBltPixelBitDepths;
-    DWORD      dwAlphaBltSurfaceBitDepths;
-    DWORD      dwAlphaOverlayConstBitDepths;
-    DWORD      dwAlphaOverlayPixelBitDepths;
-    DWORD      dwAlphaOverlaySurfaceBitDepths;
-    DWORD      dwZBufferBitDepths;
-    DWORD      dwVidMemTotal;
-    DWORD      dwVidMemFree;
-    DWORD      dwMaxVisibleOverlays;
-    DWORD      dwCurrVisibleOverlays;
-    DWORD      dwNumFourCCCodes;
-    DWORD      dwAlignBoundarySrc;
-    DWORD      dwAlignSizeSrc;
-    DWORD      dwAlignBoundaryDest;
-    DWORD      dwAlignSizeDest;
-    DWORD      dwAlignStrideAlign;
-    DWORD      dwRops[DD_ROP_SPACE];
-    DDSCAPS    ddsCaps;
-    DWORD      dwMinOverlayStretch;
-    DWORD      dwMaxOverlayStretch;
-    DWORD      dwMinLiveVideoStretch;
-    DWORD      dwMaxLiveVideoStretch;
-    DWORD      dwMinHwCodecStretch;
-    DWORD      dwMaxHwCodecStretch;
-    DWORD      dwReserved1;
-    DWORD      dwReserved2;
-    DWORD      dwReserved3;
-    DWORD      dwSVBCaps;
-    DWORD      dwSVBCKeyCaps;
-    DWORD      dwSVBFXCaps;
-    DWORD      dwSVBRops[DD_ROP_SPACE];
-    DWORD      dwVSBCaps;
-    DWORD      dwVSBCKeyCaps;
-    DWORD      dwVSBFXCaps;
-    DWORD      dwVSBRops[DD_ROP_SPACE];
-    DWORD      dwSSBCaps;
-    DWORD      dwSSBCKeyCaps;
-    DWORD      dwSSBFXCaps;
-    DWORD      dwSSBRops[DD_ROP_SPACE];
-    DWORD      dwMaxVideoPorts;
-    DWORD      dwCurrVideoPorts;
-    DWORD      dwSVBCaps2;
-} DDCORECAPS,*LPDDCORECAPS;
-
-typedef struct _DDNONLOCALVIDMEMCAPS {
-    DWORD      dwSize;
-    DWORD      dwNLVBCaps;
-    DWORD      dwNLVBCaps2;
-    DWORD      dwNLVBCKeyCaps;
-    DWORD      dwNLVBFXCaps;
-    DWORD      dwNLVBRops[DD_ROP_SPACE];
-} DDNONLOCALVIDMEMCAPS,*LPDDNONLOCALVIDMEMCAPS;
-
-
-
-#define DDSCAPS_EXECUTEBUFFER  DDSCAPS_RESERVED2
-#define DDSCAPS2_VERTEXBUFFER  DDSCAPS2_RESERVED1
-#define DDSCAPS2_COMMANDBUFFER DDSCAPS2_RESERVED2
-
-
-
-
-/*****************************************************************************
- * ddraw->driver callbacks
- */
-#define DDHAL_DRIVER_NOTHANDLED               0x00000000l
-#define DDHAL_DRIVER_HANDLED                  0x00000001l
-#define DDHAL_DRIVER_NOCKEYHW                 0x00000002l
-
-typedef struct _DDHAL_DESTROYDRIVERDATA                *LPDDHAL_DESTROYDRIVERDATA;
-typedef struct _DDHAL_CREATESURFACEDATA                *LPDDHAL_CREATESURFACEDATA;
-typedef struct _DDHAL_DRVSETCOLORKEYDATA       *LPDDHAL_DRVSETCOLORKEYDATA;
-typedef struct _DDHAL_SETMODEDATA              *LPDDHAL_SETMODEDATA;
-typedef struct _DDHAL_WAITFORVERTICALBLANKDATA *LPDDHAL_WAITFORVERTICALBLANKDATA;
-typedef struct _DDHAL_CANCREATESURFACEDATA     *LPDDHAL_CANCREATESURFACEDATA;
-typedef struct _DDHAL_CREATEPALETTEDATA                *LPDDHAL_CREATEPALETTEDATA;
-typedef struct _DDHAL_GETSCANLINEDATA          *LPDDHAL_GETSCANLINEDATA;
-typedef struct _DDHAL_SETEXCLUSIVEMODEDATA     *LPDDHAL_SETEXCLUSIVEMODEDATA;
-typedef struct _DDHAL_FLIPTOGDISURFACEDATA     *LPDDHAL_FLIPTOGDISURFACEDATA;
-
-typedef DWORD (PASCAL *LPDDHAL_DESTROYDRIVER)      (LPDDHAL_DESTROYDRIVERDATA);
-typedef DWORD (PASCAL *LPDDHAL_CREATESURFACE)      (LPDDHAL_CREATESURFACEDATA);
-typedef DWORD (PASCAL *LPDDHAL_SETCOLORKEY)        (LPDDHAL_DRVSETCOLORKEYDATA);
-typedef DWORD (PASCAL *LPDDHAL_SETMODE)                    (LPDDHAL_SETMODEDATA);
-typedef DWORD (PASCAL *LPDDHAL_WAITFORVERTICALBLANK)(LPDDHAL_WAITFORVERTICALBLANKDATA);
-typedef DWORD (PASCAL *LPDDHAL_CANCREATESURFACE)    (LPDDHAL_CANCREATESURFACEDATA );
-typedef DWORD (PASCAL *LPDDHAL_CREATEPALETTE)      (LPDDHAL_CREATEPALETTEDATA);
-typedef DWORD (PASCAL *LPDDHAL_GETSCANLINE)        (LPDDHAL_GETSCANLINEDATA);
-typedef DWORD (PASCAL *LPDDHAL_SETEXCLUSIVEMODE)    (LPDDHAL_SETEXCLUSIVEMODEDATA);
-typedef DWORD (PASCAL *LPDDHAL_FLIPTOGDISURFACE)    (LPDDHAL_FLIPTOGDISURFACEDATA);
-
-
-
-typedef struct _DDHAL_DDCALLBACKS {
-    DWORD                              dwSize;
-    DWORD                              dwFlags;
-    LPDDHAL_DESTROYDRIVER              DestroyDriver;
-    LPDDHAL_CREATESURFACE              CreateSurface;
-    LPDDHAL_SETCOLORKEY                        SetColorKey;
-    LPDDHAL_SETMODE                    SetMode;
-    LPDDHAL_WAITFORVERTICALBLANK       WaitForVerticalBlank;
-    LPDDHAL_CANCREATESURFACE           CanCreateSurface;
-    LPDDHAL_CREATEPALETTE              CreatePalette;
-    LPDDHAL_GETSCANLINE                        GetScanLine;
-    /* DirectX 2 */
-    LPDDHAL_SETEXCLUSIVEMODE           SetExclusiveMode;
-    LPDDHAL_FLIPTOGDISURFACE           FlipToGDISurface;
-} DDHAL_DDCALLBACKS,*LPDDHAL_DDCALLBACKS;
-
-
-
-typedef struct _DDHAL_DESTROYSURFACEDATA       *LPDDHAL_DESTROYSURFACEDATA;
-typedef struct _DDHAL_FLIPDATA                 *LPDDHAL_FLIPDATA;
-typedef struct _DDHAL_SETCLIPLISTDATA          *LPDDHAL_SETCLIPLISTDATA;
-typedef struct _DDHAL_LOCKDATA                 *LPDDHAL_LOCKDATA;
-typedef struct _DDHAL_UNLOCKDATA               *LPDDHAL_UNLOCKDATA;
-typedef struct _DDHAL_BLTDATA                  *LPDDHAL_BLTDATA;
-typedef struct _DDHAL_SETCOLORKEYDATA          *LPDDHAL_SETCOLORKEYDATA;
-typedef struct _DDHAL_ADDATTACHEDSURFACEDATA   *LPDDHAL_ADDATTACHEDSURFACEDATA;
-typedef struct _DDHAL_GETBLTSTATUSDATA         *LPDDHAL_GETBLTSTATUSDATA;
-typedef struct _DDHAL_GETFLIPSTATUSDATA                *LPDDHAL_GETFLIPSTATUSDATA;
-typedef struct _DDHAL_UPDATEOVERLAYDATA                *LPDDHAL_UPDATEOVERLAYDATA;
-typedef struct _DDHAL_SETOVERLAYPOSITIONDATA   *LPDDHAL_SETOVERLAYPOSITIONDATA;
-typedef struct _DDHAL_SETPALETTEDATA           *LPDDHAL_SETPALETTEDATA;
-
-typedef DWORD (PASCAL *LPDDHALSURFCB_DESTROYSURFACE)   (LPDDHAL_DESTROYSURFACEDATA);
-typedef DWORD (PASCAL *LPDDHALSURFCB_FLIP)             (LPDDHAL_FLIPDATA);
-typedef DWORD (PASCAL *LPDDHALSURFCB_SETCLIPLIST)      (LPDDHAL_SETCLIPLISTDATA);
-typedef DWORD (PASCAL *LPDDHALSURFCB_LOCK)             (LPDDHAL_LOCKDATA);
-typedef DWORD (PASCAL *LPDDHALSURFCB_UNLOCK)           (LPDDHAL_UNLOCKDATA);
-typedef DWORD (PASCAL *LPDDHALSURFCB_BLT)              (LPDDHAL_BLTDATA);
-typedef DWORD (PASCAL *LPDDHALSURFCB_SETCOLORKEY)      (LPDDHAL_SETCOLORKEYDATA);
-typedef DWORD (PASCAL *LPDDHALSURFCB_ADDATTACHEDSURFACE)(LPDDHAL_ADDATTACHEDSURFACEDATA);
-typedef DWORD (PASCAL *LPDDHALSURFCB_GETBLTSTATUS)     (LPDDHAL_GETBLTSTATUSDATA);
-typedef DWORD (PASCAL *LPDDHALSURFCB_GETFLIPSTATUS)    (LPDDHAL_GETFLIPSTATUSDATA);
-typedef DWORD (PASCAL *LPDDHALSURFCB_UPDATEOVERLAY)    (LPDDHAL_UPDATEOVERLAYDATA);
-typedef DWORD (PASCAL *LPDDHALSURFCB_SETOVERLAYPOSITION)(LPDDHAL_SETOVERLAYPOSITIONDATA);
-typedef DWORD (PASCAL *LPDDHALSURFCB_SETPALETTE)       (LPDDHAL_SETPALETTEDATA);
-
-typedef struct _DDHAL_DDSURFACECALLBACKS {
-    DWORD                              dwSize;
-    DWORD                              dwFlags;
-    LPDDHALSURFCB_DESTROYSURFACE       DestroySurface;
-    LPDDHALSURFCB_FLIP                 Flip;
-    LPDDHALSURFCB_SETCLIPLIST          SetClipList;
-    LPDDHALSURFCB_LOCK                 Lock;
-    LPDDHALSURFCB_UNLOCK               Unlock;
-    LPDDHALSURFCB_BLT                  Blt;
-    LPDDHALSURFCB_SETCOLORKEY          SetColorKey;
-    LPDDHALSURFCB_ADDATTACHEDSURFACE   AddAttachedSurface;
-    LPDDHALSURFCB_GETBLTSTATUS         GetBltStatus;
-    LPDDHALSURFCB_GETFLIPSTATUS                GetFlipStatus;
-    LPDDHALSURFCB_UPDATEOVERLAY                UpdateOverlay;
-    LPDDHALSURFCB_SETOVERLAYPOSITION   SetOverlayPosition;
-    LPVOID                             reserved4;
-    LPDDHALSURFCB_SETPALETTE           SetPalette;
-} DDHAL_DDSURFACECALLBACKS,*LPDDHAL_DDSURFACECALLBACKS;
-
-
-
-typedef struct _DDHAL_DESTROYPALETTEDATA       *LPDDHAL_DESTROYPALETTEDATA;
-typedef struct _DDHAL_SETENTRIESDATA           *LPDDHAL_SETENTRIESDATA;
-
-typedef DWORD (PASCAL *LPDDHALPALCB_DESTROYPALETTE)(LPDDHAL_DESTROYPALETTEDATA);
-typedef DWORD (PASCAL *LPDDHALPALCB_SETENTRIES)    (LPDDHAL_SETENTRIESDATA);
-
-typedef struct _DDHAL_DDPALETTECALLBACKS {
-    DWORD                              dwSize;
-    DWORD                              dwFlags;
-    LPDDHALPALCB_DESTROYPALETTE                DestroyPalette;
-    LPDDHALPALCB_SETENTRIES            SetEntries;
-} DDHAL_DDPALETTECALLBACKS,*LPDDHAL_DDPALETTECALLBACKS;
-
-typedef DWORD (PASCAL *LPDDHALEXEBUFCB_CANCREATEEXEBUF)(LPDDHAL_CANCREATESURFACEDATA);
-typedef DWORD (PASCAL *LPDDHALEXEBUFCB_CREATEEXEBUF)   (LPDDHAL_CREATESURFACEDATA);
-typedef DWORD (PASCAL *LPDDHALEXEBUFCB_DESTROYEXEBUF)  (LPDDHAL_DESTROYSURFACEDATA);
-typedef DWORD (PASCAL *LPDDHALEXEBUFCB_LOCKEXEBUF)     (LPDDHAL_LOCKDATA);
-typedef DWORD (PASCAL *LPDDHALEXEBUFCB_UNLOCKEXEBUF)   (LPDDHAL_UNLOCKDATA);
-
-typedef struct _DDHAL_DDEXEBUFCALLBACKS {
-    DWORD                              dwSize;
-    DWORD                              dwFlags;
-    LPDDHALEXEBUFCB_CANCREATEEXEBUF    CanCreateExecuteBuffer;
-    LPDDHALEXEBUFCB_CREATEEXEBUF       CreateExecuteBuffer;
-    LPDDHALEXEBUFCB_DESTROYEXEBUF      DestroyExecuteBuffer;
-    LPDDHALEXEBUFCB_LOCKEXEBUF         LockExecuteBuffer;
-    LPDDHALEXEBUFCB_UNLOCKEXEBUF       UnlockExecuteBuffer;
-} DDHAL_DDEXEBUFCALLBACKS,*LPDDHAL_DDEXEBUFCALLBACKS;
-
-typedef struct _DDHAL_GETAVAILDRIVERMEMORYDATA *LPDDHAL_GETAVAILDRIVERMEMORYDATA;
-typedef struct _DDHAL_UPDATENONLOCALHEAPDATA   *LPDDHAL_UPDATENONLOCALHEAPDATA;
-typedef struct _DDHAL_GETHEAPALIGNMENTDATA     *LPDDHAL_GETHEAPALIGNMENTDATA;
-
-typedef DWORD (PASCAL *LPDDHAL_GETAVAILDRIVERMEMORY)(LPDDHAL_GETAVAILDRIVERMEMORYDATA);
-typedef DWORD (PASCAL *LPDDHAL_UPDATENONLOCALHEAP)  (LPDDHAL_UPDATENONLOCALHEAPDATA);
-typedef DWORD (PASCAL *LPDDHAL_GETHEAPALIGNMENT)    (LPDDHAL_GETHEAPALIGNMENTDATA);
-
-typedef struct _DDHAL_DDMISCELLANEOUSCALLBACKS {
-    DWORD                              dwSize;
-    DWORD                              dwFlags;
-    LPDDHAL_GETAVAILDRIVERMEMORY       GetAvailDriverMemory;
-    LPDDHAL_UPDATENONLOCALHEAP         UpdateNonLocalHeap;
-    LPDDHAL_GETHEAPALIGNMENT           GetHeapAlignment;
-    LPDDHALSURFCB_GETBLTSTATUS         GetSysmemBltStatus;
-} DDHAL_DDMISCELLANEOUSCALLBACKS,*LPDDHAL_DDMISCELLANEOUSCALLBACKS;
-
-typedef struct _DDHAL_CREATESURFACEEXDATA      *LPDDHAL_CREATESURFACEEXDATA;
-typedef struct _DDHAL_GETDRIVERSTATEDATA       *LPDDHAL_GETDRIVERSTATEDATA;
-typedef struct _DDHAL_DESTROYDDLOCALDATA       *LPDDHAL_DESTROYDDLOCALDATA;
-
-typedef DWORD (PASCAL *LPDDHAL_CREATESURFACEEX)(LPDDHAL_CREATESURFACEEXDATA);
-typedef DWORD (PASCAL *LPDDHAL_GETDRIVERSTATE) (LPDDHAL_GETDRIVERSTATEDATA);
-typedef DWORD (PASCAL *LPDDHAL_DESTROYDDLOCAL) (LPDDHAL_DESTROYDDLOCALDATA);
-
-typedef struct _DDHAL_DDMISCELLANEOUS2CALLBACKS {
-    DWORD                              dwSize;
-    DWORD                              dwFlags;
-    LPVOID                             Reserved;
-    LPDDHAL_CREATESURFACEEX            CreateSurfaceEx;
-    LPDDHAL_GETDRIVERSTATE             GetDriverState;
-    LPDDHAL_DESTROYDDLOCAL             DestroyDDLocal;
-} DDHAL_DDMISCELLANEOUS2CALLBACKS,*LPDDHAL_DDMISCELLANEOUS2CALLBACKS;
-
-
-typedef struct _DDHAL_CANCREATEVPORTDATA       *LPDDHAL_CANCREATEVPORTDATA;
-typedef struct _DDHAL_CREATEVPORTDATA          *LPDDHAL_CREATEVPORTDATA;
-typedef struct _DDHAL_FLIPVPORTDATA            *LPDDHAL_FLIPVPORTDATA;
-typedef struct _DDHAL_GETVPORTCONNECTDATA      *LPDDHAL_GETVPORTCONNECTDATA;
-typedef struct _DDHAL_GETVPORTBANDWIDTHDATA    *LPDDHAL_GETVPORTBANDWIDTHDATA;
-typedef struct _DDHAL_GETVPORTINPUTFORMATDATA  *LPDDHAL_GETVPORTINPUTFORMATDATA;
-typedef struct _DDHAL_GETVPORTOUTPUTFORMATDATA *LPDDHAL_GETVPORTOUTPUTFORMATDATA;
-typedef struct _DDHAL_GETVPORTFIELDDATA        *LPDDHAL_GETVPORTFIELDDATA;
-typedef struct _DDHAL_GETVPORTLINEDATA         *LPDDHAL_GETVPORTLINEDATA;
-typedef struct _DDHAL_DESTROYVPORTDATA         *LPDDHAL_DESTROYVPORTDATA;
-typedef struct _DDHAL_GETVPORTFLIPSTATUSDATA   *LPDDHAL_GETVPORTFLIPSTATUSDATA;
-typedef struct _DDHAL_UPDATEVPORTDATA          *LPDDHAL_UPDATEVPORTDATA;
-typedef struct _DDHAL_WAITFORVPORTSYNCDATA     *LPDDHAL_WAITFORVPORTSYNCDATA;
-typedef struct _DDHAL_GETVPORTSIGNALDATA       *LPDDHAL_GETVPORTSIGNALDATA;
-typedef struct _DDHAL_VPORTCOLORDATA           *LPDDHAL_VPORTCOLORDATA;
-
-typedef DWORD (PASCAL *LPDDHALVPORTCB_CANCREATEVIDEOPORT)(LPDDHAL_CANCREATEVPORTDATA);
-typedef DWORD (PASCAL *LPDDHALVPORTCB_CREATEVIDEOPORT)(LPDDHAL_CREATEVPORTDATA);
-typedef DWORD (PASCAL *LPDDHALVPORTCB_FLIP)(LPDDHAL_FLIPVPORTDATA);
-typedef DWORD (PASCAL *LPDDHALVPORTCB_GETBANDWIDTH)(LPDDHAL_GETVPORTBANDWIDTHDATA);
-typedef DWORD (PASCAL *LPDDHALVPORTCB_GETINPUTFORMATS)(LPDDHAL_GETVPORTINPUTFORMATDATA);
-typedef DWORD (PASCAL *LPDDHALVPORTCB_GETOUTPUTFORMATS)(LPDDHAL_GETVPORTOUTPUTFORMATDATA);
-typedef DWORD (PASCAL *LPDDHALVPORTCB_GETFIELD)(LPDDHAL_GETVPORTFIELDDATA);
-typedef DWORD (PASCAL *LPDDHALVPORTCB_GETLINE)(LPDDHAL_GETVPORTLINEDATA);
-typedef DWORD (PASCAL *LPDDHALVPORTCB_GETVPORTCONNECT)(LPDDHAL_GETVPORTCONNECTDATA);
-typedef DWORD (PASCAL *LPDDHALVPORTCB_DESTROYVPORT)(LPDDHAL_DESTROYVPORTDATA);
-typedef DWORD (PASCAL *LPDDHALVPORTCB_GETFLIPSTATUS)(LPDDHAL_GETVPORTFLIPSTATUSDATA);
-typedef DWORD (PASCAL *LPDDHALVPORTCB_UPDATE)(LPDDHAL_UPDATEVPORTDATA);
-typedef DWORD (PASCAL *LPDDHALVPORTCB_WAITFORSYNC)(LPDDHAL_WAITFORVPORTSYNCDATA);
-typedef DWORD (PASCAL *LPDDHALVPORTCB_GETSIGNALSTATUS)(LPDDHAL_GETVPORTSIGNALDATA);
-typedef DWORD (PASCAL *LPDDHALVPORTCB_COLORCONTROL)(LPDDHAL_VPORTCOLORDATA);
-
-typedef struct _DDHAL_DDVIDEOPORTCALLBACKS
-{
-    DWORD                             dwSize;
-    DWORD                             dwFlags;
-    LPDDHALVPORTCB_CANCREATEVIDEOPORT CanCreateVideoPort;
-    LPDDHALVPORTCB_CREATEVIDEOPORT    CreateVideoPort;
-    LPDDHALVPORTCB_FLIP               FlipVideoPort;
-    LPDDHALVPORTCB_GETBANDWIDTH       GetVideoPortBandwidth;
-    LPDDHALVPORTCB_GETINPUTFORMATS    GetVideoPortInputFormats;
-    LPDDHALVPORTCB_GETOUTPUTFORMATS   GetVideoPortOutputFormats;
-    LPVOID                            lpReserved1;
-    LPDDHALVPORTCB_GETFIELD           GetVideoPortField;
-    LPDDHALVPORTCB_GETLINE            GetVideoPortLine;
-    LPDDHALVPORTCB_GETVPORTCONNECT    GetVideoPortConnectInfo;
-    LPDDHALVPORTCB_DESTROYVPORT       DestroyVideoPort;
-    LPDDHALVPORTCB_GETFLIPSTATUS      GetVideoPortFlipStatus;
-    LPDDHALVPORTCB_UPDATE             UpdateVideoPort;
-    LPDDHALVPORTCB_WAITFORSYNC        WaitForVideoPortSync;
-    LPDDHALVPORTCB_GETSIGNALSTATUS    GetVideoSignalStatus;
-    LPDDHALVPORTCB_COLORCONTROL       ColorControl;
-} DDHAL_DDVIDEOPORTCALLBACKS;
-
-
-typedef struct _DDHAL_COLORCONTROLDATA *LPDDHAL_COLORCONTROLDATA;
-
-typedef DWORD (PASCAL *LPDDHALCOLORCB_COLORCONTROL)(LPDDHAL_COLORCONTROLDATA);
-
-
-typedef struct _DDHAL_DDCOLORCONTROLCALLBACKS
-{
-    DWORD                               dwSize;
-    DWORD                               dwFlags;
-    LPDDHALCOLORCB_COLORCONTROL         ColorControl;
-} DDHAL_DDCOLORCONTROLCALLBACKS;
-
-typedef struct _DDHAL_SYNCSURFACEDATA   *LPDDHAL_SYNCSURFACEDATA;
-typedef struct _DDHAL_SYNCVIDEOPORTDATA *LPDDHAL_SYNCVIDEOPORTDATA;
-
-typedef DWORD (PASCAL *LPDDHALKERNELCB_SYNCSURFACE)(LPDDHAL_SYNCSURFACEDATA);
-typedef DWORD (PASCAL *LPDDHALKERNELCB_SYNCVIDEOPORT)(LPDDHAL_SYNCVIDEOPORTDATA);
-
-typedef struct _DDHAL_DDKERNELCALLBACKS
-{
-    DWORD                          dwSize;
-    DWORD                          dwFlags;
-    LPDDHALKERNELCB_SYNCSURFACE    SyncSurfaceData;
-    LPDDHALKERNELCB_SYNCVIDEOPORT  SyncVideoPortData;
-} DDHAL_DDKERNELCALLBACKS, *LPDDHAL_DDKERNELCALLBACKS;
-
-typedef struct _DDHAL_GETMOCOMPGUIDSDATA  *LPDDHAL_GETMOCOMPGUIDSDATA;
-typedef struct _DDHAL_GETMOCOMPFORMATSDATA  *LPDDHAL_GETMOCOMPFORMATSDATA;
-typedef struct _DDHAL_CREATEMOCOMPDATA  *LPDDHAL_CREATEMOCOMPDATA;
-typedef struct _DDHAL_GETMOCOMPCOMPBUFFDATA  *LPDDHAL_GETMOCOMPCOMPBUFFDATA;
-typedef struct _DDHAL_GETINTERNALMOCOMPDATA  *LPDDHAL_GETINTERNALMOCOMPDATA;
-typedef struct _DDHAL_BEGINMOCOMPFRAMEDATA  *LPDDHAL_BEGINMOCOMPFRAMEDATA;
-typedef struct _DDHAL_ENDMOCOMPFRAMEDATA  *LPDDHAL_ENDMOCOMPFRAMEDATA;
-typedef struct _DDHAL_RENDERMOCOMPDATA  *LPDDHAL_RENDERMOCOMPDATA;
-typedef struct _DDHAL_QUERYMOCOMPSTATUSDATA  *LPDDHAL_QUERYMOCOMPSTATUSDATA;
-typedef struct _DDHAL_DESTROYMOCOMPDATA  *LPDDHAL_DESTROYMOCOMPDATA;
-
-typedef DWORD (PASCAL *LPDDHALMOCOMPCB_GETGUIDS)( LPDDHAL_GETMOCOMPGUIDSDATA);
-typedef DWORD (PASCAL *LPDDHALMOCOMPCB_GETFORMATS)( LPDDHAL_GETMOCOMPFORMATSDATA);
-typedef DWORD (PASCAL *LPDDHALMOCOMPCB_CREATE)( LPDDHAL_CREATEMOCOMPDATA);
-typedef DWORD (PASCAL *LPDDHALMOCOMPCB_GETCOMPBUFFINFO)( LPDDHAL_GETMOCOMPCOMPBUFFDATA);
-typedef DWORD (PASCAL *LPDDHALMOCOMPCB_GETINTERNALINFO)( LPDDHAL_GETINTERNALMOCOMPDATA);
-typedef DWORD (PASCAL *LPDDHALMOCOMPCB_BEGINFRAME)( LPDDHAL_BEGINMOCOMPFRAMEDATA);
-typedef DWORD (PASCAL *LPDDHALMOCOMPCB_ENDFRAME)( LPDDHAL_ENDMOCOMPFRAMEDATA);
-typedef DWORD (PASCAL *LPDDHALMOCOMPCB_RENDER)( LPDDHAL_RENDERMOCOMPDATA);
-typedef DWORD (PASCAL *LPDDHALMOCOMPCB_QUERYSTATUS)( LPDDHAL_QUERYMOCOMPSTATUSDATA);
-typedef DWORD (PASCAL *LPDDHALMOCOMPCB_DESTROY)( LPDDHAL_DESTROYMOCOMPDATA);
-
-typedef struct _DDHAL_DDMOTIONCOMPCALLBACKS
-{
-    DWORD                            dwSize;
-    DWORD                            dwFlags;
-    LPDDHALMOCOMPCB_GETGUIDS         GetMoCompGuids;
-    LPDDHALMOCOMPCB_GETFORMATS       GetMoCompFormats;
-    LPDDHALMOCOMPCB_CREATE           CreateMoComp;
-    LPDDHALMOCOMPCB_GETCOMPBUFFINFO  GetMoCompBuffInfo;
-    LPDDHALMOCOMPCB_GETINTERNALINFO  GetInternalMoCompInfo;
-    LPDDHALMOCOMPCB_BEGINFRAME       BeginMoCompFrame;
-    LPDDHALMOCOMPCB_ENDFRAME         EndMoCompFrame;
-    LPDDHALMOCOMPCB_RENDER           RenderMoComp;
-    LPDDHALMOCOMPCB_QUERYSTATUS      QueryMoCompStatus;
-    LPDDHALMOCOMPCB_DESTROY          DestroyMoComp;
-} DDHAL_DDMOTIONCOMPCALLBACKS, *LPDDHAL_DDMOTIONCOMPCALLBACKS;
-
-
-
-typedef HRESULT (WINAPI *LPDDGAMMACALIBRATORPROC)(LPDDGAMMARAMP, LPBYTE);
-
-
-
-/*****************************************************************************
- * driver info structure
- *
- * The HAL is queried for additional callbacks via the GetDriverInfo callback.
- */
-typedef struct _DDHAL_GETDRIVERINFODATA *LPDDHAL_GETDRIVERINFODATA;
-typedef DWORD (PASCAL *LPDDHAL_GETDRIVERINFO)(LPDDHAL_GETDRIVERINFODATA);
-
-
-typedef struct _DDHAL_GETDRIVERINFODATA {
-    DWORD     dwSize;
-    DWORD     dwFlags;
-    GUID      guidInfo;
-    DWORD     dwExpectedSize;
-    LPVOID    lpvData;
-    DWORD     dwActualSize;
-    HRESULT   ddRVal;
-    ULONG_PTR dwContext;
-
-} DDHAL_GETDRIVERINFODATA;
-
-typedef struct _DDHALINFO {
-    DWORD                      dwSize;
-    LPDDHAL_DDCALLBACKS                lpDDCallbacks;
-    LPDDHAL_DDSURFACECALLBACKS lpDDSurfaceCallbacks;
-    LPDDHAL_DDPALETTECALLBACKS lpDDPaletteCallbacks;
-    VIDMEMINFO                 vmiData;
-    DDCORECAPS                 ddCaps;
-    DWORD                      dwMonitorFrequency;
-    LPDDHAL_GETDRIVERINFO      GetDriverInfo;
-    DWORD                      dwModeIndex;
-    LPDWORD                    lpdwFourCC;
-    DWORD                      dwNumModes;
-    LPDDHALMODEINFO            lpModeInfo;
-    DWORD                      dwFlags;
-    LPVOID                     lpPDevice;
-    DWORD                      hInstance;
-    /* DirectX 2 */
-    ULONG_PTR                  lpD3DGlobalDriverData;
-    ULONG_PTR                  lpD3DHALCallbacks;
-    LPDDHAL_DDEXEBUFCALLBACKS  lpDDExeBufCallbacks;
-} DDHALINFO;
-
-
-
-#define DDPALETTECALLBACKSSIZE  sizeof( DDHAL_DDPALETTECALLBACKS )
-#define DDSURFACECALLBACKSSIZE sizeof( DDHAL_DDSURFACECALLBACKS )
-#define DDMISCELLANEOUSCALLBACKSSIZE sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS)
-#define DDMISCELLANEOUS2CALLBACKSSIZE sizeof(DDHAL_DDMISCELLANEOUS2CALLBACKS)
-#define DDEXEBUFCALLBACKSSIZE sizeof( DDHAL_DDEXEBUFCALLBACKS )
-#define DDVIDEOPORTCALLBACKSSIZE sizeof( DDHAL_DDVIDEOPORTCALLBACKS )
-#define DDCOLORCONTROLCALLBACKSSIZE sizeof( DDHAL_DDCOLORCONTROLCALLBACKS )
-#define DDKERNELCALLBACKSSIZE sizeof(DDHAL_DDKERNELCALLBACKS)
-#define DDMOTIONCOMPCALLBACKSSIZE sizeof( DDHAL_DDMOTIONCOMPCALLBACKS )
-
-#define MAX_PALETTE_SIZE    256
-
-#define MAX_AUTOFLIP_BUFFERS    10
-#define DDSCAPS2_INDEXBUFFER    DDSCAPS2_RESERVED3
-#define DDSCAPS3_VIDEO          DDSCAPS3_RESERVED2
-#define D3DFMT_INTERNAL_D32     71
-#define D3DFMT_INTERNAL_S1D15   72
-#define D3DFMT_INTERNAL_D15S1   73
-#define D3DFMT_INTERNAL_S8D24   74
-#define D3DFMT_INTERNAL_D24S8   75
-#define D3DFMT_INTERNAL_X8D24   76
-#define D3DFMT_INTERNAL_D24X8   77
-#define DDHAL_PLEASEALLOC_BLOCKSIZE       0x00000002l
-#define DDHAL_PLEASEALLOC_LINEARSIZE        0x00000003l
-
-#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_SETEXCLUSIVEMODE     0x00000100l
-#define DDHAL_CB32_FLIPTOGDISURFACE     0x00000200l
-#define DDHAL_PALCB32_DESTROYPALETTE    0x00000001l
-#define DDHAL_PALCB32_SETENTRIES    0x00000002l
-#define DDHALINFO_ISPRIMARYDISPLAY             0x00000001
-#define DDHALINFO_MODEXILLEGAL                 0x00000002
-#define DDHALINFO_GETDRIVERINFOSET             0x00000004
-#define DDHALINFO_GETDRIVERINFO2            0x00000008
-#define DDRAWI_VPORTSTART                   0x0001
-#define DDRAWI_VPORTSTOP                    0x0002
-#define DDRAWI_VPORTUPDATE                  0x0003
-#define DDRAWI_VPORTGETCOLOR                0x0001
-#define DDRAWI_VPORTSETCOLOR                0x0002
-#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
-#define DDHAL_MISCCB32_GETAVAILDRIVERMEMORY 0x00000001
-#define DDHAL_MISCCB32_UPDATENONLOCALHEAP   0x00000002
-#define DDHAL_MISCCB32_GETHEAPALIGNMENT     0x00000004
-#define DDHAL_MISCCB32_GETSYSMEMBLTSTATUS   0x00000008
-#define DDHAL_MISC2CB32_ALPHABLT            0x00000001
-#define DDHAL_MISC2CB32_CREATESURFACEEX     0x00000002
-#define DDHAL_MISC2CB32_GETDRIVERSTATE      0x00000004
-#define DDHAL_MISC2CB32_DESTROYDDLOCAL      0x00000008
-#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_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
-#define DDHAL_COLOR_COLORCONTROL            0x00000001
-#define DDHAL_KERNEL_SYNCSURFACEDATA        0x00000001l
-#define DDHAL_KERNEL_SYNCVIDEOPORTDATA      0x00000002l
-#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
-
-
-/* where the high-level ddraw implementation stores the callbacks */
-typedef struct _DDHAL_CALLBACKS {
-    DDHAL_DDCALLBACKS                cbDDCallbacks;
-    DDHAL_DDSURFACECALLBACKS     cbDDSurfaceCallbacks;
-    DDHAL_DDPALETTECALLBACKS     cbDDPaletteCallbacks;
-    DDHAL_DDCALLBACKS                HALDD;
-    DDHAL_DDSURFACECALLBACKS     HALDDSurface;
-    DDHAL_DDPALETTECALLBACKS     HALDDPalette;
-    DDHAL_DDCALLBACKS                HELDD;
-    DDHAL_DDSURFACECALLBACKS     HELDDSurface;
-    DDHAL_DDPALETTECALLBACKS     HELDDPalette;
-    DDHAL_DDEXEBUFCALLBACKS          cbDDExeBufCallbacks;
-    DDHAL_DDEXEBUFCALLBACKS          HALDDExeBuf;
-    DDHAL_DDEXEBUFCALLBACKS          HELDDExeBuf;
-       DDHAL_DDVIDEOPORTCALLBACKS    cbDDVideoPortCallbacks;
-    DDHAL_DDVIDEOPORTCALLBACKS    HALDDVideoPort;
-    DDHAL_DDCOLORCONTROLCALLBACKS cbDDColorControlCallbacks;
-    DDHAL_DDCOLORCONTROLCALLBACKS HALDDColorControl;
-    DDHAL_DDMISCELLANEOUSCALLBACKS cbDDMiscellaneousCallbacks;
-    DDHAL_DDMISCELLANEOUSCALLBACKS HALDDMiscellaneous;
-    DDHAL_DDKERNELCALLBACKS        cbDDKernelCallbacks;
-    DDHAL_DDKERNELCALLBACKS        HALDDKernel;
-    DDHAL_DDMOTIONCOMPCALLBACKS    cbDDMotionCompCallbacks;
-    DDHAL_DDMOTIONCOMPCALLBACKS    HALDDMotionComp;
-} DDHAL_CALLBACKS,*LPDDHAL_CALLBACKS;
-
-/*****************************************************************************
- * parameter structures
- */
-typedef struct _DDHAL_DESTROYDRIVERDATA {
-    LPDDRAWI_DIRECTDRAW_GBL    lpDD;
-    HRESULT                    ddRVal;
-    LPDDHAL_DESTROYDRIVER      DestroyDriver;
-} DDHAL_DESTROYDRIVERDATA;
-
-typedef struct _DDHAL_SETMODEDATA {
-    LPDDRAWI_DIRECTDRAW_GBL    lpDD;
-    DWORD                      dwModeIndex;
-    HRESULT                    ddRVal;
-    LPDDHAL_SETMODE            SetMode;
-    BOOL                       inexcl;
-    BOOL                       useRefreshRate;
-} DDHAL_SETMODEDATA;
-
-typedef struct _DDHAL_CREATESURFACEDATA {
-    LPDDRAWI_DIRECTDRAW_GBL    lpDD;
-    LPDDSURFACEDESC            lpDDSurfaceDesc;
-    LPDDRAWI_DDRAWSURFACE_LCL *        lplpSList;
-    DWORD                      dwSCnt;
-    HRESULT                    ddRVal;
-    LPDDHAL_CREATESURFACE      CreateSurface;
-} DDHAL_CREATESURFACEDATA;
-
-typedef struct _DDHAL_CANCREATESURFACEDATA {
-    LPDDRAWI_DIRECTDRAW_GBL    lpDD;
-    LPDDSURFACEDESC            lpDDSurfaceDesc;
-    DWORD                      bIsDifferentPixelFormat;
-    HRESULT                    ddRVal;
-    LPDDHAL_CANCREATESURFACE   CanCreateSurface;
-} DDHAL_CANCREATESURFACEDATA;
-
-typedef struct _DDHAL_CREATEPALETTEDATA {
-    LPDDRAWI_DIRECTDRAW_GBL    lpDD;
-    LPDDRAWI_DDRAWPALETTE_GBL  lpDDPalette;
-    LPPALETTEENTRY             lpColorTable;
-    HRESULT                    ddRVal;
-    LPDDHAL_CREATEPALETTE      CreatePalette;
-    BOOL                       is_excl;
-} DDHAL_CREATEPALETTEDATA;
-
-typedef struct _DDHAL_SETEXCLUSIVEMODEDATA {
-    LPDDRAWI_DIRECTDRAW_GBL    lpDD;
-    DWORD                      dwEnterExcl;
-    DWORD                      dwReserved;
-    HRESULT                    ddRVal;
-    LPDDHAL_SETEXCLUSIVEMODE   SetExclusiveMode;
-} DDHAL_SETEXCLUSIVEMODEDATA;
-
-/* surfaces */
-typedef struct _DDHAL_DESTROYSURFACEDATA {
-    LPDDRAWI_DIRECTDRAW_GBL    lpDD;
-    LPDDRAWI_DDRAWSURFACE_LCL  lpDDSurface;
-    HRESULT                    ddRVal;
-    LPDDHALSURFCB_DESTROYSURFACE DestroySurface;
-} DDHAL_DESTROYSURFACEDATA;
-
-typedef struct _DDHAL_FLIPDATA {
-    LPDDRAWI_DIRECTDRAW_GBL    lpDD;
-    LPDDRAWI_DDRAWSURFACE_LCL  lpSurfCurr;
-    LPDDRAWI_DDRAWSURFACE_LCL  lpSurfTarg;
-    DWORD                      dwFlags;
-    HRESULT                    ddRVal;
-    LPDDHALSURFCB_FLIP         Flip;
-    LPDDRAWI_DDRAWSURFACE_LCL  lpSurfCurrLeft;
-    LPDDRAWI_DDRAWSURFACE_LCL  lpSurfTargLeft;
-} DDHAL_FLIPDATA;
-
-typedef struct _DDHAL_LOCKDATA {
-    LPDDRAWI_DIRECTDRAW_GBL    lpDD;
-    LPDDRAWI_DDRAWSURFACE_LCL  lpDDSurface;
-    DWORD                      bHasRect;
-    RECTL                      rArea;
-    LPVOID                     lpSurfData;
-    HRESULT                    ddRVal;
-    LPDDHALSURFCB_LOCK         Lock;
-    DWORD                      dwFlags;
-} DDHAL_LOCKDATA;
-
-typedef struct _DDHAL_UNLOCKDATA {
-    LPDDRAWI_DIRECTDRAW_GBL    lpDD;
-    LPDDRAWI_DDRAWSURFACE_LCL  lpDDSurface;
-    HRESULT                    ddRVal;
-    LPDDHALSURFCB_UNLOCK       Unlock;
-} DDHAL_UNLOCKDATA;
-
-typedef struct _DDHAL_BLTDATA {
-    LPDDRAWI_DIRECTDRAW_GBL    lpDD;
-    LPDDRAWI_DDRAWSURFACE_LCL  lpDDDestSurface;
-    RECTL                      rDest;
-    LPDDRAWI_DDRAWSURFACE_LCL  lpDDSrcSurface;
-    RECTL                      rSrc;
-    DWORD                      dwFlags;
-    DWORD                      dwROPFlags;
-    DDBLTFX                    bltFX;
-    HRESULT                    ddRVal;
-    LPDDHALSURFCB_BLT          Blt;
-    BOOL                       IsClipped;
-    RECTL                      rOrigDest;
-    RECTL                      rOrigSrc;
-    DWORD                      dwRectCnt;
-    LPRECT                     prDestRects;
-} DDHAL_BLTDATA;
-
-typedef struct _DDHAL_SETPALETTEDATA {
-    LPDDRAWI_DIRECTDRAW_GBL    lpDD;
-    LPDDRAWI_DDRAWSURFACE_LCL  lpDDSurface;
-    LPDDRAWI_DDRAWPALETTE_GBL  lpDDPalette;
-    HRESULT                    ddRVal;
-    LPDDHALSURFCB_SETPALETTE   SetPalette;
-    BOOL                       Attach;
-} DDHAL_SETPALETTEDATA;
-
-/* palettes */
-typedef struct _DDHAL_DESTROYPALETTEDATA {
-    LPDDRAWI_DIRECTDRAW_GBL    lpDD;
-    LPDDRAWI_DDRAWPALETTE_GBL  lpDDPalette;
-    HRESULT                    ddRVal;
-    LPDDHALPALCB_DESTROYPALETTE        DestroyPalette;
-} DDHAL_DESTROYPALETTEDATA;
-
-typedef struct _DDHAL_SETENTRIESDATA {
-    LPDDRAWI_DIRECTDRAW_GBL    lpDD;
-    LPDDRAWI_DDRAWPALETTE_GBL  lpDDPalette;
-    DWORD                      dwBase;
-    DWORD                      dwNumEntries;
-    LPPALETTEENTRY             lpEntries;
-    HRESULT                    ddRVal;
-    LPDDHALPALCB_SETENTRIES    SetEntries;
-} DDHAL_SETENTRIESDATA;
-
-
-typedef struct _DDHAL_CANCREATEVPORTDATA
-{
-    LPDDRAWI_DIRECTDRAW_LCL            lpDD;
-    LPDDVIDEOPORTDESC                  lpDDVideoPortDesc;
-    HRESULT                            ddRVal;
-    LPDDHALVPORTCB_CANCREATEVIDEOPORT  CanCreateVideoPort;
-} DDHAL_CANCREATEVPORTDATA;
-
-typedef struct _DDHAL_CREATEVPORTDATA
-{
-    LPDDRAWI_DIRECTDRAW_LCL         lpDD;
-    LPDDVIDEOPORTDESC               lpDDVideoPortDesc;
-    LPDDRAWI_DDVIDEOPORT_LCL        lpVideoPort;
-    HRESULT                         ddRVal;
-    LPDDHALVPORTCB_CREATEVIDEOPORT  CreateVideoPort;
-} DDHAL_CREATEVPORTDATA;
-
-typedef struct _DDHAL_GETVPORTBANDWIDTHDATA
-{
-    LPDDRAWI_DIRECTDRAW_LCL      lpDD;
-    LPDDRAWI_DDVIDEOPORT_LCL     lpVideoPort;
-    LPDDPIXELFORMAT              lpddpfFormat;
-    DWORD                        dwWidth;
-    DWORD                        dwHeight;
-    DWORD                        dwFlags;
-    LPDDVIDEOPORTBANDWIDTH       lpBandwidth;
-    HRESULT                      ddRVal;
-    LPDDHALVPORTCB_GETBANDWIDTH  GetVideoPortBandwidth;
-} DDHAL_GETVPORTBANDWIDTHDATA;
-
-typedef struct _DDHAL_GETVPORTINPUTFORMATDATA
-{
-    LPDDRAWI_DIRECTDRAW_LCL         lpDD;
-    LPDDRAWI_DDVIDEOPORT_LCL        lpVideoPort;
-    DWORD                           dwFlags;
-    LPDDPIXELFORMAT                 lpddpfFormat;
-    DWORD                           dwNumFormats;
-    HRESULT                         ddRVal;
-    LPDDHALVPORTCB_GETINPUTFORMATS  GetVideoPortInputFormats;
-} DDHAL_GETVPORTINPUTFORMATDATA;
-
-typedef struct _DDHAL_GETVPORTFIELDDATA
-{
-    LPDDRAWI_DIRECTDRAW_LCL  lpDD;
-    LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
-    BOOL                     bField;
-    HRESULT                  ddRVal;
-    LPDDHALVPORTCB_GETFIELD  GetVideoPortField;
-} DDHAL_GETVPORTFIELDDATA;
-
-typedef struct _DDHAL_GETVPORTOUTPUTFORMATDATA
-{
-    LPDDRAWI_DIRECTDRAW_LCL          lpDD;
-    LPDDRAWI_DDVIDEOPORT_LCL         lpVideoPort;
-    DWORD                            dwFlags;
-    LPDDPIXELFORMAT                  lpddpfInputFormat;
-    LPDDPIXELFORMAT                  lpddpfOutputFormats;
-    DWORD                            dwNumFormats;
-    HRESULT                          ddRVal;
-    LPDDHALVPORTCB_GETOUTPUTFORMATS  GetVideoPortOutputFormats;
-} DDHAL_GETVPORTOUTPUTFORMATDATA;
-
-typedef struct _DDHAL_GETVPORTLINEDATA
-{
-    LPDDRAWI_DIRECTDRAW_LCL  lpDD;
-    LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
-    DWORD                    dwLine;
-    HRESULT                  ddRVal;
-    LPDDHALVPORTCB_GETLINE   GetVideoPortLine;
-} DDHAL_GETVPORTLINEDATA;
-
-typedef struct _DDHAL_DESTROYVPORTDATA
-{
-    LPDDRAWI_DIRECTDRAW_LCL      lpDD;
-    LPDDRAWI_DDVIDEOPORT_LCL     lpVideoPort;
-    HRESULT                      ddRVal;
-    LPDDHALVPORTCB_DESTROYVPORT  DestroyVideoPort;
-} DDHAL_DESTROYVPORTDATA;
-
-typedef struct _DDHAL_GETVPORTFLIPSTATUSDATA
-{
-    LPDDRAWI_DIRECTDRAW_LCL       lpDD;
-    FLATPTR                       fpSurface;
-    HRESULT                       ddRVal;
-    LPDDHALVPORTCB_GETFLIPSTATUS  GetVideoPortFlipStatus;
-} DDHAL_GETVPORTFLIPSTATUSDATA;
-
-typedef struct _DDHAL_UPDATEVPORTDATA
-{
-    LPDDRAWI_DIRECTDRAW_LCL   lpDD;
-    LPDDRAWI_DDVIDEOPORT_LCL  lpVideoPort;
-    LPDDRAWI_DDRAWSURFACE_INT *lplpDDSurface;
-    LPDDRAWI_DDRAWSURFACE_INT *lplpDDVBISurface;
-    LPDDVIDEOPORTINFO         lpVideoInfo;
-    DWORD                     dwFlags;
-    DWORD                     dwNumAutoflip;
-    DWORD                     dwNumVBIAutoflip;
-    HRESULT                   ddRVal;
-    LPDDHALVPORTCB_UPDATE     UpdateVideoPort;
-} DDHAL_UPDATEVPORTDATA;
-
-typedef struct _DDHAL_WAITFORVPORTSYNCDATA
-{
-    LPDDRAWI_DIRECTDRAW_LCL    lpDD;
-    LPDDRAWI_DDVIDEOPORT_LCL   lpVideoPort;
-    DWORD                      dwFlags;
-    DWORD                      dwLine;
-    DWORD                      dwTimeOut;
-    HRESULT                    ddRVal;
-    LPDDHALVPORTCB_WAITFORSYNC WaitForVideoPortSync;
-} DDHAL_WAITFORVPORTSYNCDATA;
-
-typedef struct _DDHAL_GETVPORTSIGNALDATA
-{
-    LPDDRAWI_DIRECTDRAW_LCL         lpDD;
-    LPDDRAWI_DDVIDEOPORT_LCL        lpVideoPort;
-    DWORD                           dwStatus;
-    HRESULT                         ddRVal;
-    LPDDHALVPORTCB_GETSIGNALSTATUS  GetVideoSignalStatus;
-} DDHAL_GETVPORTSIGNALDATA;
-
-typedef struct _DDHAL_VPORTCOLORDATA
-{
-    LPDDRAWI_DIRECTDRAW_LCL     lpDD;
-    LPDDRAWI_DDVIDEOPORT_LCL    lpVideoPort;
-    DWORD                       dwFlags;
-    LPDDCOLORCONTROL            lpColorData;
-    HRESULT                     ddRVal;
-    LPDDHALVPORTCB_COLORCONTROL ColorControl;
-} DDHAL_VPORTCOLORDATA;
-
-typedef struct _DDHAL_FLIPVPORTDATA
-{
-    LPDDRAWI_DIRECTDRAW_LCL   lpDD;
-    LPDDRAWI_DDVIDEOPORT_LCL  lpVideoPort;
-    LPDDRAWI_DDRAWSURFACE_LCL lpSurfCurr;
-    LPDDRAWI_DDRAWSURFACE_LCL lpSurfTarg;
-    HRESULT                   ddRVal;
-    LPDDHALVPORTCB_FLIP       FlipVideoPort;
-} DDHAL_FLIPVPORTDATA;
-
-typedef struct _DDHAL_GETVPORTCONNECTDATA
-{
-    LPDDRAWI_DIRECTDRAW_LCL          lpDD;
-    DWORD                            dwPortId;
-    LPDDVIDEOPORTCONNECT             lpConnect;
-    DWORD                            dwNumEntries;
-    HRESULT                          ddRVal;
-    LPDDHALVPORTCB_GETVPORTCONNECT   GetVideoPortConnectInfo;
-} DDHAL_GETVPORTCONNECTDATA;
-
-typedef struct _DDHAL_SYNCSURFACEDATA
-{
-    DWORD                     dwSize;
-    LPDDRAWI_DIRECTDRAW_LCL   lpDD;
-    LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface;
-    DWORD                     dwSurfaceOffset;
-    ULONG_PTR                 fpLockPtr;
-    LONG                      lPitch;
-    DWORD                     dwOverlayOffset;
-    DWORD                     dwOverlaySrcWidth;
-    DWORD                     dwOverlaySrcHeight;
-    DWORD                     dwOverlayDestWidth;
-    DWORD                     dwOverlayDestHeight;
-    ULONG_PTR                 dwDriverReserved1;
-    ULONG_PTR                 dwDriverReserved2;
-    ULONG_PTR                 dwDriverReserved3;
-    HRESULT                   ddRVal;
-} DDHAL_SYNCSURFACEDATA;
-
-typedef struct _DDHAL_SYNCVIDEOPORTDATA
-{
-    DWORD                    dwSize;
-    LPDDRAWI_DIRECTDRAW_LCL  lpDD;
-    LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
-    DWORD                    dwOriginOffset;
-    DWORD                    dwHeight;
-    DWORD                    dwVBIHeight;
-    ULONG_PTR                dwDriverReserved1;
-    ULONG_PTR                dwDriverReserved2;
-    ULONG_PTR                dwDriverReserved3;
-    HRESULT                  ddRVal;
-} DDHAL_SYNCVIDEOPORTDATA;
-
-typedef struct _DDHAL_DESTROYDDLOCALDATA
-{
-    DWORD                    dwFlags;
-    LPDDRAWI_DIRECTDRAW_LCL  pDDLcl;
-    HRESULT                  ddRVal;
-} DDHAL_DESTROYDDLOCALDATA;
-
-typedef struct _DDHAL_CREATESURFACEEXDATA {
-    DWORD                      dwFlags;
-    LPDDRAWI_DIRECTDRAW_LCL    lpDDLcl;
-    LPDDRAWI_DDRAWSURFACE_LCL  lpDDSLcl;
-    HRESULT                    ddRVal;
-} DDHAL_CREATESURFACEEXDATA;
-
-typedef struct _DDHAL_GETHEAPALIGNMENTDATA
-{
-    ULONG_PTR                dwInstance;
-    DWORD                    dwHeap;
-    HRESULT                  ddRVal;
-    LPDDHAL_GETHEAPALIGNMENT GetHeapAlignment;
-    HEAPALIGNMENT            Alignment;
-} DDHAL_GETHEAPALIGNMENTDATA;
-
-
-typedef struct _DDMORESURFACECAPS
-{
-    DWORD     dwSize;
-    DDSCAPSEX ddsCapsMore;
-    struct    tagExtendedHeapRestrictions
-    {
-      DDSCAPSEX ddsCapsEx;
-      DDSCAPSEX ddsCapsExAlt;
-    } ddsExtendedHeapRestrictions[1];
-} DDMORESURFACECAPS, * LPDDMORESURFACECAPS;
-
-typedef struct _DDSTEREOMODE
-{
-    DWORD dwSize;
-    DWORD dwHeight;
-    DWORD dwWidth;
-    DWORD dwBpp;
-    DWORD dwRefreshRate;
-    BOOL bSupported;
-
-} DDSTEREOMODE, * LPDDSTEREOMODE;
-
-/*****************************************************************************
- * high-level ddraw implementation structures
- */
-typedef struct _IUNKNOWN_LIST {
-    struct _IUNKNOWN_LIST *    lpLink;
-    LPGUID                     lpGuid;
-
-#ifndef _NO_COM
-    IUnknown *                 lpIUnknown;
-#else
-       LPVOID              lpIUnknown;
-#endif /* _NO_COM */
-} IUNKNOWN_LIST,*LPIUNKNOWN_LIST;
-
-
-typedef struct _PROCESS_LIST {
-    struct _PROCESS_LIST *     lpLink;
-    DWORD                      dwProcessId;
-    DWORD                      dwRefCnt;
-    DWORD                      dwAlphaDepth;
-    DWORD                      dwZDepth;
-} PROCESS_LIST,*LPPROCESS_LIST;
-
-typedef struct _ATTACHLIST {
-    DWORD                      dwFlags;
-    struct _ATTACHLIST *       lpLink;
-    LPDDRAWI_DDRAWSURFACE_LCL  lpAttached;
-    LPDDRAWI_DDRAWSURFACE_INT  lpIAttached;
-} ATTACHLIST,*LPATTACHLIST;
-
-#define DDAL_IMPLICIT  0x00000001
-
-typedef struct _ACCESSRECTLIST {
-    struct _ACCESSRECTLIST *   lpLink;
-    RECT                       rDest;
-    LPDDRAWI_DIRECTDRAW_LCL    lpOwner;
-    LPVOID                     lpSurfaceData;
-    DWORD                      dwFlags;
-    LPHEAPALIASINFO            lpHeapAliasInfo;
-} ACCESSRECTLIST,*LPACCESSRECTLIST;
-
-#define ACCESSRECT_VRAMSTYLE           0x00000001
-#define ACCESSRECT_NOTHOLDINGWIN16LOCK 0x00000002
-#define ACCESSRECT_BROKEN              0x00000004
-
-typedef struct _DBLNODE {
-    struct _DBLNODE *          next;
-    struct _DBLNODE *          prev;
-    LPDDRAWI_DDRAWSURFACE_LCL  object;
-    LPDDRAWI_DDRAWSURFACE_INT  object_int;
-} DBLNODE,*LPDBLNODE;
-
-typedef struct _DDRAWI_DIRECTDRAW_INT {
-    LPVOID                     lpVtbl;
-    LPDDRAWI_DIRECTDRAW_LCL    lpLcl;
-    LPDDRAWI_DIRECTDRAW_INT    lpLink;
-    DWORD                      dwIntRefCnt;
-} DDRAWI_DIRECTDRAW_INT;
-
-
-typedef struct _DDRAWI_DIRECTDRAW_LCL {
-    DWORD                      lpDDMore;
-    LPDDRAWI_DIRECTDRAW_GBL    lpGbl;
-    DWORD                      dwUnused0;
-    DWORD                      dwLocalFlags;
-    DWORD                      dwLocalRefCnt;
-    DWORD                      dwProcessId;
-#ifndef _NO_COM
-    IUnknown *                 pUnkOuter;
-#else
-    PVOID                      pUnkOuter;
-#endif
-    DWORD                      dwObsolete1;
-    ULONG_PTR                  hWnd;
-    ULONG_PTR                  hDC;
-    DWORD                      dwErrorMode;
-    LPDDRAWI_DDRAWSURFACE_INT  lpPrimary;
-    LPDDRAWI_DDRAWSURFACE_INT  lpCB;
-    DWORD                      dwPreferredMode;
-    /* DirectX 2 */
-    HINSTANCE                  hD3DInstance;
-#ifndef _NO_COM
-    IUnknown *                 pD3DIUnknown;
-#else
-           PVOID                       pD3DIUnknown;
-#endif
-    LPDDHAL_CALLBACKS          lpDDCB;
-    ULONG_PTR                  hDDVxd;
-    /* DirectX 5.0 */
-    DWORD                      dwAppHackFlags;
-    /* DirectX 5.0A */
-    ULONG_PTR                  hFocusWnd;
-    DWORD                      dwHotTracking;
-    DWORD                      dwIMEState;
-    /* DirectX 6.0 */
-    ULONG_PTR                  hWndPopup;
-    ULONG_PTR                  hDD;
-    ULONG_PTR                  hGammaCalibrator;
-    LPDDGAMMACALIBRATORPROC    lpGammaCalibrator;
-} DDRAWI_DIRECTDRAW_LCL;
-
-
-#define DDRAWILCL_HASEXCLUSIVEMODE     0x00000001
-#define DDRAWILCL_ISFULLSCREEN         0x00000002
-#define DDRAWILCL_SETCOOPCALLED                0x00000004
-#define DDRAWILCL_ACTIVEYES            0x00000008
-#define DDRAWILCL_ACTIVENO             0x00000010
-#define DDRAWILCL_HOOKEDHWND           0x00000020
-#define DDRAWILCL_ALLOWMODEX           0x00000040
-#define DDRAWILCL_V1SCLBEHAVIOUR       0x00000080
-#define DDRAWILCL_MODEHASBEENCHANGED   0x00000100
-#define DDRAWILCL_CREATEDWINDOW                0x00000200
-#define DDRAWILCL_DIRTYDC              0x00000400
-#define DDRAWILCL_DISABLEINACTIVATE    0x00000800
-#define DDRAWILCL_CURSORCLIPPED                0x00001000
-#define DDRAWILCL_EXPLICITMONITOR      0x00002000
-#define DDRAWILCL_MULTITHREADED                0x00004000
-#define DDRAWILCL_FPUSETUP                 0x00008000
-#define DDRAWILCL_POWEREDDOWN          0x00010000
-#define DDRAWILCL_DIRECTDRAW7          0x00020000
-#define DDRAWILCL_ATTEMPTEDD3DCONTEXT  0x00040000
-#define DDRAWILCL_FPUPRESERVE          0x00080000
-#define DDRAWILCL_DX8DRIVER         0x00100000
-#define DDRAWILCL_DIRECTDRAW8       0x00200000
-
-
-typedef struct _DDRAWI_DIRECTDRAW_GBL {
-    DWORD                      dwRefCnt;
-    DWORD                      dwFlags;
-    FLATPTR                    fpPrimaryOrig;
-    DDCORECAPS                 ddCaps;
-    DWORD                      dwInternal1;
-    DWORD                      dwUnused1[9];
-    LPDDHAL_CALLBACKS          lpDDCBtmp;
-    LPDDRAWI_DDRAWSURFACE_INT  dsList;
-    LPDDRAWI_DDRAWPALETTE_INT  palList;
-    LPDDRAWI_DDRAWCLIPPER_INT  clipperList;
-    LPDDRAWI_DIRECTDRAW_GBL    lp16DD;
-    DWORD                      dwMaxOverlays;
-    DWORD                      dwCurrOverlays;
-    DWORD                      dwMonitorFrequency;
-    DDCORECAPS                 ddHELCaps;
-    DWORD                      dwUnused2[50];
-    DDCOLORKEY                 ddckCKDestOverlay;
-    DDCOLORKEY                 ddckCKSrcOverlay;
-    VIDMEMINFO                 vmiData;
-    LPVOID                     lpDriverHandle;
-    LPDDRAWI_DIRECTDRAW_LCL    lpExclusiveOwner;
-    DWORD                      dwModeIndex;
-    DWORD                      dwModeIndexOrig;
-    DWORD                      dwNumFourCC;
-    LPDWORD                    lpdwFourCC;
-    DWORD                      dwNumModes;
-    LPDDHALMODEINFO            lpModeInfo;
-    PROCESS_LIST               plProcessList;
-    DWORD                      dwSurfaceLockCount;
-    DWORD                      dwAliasedLockCnt;
-    ULONG_PTR                  dwReserved3;
-    ULONG_PTR                  hDD;
-    char                       cObsolete[12];
-    DWORD                      dwReserved1;
-    DWORD                      dwReserved2;
-    DBLNODE                    dbnOverlayRoot;
-    volatile LPWORD            lpwPDeviceFlags;
-    DWORD                      dwPDevice;
-    DWORD                      dwWin16LockCnt;
-    DWORD                      dwUnused3;
-    DWORD                      hInstance;
-    DWORD                      dwEvent16;
-    DWORD                      dwSaveNumModes;
-    /* DirectX 2 */
-    ULONG_PTR                  lpD3DGlobalDriverData;
-    ULONG_PTR                  lpD3DHALCallbacks;
-    DDCORECAPS                 ddBothCaps;
-    /* DirectX 5.0 */
-    LPDDVIDEOPORTCAPS          lpDDVideoPortCaps;
-    LPDDRAWI_DDVIDEOPORT_INT   dvpList;
-    ULONG_PTR                  lpD3DHALCallbacks2;
-    RECT                       rectDevice;
-    DWORD                      cMonitors;
-    LPVOID                     gpbmiSrc;
-    LPVOID                     gpbmiDest;
-    LPHEAPALIASINFO            phaiHeapAliases;
-    ULONG_PTR                  hKernelHandle;
-    ULONG_PTR                  pfnNotifyProc;
-    LPDDKERNELCAPS             lpDDKernelCaps;
-    LPDDNONLOCALVIDMEMCAPS     lpddNLVCaps;
-    LPDDNONLOCALVIDMEMCAPS     lpddNLVHELCaps;
-    LPDDNONLOCALVIDMEMCAPS     lpddNLVBothCaps;
-    ULONG_PTR                  lpD3DExtendedCaps;
-    /* DirectX 5.0A */
-    DWORD                      dwDOSBoxEvent;
-    RECT                       rectDesktop;
-    char                       cDriverName[MAX_DRIVER_NAME];
-    /* DirectX 6.0 */
-    ULONG_PTR                  lpD3DHALCallbacks3;
-    DWORD                      dwNumZPixelFormats;
-    LPDDPIXELFORMAT            lpZPixelFormats;
-    LPDDRAWI_DDMOTIONCOMP_INT  mcList;
-    DWORD                      hDDVxd;
-    DDSCAPSEX                  ddsCapsMore;
-} DDRAWI_DIRECTDRAW_GBL;
-
-#define DDRAWI_xxxxxxxxx1              0x00000001
-#define DDRAWI_xxxxxxxxx2              0x00000002
-#define DDRAWI_VIRTUALDESKTOP          0x00000008
-#define DDRAWI_MODEX                   0x00000010
-#define DDRAWI_DISPLAYDRV              0x00000020
-#define DDRAWI_FULLSCREEN              0x00000040
-#define DDRAWI_MODECHANGED             0x00000080
-#define DDRAWI_NOHARDWARE              0x00000100
-#define DDRAWI_PALETTEINIT             0x00000200
-#define DDRAWI_NOEMULATION             0x00000400
-#define DDRAWI_HASCKEYDESTOVERLAY      0x00000800
-#define DDRAWI_HASCKEYSRCOVERLAY       0x00001000
-#define DDRAWI_HASGDIPALETTE           0x00002000
-#define DDRAWI_EMULATIONINITIALIZED    0x00004000
-#define DDRAWI_HASGDIPALETTE_EXCLUSIVE 0x00008000
-#define DDRAWI_MODEXILLEGAL            0x00010000
-#define DDRAWI_FLIPPEDTOGDI            0x00020000
-#define DDRAWI_NEEDSWIN16FORVRAMLOCK   0x00040000
-#define DDRAWI_PDEVICEVRAMBITCLEARED   0x00080000
-#define DDRAWI_STANDARDVGA             0x00100000
-#define DDRAWI_EXTENDEDALIGNMENT       0x00200000
-#define DDRAWI_CHANGINGMODE            0x00400000
-#define DDRAWI_GDIDRV                  0x00800000
-#define DDRAWI_ATTACHEDTODESKTOP       0x01000000
-#define DDRAWI_UMODELOADED             0x02000000
-#define DDRAWI_DDRAWDATANOTFETCHED     0x04000000
-#define DDRAWI_SECONDARYDRIVERLOADED   0x08000000
-#define DDRAWI_TESTINGMODES            0x10000000
-#define DDRAWI_DRIVERINFO2             0x20000000
-#define DDRAWI_BADPDEV                 0x40000000
-
-
-/* surfaces */
-typedef struct _DDRAWI_DDRAWSURFACE_INT {
-    LPVOID                     lpVtbl;
-    LPDDRAWI_DDRAWSURFACE_LCL  lpLcl;
-    LPDDRAWI_DDRAWSURFACE_INT  lpLink;
-    DWORD                      dwIntRefCnt;
-} DDRAWI_DDRAWSURFACE_INT;
-
-typedef struct _DDRAWI_DDRAWSURFACE_GBL {
-    DWORD                      dwRefCnt;
-    DWORD                      dwGlobalFlags;
-    __GNU_EXTENSION union {
-       LPACCESSRECTLIST        lpRectList;
-       DWORD                       dwBlockSizeY;
-       LONG                lSlicePitch;
-    };
-    __GNU_EXTENSION union {
-       LPVMEMHEAP              lpVidMemHeap;
-       DWORD                   dwBlockSizeX;
-    };
-    __GNU_EXTENSION union {
-       LPDDRAWI_DIRECTDRAW_GBL lpDD;
-       LPVOID                  lpDDHandle;
-    };
-    FLATPTR                    fpVidMem;
-    __GNU_EXTENSION union {
-       LONG                    lPitch;
-       DWORD                   dwLinearSize;
-    };
-    WORD                       wHeight;
-    WORD                       wWidth;
-    DWORD                      dwUsageCount;
-    ULONG_PTR                  dwReserved1;
-    DDPIXELFORMAT              ddpfSurface;
-} DDRAWI_DDRAWSURFACE_GBL;
-
-#define DDRAWISURFGBL_MEMFREE                    0x00000001L
-#define DDRAWISURFGBL_SYSMEMREQUESTED            0x00000002L
-#define DDRAWISURFGBL_ISGDISURFACE               0x00000004L
-#define DDRAWISURFGBL_SOFTWAREAUTOFLIP           0x00000008L
-#define DDRAWISURFGBL_LOCKNOTHOLDINGWIN16LOCK    0x00000010L
-#define DDRAWISURFGBL_LOCKVRAMSTYLE              0x00000020L
-#define DDRAWISURFGBL_LOCKBROKEN                 0x00000040L
-#define DDRAWISURFGBL_IMPLICITHANDLE             0x00000080L
-#define DDRAWISURFGBL_ISCLIENTMEM                0x00000100L
-#define DDRAWISURFGBL_HARDWAREOPSOURCE           0x00000200L
-#define DDRAWISURFGBL_HARDWAREOPDEST             0x00000400L
-#define DDRAWISURFGBL_HARDWAREOPSTARTED (DDRAWISURFGBL_HARDWAREOPSOURCE|DDRAWISURFGBL_HARDWAREOPDEST)
-#define DDRAWISURFGBL_VPORTINTERLEAVED           0x00000800L
-#define DDRAWISURFGBL_VPORTDATA                  0x00001000L
-#define DDRAWISURFGBL_LATEALLOCATELINEAR         0x00002000L
-#define DDRAWISURFGBL_SYSMEMEXECUTEBUFFER        0x00004000L
-#define DDRAWISURFGBL_FASTLOCKHELD               0x00008000L
-#define DDRAWISURFGBL_READONLYLOCKHELD           0x00010000L
-#define DDRAWISURFGBL_DX8SURFACE                 0x00080000L
-#define DDRAWISURFGBL_DDHELDONTFREE              0x00100000L
-#define DDRAWISURFGBL_NOTIFYWHENUNLOCKED         0x00200000L
-#define DDRAWISURFGBL_RESERVED0                  0x80000000L // Reserved flag
-
-typedef struct _DDRAWI_DDRAWSURFACE_GBL_MORE {
-    DWORD                      dwSize;
-    __GNU_EXTENSION union {
-       DWORD                   dwPhysicalPageTable;
-       FLATPTR                 fpPhysicalVidMem;
-    };
-    LPDWORD                    pPageTable;
-    DWORD                      cPages;
-    ULONG_PTR                  dwSavedDCContext;
-    FLATPTR                    fpAliasedVidMem;
-    ULONG_PTR                  dwDriverReserved;
-    ULONG_PTR                  dwHELReserved;
-    DWORD                      cPageUnlocks;
-    ULONG_PTR                  hKernelSurface;
-    DWORD                      dwKernelRefCnt;
-    LPDDCOLORCONTROL           lpColorInfo;
-    FLATPTR                    fpNTAlias;
-    DWORD                      dwContentsStamp;
-    LPVOID                     lpvUnswappedDriverReserved;
-    LPVOID                     lpDDRAWReserved2;
-    DWORD                      dwDDRAWReserved1;
-    DWORD                      dwDDRAWReserved2;
-    FLATPTR                    fpAliasOfVidMem;
-} DDRAWI_DDRAWSURFACE_GBL_MORE;
-
-/* the MS version of this macro was somewhat obfuscated and unreadable
- * (possibly because of mediocre MS coders)... so I simplified it...
- * (and so I commit no copyright violations either, hah) */
-#define GET_LPDDRAWSURFACE_GBL_MORE(psurf_gbl) \
-    (*(((LPDDRAWI_DDRAWSURFACE_GBL_MORE *)(psurf_gbl)) - 1))
-
-#define SURFACE_PHYSICALVIDMEM( psurf_gbl ) \
-                  ( GET_LPDDRAWSURFACE_GBL_MORE(psurf_gbl )->fpPhysicalVidMem )
-
-
-typedef struct  _DISPLAYMODEINFO
-{
-    WORD       wWidth;
-    WORD       wHeight;
-    BYTE       wBPP;
-    BYTE       wMonitorsAttachedToDesktop;
-    WORD       wRefreshRate;
-} DISPLAYMODEINFO, *LPDISPLAYMODEINFO;
-
-#define EQUAL_DISPLAYMODE ( A, B ) (0 == memcmp(&(A), &(B), sizeof (DISPLAYMODEINFO)))
-
-
-
-
-typedef struct _DDRAWI_DDRAWSURFACE_MORE {
-    DWORD                      dwSize;
-    IUNKNOWN_LIST *            lpIUnknowns;
-    LPDDRAWI_DIRECTDRAW_LCL    lpDD_lcl;
-    DWORD                      dwPageLockCount;
-    DWORD                      dwBytesAllocated;
-    LPDDRAWI_DIRECTDRAW_INT    lpDD_int;
-    DWORD                      dwMipMapCount;
-    LPDDRAWI_DDRAWCLIPPER_INT  lpDDIClipper;
-    /* DirectX 5.0 */
-    LPHEAPALIASINFO            lpHeapAliasInfo;
-    DWORD                      dwOverlayFlags;
-    VOID                       *rgjunc;
-    LPDDRAWI_DDVIDEOPORT_LCL   lpVideoPort;
-    LPDDOVERLAYFX              lpddOverlayFX;
-    DDSCAPSEX                  ddsCapsEx;
-    DWORD                      dwTextureStage;
-    LPVOID                     lpDDRAWReserved;
-    LPVOID                     lpDDRAWReserved2;
-    LPVOID                     lpDDrawReserved3;
-    DWORD                      dwDDrawReserved4;
-    LPVOID                     lpDDrawReserved5;
-    LPDWORD                    lpGammaRamp;
-    LPDWORD                    lpOriginalGammaRamp;
-    LPVOID                     lpDDrawReserved6;
-       #ifndef WIN95
-    DISPLAYMODEINFO dmiDDrawReserved7;
-    #endif
-    DWORD                      dwSurfaceHandle;
-    DWORD                      qwDDrawReserved8[2];
-    LPVOID                     lpDDrawReserved9;
-    DWORD                      cSurfaces;
-    LPDDSURFACEDESC2           pCreatedDDSurfaceDesc2;
-    LPDDRAWI_DDRAWSURFACE_LCL  *slist;
-    DWORD                      dwFVF;
-    LPVOID                     lpVB;
-} DDRAWI_DDRAWSURFACE_MORE;
-
-
-
-typedef struct _DDRAWI_DDRAWSURFACE_LCL {
-    LPDDRAWI_DDRAWSURFACE_MORE lpSurfMore;
-    LPDDRAWI_DDRAWSURFACE_GBL  lpGbl;
-    ULONG_PTR                  hDDSurface;
-    LPATTACHLIST               lpAttachList;
-    LPATTACHLIST               lpAttachListFrom;
-    DWORD                      dwLocalRefCnt;
-    DWORD                      dwProcessId;
-    DWORD                      dwFlags;
-    DDSCAPS                    ddsCaps;
-    __GNU_EXTENSION union
-    {
-       LPDDRAWI_DDRAWPALETTE_INT       lpDDPalette;
-       LPDDRAWI_DDRAWPALETTE_INT   lp16DDPalette;
-    };
-    __GNU_EXTENSION union
-    {
-       LPDDRAWI_DDRAWCLIPPER_LCL   lpDDClipper;
-       LPDDRAWI_DDRAWCLIPPER_INT   lp16DDClipper;
-    };
-    DWORD                      dwModeCreatedIn;
-    DWORD                      dwBackBufferCount;
-    DDCOLORKEY                 ddckCKDestBlt;
-    DDCOLORKEY                 ddckCKSrcBlt;
-    ULONG_PTR                  hDC;
-    ULONG_PTR                  dwReserved1;
-    DDCOLORKEY                 ddckCKSrcOverlay;
-    DDCOLORKEY                 ddckCKDestOverlay;
-    LPDDRAWI_DDRAWSURFACE_INT  lpSurfaceOverlaying;
-    DBLNODE                    dbnOverlayNode;
-    RECT                       rcOverlaySrc;
-    RECT                       rcOverlayDest;
-    DWORD                      dwClrXparent;
-    DWORD                      dwAlpha;
-    LONG                       lOverlayX;
-    LONG                       lOverlayY;
-} DDRAWI_DDRAWSURFACE_LCL;
-
-#define DDRAWISURF_ATTACHED            0x00000001L
-#define DDRAWISURF_IMPLICITCREATE      0x00000002L
-#define DDRAWISURF_ISFREE      0x00000004L
-#define DDRAWISURF_ATTACHED_FROM       0x00000008L
-#define DDRAWISURF_IMPLICITROOT                0x00000010L
-#define DDRAWISURF_PARTOFPRIMARYCHAIN  0x00000020L
-#define DDRAWISURF_DATAISALIASED       0x00000040L
-#define DDRAWISURF_HASDC       0x00000080L
-#define DDRAWISURF_HASCKEYDESTOVERLAY  0x00000100L
-#define DDRAWISURF_HASCKEYDESTBLT      0x00000200L
-#define DDRAWISURF_HASCKEYSRCOVERLAY   0x00000400L
-#define DDRAWISURF_HASCKEYSRCBLT       0x00000800L
-#define DDRAWISURF_LOCKEXCLUDEDCURSOR  0x00001000L
-#define DDRAWISURF_HASPIXELFORMAT      0x00002000L
-#define DDRAWISURF_HASOVERLAYDATA      0x00004000L
-#define DDRAWISURF_SETGAMMA            0x00008000L
-#define DDRAWISURF_SW_CKEYDESTOVERLAY  0x00010000L
-#define DDRAWISURF_SW_CKEYDESTBLT      0x00020000L
-#define DDRAWISURF_SW_CKEYSRCOVERLAY   0x00040000L
-#define DDRAWISURF_SW_CKEYSRCBLT       0x00080000L
-#define DDRAWISURF_HW_CKEYDESTOVERLAY  0x00100000L
-#define DDRAWISURF_HW_CKEYDESTBLT      0x00200000L
-#define DDRAWISURF_HW_CKEYSRCOVERLAY   0x00400000L
-#define DDRAWISURF_HW_CKEYSRCBLT       0x00800000L
-#define DDRAWISURF_INMASTERSPRITELIST  0x01000000L
-#define DDRAWISURF_HELCB       0x02000000L
-#define DDRAWISURF_FRONTBUFFER 0x04000000L
-#define DDRAWISURF_BACKBUFFER  0x08000000L
-#define DDRAWISURF_INVALID     0x10000000L
-#define DDRAWISURF_DCIBUSY     0x20000000L
-#define DDRAWISURF_GETDCNULL   0x40000000L
-#define DDRAWISURF_STEREOSURFACELEFT   0x20000000L
-#define DDRAWISURF_DRIVERMANAGED       0x40000000L
-#define DDRAWISURF_DCILOCK     0x80000000L
-
-/* palettes */
-typedef struct _DDRAWI_DDRAWPALETTE_INT {
-    LPVOID                     lpVtbl;
-    LPDDRAWI_DDRAWPALETTE_LCL  lpLcl;
-    LPDDRAWI_DDRAWPALETTE_INT  lpLink;
-    DWORD                      dwIntRefCnt;
-} DDRAWI_DDRAWPALETTE_INT;
-
-typedef struct _DDRAWI_DDRAWPALETTE_GBL {
-    DWORD                      dwRefCnt;
-    DWORD                      dwFlags;
-    LPDDRAWI_DIRECTDRAW_LCL    lpDD_lcl;
-    DWORD                      dwProcessId;
-    LPPALETTEENTRY             lpColorTable;
-    __GNU_EXTENSION union {
-       ULONG_PTR               dwReserved1;
-       HPALETTE                hHELGDIPalette;
-    };
-    DWORD                      dwDriverReserved;
-    DWORD                      dwContentsStamp;
-    DWORD                      dwSaveStamp;
-    DWORD                      dwHandle;
-} DDRAWI_DDRAWPALETTE_GBL;
-
-#define DDRAWIPAL_256          0x00000001
-#define DDRAWIPAL_16           0x00000002
-#define DDRAWIPAL_GDI          0x00000004
-#define DDRAWIPAL_STORED_8     0x00000008
-#define DDRAWIPAL_STORED_16    0x00000010
-#define DDRAWIPAL_STORED_24    0x00000020
-#define DDRAWIPAL_EXCLUSIVE    0x00000040
-#define DDRAWIPAL_INHEL                0x00000080
-#define DDRAWIPAL_DIRTY                0x00000100
-#define DDRAWIPAL_ALLOW256     0x00000200
-#define DDRAWIPAL_4            0x00000400
-#define DDRAWIPAL_2            0x00000800
-#define DDRAWIPAL_STORED_8INDEX        0x00001000
-#define DDRAWIPAL_ALPHA                0x00002000
-
-#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_NOFILTER        0x00040000L
-#define DDPF_D3DFORMAT               0x00200000l
-#define DDPF_NOVEL_TEXTURE_FORMAT    0x00100000l
-#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 DELETED_OK                   0
-#define DELETED_LASTONE              1
-#define DELETED_NOTFOUND             2
-#define DDCALLBACKSSIZE_V1           ( offsetof( DDHAL_DDCALLBACKS, SetExclusiveMode ) )
-#define DDCALLBACKSSIZE               sizeof( DDHAL_DDCALLBACKS )
-#define DDRAWICLIP_WATCHWINDOW        0x00000001
-#define DDRAWICLIP_ISINITIALIZED      0x00000002
-#define DDRAWICLIP_INMASTERSPRITELIST 0x00000004
-#define PFINDEX_UNINITIALIZED         (0UL)
-#define PFINDEX_UNSUPPORTED           (~0UL)
-#define ROP_HAS_SOURCE                0x00000001l
-#define ROP_HAS_PATTERN               0x00000002l
-#define ROP_HAS_SOURCEPATTERN         ROP_HAS_SOURCE | ROP_HAS_PATTERN
-#define DDRAWIVPORT_ON                0x00000001
-#define DDRAWIVPORT_SOFTWARE_AUTOFLIP 0x00000002
-#define DDRAWIVPORT_COLORKEYANDINTERP 0x00000004
-#define DDRAWIVPORT_NOKERNELHANDLES   0x00000008
-#define DDRAWIVPORT_SOFTWARE_BOB      0x00000010
-#define DDRAWIVPORT_VBION             0x00000020
-#define DDRAWIVPORT_VIDEOON           0x00000040
-#define DDRAWI_GETCOLOR               0x0001
-#define DDRAWI_SETCOLOR               0x0002
-#define DDMCQUERY_READ                0x00000001
-#define DDWAITVB_I_TESTVB             0x80000006
-
-
-#define DDBLT_ANYALPHA \
-        (DDBLT_ALPHASRCSURFACEOVERRIDE | DDBLT_ALPHASRCCONSTOVERRIDE | \
-        DDBLT_ALPHASRC | DDBLT_ALPHADESTSURFACEOVERRIDE | \
-        DDBLT_ALPHADESTCONSTOVERRIDE | DDBLT_ALPHADEST)
-
-#define DDHAL_ALIGNVALIDCAPS  (DDSCAPS_OFFSCREENPLAIN | DDSCAPS_EXECUTEBUFFER | \
-                               DDSCAPS_OVERLAY | DDSCAPS_TEXTURE | \
-                               DDSCAPS_ZBUFFER | DDSCAPS_ALPHA | DDSCAPS_FLIP )
-
-
-#define DDHALINFOSIZE_V2 sizeof(DDHALINFO)
-
-#define DDOVER_ANYALPHA \
-           (DDOVER_ALPHASRCSURFACEOVERRIDE | DDOVER_ALPHASRCCONSTOVERRIDE | \
-            DDOVER_ALPHASRC | DDOVER_ALPHADESTSURFACEOVERRIDE | \
-            DDOVER_ALPHADESTCONSTOVERRIDE | DDOVER_ALPHADEST)
-
-
-typedef struct _DDRAWI_DDRAWPALETTE_LCL {
-    DWORD                      lpPalMore;
-    LPDDRAWI_DDRAWPALETTE_GBL  lpGbl;
-    ULONG_PTR                  dwUnused0;
-    DWORD                      dwLocalRefCnt;
-#ifndef _NO_COM
-    IUnknown *                 pUnkOuter;
-#else
-    PVOID               pUnkOuter;
-#endif
-    LPDDRAWI_DIRECTDRAW_LCL    lpDD_lcl;
-    ULONG_PTR                  dwReserved1;
-    /* DirectX 6.0 */
-    ULONG_PTR                  dwDDRAWReserved1;
-    ULONG_PTR                  dwDDRAWReserved2;
-    ULONG_PTR                  dwDDRAWReserved3;
-} DDRAWI_DDRAWPALETTE_LCL;
-
-
-typedef struct _DDMCCOMPBUFFERINFO
-{
-    DWORD                       dwSize;
-    DWORD                       dwNumCompBuffers;
-    DWORD                       dwWidthToCreate;
-    DWORD                       dwHeightToCreate;
-    DWORD                       dwBytesToAllocate;
-    DDSCAPS2                    ddCompCaps;
-    DDPIXELFORMAT               ddPixelFormat;
-} DDMCCOMPBUFFERINFO, *LPDDMCCOMPBUFFERINFO;
-
-typedef struct _DDMCBUFFERINFO
-{
-    DWORD                       dwSize;
-    LPDDRAWI_DDRAWSURFACE_LCL   lpCompSurface;
-    DWORD                       dwDataOffset;
-    DWORD                       dwDataSize;
-    LPVOID                      lpPrivate;
-} DDMCBUFFERINFO, *LPDDMCBUFFERINFO;
-
-typedef struct _DDHAL_GETDRIVERSTATEDATA {
-    DWORD                       dwFlags;
-    __GNU_EXTENSION union
-    {
-        ULONG_PTR               dwhContext;
-    };
-    LPDWORD                     lpdwStates;
-    DWORD                       dwLength;
-    HRESULT                     ddRVal;
-} DDHAL_GETDRIVERSTATEDATA;
-
-typedef struct _DDHAL_ADDATTACHEDSURFACEDATA
-{
-    LPDDRAWI_DIRECTDRAW_GBL         lpDD;
-    LPDDRAWI_DDRAWSURFACE_LCL       lpDDSurface;
-    LPDDRAWI_DDRAWSURFACE_LCL       lpSurfAttached;
-    HRESULT                         ddRVal;
-    LPDDHALSURFCB_ADDATTACHEDSURFACE    AddAttachedSurface;
-} DDHAL_ADDATTACHEDSURFACEDATA;
-
-
-
-typedef struct _DDHAL_BEGINMOCOMPFRAMEDATA
-{
-    LPDDRAWI_DIRECTDRAW_LCL     lpDD;
-    LPDDRAWI_DDMOTIONCOMP_LCL   lpMoComp;
-    LPDDRAWI_DDRAWSURFACE_LCL   lpDestSurface;
-       DWORD                       dwInputDataSize;
-    LPVOID                      lpInputData;
-    DWORD                       dwOutputDataSize;
-    LPVOID                      lpOutputData;
-    HRESULT                     ddRVal;
-    LPDDHALMOCOMPCB_BEGINFRAME  BeginMoCompFrame;
-} DDHAL_BEGINMOCOMPFRAMEDATA;
-
-typedef struct _DDHAL_COLORCONTROLDATA
-{
-    LPDDRAWI_DIRECTDRAW_GBL     lpDD;
-    LPDDRAWI_DDRAWSURFACE_LCL   lpDDSurface;
-    LPDDCOLORCONTROL            lpColorData;
-    DWORD                       dwFlags;
-    HRESULT                     ddRVal;
-    LPDDHALCOLORCB_COLORCONTROL ColorControl;
-} DDHAL_COLORCONTROLDATA;
-
-typedef struct _DDHAL_CREATEMOCOMPDATA
-{
-    LPDDRAWI_DIRECTDRAW_LCL     lpDD;
-    LPDDRAWI_DDMOTIONCOMP_LCL   lpMoComp;
-    LPGUID                      lpGuid;
-    DWORD                       dwUncompWidth;
-    DWORD                       dwUncompHeight;
-    DDPIXELFORMAT               ddUncompPixelFormat;
-    LPVOID                      lpData;
-    DWORD                       dwDataSize;
-    HRESULT                     ddRVal;
-    LPDDHALMOCOMPCB_CREATE      CreateMoComp;
-} DDHAL_CREATEMOCOMPDATA;
-
-typedef struct _DDHAL_DESTROYMOCOMPDATA
-{
-    LPDDRAWI_DIRECTDRAW_LCL     lpDD;
-    LPDDRAWI_DDMOTIONCOMP_LCL   lpMoComp;
-    HRESULT                     ddRVal;
-    LPDDHALMOCOMPCB_DESTROY     DestroyMoComp;
-} DDHAL_DESTROYMOCOMPDATA;
-
-typedef struct _DDHAL_ENDMOCOMPFRAMEDATA
-{
-    LPDDRAWI_DIRECTDRAW_LCL     lpDD;
-    LPDDRAWI_DDMOTIONCOMP_LCL   lpMoComp;
-    LPVOID                      lpInputData;
-    DWORD                       dwInputDataSize;
-    HRESULT                     ddRVal;
-    LPDDHALMOCOMPCB_ENDFRAME    EndMoCompFrame;
-} DDHAL_ENDMOCOMPFRAMEDATA;
-
-typedef struct _DDHAL_FLIPTOGDISURFACEDATA
-{
-    LPDDRAWI_DIRECTDRAW_GBL     lpDD;
-    DWORD                       dwToGDI;
-    DWORD                       dwReserved;
-    HRESULT            ddRVal;
-    LPDDHAL_FLIPTOGDISURFACE    FlipToGDISurface;
-} DDHAL_FLIPTOGDISURFACEDATA;
-
-typedef struct _DDHAL_GETAVAILDRIVERMEMORYDATA
-{
-    LPDDRAWI_DIRECTDRAW_GBL lpDD;
-    DDSCAPS                 DDSCaps;
-    DWORD                   dwTotal;
-    DWORD                   dwFree;
-    HRESULT                 ddRVal;
-    LPDDHAL_GETAVAILDRIVERMEMORY   GetAvailDriverMemory;
-    DDSCAPSEX               ddsCapsEx;
-
-} DDHAL_GETAVAILDRIVERMEMORYDATA;
-
-typedef struct _DDHAL_GETBLTSTATUSDATA
-{
-    LPDDRAWI_DIRECTDRAW_GBL     lpDD;
-    LPDDRAWI_DDRAWSURFACE_LCL   lpDDSurface;
-    DWORD                       dwFlags;
-    HRESULT                     ddRVal;
-    LPDDHALSURFCB_GETBLTSTATUS  GetBltStatus;
-} DDHAL_GETBLTSTATUSDATA;
-
-typedef struct _DDHAL_GETFLIPSTATUSDATA
-{
-    LPDDRAWI_DIRECTDRAW_GBL     lpDD;
-    LPDDRAWI_DDRAWSURFACE_LCL   lpDDSurface;
-    DWORD                       dwFlags;
-    HRESULT                     ddRVal;
-    LPDDHALSURFCB_GETFLIPSTATUS GetFlipStatus;
-} DDHAL_GETFLIPSTATUSDATA;
-
-typedef struct _DDHAL_GETINTERNALMOCOMPDATA
-{
-    LPDDRAWI_DIRECTDRAW_LCL     lpDD;
-    LPGUID                      lpGuid;
-    DWORD                       dwWidth;
-    DWORD                       dwHeight;
-    DDPIXELFORMAT               ddPixelFormat;
-    DWORD                       dwScratchMemAlloc;
-    HRESULT                     ddRVal;
-    LPDDHALMOCOMPCB_GETINTERNALINFO  GetInternalMoCompInfo;
-} DDHAL_GETINTERNALMOCOMPDATA;
-
-typedef struct _DDHAL_GETMOCOMPCOMPBUFFDATA
-{
-    LPDDRAWI_DIRECTDRAW_LCL         lpDD;
-    LPGUID                          lpGuid;
-    DWORD                           dwWidth;
-    DWORD                            dwHeight;
-    DDPIXELFORMAT                    ddPixelFormat;
-    DWORD                           dwNumTypesCompBuffs;
-    LPDDMCCOMPBUFFERINFO            lpCompBuffInfo;
-    HRESULT                         ddRVal;
-    LPDDHALMOCOMPCB_GETCOMPBUFFINFO GetMoCompBuffInfo;
-} DDHAL_GETMOCOMPCOMPBUFFDATA;
-
-typedef struct _DDHAL_GETMOCOMPGUIDSDATA
-{
-    LPDDRAWI_DIRECTDRAW_LCL lpDD;
-    DWORD               dwNumGuids;
-    LPGUID              lpGuids;
-    HRESULT             ddRVal;
-    LPDDHALMOCOMPCB_GETGUIDS GetMoCompGuids;
-} DDHAL_GETMOCOMPGUIDSDATA;
-
-typedef struct _DDHAL_GETMOCOMPFORMATSDATA
-{
-    LPDDRAWI_DIRECTDRAW_LCL lpDD;
-    LPGUID              lpGuid;
-    DWORD               dwNumFormats;
-    LPDDPIXELFORMAT     lpFormats;
-    HRESULT             ddRVal;
-    LPDDHALMOCOMPCB_GETFORMATS   GetMoCompFormats;
-} DDHAL_GETMOCOMPFORMATSDATA;
-
-typedef struct _DDHAL_GETSCANLINEDATA
-{
-    LPDDRAWI_DIRECTDRAW_GBL     lpDD;
-    DWORD                       dwScanLine;
-    HRESULT                     ddRVal;
-    LPDDHAL_GETSCANLINE         GetScanLine;
-} DDHAL_GETSCANLINEDATA;
-
-typedef struct _DDHAL_QUERYMOCOMPSTATUSDATA
-{
-    LPDDRAWI_DIRECTDRAW_LCL     lpDD;
-    LPDDRAWI_DDMOTIONCOMP_LCL   lpMoComp;
-    LPDDRAWI_DDRAWSURFACE_LCL   lpSurface;
-    DWORD                       dwFlags;
-    HRESULT                     ddRVal;
-    LPDDHALMOCOMPCB_QUERYSTATUS QueryMoCompStatus;
-} DDHAL_QUERYMOCOMPSTATUSDATA;
-
-typedef struct _DDHAL_RENDERMOCOMPDATA
-{
-    LPDDRAWI_DIRECTDRAW_LCL     lpDD;
-    LPDDRAWI_DDMOTIONCOMP_LCL   lpMoComp;
-    DWORD                       dwNumBuffers;
-    LPDDMCBUFFERINFO            lpBufferInfo;
-    DWORD                       dwFunction;
-    LPVOID                      lpInputData;
-    DWORD                       dwInputDataSize;
-    LPVOID                      lpOutputData;
-    DWORD                       dwOutputDataSize;
-    HRESULT                     ddRVal;
-    LPDDHALMOCOMPCB_RENDER      RenderMoComp;
-} DDHAL_RENDERMOCOMPDATA;
-
-typedef struct _DDHAL_SETCOLORKEYDATA
-{
-    LPDDRAWI_DIRECTDRAW_GBL     lpDD;
-    LPDDRAWI_DDRAWSURFACE_LCL   lpDDSurface;
-    DWORD                       dwFlags;
-    DDCOLORKEY                  ckNew;
-    HRESULT                     ddRVal;
-    LPDDHALSURFCB_SETCOLORKEY   SetColorKey;
-} DDHAL_SETCOLORKEYDATA;
-
-typedef struct _DDHAL_SETOVERLAYPOSITIONDATA
-{
-    LPDDRAWI_DIRECTDRAW_GBL     lpDD;
-    LPDDRAWI_DDRAWSURFACE_LCL   lpDDSrcSurface;
-    LPDDRAWI_DDRAWSURFACE_LCL   lpDDDestSurface;
-    LONG                        lXPos;
-    LONG                        lYPos;
-    HRESULT                     ddRVal;
-    LPDDHALSURFCB_SETOVERLAYPOSITION SetOverlayPosition;
-} DDHAL_SETOVERLAYPOSITIONDATA;
-
-typedef struct _DDHAL_UPDATEOVERLAYDATA
-{
-    LPDDRAWI_DIRECTDRAW_GBL     lpDD;
-    LPDDRAWI_DDRAWSURFACE_LCL   lpDDDestSurface;
-    RECTL                       rDest;
-    LPDDRAWI_DDRAWSURFACE_LCL   lpDDSrcSurface;
-    RECTL                       rSrc;
-    DWORD                       dwFlags;
-    DDOVERLAYFX                 overlayFX;
-    HRESULT                     ddRVal;
-    LPDDHALSURFCB_UPDATEOVERLAY UpdateOverlay;
-} DDHAL_UPDATEOVERLAYDATA;
-
-typedef struct _DDHAL_WAITFORVERTICALBLANKDATA
-{
-    LPDDRAWI_DIRECTDRAW_GBL     lpDD;
-    DWORD                       dwFlags;
-    DWORD                       bIsInVB;
-    ULONG_PTR                   hEvent;
-    HRESULT                     ddRVal;
-    LPDDHAL_WAITFORVERTICALBLANK    WaitForVerticalBlank;
-} DDHAL_WAITFORVERTICALBLANKDATA;
-
-typedef struct _DDHAL_DRVSETCOLORKEYDATA
-{
-    LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface;
-    DWORD                dwFlags;
-    DDCOLORKEY           ckNew;
-    HRESULT              ddRVal;
-    LPDDHAL_SETCOLORKEY  SetColorKey;
-} DDHAL_DRVSETCOLORKEYDATA;
-
-typedef struct _DDMONITORINFO
-{
-    WORD    Manufacturer;
-    WORD    Product;
-    DWORD   SerialNumber;
-    GUID    DeviceIdentifier;
-    int     Mode640x480;
-    int     Mode800x600;
-    int     Mode1024x768;
-    int     Mode1280x1024;
-    int     Mode1600x1200;
-    int     ModeReserved1;
-    int     ModeReserved2;
-    int     ModeReserved3;
-} DDMONITORINFO, FAR *LPDDMONITORINFO;
-
-typedef struct _DDRAWI_DDRAWCLIPPER_INT
-{
-    LPVOID                   lpVtbl;
-    LPDDRAWI_DDRAWCLIPPER_LCL lpLcl;
-    LPDDRAWI_DDRAWCLIPPER_INT  lpLink;
-    DWORD                   dwIntRefCnt;
-} DDRAWI_DDRAWCLIPPER_INT;
-
-typedef struct _DDHAL_UPDATENONLOCALHEAPDATA
-{
-    LPDDRAWI_DIRECTDRAW_GBL lpDD;
-    DWORD           dwHeap;
-    FLATPTR         fpGARTLin;
-    FLATPTR         fpGARTDev;
-    ULONG_PTR       ulPolicyMaxBytes;
-    HRESULT         ddRVal;
-    LPDDHAL_UPDATENONLOCALHEAP   UpdateNonLocalHeap;
-} DDHAL_UPDATENONLOCALHEAPDATA;
-
-typedef struct _DDHAL_SETCLIPLISTDATA
-{
-    LPDDRAWI_DIRECTDRAW_GBL    lpDD;
-    LPDDRAWI_DDRAWSURFACE_LCL  lpDDSurface;
-    HRESULT                    ddRVal;
-    LPDDHALSURFCB_SETCLIPLIST  SetClipList;
-} DDHAL_SETCLIPLISTDATA;
-
-typedef struct _DDRAWI_DDMOTIONCOMP_LCL
-{
-    LPDDRAWI_DIRECTDRAW_LCL   lpDD;
-    GUID                      guid;
-    DWORD                     dwUncompWidth;
-    DWORD                     dwUncompHeight;
-    DDPIXELFORMAT             ddUncompPixelFormat;
-    DWORD                     dwInternalFlags;
-    DWORD                     dwRefCnt;
-    DWORD                     dwProcessId;
-    HANDLE                    hMoComp;
-    DWORD                     dwDriverReserved1;
-    DWORD                     dwDriverReserved2;
-    DWORD                     dwDriverReserved3;
-    LPVOID                    lpDriverReserved1;
-    LPVOID                    lpDriverReserved2;
-    LPVOID                 lpDriverReserved3;
-} DDRAWI_DDMOTIONCOMP_LCL;
-
-typedef struct _DDRAWI_DDMOTIONCOMP_INT
-{
-    LPVOID                    lpVtbl;
-    LPDDRAWI_DDMOTIONCOMP_LCL lpLcl;
-    LPDDRAWI_DDMOTIONCOMP_INT lpLink;
-    DWORD                     dwIntRefCnt;
-} DDRAWI_DDMOTIONCOMP_INT;
-
-
-typedef struct _DDRAWI_DDVIDEOPORT_LCL
-{
-    LPDDRAWI_DIRECTDRAW_LCL   lpDD;
-    DDVIDEOPORTDESC           ddvpDesc;
-    DDVIDEOPORTINFO           ddvpInfo;
-    LPDDRAWI_DDRAWSURFACE_INT lpSurface;
-    LPDDRAWI_DDRAWSURFACE_INT lpVBISurface;
-    LPDDRAWI_DDRAWSURFACE_INT *lpFlipInts;
-    DWORD                     dwNumAutoflip;
-    DWORD                     dwProcessID;
-    DWORD                     dwStateFlags;
-    DWORD                     dwFlags;
-    DWORD                     dwRefCnt;
-    FLATPTR                   fpLastFlip;
-    ULONG_PTR                 dwReserved1;
-    ULONG_PTR                 dwReserved2;
-    HANDLE                    hDDVideoPort;
-    DWORD                     dwNumVBIAutoflip;
-    LPDDVIDEOPORTDESC         lpVBIDesc;
-    LPDDVIDEOPORTDESC         lpVideoDesc;
-    LPDDVIDEOPORTINFO         lpVBIInfo;
-    LPDDVIDEOPORTINFO         lpVideoInfo;
-    DWORD                     dwVBIProcessID;
-    LPDDRAWI_DDVIDEOPORT_INT  lpVPNotify;
-} DDRAWI_DDVIDEOPORT_LCL;
-
-
-typedef struct _DDRAWI_DDVIDEOPORT_INT
-{
-    LPVOID                      lpVtbl;
-    LPDDRAWI_DDVIDEOPORT_LCL    lpLcl;
-    LPDDRAWI_DDVIDEOPORT_INT    lpLink;
-    DWORD                       dwIntRefCnt;
-    DWORD                       dwFlags;
-} DDRAWI_DDVIDEOPORT_INT;
-
-
-typedef struct _DDRAWI_DDRAWCLIPPER_LCL
-{
-    DWORD                     lpClipMore;
-    LPDDRAWI_DDRAWCLIPPER_GBL lpGbl;
-    LPDDRAWI_DIRECTDRAW_LCL   lpDD_lcl;
-    DWORD                     dwLocalRefCnt;
-#ifndef _NO_COM
-    IUnknown                  *pUnkOuter;
-#else
-    PVOID                     *pUnkOuter;
-#endif
-    LPDDRAWI_DIRECTDRAW_INT   lpDD_int;
-    ULONG_PTR                 dwReserved1;
-#ifndef _NO_COM
-    IUnknown *                pAddrefedThisOwner;
-#else
-       PVOID                     pAddrefedThisOwner;
-#endif
-} DDRAWI_DDRAWCLIPPER_LCL;
-
-
-
-typedef struct _DDRAWI_DDRAWCLIPPER_GBL
-{
-    DWORD                     dwRefCnt;
-    DWORD                     dwFlags;
-    LPDDRAWI_DIRECTDRAW_GBL   lpDD;
-    DWORD                     dwProcessId;
-    ULONG_PTR                 dwReserved1;
-    ULONG_PTR                 hWnd;
-    LPRGNDATA                 lpStaticClipList;
-} DDRAWI_DDRAWCLIPPER_GBL;
-
-typedef BOOL    (PASCAL *LPDDHEL_INIT)(LPDDRAWI_DIRECTDRAW_GBL,BOOL);
-
-extern HRESULT DDAPI
-       LateAllocateSurfaceMem(
-                              LPDIRECTDRAWSURFACE lpSurface,
-                              DWORD dwPleaseAllocType,
-                              DWORD dwWidthInBytesOrSize,
-                              DWORD dwHeight);
-
-       LPDIRECTDRAWSURFACE GetNextMipMap(
-                           LPDIRECTDRAWSURFACE lpLevel);
-
-
-
-typedef struct IDirectDrawClipperVtbl DIRECTDRAWCLIPPERCALLBACKS;
-typedef struct IDirectDrawPaletteVtbl DIRECTDRAWPALETTECALLBACKS;
-typedef struct IDirectDrawSurfaceVtbl DIRECTDRAWSURFACECALLBACKS;
-typedef struct IDirectDrawSurface2Vtbl DIRECTDRAWSURFACE2CALLBACKS;
-typedef struct IDirectDrawSurface3Vtbl DIRECTDRAWSURFACE3CALLBACKS;
-typedef struct IDirectDrawSurface4Vtbl DIRECTDRAWSURFACE4CALLBACKS;
-typedef struct IDirectDrawSurface7Vtbl DIRECTDRAWSURFACE7CALLBACKS;
-typedef struct IDirectDrawColorControlVtbl DIRECTDRAWCOLORCONTROLCALLBACKS;
-typedef struct IDirectDrawVtbl DIRECTDRAWCALLBACKS;
-typedef struct IDirectDraw2Vtbl DIRECTDRAW2CALLBACKS;
-typedef struct IDirectDraw4Vtbl DIRECTDRAW4CALLBACKS;
-typedef struct IDirectDraw7Vtbl DIRECTDRAW7CALLBACKS;
-typedef struct IDirectDrawKernelVtbl DIRECTDRAWKERNELCALLBACKS;
-typedef struct IDirectDrawSurfaceKernelVtbl DIRECTDRAWSURFACEKERNELCALLBACKS;
-typedef struct IDirectDrawGammaControlVtbl DIRECTDRAWGAMMACONTROLCALLBACKS;
-
-
-typedef DIRECTDRAWCLIPPERCALLBACKS  *LPDIRECTDRAWCLIPPERCALLBACKS;
-typedef DIRECTDRAWPALETTECALLBACKS  *LPDIRECTDRAWPALETTECALLBACKS;
-typedef DIRECTDRAWSURFACECALLBACKS  *LPDIRECTDRAWSURFACECALLBACKS;
-typedef DIRECTDRAWCALLBACKS  *LPDIRECTDRAWCALLBACKS;
-
-
-HRESULT CALLBACK
-        D3DParseUnknownCommand (LPVOID lpvCommands,
-                                LPVOID *lplpvReturnedCommand);
-
-#ifdef __cplusplus
- /* extern "C" */
-#endif
-
-#endif /* __DDRAWI_INCLUDED__ */
diff --git a/reactos/include/ddk/ddrawint.h b/reactos/include/ddk/ddrawint.h
deleted file mode 100644 (file)
index b78c209..0000000
+++ /dev/null
@@ -1,1475 +0,0 @@
-/*
- * DirectDraw NT driver interface
- */
-
-#ifndef __DD_INCLUDED__
-#define __DD_INCLUDED__
-
-/* Helper macro to enable gcc's extension.  */
-#ifndef __GNU_EXTENSION
-#ifdef __GNUC__
-#define __GNU_EXTENSION __extension__
-#else
-#define __GNU_EXTENSION
-#endif
-#endif
-
-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 <dvp.h>
-#endif
-#else
-#include <ddraw.h>
-#include <dvp.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#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
-
-#ifndef FLATPTR_DEFINED
-typedef ULONG_PTR FLATPTR;
-#define FLATPTR_DEFINED
-#endif
-
-typedef struct _DD_VIDEOPORT_LOCAL   *PDD_VIDEOPORT_LOCAL;
-
-/************************************************************************/
-/* _DD_GETHEAPALIGNMENTDATA is defined in dmemmgr.h                     */
- /************************************************************************/
-struct _DD_GETHEAPALIGNMENTDATA;
-#ifndef DD_GETHEAPALIGNMENTDATA_DECLARED
-typedef struct _DD_GETHEAPALIGNMENTDATA *PDD_GETHEAPALIGNMENTDATA;
-#define DD_GETHEAPALIGNMENTDATA_DECLARED
-#endif
-
-/************************************************************************/
-/* Video memory info structures                                         */
-/************************************************************************/
-
-typedef struct _VIDEOMEMORY
-{
-    DWORD          dwFlags;
-    FLATPTR        fpStart;
-    __GNU_EXTENSION union
-    {
-        FLATPTR    fpEnd;
-        DWORD      dwWidth;
-    };
-    DDSCAPS        ddsCaps;
-    DDSCAPS        ddsCapsAlt;
-    __GNU_EXTENSION union
-    {
-        struct _VMEMHEAP *lpHeap;
-        DWORD      dwHeight;
-    };
-} VIDEOMEMORY, *PVIDEOMEMORY;
-
-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;
-
-typedef struct _DD_DIRECTDRAW_GLOBAL
-{
-    PVOID             dhpdev;
-    ULONG_PTR         dwReserved1;
-    ULONG_PTR         dwReserved2;
-    LPDDVIDEOPORTCAPS lpDDVideoPortCaps;
-} DD_DIRECTDRAW_GLOBAL, *PDD_DIRECTDRAW_GLOBAL;
-
-typedef struct _DD_DIRECTDRAW_LOCAL
-{
-    PDD_DIRECTDRAW_GLOBAL lpGbl;
-} DD_DIRECTDRAW_LOCAL, *PDD_DIRECTDRAW_LOCAL;
-
-
-typedef struct _DD_SURFACE_GLOBAL
-{
-    __GNU_EXTENSION union
-    {
-        DWORD        dwBlockSizeY;
-        LONG         lSlicePitch;
-    };
-
-    __GNU_EXTENSION union
-    {
-        PVIDEOMEMORY lpVidMemHeap;
-        DWORD        dwBlockSizeX;
-        DWORD        dwUserMemSize;
-    };
-
-    FLATPTR          fpVidMem;
-    __GNU_EXTENSION 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 _DD_SURFACE_MORE
-{
-    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 _DD_SURFACE_LOCAL
-{
-       PDD_SURFACE_GLOBAL lpGbl;
-       DWORD              dwFlags;
-       DDSCAPS            ddsCaps;
-       ULONG_PTR          dwReserved1;
-       __GNU_EXTENSION union
-       {
-               DDCOLORKEY     ddckCKSrcOverlay;
-               DDCOLORKEY     ddckCKSrcBlt;
-       };
-       __GNU_EXTENSION union
-       {
-               DDCOLORKEY     ddckCKDestOverlay;
-               DDCOLORKEY     ddckCKDestBlt;
-       };
-       PDD_SURFACE_MORE   lpSurfMore;
-       PDD_ATTACHLIST     lpAttachList;
-       PDD_ATTACHLIST     lpAttachListFrom;
-       RECT               rcOverlaySrc;
-} DD_SURFACE_LOCAL, *PDD_SURFACE_LOCAL;
-
-typedef struct _DD_ATTACHLIST
-{
-       PDD_ATTACHLIST     lpLink;
-       PDD_SURFACE_LOCAL  lpAttached;
-} DD_ATTACHLIST;
-
-typedef struct _DD_SURFACE_INT
-{
-       PDD_SURFACE_LOCAL lpLcl;
-} DD_SURFACE_INT, *PDD_SURFACE_INT;
-
-/************************************************************************/
-/* DDI representation of the DirectDrawPalette object                   */
-/************************************************************************/
-
-typedef struct _DD_PALETTE_GLOBAL
-{
-    ULONG_PTR Reserved1;
-} DD_PALETTE_GLOBAL, *PDD_PALETTE_GLOBAL;
-
-/************************************************************************/
-/* DDI representation of the DirectDrawVideo object                     */
-/************************************************************************/
-
-typedef struct
-{
-       PDD_DIRECTDRAW_LOCAL lpDD;
-       GUID                 guid;
-       DWORD                dwUncompWidth;
-       DWORD                dwUncompHeight;
-       DDPIXELFORMAT        ddUncompPixelFormat;
-       DWORD                dwDriverReserved1;
-       DWORD                dwDriverReserved2;
-       DWORD                dwDriverReserved3;
-       LPVOID               lpDriverReserved1;
-       LPVOID               lpDriverReserved2;
-       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 _DD_LOCKDATA
-{
-       PDD_DIRECTDRAW_GLOBAL         lpDD;
-       PDD_SURFACE_LOCAL             lpDDSurface;
-       DWORD                         bHasRect;
-       RECTL                         rArea;
-       LPVOID                        lpSurfData;
-       HRESULT                       ddRVal;
-       PVOID                         Lock;
-       DWORD                         dwFlags;
-       FLATPTR                       fpProcess;
-} DD_LOCKDATA, *PDD_LOCKDATA;
-typedef DWORD (WINAPI *PDD_SURFCB_LOCK)(PDD_LOCKDATA);
-
-
-typedef struct _DD_UNLOCKDATA
-{
-       PDD_DIRECTDRAW_GLOBAL         lpDD;
-       PDD_SURFACE_LOCAL             lpDDSurface;
-       HRESULT                       ddRVal;
-       PVOID                         Unlock;
-} DD_UNLOCKDATA, *PDD_UNLOCKDATA;
-typedef DWORD (WINAPI *PDD_SURFCB_UNLOCK)(PDD_UNLOCKDATA);
-
-#define DDABLT_SRCOVERDEST        0x00000001
-#define DDBLT_AFLAGS              0x80000000
-
-
-
-typedef struct _DD_BLTDATA
-{
-       PDD_DIRECTDRAW_GLOBAL         lpDD;
-       PDD_SURFACE_LOCAL             lpDDDestSurface;
-       RECTL                         rDest;
-       PDD_SURFACE_LOCAL             lpDDSrcSurface;
-       RECTL                         rSrc;
-       DWORD                         dwFlags;
-       DWORD                         dwROPFlags;
-       DDBLTFX                       bltFX;
-       HRESULT                       ddRVal;
-       PVOID                         Blt;
-       BOOL                          IsClipped;
-       RECTL                         rOrigDest;
-       RECTL                         rOrigSrc;
-       DWORD                         dwRectCnt;
-       LPRECT                        prDestRects;
-       DWORD                         dwAFlags;
-       DDARGB                        ddargbScaleFactors;
-} DD_BLTDATA, *PDD_BLTDATA;
-typedef DWORD (WINAPI *PDD_SURFCB_BLT)(PDD_BLTDATA);
-
-typedef struct _DD_UPDATEOVERLAYDATA
-{
-       PDD_DIRECTDRAW_GLOBAL         lpDD;
-       PDD_SURFACE_LOCAL             lpDDDestSurface;
-       RECTL                         rDest;
-       PDD_SURFACE_LOCAL             lpDDSrcSurface;
-       RECTL                         rSrc;
-       DWORD                         dwFlags;
-       DDOVERLAYFX                   overlayFX;
-       HRESULT                       ddRVal;
-       PVOID                         UpdateOverlay;
-} DD_UPDATEOVERLAYDATA, *PDD_UPDATEOVERLAYDATA;
-typedef DWORD (WINAPI *PDD_SURFCB_UPDATEOVERLAY)(PDD_UPDATEOVERLAYDATA);
-
-typedef struct _DD_SETOVERLAYPOSITIONDATA
-{
-       PDD_DIRECTDRAW_GLOBAL         lpDD;
-       PDD_SURFACE_LOCAL             lpDDSrcSurface;
-       PDD_SURFACE_LOCAL             lpDDDestSurface;
-       LONG                          lXPos;
-       LONG                          lYPos;
-       HRESULT                       ddRVal;
-       PVOID                         SetOverlayPosition;
-} DD_SETOVERLAYPOSITIONDATA, *PDD_SETOVERLAYPOSITIONDATA;
-typedef DWORD (WINAPI *PDD_SURFCB_SETOVERLAYPOSITION)(PDD_SETOVERLAYPOSITIONDATA);
-
-typedef struct _DD_SETPALETTEDATA
-{
-       PDD_DIRECTDRAW_GLOBAL         lpDD;
-       PDD_SURFACE_LOCAL             lpDDSurface;
-       PDD_PALETTE_GLOBAL            lpDDPalette;
-       HRESULT                       ddRVal;
-       PVOID                         SetPalette;
-       BOOL                          Attach;
-} DD_SETPALETTEDATA, *PDD_SETPALETTEDATA;
-typedef DWORD (WINAPI *PDD_SURFCB_SETPALETTE)(PDD_SETPALETTEDATA);
-
-typedef struct _DD_FLIPDATA
-{
-       PDD_DIRECTDRAW_GLOBAL         lpDD;
-       PDD_SURFACE_LOCAL             lpSurfCurr;
-       PDD_SURFACE_LOCAL             lpSurfTarg;
-       DWORD                         dwFlags;
-       HRESULT                       ddRVal;
-       PVOID                         Flip;
-       PDD_SURFACE_LOCAL             lpSurfCurrLeft;
-       PDD_SURFACE_LOCAL             lpSurfTargLeft;
-} DD_FLIPDATA, *PDD_FLIPDATA;
-typedef DWORD (WINAPI *PDD_SURFCB_FLIP)(PDD_FLIPDATA);
-
-typedef struct _DD_DESTROYSURFACEDATA
-{
-       PDD_DIRECTDRAW_GLOBAL         lpDD;
-       PDD_SURFACE_LOCAL             lpDDSurface;
-       HRESULT                       ddRVal;
-       PVOID                         DestroySurface;
-} DD_DESTROYSURFACEDATA, *PDD_DESTROYSURFACEDATA;
-typedef DWORD (WINAPI *PDD_SURFCB_DESTROYSURFACE)(PDD_DESTROYSURFACEDATA);
-
-typedef struct _DD_SETCLIPLISTDATA
-{
-       PDD_DIRECTDRAW_GLOBAL         lpDD;
-       PDD_SURFACE_LOCAL             lpDDSurface;
-       HRESULT                       ddRVal;
-       PVOID                         SetClipList;
-} DD_SETCLIPLISTDATA, *PDD_SETCLIPLISTDATA;
-typedef DWORD (WINAPI *PDD_SURFCB_SETCLIPLIST)(PDD_SETCLIPLISTDATA);
-
-typedef struct _DD_ADDATTACHEDSURFACEDATA
-{
-       PDD_DIRECTDRAW_GLOBAL         lpDD;
-       PDD_SURFACE_LOCAL             lpDDSurface;
-       PDD_SURFACE_LOCAL             lpSurfAttached;
-       HRESULT                       ddRVal;
-       PVOID                         AddAttachedSurface;
-} DD_ADDATTACHEDSURFACEDATA, *PDD_ADDATTACHEDSURFACEDATA;
-typedef DWORD (WINAPI *PDD_SURFCB_ADDATTACHEDSURFACE)(PDD_ADDATTACHEDSURFACEDATA);
-
-typedef struct _DD_SETCOLORKEYDATA
-{
-       PDD_DIRECTDRAW_GLOBAL         lpDD;
-       PDD_SURFACE_LOCAL             lpDDSurface;
-       DWORD                         dwFlags;
-       DDCOLORKEY                    ckNew;
-       HRESULT                       ddRVal;
-       PVOID                         SetColorKey;
-} DD_SETCOLORKEYDATA, *PDD_SETCOLORKEYDATA;
-typedef DWORD (WINAPI *PDD_SURFCB_SETCOLORKEY)(PDD_SETCOLORKEYDATA);
-
-typedef struct _DD_GETBLTSTATUSDATA
-{
-       PDD_DIRECTDRAW_GLOBAL         lpDD;
-       PDD_SURFACE_LOCAL             lpDDSurface;
-       DWORD                         dwFlags;
-       HRESULT                       ddRVal;
-       PVOID                         GetBltStatus;
-} DD_GETBLTSTATUSDATA, *PDD_GETBLTSTATUSDATA;
-typedef DWORD (WINAPI *PDD_SURFCB_GETBLTSTATUS)(PDD_GETBLTSTATUSDATA);
-
-typedef struct _DD_GETFLIPSTATUSDATA
-{
-       PDD_DIRECTDRAW_GLOBAL         lpDD;
-       PDD_SURFACE_LOCAL             lpDDSurface;
-       DWORD                         dwFlags;
-       HRESULT                       ddRVal;
-       PVOID                         GetFlipStatus;
-} DD_GETFLIPSTATUSDATA, *PDD_GETFLIPSTATUSDATA;
-typedef DWORD (WINAPI *PDD_SURFCB_GETFLIPSTATUS)(PDD_GETFLIPSTATUSDATA);
-
-typedef struct DD_SURFACECALLBACKS
-{
-       DWORD                         dwSize;
-       DWORD                         dwFlags;
-       PDD_SURFCB_DESTROYSURFACE     DestroySurface;
-       PDD_SURFCB_FLIP               Flip;
-       PDD_SURFCB_SETCLIPLIST        SetClipList;
-       PDD_SURFCB_LOCK               Lock;
-       PDD_SURFCB_UNLOCK             Unlock;
-       PDD_SURFCB_BLT                Blt;
-       PDD_SURFCB_SETCOLORKEY        SetColorKey;
-       PDD_SURFCB_ADDATTACHEDSURFACE AddAttachedSurface;
-       PDD_SURFCB_GETBLTSTATUS       GetBltStatus;
-       PDD_SURFCB_GETFLIPSTATUS      GetFlipStatus;
-       PDD_SURFCB_UPDATEOVERLAY      UpdateOverlay;
-       PDD_SURFCB_SETOVERLAYPOSITION SetOverlayPosition;
-       PVOID                         reserved4;
-       PDD_SURFCB_SETPALETTE         SetPalette;
-} DD_SURFACECALLBACKS, *PDD_SURFACECALLBACKS;
-
-
-#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 _DD_CREATESURFACEDATA
-{
-       PDD_DIRECTDRAW_GLOBAL    lpDD;
-       DDSURFACEDESC           *lpDDSurfaceDesc;
-       PDD_SURFACE_LOCAL       *lplpSList;
-       DWORD                    dwSCnt;
-       HRESULT                  ddRVal;
-       PVOID                    CreateSurface;
-} DD_CREATESURFACEDATA, *PDD_CREATESURFACEDATA;
-typedef DWORD (WINAPI *PDD_CREATESURFACE)(PDD_CREATESURFACEDATA);
-
-typedef struct _DD_DRVSETCOLORKEYDATA
-{
-       PDD_SURFACE_LOCAL        lpDDSurface;
-       DWORD                    dwFlags;
-       DDCOLORKEY               ckNew;
-       HRESULT                  ddRVal;
-       PVOID                    SetColorKey;
-} DD_DRVSETCOLORKEYDATA, *PDD_DRVSETCOLORKEYDATA;
-typedef DWORD (WINAPI *PDD_SETCOLORKEY)(PDD_DRVSETCOLORKEYDATA);
-
-#define DDWAITVB_I_TESTVB    0x80000006
-
-typedef struct _DD_WAITFORVERTICALBLANKDATA
-{
-       PDD_DIRECTDRAW_GLOBAL    lpDD;
-       DWORD                    dwFlags;
-       DWORD                    bIsInVB;
-       DWORD                    hEvent;
-       HRESULT                  ddRVal;
-       PVOID                    WaitForVerticalBlank;
-} DD_WAITFORVERTICALBLANKDATA, *PDD_WAITFORVERTICALBLANKDATA;
-typedef DWORD (WINAPI *PDD_WAITFORVERTICALBLANK)(PDD_WAITFORVERTICALBLANKDATA);
-
-typedef struct _DD_CANCREATESURFACEDATA
-{
-       PDD_DIRECTDRAW_GLOBAL    lpDD;
-       DDSURFACEDESC           *lpDDSurfaceDesc;
-       DWORD                    bIsDifferentPixelFormat;
-       HRESULT                  ddRVal;
-       PVOID                    CanCreateSurface;
-} DD_CANCREATESURFACEDATA, *PDD_CANCREATESURFACEDATA;
-typedef DWORD (WINAPI *PDD_CANCREATESURFACE)(PDD_CANCREATESURFACEDATA);
-
-typedef struct _DD_CREATEPALETTEDATA
-{
-       PDD_DIRECTDRAW_GLOBAL    lpDD;
-       PDD_PALETTE_GLOBAL       lpDDPalette;
-       LPPALETTEENTRY           lpColorTable;
-       HRESULT                  ddRVal;
-       PVOID                    CreatePalette;
-       BOOL                     is_excl;
-} DD_CREATEPALETTEDATA, *PDD_CREATEPALETTEDATA;
-typedef DWORD (WINAPI *PDD_CREATEPALETTE)(PDD_CREATEPALETTEDATA);
-
-typedef struct _DD_GETSCANLINEDATA
-{
-       PDD_DIRECTDRAW_GLOBAL    lpDD;
-       DWORD                    dwScanLine;
-       HRESULT                  ddRVal;
-       PVOID                    GetScanLine;
-} DD_GETSCANLINEDATA, *PDD_GETSCANLINEDATA;
-typedef DWORD (WINAPI *PDD_GETSCANLINE)(PDD_GETSCANLINEDATA);
-
-typedef struct _DD_MAPMEMORYDATA
-{
-       PDD_DIRECTDRAW_GLOBAL    lpDD;
-       BOOL                     bMap;
-       HANDLE                   hProcess;
-       FLATPTR                  fpProcess;
-       HRESULT                  ddRVal;
-} DD_MAPMEMORYDATA, *PDD_MAPMEMORYDATA;
-typedef DWORD (WINAPI *PDD_MAPMEMORY)(PDD_MAPMEMORYDATA);
-
-
-
-
-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;
-    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;
-
-
-
-#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;
-       DWORD                    dwTotal;
-       DWORD                    dwFree;
-       HRESULT                  ddRVal;
-       PVOID                    GetAvailDriverMemory;
-} DD_GETAVAILDRIVERMEMORYDATA, *PDD_GETAVAILDRIVERMEMORYDATA;
-typedef DWORD (WINAPI *PDD_GETAVAILDRIVERMEMORY)(PDD_GETAVAILDRIVERMEMORYDATA);
-
-typedef struct _DD_MISCELLANEOUSCALLBACKS
-{
-       DWORD                    dwSize;
-       DWORD                    dwFlags;
-       PDD_GETAVAILDRIVERMEMORY GetAvailDriverMemory;
-} DD_MISCELLANEOUSCALLBACKS, *PDD_MISCELLANEOUSCALLBACKS;
-
-#define DDHAL_MISCCB32_GETAVAILDRIVERMEMORY 0x00000001
-
-typedef DWORD (WINAPI *PDD_ALPHABLT)(PDD_BLTDATA);
-
-typedef struct _DD_CREATESURFACEEXDATA
-{
-       DWORD                     dwFlags;
-       PDD_DIRECTDRAW_LOCAL      lpDDLcl;
-       PDD_SURFACE_LOCAL         lpDDSLcl;
-       HRESULT                   ddRVal;
-} DD_CREATESURFACEEXDATA, *PDD_CREATESURFACEEXDATA;
-typedef DWORD (WINAPI *PDD_CREATESURFACEEX)(PDD_CREATESURFACEEXDATA);
-
-typedef struct _DD_GETDRIVERSTATEDATA
-{
-       DWORD                     dwFlags;
-       __GNU_EXTENSION union
-       {
-               PDD_DIRECTDRAW_GLOBAL lpDD;
-               DWORD_PTR             dwhContext;
-       };
-       LPDWORD                   lpdwStates;
-       DWORD                     dwLength;
-       HRESULT                   ddRVal;
-} DD_GETDRIVERSTATEDATA, *PDD_GETDRIVERSTATEDATA;
-typedef DWORD (WINAPI *PDD_GETDRIVERSTATE)(PDD_GETDRIVERSTATEDATA);
-
-typedef struct _DD_DESTROYDDLOCALDATA
-{
-       DWORD                     dwFlags;
-       PDD_DIRECTDRAW_LOCAL      pDDLcl;
-       HRESULT                   ddRVal;
-} DD_DESTROYDDLOCALDATA, *PDD_DESTROYDDLOCALDATA;
-typedef DWORD (WINAPI *PDD_DESTROYDDLOCAL)(PDD_DESTROYDDLOCALDATA);
-
-
-
-typedef struct _DD_MISCELLANEOUS2CALLBACKS
-{
-       DWORD                     dwSize;
-       DWORD                     dwFlags;
-       PDD_ALPHABLT              AlphaBlt;
-       PDD_CREATESURFACEEX       CreateSurfaceEx;
-       PDD_GETDRIVERSTATE        GetDriverState;
-       PDD_DESTROYDDLOCAL        DestroyDDLocal;
-} DD_MISCELLANEOUS2CALLBACKS, *PDD_MISCELLANEOUS2CALLBACKS;
-
-
-#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;
-       HRESULT               ddRVal;
-       PVOID                 FreeDriverMemory;
-} DD_FREEDRIVERMEMORYDATA, *PDD_FREEDRIVERMEMORYDATA;
-typedef DWORD (WINAPI *PDD_FREEDRIVERMEMORY)(PDD_FREEDRIVERMEMORYDATA);
-
-typedef struct _DD_SETEXCLUSIVEMODEDATA
-{
-       PDD_DIRECTDRAW_GLOBAL lpDD;
-       DWORD                 dwEnterExcl;
-       DWORD                 dwReserved;
-       HRESULT               ddRVal;
-       PVOID                 SetExclusiveMode;
-} DD_SETEXCLUSIVEMODEDATA, *PDD_SETEXCLUSIVEMODEDATA;
-typedef DWORD (WINAPI *PDD_SETEXCLUSIVEMODE)(PDD_SETEXCLUSIVEMODEDATA);
-
-typedef struct _DD_FLIPTOGDISURFACEDATA
-{
-       PDD_DIRECTDRAW_GLOBAL lpDD;
-       DWORD                 dwToGDI;
-       DWORD                 dwReserved;
-       HRESULT               ddRVal;
-       PVOID                 FlipToGDISurface;
-} DD_FLIPTOGDISURFACEDATA, *PDD_FLIPTOGDISURFACEDATA;
-typedef DWORD (WINAPI *PDD_FLIPTOGDISURFACE)(PDD_FLIPTOGDISURFACEDATA);
-
-
-
-typedef struct _DD_NTCALLBACKS
-{
-       DWORD                 dwSize;
-       DWORD                 dwFlags;
-       PDD_FREEDRIVERMEMORY  FreeDriverMemory;
-       PDD_SETEXCLUSIVEMODE  SetExclusiveMode;
-       PDD_FLIPTOGDISURFACE  FlipToGDISurface;
-} DD_NTCALLBACKS, *PDD_NTCALLBACKS;
-
-
-#define DDHAL_NTCB32_FREEDRIVERMEMORY 0x00000001
-#define DDHAL_NTCB32_SETEXCLUSIVEMODE 0x00000002
-#define DDHAL_NTCB32_FLIPTOGDISURFACE 0x00000004
-
-/************************************************************************/
-/* IDirectDrawPalette callbacks                                         */
-/************************************************************************/
-
-typedef struct _DD_DESTROYPALETTEDATA
-{
-       PDD_DIRECTDRAW_GLOBAL    lpDD;
-       PDD_PALETTE_GLOBAL       lpDDPalette;
-       HRESULT                  ddRVal;
-       PVOID                    DestroyPalette;
-} DD_DESTROYPALETTEDATA, *PDD_DESTROYPALETTEDATA;
-typedef DWORD (WINAPI *PDD_PALCB_DESTROYPALETTE)(PDD_DESTROYPALETTEDATA);
-
-typedef struct _DD_SETENTRIESDATA
-{
-       PDD_DIRECTDRAW_GLOBAL    lpDD;
-       PDD_PALETTE_GLOBAL       lpDDPalette;
-       DWORD                    dwBase;
-       DWORD                    dwNumEntries;
-       LPPALETTEENTRY           lpEntries;
-       HRESULT                  ddRVal;
-       PVOID                    SetEntries;
-} DD_SETENTRIESDATA, *PDD_SETENTRIESDATA;
-typedef DWORD (WINAPI *PDD_PALCB_SETENTRIES)(PDD_SETENTRIESDATA);
-
-typedef struct DD_PALETTECALLBACKS
-{
-       DWORD                    dwSize;
-       DWORD                    dwFlags;
-       PDD_PALCB_DESTROYPALETTE DestroyPalette;
-       PDD_PALCB_SETENTRIES     SetEntries;
-} DD_PALETTECALLBACKS, *PDD_PALETTECALLBACKS;
-
-#define DDHAL_PALCB32_DESTROYPALETTE    0x00000001l
-#define DDHAL_PALCB32_SETENTRIES    0x00000002l
-
-/************************************************************************/
-/* IDirectDrawVideoport callbacks                                       */
-/************************************************************************/
-
-typedef struct _DD_CANCREATEVPORTDATA
-{
-       PDD_DIRECTDRAW_LOCAL           lpDD;
-       LPDDVIDEOPORTDESC              lpDDVideoPortDesc;
-       HRESULT                        ddRVal;
-       PVOID                          CanCreateVideoPort;
-} DD_CANCREATEVPORTDATA, *PDD_CANCREATEVPORTDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_CANCREATEVIDEOPORT)(PDD_CANCREATEVPORTDATA);
-
-typedef struct _DD_CREATEVPORTDATA
-{
-       PDD_DIRECTDRAW_LOCAL           lpDD;
-       LPDDVIDEOPORTDESC              lpDDVideoPortDesc;
-       PDD_VIDEOPORT_LOCAL            lpVideoPort;
-       HRESULT                        ddRVal;
-       PVOID                          CreateVideoPort;
-} DD_CREATEVPORTDATA, *PDD_CREATEVPORTDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_CREATEVIDEOPORT)(PDD_CREATEVPORTDATA);
-
-typedef struct _DD_FLIPVPORTDATA
-{
-       PDD_DIRECTDRAW_LOCAL           lpDD;
-       PDD_VIDEOPORT_LOCAL            lpVideoPort;
-       PDD_SURFACE_LOCAL              lpSurfCurr;
-       PDD_SURFACE_LOCAL              lpSurfTarg;
-       HRESULT                        ddRVal;
-       PVOID                          FlipVideoPort;
-} DD_FLIPVPORTDATA, *PDD_FLIPVPORTDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_FLIP)(PDD_FLIPVPORTDATA);
-
-typedef struct _DD_GETVPORTBANDWIDTHDATA
-{
-       PDD_DIRECTDRAW_LOCAL           lpDD;
-       PDD_VIDEOPORT_LOCAL            lpVideoPort;
-       LPDDPIXELFORMAT                lpddpfFormat;
-       DWORD                          dwWidth;
-       DWORD                          dwHeight;
-       DWORD                          dwFlags;
-       LPDDVIDEOPORTBANDWIDTH         lpBandwidth;
-       HRESULT                        ddRVal;
-       PVOID                          GetVideoPortBandwidth;
-} DD_GETVPORTBANDWIDTHDATA, *PDD_GETVPORTBANDWIDTHDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_GETBANDWIDTH)(PDD_GETVPORTBANDWIDTHDATA);
-
-typedef struct _DD_GETVPORTINPUTFORMATDATA
-{
-       PDD_DIRECTDRAW_LOCAL           lpDD;
-       PDD_VIDEOPORT_LOCAL            lpVideoPort;
-       DWORD                          dwFlags;
-       LPDDPIXELFORMAT                lpddpfFormat;
-       DWORD                          dwNumFormats;
-       HRESULT                        ddRVal;
-       PVOID                          GetVideoPortInputFormats;
-} DD_GETVPORTINPUTFORMATDATA, *PDD_GETVPORTINPUTFORMATDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_GETINPUTFORMATS)(PDD_GETVPORTINPUTFORMATDATA);
-
-typedef struct _DD_GETVPORTOUTPUTFORMATDATA
-{
-       PDD_DIRECTDRAW_LOCAL           lpDD;
-       PDD_VIDEOPORT_LOCAL            lpVideoPort;
-       DWORD                          dwFlags;
-       LPDDPIXELFORMAT                lpddpfInputFormat;
-       LPDDPIXELFORMAT                lpddpfOutputFormats;
-       DWORD                          dwNumFormats;
-       HRESULT                        ddRVal;
-       PVOID                          GetVideoPortInputFormats;
-} DD_GETVPORTOUTPUTFORMATDATA, *PDD_GETVPORTOUTPUTFORMATDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_GETOUTPUTFORMATS)(PDD_GETVPORTOUTPUTFORMATDATA);
-
-typedef struct _DD_GETVPORTFIELDDATA
-{
-       PDD_DIRECTDRAW_LOCAL           lpDD;
-       PDD_VIDEOPORT_LOCAL            lpVideoPort;
-       BOOL                           bField;
-       HRESULT                        ddRVal;
-       PVOID                          GetVideoPortField;
-} DD_GETVPORTFIELDDATA, *PDD_GETVPORTFIELDDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_GETFIELD)(PDD_GETVPORTFIELDDATA);
-
-typedef struct _DD_GETVPORTLINEDATA
-{
-       PDD_DIRECTDRAW_LOCAL           lpDD;
-       PDD_VIDEOPORT_LOCAL            lpVideoPort;
-       DWORD                          dwLine;
-       HRESULT                        ddRVal;
-       PVOID                          GetVideoPortLine;
-} DD_GETVPORTLINEDATA, *PDD_GETVPORTLINEDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_GETLINE)(PDD_GETVPORTLINEDATA);
-
-typedef struct _DD_GETVPORTCONNECTDATA
-{
-       PDD_DIRECTDRAW_LOCAL           lpDD;
-       DWORD                          dwPortId;
-       LPDDVIDEOPORTCONNECT           lpConnect;
-       DWORD                          dwNumEntries;
-       HRESULT                        ddRVal;
-       PVOID                          GetVideoPortConnectInfo;
-} DD_GETVPORTCONNECTDATA, *PDD_GETVPORTCONNECTDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_GETVPORTCONNECT)(PDD_GETVPORTCONNECTDATA);
-
-typedef struct _DD_DESTROYVPORTDATA
-{
-       PDD_DIRECTDRAW_LOCAL           lpDD;
-       PDD_VIDEOPORT_LOCAL            lpVideoPort;
-       HRESULT                        ddRVal;
-       PVOID                          DestroyVideoPort;
-} DD_DESTROYVPORTDATA, *PDD_DESTROYVPORTDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_DESTROYVPORT)(PDD_DESTROYVPORTDATA);
-
-typedef struct _DD_GETVPORTFLIPSTATUSDATA
-{
-       PDD_DIRECTDRAW_LOCAL           lpDD;
-       FLATPTR                        fpSurface;
-       HRESULT                        ddRVal;
-       PVOID                          GetVideoPortFlipStatus;
-} DD_GETVPORTFLIPSTATUSDATA, *PDD_GETVPORTFLIPSTATUSDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_GETFLIPSTATUS)(PDD_GETVPORTFLIPSTATUSDATA);
-
-
-
-typedef struct _DD_UPDATEVPORTDATA
-{
-       PDD_DIRECTDRAW_LOCAL           lpDD;
-       PDD_VIDEOPORT_LOCAL            lpVideoPort;
-       PDD_SURFACE_INT               *lplpDDSurface;
-       PDD_SURFACE_INT               *lplpDDVBISurface;
-       LPDDVIDEOPORTINFO              lpVideoInfo;
-       DWORD                          dwFlags;
-       DWORD                          dwNumAutoflip;
-       DWORD                          dwNumVBIAutoflip;
-       HRESULT                        ddRVal;
-       PVOID                          UpdateVideoPort;
-} DD_UPDATEVPORTDATA, *PDD_UPDATEVPORTDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_UPDATE)(PDD_UPDATEVPORTDATA);
-
-typedef struct _DD_WAITFORVPORTSYNCDATA
-{
-       PDD_DIRECTDRAW_LOCAL           lpDD;
-       PDD_VIDEOPORT_LOCAL            lpVideoPort;
-       DWORD                          dwFlags;
-       DWORD                          dwLine;
-       DWORD                          dwTimeOut;
-       HRESULT                        ddRVal;
-       PVOID                          UpdateVideoPort;
-} DD_WAITFORVPORTSYNCDATA, *PDD_WAITFORVPORTSYNCDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_WAITFORSYNC)(PDD_WAITFORVPORTSYNCDATA);
-
-typedef struct _DD_GETVPORTSIGNALDATA
-{
-       PDD_DIRECTDRAW_LOCAL           lpDD;
-       PDD_VIDEOPORT_LOCAL            lpVideoPort;
-       DWORD                          dwStatus;
-       HRESULT                        ddRVal;
-       PVOID                          GetVideoSignalStatus;
-} DD_GETVPORTSIGNALDATA, *PDD_GETVPORTSIGNALDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_GETSIGNALSTATUS)(PDD_GETVPORTSIGNALDATA);
-
-
-
-typedef struct _DD_VPORTCOLORDATA
-{
-       PDD_DIRECTDRAW_LOCAL           lpDD;
-       PDD_VIDEOPORT_LOCAL            lpVideoPort;
-       DWORD                          dwFlags;
-       LPDDCOLORCONTROL               lpColorData;
-       HRESULT                        ddRVal;
-       PVOID                          ColorControl;
-} DD_VPORTCOLORDATA, *PDD_VPORTCOLORDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_COLORCONTROL)(PDD_VPORTCOLORDATA);
-
-
-typedef struct DD_VIDEOPORTCALLBACKS
-{
-       DWORD                          dwSize;
-       DWORD                          dwFlags;
-       PDD_VPORTCB_CANCREATEVIDEOPORT CanCreateVideoPort;
-       PDD_VPORTCB_CREATEVIDEOPORT    CreateVideoPort;
-       PDD_VPORTCB_FLIP               FlipVideoPort;
-       PDD_VPORTCB_GETBANDWIDTH       GetVideoPortBandwidth;
-       PDD_VPORTCB_GETINPUTFORMATS    GetVideoPortInputFormats;
-       PDD_VPORTCB_GETOUTPUTFORMATS   GetVideoPortOutputFormats;
-       PVOID                          lpReserved1;
-       PDD_VPORTCB_GETFIELD           GetVideoPortField;
-       PDD_VPORTCB_GETLINE            GetVideoPortLine;
-       PDD_VPORTCB_GETVPORTCONNECT    GetVideoPortConnectInfo;
-       PDD_VPORTCB_DESTROYVPORT       DestroyVideoPort;
-       PDD_VPORTCB_GETFLIPSTATUS      GetVideoPortFlipStatus;
-       PDD_VPORTCB_UPDATE             UpdateVideoPort;
-       PDD_VPORTCB_WAITFORSYNC        WaitForVideoPortSync;
-       PDD_VPORTCB_GETSIGNALSTATUS    GetVideoSignalStatus;
-       PDD_VPORTCB_COLORCONTROL       ColorControl;
-} DD_VIDEOPORTCALLBACKS, *PDD_VIDEOPORTCALLBACKS;
-
-#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      0x0001
-#define DDRAWI_SETCOLOR      0x0002
-
-typedef struct _DD_COLORCONTROLDATA
-{
-       PDD_DIRECTDRAW_GLOBAL    lpDD;
-       PDD_SURFACE_LOCAL        lpDDSurface;
-       LPDDCOLORCONTROL         lpColorData;
-       DWORD                    dwFlags;
-       HRESULT                  ddRVal;
-       PVOID                    ColorControl;
-} DD_COLORCONTROLDATA, *PDD_COLORCONTROLDATA;
-typedef DWORD (WINAPI *PDD_COLORCB_COLORCONTROL)(PDD_COLORCONTROLDATA);
-
-
-
-typedef struct _DD_COLORCONTROLCALLBACKS
-{
-       DWORD                    dwSize;
-       DWORD                    dwFlags;
-       PDD_COLORCB_COLORCONTROL ColorControl;
-} DD_COLORCONTROLCALLBACKS, *PDD_COLORCONTROLCALLBACKS;
-
-#define DDHAL_COLOR_COLORCONTROL            0x00000001
-
-/************************************************************************/
-/* IDirectDrawVideo callbacks                                           */
-/************************************************************************/
-
-typedef struct _DD_GETMOCOMPGUIDSDATA
-{
-       PDD_DIRECTDRAW_LOCAL         lpDD;
-       DWORD                        dwNumGuids;
-       GUID                        *lpGuids;
-       HRESULT                      ddRVal;
-} DD_GETMOCOMPGUIDSDATA, *PDD_GETMOCOMPGUIDSDATA;
-typedef DWORD (WINAPI *PDD_MOCOMPCB_GETGUIDS)(PDD_GETMOCOMPGUIDSDATA);
-
-typedef struct _DD_GETMOCOMPFORMATSDATA
-{
-       PDD_DIRECTDRAW_LOCAL         lpDD;
-       GUID                        *lpGuid;
-       DWORD                        dwNumFormats;
-       LPDDPIXELFORMAT              lpFormats;
-       HRESULT                      ddRVal;
-} DD_GETMOCOMPFORMATSDATA, *PDD_GETMOCOMPFORMATSDATA;
-typedef DWORD (WINAPI *PDD_MOCOMPCB_GETFORMATS)(PDD_GETMOCOMPFORMATSDATA);
-
-typedef struct _DD_CREATEMOCOMPDATA
-{
-       PDD_DIRECTDRAW_LOCAL         lpDD;
-       PDD_MOTIONCOMP_LOCAL         lpMoComp;
-       GUID                        *lpGuid;
-       DWORD                        dwUncompWidth;
-       DWORD                        dwUncompHeight;
-       DDPIXELFORMAT                ddUncompPixelFormat;
-       LPVOID                       lpData;
-       DWORD                        dwDataSize;
-       HRESULT                      ddRVal;
-} DD_CREATEMOCOMPDATA, *PDD_CREATEMOCOMPDATA;
-typedef DWORD (WINAPI *PDD_MOCOMPCB_CREATE)(PDD_CREATEMOCOMPDATA);
-
-typedef struct _DDCOMPBUFFERINFO
-{
-       DWORD                        dwSize;
-       DWORD                        dwNumCompBuffers;
-       DWORD                        dwWidthToCreate;
-       DWORD                        dwHeightToCreate;
-       DWORD                        dwBytesToAllocate;
-       DDSCAPS2                     ddCompCaps;
-       DDPIXELFORMAT                ddPixelFormat;
-} DDCOMPBUFFERINFO, *LPDDCOMPBUFFERINFO;
-
-typedef struct _DD_GETMOCOMPCOMPBUFFDATA
-{
-       PDD_DIRECTDRAW_LOCAL         lpDD;
-       GUID                        *lpGuid;
-       DWORD                        dwWidth;
-       DWORD                        dwHeight;
-       DDPIXELFORMAT                ddPixelFormat;
-       DWORD                        dwNumTypesCompBuffs;
-       LPDDCOMPBUFFERINFO            lpCompBuffInfo;
-       HRESULT                      ddRVal;
-} DD_GETMOCOMPCOMPBUFFDATA, *PDD_GETMOCOMPCOMPBUFFDATA;
-typedef DWORD (WINAPI *PDD_MOCOMPCB_GETCOMPBUFFINFO)(PDD_GETMOCOMPCOMPBUFFDATA);
-
-typedef struct _DD_GETINTERNALMOCOMPDATA
-{
-       PDD_DIRECTDRAW_LOCAL         lpDD;
-       GUID                        *lpGuid;
-       DWORD                        dwWidth;
-       DWORD                        dwHeight;
-       DDPIXELFORMAT                ddPixelFormat;
-       DWORD                        dwScratchMemAlloc;
-       HRESULT                      ddRVal;
-} DD_GETINTERNALMOCOMPDATA, *PDD_GETINTERNALMOCOMPDATA;
-typedef DWORD (WINAPI *PDD_MOCOMPCB_GETINTERNALINFO)(PDD_GETINTERNALMOCOMPDATA);
-
-typedef struct _DD_BEGINMOCOMPFRAMEDATA
-{
-       PDD_DIRECTDRAW_LOCAL         lpDD;
-       PDD_MOTIONCOMP_LOCAL         lpMoComp;
-       PDD_SURFACE_LOCAL            lpDestSurface;
-       DWORD                        dwInputDataSize;
-       LPVOID                       lpInputData;
-       DWORD                        dwOutputDataSize;
-       LPVOID                       lpOutputData;
-       HRESULT                      ddRVal;
-} DD_BEGINMOCOMPFRAMEDATA, *PDD_BEGINMOCOMPFRAMEDATA;
-typedef DWORD (WINAPI *PDD_MOCOMPCB_BEGINFRAME)(PDD_BEGINMOCOMPFRAMEDATA);
-
-typedef struct _DD_ENDMOCOMPFRAMEDATA
-{
-       PDD_DIRECTDRAW_LOCAL         lpDD;
-       PDD_MOTIONCOMP_LOCAL         lpMoComp;
-       LPVOID                       lpInputData;
-       DWORD                        dwInputDataSize;
-       HRESULT                      ddRVal;
-} DD_ENDMOCOMPFRAMEDATA, *PDD_ENDMOCOMPFRAMEDATA;
-typedef DWORD (WINAPI *PDD_MOCOMPCB_ENDFRAME)(PDD_ENDMOCOMPFRAMEDATA);
-
-typedef struct _DDMOCOMPBUFFERINFO
-{
-       DWORD                        dwSize;
-       PDD_SURFACE_LOCAL            lpCompSurface;
-       DWORD                        dwDataOffset;
-       DWORD                        dwDataSize;
-       LPVOID                       lpPrivate;
-} DDMOCOMPBUFFERINFO, *LPDDMOCOMPBUFFERINFO;
-
-typedef struct _DD_RENDERMOCOMPDATA
-{
-       PDD_DIRECTDRAW_LOCAL         lpDD;
-       PDD_MOTIONCOMP_LOCAL         lpMoComp;
-       DWORD                        dwNumBuffers;
-       LPDDMOCOMPBUFFERINFO         lpBufferInfo;
-       DWORD                        dwFunction;
-       LPVOID                       lpInputData;
-       DWORD                        dwInputDataSize;
-       LPVOID                       lpOutputData;
-       DWORD                        dwOutputDataSize;
-       HRESULT                      ddRVal;
-} DD_RENDERMOCOMPDATA, *PDD_RENDERMOCOMPDATA;
-typedef DWORD (WINAPI *PDD_MOCOMPCB_RENDER)(PDD_RENDERMOCOMPDATA);
-
-#define DDMCQUERY_READ 0x00000001
-
-typedef struct _DD_QUERYMOCOMPSTATUSDATA
-{
-       PDD_DIRECTDRAW_LOCAL         lpDD;
-       PDD_MOTIONCOMP_LOCAL         lpMoComp;
-       PDD_SURFACE_LOCAL            lpSurface;
-       DWORD                        dwFlags;
-       HRESULT                      ddRVal;
-} DD_QUERYMOCOMPSTATUSDATA, *PDD_QUERYMOCOMPSTATUSDATA;
-typedef DWORD (WINAPI *PDD_MOCOMPCB_QUERYSTATUS)(PDD_QUERYMOCOMPSTATUSDATA);
-
-typedef struct _DD_DESTROYMOCOMPDATA
-{
-       PDD_DIRECTDRAW_LOCAL         lpDD;
-       PDD_MOTIONCOMP_LOCAL         lpMoComp;
-       HRESULT                      ddRVal;
-} DD_DESTROYMOCOMPDATA, *PDD_DESTROYMOCOMPDATA;
-typedef DWORD (WINAPI *PDD_MOCOMPCB_DESTROY)(PDD_DESTROYMOCOMPDATA);
-
-
-
-typedef struct DD_MOTIONCOMPCALLBACKS
-{
-       DWORD                        dwSize;
-       DWORD                        dwFlags;
-       PDD_MOCOMPCB_GETGUIDS        GetMoCompGuids;
-       PDD_MOCOMPCB_GETFORMATS      GetMoCompFormats;
-       PDD_MOCOMPCB_CREATE          CreateMoComp;
-       PDD_MOCOMPCB_GETCOMPBUFFINFO GetMoCompBuffInfo;
-       PDD_MOCOMPCB_GETINTERNALINFO GetInternalMoCompInfo;
-       PDD_MOCOMPCB_BEGINFRAME      BeginMoCompFrame;
-       PDD_MOCOMPCB_ENDFRAME        EndMoCompFrame;
-       PDD_MOCOMPCB_RENDER          RenderMoComp;
-       PDD_MOCOMPCB_QUERYSTATUS     QueryMoCompStatus;
-       PDD_MOCOMPCB_DESTROY         DestroyMoComp;
-} 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 _DD_D3DBUFCALLBACKS
-{
-       DWORD                     dwSize;
-       DWORD                     dwFlags;
-       PDD_CANCREATESURFACE      CanCreateD3DBuffer;
-       PDD_CREATESURFACE         CreateD3DBuffer;
-       PDD_SURFCB_DESTROYSURFACE DestroyD3DBuffer;
-       PDD_SURFCB_LOCK           LockD3DBuffer;
-       PDD_SURFCB_UNLOCK         UnlockD3DBuffer;
-} DD_D3DBUFCALLBACKS, *PDD_D3DBUFCALLBACKS;
-
-/************************************************************************/
-/* DdGetDriverInfo callback                                             */
-/************************************************************************/
-
-typedef struct _DD_GETDRIVERINFODATA
-{
-       // Input:
-       PVOID   dhpdev;
-       DWORD   dwSize;
-       DWORD   dwFlags;
-       GUID    guidInfo;
-       DWORD   dwExpectedSize;
-       PVOID   lpvData;
-       // Output:
-       DWORD   dwActualSize;
-       HRESULT ddRVal;
-} DD_GETDRIVERINFODATA, *PDD_GETDRIVERINFODATA;
-typedef DWORD (WINAPI *PDD_GETDRIVERINFO)(PDD_GETDRIVERINFODATA);
-
-
-
-
-/************************************************************************/
-/* Driver info structures                                               */
-/************************************************************************/
-
-typedef struct _DDNTCORECAPS
-{
-       DWORD   dwSize;
-       DWORD   dwCaps;
-       DWORD   dwCaps2;
-       DWORD   dwCKeyCaps;
-       DWORD   dwFXCaps;
-       DWORD   dwFXAlphaCaps;
-       DWORD   dwPalCaps;
-       DWORD   dwSVCaps;
-       DWORD   dwAlphaBltConstBitDepths;
-       DWORD   dwAlphaBltPixelBitDepths;
-       DWORD   dwAlphaBltSurfaceBitDepths;
-       DWORD   dwAlphaOverlayConstBitDepths;
-       DWORD   dwAlphaOverlayPixelBitDepths;
-       DWORD   dwAlphaOverlaySurfaceBitDepths;
-       DWORD   dwZBufferBitDepths;
-       DWORD   dwVidMemTotal;
-       DWORD   dwVidMemFree;
-       DWORD   dwMaxVisibleOverlays;
-       DWORD   dwCurrVisibleOverlays;
-       DWORD   dwNumFourCCCodes;
-       DWORD   dwAlignBoundarySrc;
-       DWORD   dwAlignSizeSrc;
-       DWORD   dwAlignBoundaryDest;
-       DWORD   dwAlignSizeDest;
-       DWORD   dwAlignStrideAlign;
-       DWORD   dwRops[DD_ROP_SPACE];
-       DDSCAPS ddsCaps;
-       DWORD   dwMinOverlayStretch;
-       DWORD   dwMaxOverlayStretch;
-       DWORD   dwMinLiveVideoStretch;
-       DWORD   dwMaxLiveVideoStretch;
-       DWORD   dwMinHwCodecStretch;
-       DWORD   dwMaxHwCodecStretch;
-       DWORD   dwReserved1;
-       DWORD   dwReserved2;
-       DWORD   dwReserved3;
-       DWORD   dwSVBCaps;
-       DWORD   dwSVBCKeyCaps;
-       DWORD   dwSVBFXCaps;
-       DWORD   dwSVBRops[DD_ROP_SPACE];
-       DWORD   dwVSBCaps;
-       DWORD   dwVSBCKeyCaps;
-       DWORD   dwVSBFXCaps;
-       DWORD   dwVSBRops[DD_ROP_SPACE];
-       DWORD   dwSSBCaps;
-       DWORD   dwSSBCKeyCaps;
-       DWORD   dwSSBFXCaps;
-       DWORD   dwSSBRops[DD_ROP_SPACE];
-       DWORD   dwMaxVideoPorts;
-       DWORD   dwCurrVideoPorts;
-       DWORD   dwSVBCaps2;
-} DDNTCORECAPS, *PDDNTCORECAPS;
-
-
-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;
-       DDNTCORECAPS        ddCaps;
-       PDD_GETDRIVERINFO   GetDriverInfo;
-       DWORD               dwFlags;
-       PVOID               lpD3DGlobalDriverData;
-       PVOID               lpD3DHALCallbacks;
-       PDD_D3DBUFCALLBACKS lpD3DBufCallbacks;
-} DD_HALINFO, *PDD_HALINFO;
-
-
-
-typedef struct _DD_NONLOCALVIDMEMCAPS
-{
-       DWORD dwSize;
-       DWORD dwNLVBCaps;
-       DWORD dwNLVBCaps2;
-       DWORD dwNLVBCKeyCaps;
-       DWORD dwNLVBFXCaps;
-       DWORD dwNLVBRops[DD_ROP_SPACE];
-} DD_NONLOCALVIDMEMCAPS, *PDD_NONLOCALVIDMEMCAPS;
-
-
-
-typedef struct _DD_MORESURFACECAPS
-{
-       DWORD         dwSize;
-       DDSCAPSEX     ddsCapsMore;
-       struct tagNTExtendedHeapRestrictions
-       {
-               DDSCAPSEX ddsCapsEx;
-               DDSCAPSEX ddsCapsExAlt;
-       } ddsExtendedHeapRestrictions[1];
-} 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 (WINAPI *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 (WINAPI *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__ */
index 1a0826f..0e79d3e 100644 (file)
@@ -367,7 +367,7 @@ typedef HRESULT (*LPDDENUMVIDEOCALLBACK)(LPDDVIDEOPORTCAPS, LPVOID);
 #endif
 
 #ifdef __cplusplus
-};
+}
 #endif
 #endif
 #endif
index 0f1877f..d124730 100755 (executable)
@@ -24,7 +24,7 @@ extern "C" {
 #endif
 
 #define H2I(p) PtrToUshort(p)
-    
+
 #ifndef NO_PORT_MACROS
 
 #if defined(_X86_) || defined(_M_AMD64)
@@ -41,7 +41,7 @@ extern "C" {
 #define WRITE_PORT_USHORT(p, v) __outword (H2I(p), (v))
 #define WRITE_PORT_ULONG(p, v) __outdword (H2I(p), (v))
 
-#define MEMORY_BARRIER()    
+#define MEMORY_BARRIER()
 
 #elif defined(_PPC_) || defined(_MIPS_) || defined(_ARM_)
 
@@ -59,10 +59,15 @@ extern "C" {
 #define WRITE_PORT_ULONG(p, v)      WRITE_REGISTER_ULONG(p, (ULONG) (v))
 
 #else
-    
+
 #error Unsupported architecture
 
 #endif
 
 #endif /* NO_PORT_MACROS */
+
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __IOACCESS_H */
diff --git a/reactos/include/psdk/d3dnthal.h b/reactos/include/psdk/d3dnthal.h
new file mode 100644 (file)
index 0000000..8f3f3d7
--- /dev/null
@@ -0,0 +1,234 @@
+/* 
+ * Direct3D NT driver interface
+ */
+
+#ifndef __DDK_D3DNTHAL_H
+#define __DDK_D3DNTHAL_H
+
+#include <ddrawint.h>
+#include <d3dtypes.h>
+#include <d3dcaps.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+DEFINE_GUID(GUID_D3DCallbacks,                   0x7BF06990, 0x8794, 0x11D0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xD2, 0xEF, 0x02);
+DEFINE_GUID(GUID_D3DCallbacks3,                  0xDDF41230, 0xEC0A, 0x11D0, 0xA9, 0xB6, 0x00, 0xAA, 0x00, 0xC0, 0x99, 0x3E);
+DEFINE_GUID(GUID_D3DExtendedCaps,                0x7DE41F80, 0x9D93, 0x11D0, 0x89, 0xAB, 0x00, 0xA0, 0xC9, 0x05, 0x41, 0x29);
+DEFINE_GUID(GUID_D3DParseUnknownCommandCallback, 0x2E04FFA0, 0x98E4, 0x11D1, 0x8C, 0xE1, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0xA8);
+DEFINE_GUID(GUID_ZPixelFormats,                  0x93869880, 0x36CF, 0x11D1, 0x9B, 0x1B, 0x00, 0xAA, 0x00, 0xBB, 0xB8, 0xAE);
+DEFINE_GUID(GUID_DDStereoMode,                   0xF828169C, 0xA8E8, 0x11D2, 0xA1, 0xF2, 0x00, 0xA0, 0xC9, 0x83, 0xEA, 0xF6);
+
+typedef struct _D3DNTHAL_CONTEXTCREATEDATA {
+  __GNU_EXTENSION union {
+    PDD_DIRECTDRAW_GLOBAL lpDDGbl;
+    PDD_DIRECTDRAW_LOCAL lpDDLcl;
+  };
+  __GNU_EXTENSION union {
+    PDD_SURFACE_LOCAL lpDDS;
+    PDD_SURFACE_LOCAL lpDDSLcl;
+  };
+  __GNU_EXTENSION union {
+    PDD_SURFACE_LOCAL lpDDSZ;
+    PDD_SURFACE_LOCAL lpDDSZLcl;
+  };
+  DWORD dwPID;
+  ULONG_PTR dwhContext;
+  HRESULT ddrval;
+} D3DNTHAL_CONTEXTCREATEDATA, *LPD3DNTHAL_CONTEXTCREATEDATA;
+
+typedef struct _D3DNTHAL_CONTEXTDESTROYDATA {
+  ULONG_PTR dwhContext;
+  HRESULT ddrval;
+} D3DNTHAL_CONTEXTDESTROYDATA, *LPD3DNTHAL_CONTEXTDESTROYDATA;
+
+typedef struct _D3DNTHAL_CONTEXTDESTROYALLDATA {
+  DWORD dwPID;
+  HRESULT ddrval;
+} D3DNTHAL_CONTEXTDESTROYALLDATA, *LPD3DNTHAL_CONTEXTDESTROYALLDATA;
+
+typedef struct _D3DNTHAL_SCENECAPTUREDATA {
+  ULONG_PTR dwhContext;
+  DWORD dwFlag;
+  HRESULT ddrval;
+} D3DNTHAL_SCENECAPTUREDATA, *LPD3DNTHAL_SCENECAPTUREDATA;
+
+typedef struct _D3DNTHAL_TEXTURECREATEDATA {
+  ULONG_PTR dwhContext;
+  HANDLE hDDS;
+  ULONG_PTR dwHandle;
+  HRESULT ddrval;
+} D3DNTHAL_TEXTURECREATEDATA, *LPD3DNTHAL_TEXTURECREATEDATA;
+
+typedef struct _D3DNTHAL_TEXTUREDESTROYDATA {
+  ULONG_PTR dwhContext;
+  ULONG_PTR dwHandle;
+  HRESULT ddrval;
+} D3DNTHAL_TEXTUREDESTROYDATA, *LPD3DNTHAL_TEXTUREDESTROYDATA;
+
+typedef struct _D3DNTHAL_TEXTURESWAPDATA {
+  ULONG_PTR dwhContext;
+  ULONG_PTR dwHandle1;
+  ULONG_PTR dwHandle2;
+  HRESULT ddrval;
+} D3DNTHAL_TEXTURESWAPDATA, *LPD3DNTHAL_TEXTURESWAPDATA;
+
+typedef struct _D3DNTHAL_TEXTUREGETSURFDATA {
+  ULONG_PTR dwhContext;
+  HANDLE hDDS;
+  ULONG_PTR dwHandle;
+  HRESULT ddrval;
+} D3DNTHAL_TEXTUREGETSURFDATA, *LPD3DNTHAL_TEXTUREGETSURFDATA;
+
+typedef DWORD (APIENTRY *LPD3DNTHAL_CONTEXTCREATECB)(LPD3DNTHAL_CONTEXTCREATEDATA);
+typedef DWORD (APIENTRY *LPD3DNTHAL_CONTEXTDESTROYCB)(LPD3DNTHAL_CONTEXTDESTROYDATA);
+typedef DWORD (APIENTRY *LPD3DNTHAL_CONTEXTDESTROYALLCB)(LPD3DNTHAL_CONTEXTDESTROYALLDATA);
+typedef DWORD (APIENTRY *LPD3DNTHAL_SCENECAPTURECB)(LPD3DNTHAL_SCENECAPTUREDATA);
+typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTURECREATECB)(LPD3DNTHAL_TEXTURECREATEDATA);
+typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTUREDESTROYCB)(LPD3DNTHAL_TEXTUREDESTROYDATA);
+typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTURESWAPCB)(LPD3DNTHAL_TEXTURESWAPDATA);
+typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTUREGETSURFCB)(LPD3DNTHAL_TEXTUREGETSURFDATA);
+
+typedef struct _D3DNTHALDeviceDesc_V1 {
+  DWORD dwSize;
+  DWORD dwFlags;
+  D3DCOLORMODEL dcmColorModel;
+  DWORD dwDevCaps;
+  D3DTRANSFORMCAPS dtcTransformCaps;
+  BOOL bClipping;
+  D3DLIGHTINGCAPS dlcLightingCaps;
+  D3DPRIMCAPS dpcLineCaps;
+  D3DPRIMCAPS dpcTriCaps;
+  DWORD dwDeviceRenderBitDepth;
+  DWORD dwDeviceZBufferBitDepth;
+  DWORD dwMaxBufferSize;
+  DWORD dwMaxVertexCount;
+} D3DNTHALDEVICEDESC_V1, *LPD3DNTHALDEVICEDESC_V1;
+
+typedef struct _D3DNTHAL_GLOBALDRIVERDATA {
+  DWORD dwSize;
+  D3DNTHALDEVICEDESC_V1 hwCaps;
+  DWORD dwNumVertices;
+  DWORD dwNumClipVertices;
+  DWORD dwNumTextureFormats;
+  LPDDSURFACEDESC lpTextureFormats;
+} D3DNTHAL_GLOBALDRIVERDATA, *LPD3DNTHAL_GLOBALDRIVERDATA;
+
+typedef struct _D3DNTHAL_CALLBACKS {
+  DWORD dwSize;
+  LPD3DNTHAL_CONTEXTCREATECB ContextCreate;
+  LPD3DNTHAL_CONTEXTDESTROYCB ContextDestroy;
+  LPD3DNTHAL_CONTEXTDESTROYALLCB ContextDestroyAll;
+  LPD3DNTHAL_SCENECAPTURECB SceneCapture;
+  LPVOID dwReserved10;
+  LPVOID dwReserved11;
+  LPVOID dwReserved22;
+  LPVOID dwReserved23;
+  ULONG_PTR dwReserved;
+  LPD3DNTHAL_TEXTURECREATECB TextureCreate;
+  LPD3DNTHAL_TEXTUREDESTROYCB TextureDestroy;
+  LPD3DNTHAL_TEXTURESWAPCB TextureSwap;
+  LPD3DNTHAL_TEXTUREGETSURFCB TextureGetSurf;
+  LPVOID dwReserved12;
+  LPVOID dwReserved13;
+  LPVOID dwReserved14;
+  LPVOID dwReserved15;
+  LPVOID dwReserved16;
+  LPVOID dwReserved17;
+  LPVOID dwReserved18;
+  LPVOID dwReserved19;
+  LPVOID dwReserved20;
+  LPVOID dwReserved21;
+  LPVOID dwReserved24;
+  ULONG_PTR dwReserved0;
+  ULONG_PTR dwReserved1;
+  ULONG_PTR dwReserved2;
+  ULONG_PTR dwReserved3;
+  ULONG_PTR dwReserved4;
+  ULONG_PTR dwReserved5;
+  ULONG_PTR dwReserved6;
+  ULONG_PTR dwReserved7;
+  ULONG_PTR dwReserved8;
+  ULONG_PTR dwReserved9;
+} D3DNTHAL_CALLBACKS, *LPD3DNTHAL_CALLBACKS;
+
+typedef struct _D3DNTHAL_SETRENDERTARGETDATA {
+  ULONG_PTR dwhContext;
+  PDD_SURFACE_LOCAL lpDDS;
+  PDD_SURFACE_LOCAL lpDDSZ;
+  HRESULT ddrval;
+} D3DNTHAL_SETRENDERTARGETDATA, *LPD3DNTHAL_SETRENDERTARGETDATA;
+
+typedef DWORD (APIENTRY *LPD3DNTHAL_SETRENDERTARGETCB)(LPD3DNTHAL_SETRENDERTARGETDATA);
+
+typedef struct _D3DNTHAL_CALLBACKS2 {
+  DWORD dwSize;
+  DWORD dwFlags;
+  LPD3DNTHAL_SETRENDERTARGETCB SetRenderTarget;
+  LPVOID dwReserved1;
+  LPVOID dwReserved2;
+  LPVOID dwReserved3;
+  LPVOID dwReserved4;
+} D3DNTHAL_CALLBACKS2, *LPD3DNTHAL_CALLBACKS2;
+
+typedef struct _D3DNTHAL_CLEAR2DATA {
+  ULONG_PTR dwhContext;
+  DWORD dwFlags;
+  DWORD dwFillColor;
+  D3DVALUE dvFillDepth;
+  DWORD dwFillStencil;
+  LPD3DRECT lpRects;
+  DWORD dwNumRects;
+  HRESULT ddrval;
+} D3DNTHAL_CLEAR2DATA, FAR *LPD3DNTHAL_CLEAR2DATA;
+
+typedef struct _D3DNTHAL_VALIDATETEXTURESTAGESTATEDATA {
+  ULONG_PTR dwhContext;
+  DWORD dwFlags;
+  ULONG_PTR dwReserved;
+  DWORD dwNumPasses;
+  HRESULT ddrval;
+} D3DNTHAL_VALIDATETEXTURESTAGESTATEDATA, FAR *LPD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA;
+
+typedef struct _D3DNTHAL_DRAWPRIMITIVES2DATA {
+  ULONG_PTR dwhContext;
+  DWORD dwFlags;
+  DWORD dwVertexType;
+  PDD_SURFACE_LOCAL lpDDCommands;
+  DWORD dwCommandOffset;
+  DWORD dwCommandLength;
+  __GNU_EXTENSION union {
+    PDD_SURFACE_LOCAL lpDDVertex;
+    LPVOID lpVertices;
+  };
+  DWORD dwVertexOffset;
+  DWORD dwVertexLength;
+  DWORD dwReqVertexBufSize;
+  DWORD dwReqCommandBufSize;
+  LPDWORD lpdwRStates;
+  __GNU_EXTENSION union {
+    DWORD dwVertexSize;
+    HRESULT ddrval;
+  };
+  DWORD dwErrorOffset;
+} D3DNTHAL_DRAWPRIMITIVES2DATA, FAR *LPD3DNTHAL_DRAWPRIMITIVES2DATA;
+
+typedef DWORD (APIENTRY *LPD3DNTHAL_CLEAR2CB)(LPD3DNTHAL_CLEAR2DATA);
+typedef DWORD (APIENTRY *LPD3DNTHAL_VALIDATETEXTURESTAGESTATECB)(LPD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA);
+typedef DWORD (APIENTRY *LPD3DNTHAL_DRAWPRIMITIVES2CB)(LPD3DNTHAL_DRAWPRIMITIVES2DATA);
+
+typedef struct _D3DNTHAL_CALLBACKS3 {
+  DWORD dwSize; 
+  DWORD dwFlags;
+  LPD3DNTHAL_CLEAR2CB Clear2;
+  LPVOID lpvReserved;
+  LPD3DNTHAL_VALIDATETEXTURESTAGESTATECB ValidateTextureStageState;
+  LPD3DNTHAL_DRAWPRIMITIVES2CB DrawPrimitives2;
+} D3DNTHAL_CALLBACKS3, *LPD3DNTHAL_CALLBACKS3;
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* __DDK_D3DNTHAL_H */
diff --git a/reactos/include/psdk/ddkernel.h b/reactos/include/psdk/ddkernel.h
new file mode 100644 (file)
index 0000000..8ffedf8
--- /dev/null
@@ -0,0 +1,95 @@
+/* $Id$
+ *
+ * COPYRIGHT:            This file is in the public domain.
+ * PROJECT:              ReactOS kernel
+ * FILE:
+ * PURPOSE:              Directx headers
+ * PROGRAMMER:           Magnus Olsen (greatlrd)
+ *
+ */
+
+#ifndef __DDKM_INCLUDED__
+#define __DDKM_INCLUDED__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if defined (_WIN32) && !defined (_NO_COM)
+DEFINE_GUID (IID_IDirectDrawKernel,        0x8D56C120,0x6A08,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8);
+DEFINE_GUID (IID_IDirectDrawSurfaceKernel, 0x60755DA0,0x6A40,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8);
+#endif
+
+typedef struct _DDKERNELCAPS {
+  DWORD dwSize;
+  DWORD dwCaps;
+  DWORD dwIRQCaps;
+} DDKERNELCAPS, *LPDDKERNELCAPS;
+
+#define DDKERNELCAPS_SKIPFIELDS             0x00000001
+#define DDKERNELCAPS_AUTOFLIP               0x00000002
+#define DDKERNELCAPS_SETSTATE               0x00000004
+#define DDKERNELCAPS_LOCK                   0x00000008
+#define DDKERNELCAPS_FLIPVIDEOPORT          0x00000010
+#define DDKERNELCAPS_FLIPOVERLAY            0x00000020
+#define DDKERNELCAPS_CAPTURE_SYSMEM         0x00000040
+#define DDKERNELCAPS_CAPTURE_NONLOCALVIDMEM 0x00000080
+#define DDKERNELCAPS_FIELDPOLARITY          0x00000100
+#define DDKERNELCAPS_CAPTURE_INVERTED       0x00000200
+#define DDIRQ_DISPLAY_VSYNC                 0x00000001
+#define DDIRQ_RESERVED1                     0x00000002
+#define DDIRQ_VPORT0_VSYNC                  0x00000004
+#define DDIRQ_VPORT0_LINE                   0x00000008
+#define DDIRQ_VPORT1_VSYNC                  0x00000010
+#define DDIRQ_VPORT1_LINE                   0x00000020
+#define DDIRQ_VPORT2_VSYNC                  0x00000040
+#define DDIRQ_VPORT2_LINE                   0x00000080
+#define DDIRQ_VPORT3_VSYNC                  0x00000100
+#define DDIRQ_VPORT3_LINE                   0x00000200
+#define DDIRQ_VPORT4_VSYNC                  0x00000400
+#define DDIRQ_VPORT4_LINE                   0x00000800
+#define DDIRQ_VPORT5_VSYNC                  0x00001000
+#define DDIRQ_VPORT5_LINE                   0x00002000
+#define DDIRQ_VPORT6_VSYNC                  0x00004000
+#define DDIRQ_VPORT6_LINE                   0x00008000
+#define DDIRQ_VPORT7_VSYNC                  0x00010000
+#define DDIRQ_VPORT7_LINE                   0x00020000
+#define DDIRQ_VPORT8_VSYNC                  0x00040000
+#define DDIRQ_VPORT8_LINE                   0x00080000
+#define DDIRQ_VPORT9_VSYNC                  0x00010000
+#define DDIRQ_VPORT9_LINE                   0x00020000
+
+typedef struct IDirectDrawKernel* LPDIRECTDRAWKERNEL;
+typedef struct IDirectDrawSurfaceKernel* LPDIRECTDRAWSURFACEKERNEL;
+
+#if defined(_WIN32) && !defined(_NO_COM)
+
+#undef INTERFACE
+#define INTERFACE IDirectDrawKernel
+DECLARE_INTERFACE_ (IDirectDrawKernel, IUnknown) {
+  STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
+  STDMETHOD_(ULONG,AddRef) (THIS) PURE;
+  STDMETHOD_(ULONG,Release) (THIS) PURE;
+  STDMETHOD(GetKernelHandle) (THIS_ ULONG*) PURE;
+  STDMETHOD(ReleaseKernelHandle) (THIS) PURE;
+};
+
+#undef INTERFACE
+#define INTERFACE IDirectDrawSurfaceKernel
+DECLARE_INTERFACE_ (IDirectDrawSurfaceKernel, IUnknown) {
+  STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
+  STDMETHOD_(ULONG,AddRef) (THIS) PURE;
+  STDMETHOD_(ULONG,Release) (THIS) PURE;
+  STDMETHOD(GetKernelHandle) (THIS_ ULONG*) PURE;
+  STDMETHOD(ReleaseKernelHandle) (THIS) PURE;
+};
+
+#undef INTERFACE
+#endif /* defined(_WIN32) && !defined(_NO_COM) */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
similarity index 59%
rename from reactos/include/ddk/ddkmapi.h
rename to reactos/include/psdk/ddkmapi.h
index fdd23a9..5bdedde 100644 (file)
 #ifndef __DDKMAPI_INCLUDED__
 #define __DDKMAPI_INCLUDED__
 
-/* Helper macro to enable gcc's extension.  */
-#ifndef __GNU_EXTENSION
-#ifdef __GNUC__
-#define __GNU_EXTENSION __extension__
-#else
-#define __GNU_EXTENSION
-#endif
-#endif
-
 #if defined(_DXAPI_)
-  #define DXAPI
+#define DXAPI
 #else
-  #define DXAPI DECLSPEC_IMPORT
+#define DXAPI DECLSPEC_IMPORT
 #endif
 
-
-
 #define DXAPI_MAJORVERSION                1
 #define DXAPI_MINORVERSION                0
 
 typedef DWORD (PASCAL *LPDXAPI)(DWORD dwFunctionNum, LPVOID lpvInBuffer, DWORD cbInBuffer, LPVOID  lpvOutBuffer, DWORD  cbOutBuffer);
 typedef ULONG (PASCAL *LPDD_NOTIFYCALLBACK) (DWORD dwFlags, PVOID pContext, DWORD dwParam1, DWORD dwParam2);
 
-typedef struct _DDCAPBUFFINFO
-{
-    DWORD dwFieldNumber;
-    DWORD bPolarity;
-    LARGE_INTEGER liTimeStamp;
-    DWORD ddRVal;
-} DDCAPBUFFINFO, * LPDDCAPBUFFINFO;
-
-typedef struct _DDADDVPCAPTUREBUFF
-{
-    HANDLE hCapture;
-    DWORD dwFlags;
-    PMDL pMDL;
-    PKEVENT pKEvent;
-    LPDDCAPBUFFINFO lpBuffInfo;
-} DDADDVPCAPTUREBUFF, * LPDDADDVPCAPTUREBUFF;
-
-typedef struct _DDCLOSEHANDLE
-{
-    HANDLE  hHandle;
+typedef struct _DDCAPBUFFINFO {
+  DWORD dwFieldNumber;
+  DWORD bPolarity;
+  LARGE_INTEGER liTimeStamp;
+  DWORD ddRVal;
+} DDCAPBUFFINFO, *LPDDCAPBUFFINFO;
+
+typedef struct _DDADDVPCAPTUREBUFF {
+  HANDLE hCapture;
+  DWORD dwFlags;
+  PMDL pMDL;
+  PKEVENT pKEvent;
+  LPDDCAPBUFFINFO lpBuffInfo;
+} DDADDVPCAPTUREBUFF, *LPDDADDVPCAPTUREBUFF;
+
+typedef struct _DDCLOSEHANDLE {
+  HANDLE hHandle;
 } DDCLOSEHANDLE, *LPDDCLOSEHANDLE;
 
-typedef struct _DDFLIPOVERLAY
-{
-    HANDLE hDirectDraw;
-    HANDLE hCurrentSurface;
-    HANDLE hTargetSurface;
-    DWORD dwFlags;
+typedef struct _DDFLIPOVERLAY {
+  HANDLE hDirectDraw;
+  HANDLE hCurrentSurface;
+  HANDLE hTargetSurface;
+  DWORD dwFlags;
 } DDFLIPOVERLAY, *LPDDFLIPOVERLAY;
 
-typedef struct _DDFLIPVIDEOPORT
-{
-  HANDLE  hDirectDraw;
-  HANDLE  hVideoPort;
-  HANDLE  hCurrentSurface;
-  HANDLE  hTargetSurface;
-  DWORD  dwFlags;
+typedef struct _DDFLIPVIDEOPORT {
+  HANDLE hDirectDraw;
+  HANDLE hVideoPort;
+  HANDLE hCurrentSurface;
+  HANDLE hTargetSurface;
+  DWORD dwFlags;
 } DDFLIPVIDEOPORT, *LPDDFLIPVIDEOPORT;
 
-typedef struct _DDGETAUTOFLIPIN
-{
-  HANDLE  hDirectDraw;
-  HANDLE  hVideoPort;
+typedef struct _DDGETAUTOFLIPIN {
+  HANDLE hDirectDraw;
+  HANDLE hVideoPort;
 } DDGETAUTOFLIPIN, *LPDDGETAUTOFLIPIN;
 
-typedef struct _DDGETAUTOFLIPOUT
-{
-  DWORD  ddRVal;
-  HANDLE  hVideoSurface;
-  HANDLE  hVBISurface;
-  BOOL  bPolarity;
+typedef struct _DDGETAUTOFLIPOUT {
+  DWORD ddRVal;
+  HANDLE hVideoSurface;
+  HANDLE hVBISurface;
+  BOOL bPolarity;
 } DDGETAUTOFLIPOUT, *LPDDGETAUTOFLIPOUT;
 
-typedef struct _DDGETPOLARITYIN
-{
-  HANDLE  hDirectDraw;
-  HANDLE  hVideoPort;
+typedef struct _DDGETPOLARITYIN {
+  HANDLE hDirectDraw;
+  HANDLE hVideoPort;
 } DDGETPOLARITYIN, *LPDDGETPOLARITYIN;
 
-typedef struct _DDGETPOLARITYOUT
-{
-  DWORD  ddRVal;
-  BOOL  bPolarity;
+typedef struct _DDGETPOLARITYOUT {
+  DWORD ddRVal;
+  BOOL bPolarity;
 } DDGETPOLARITYOUT, *LPDDGETPOLARITYOUT;
 
-typedef struct _DDGETSURFACESTATEIN
-{
-  HANDLE  hDirectDraw;
-  HANDLE  hSurface;
+typedef struct _DDGETSURFACESTATEIN {
+  HANDLE hDirectDraw;
+  HANDLE hSurface;
 } DDGETSURFACESTATEIN, *LPDDGETSURFACESTATEIN;
 
-typedef struct _DDGETSURFACESTATEOUT
-{
-  DWORD  ddRVal;
-  DWORD  dwStateCaps;
-  DWORD  dwStateStatus;
+typedef struct _DDGETSURFACESTATEOUT {
+  DWORD ddRVal;
+  DWORD dwStateCaps;
+  DWORD dwStateStatus;
 } DDGETSURFACESTATEOUT, *LPDDGETSURFACESTATEOUT;
 
-typedef struct _DDGETFIELDNUMIN
-{
-  HANDLE  hDirectDraw;
-  HANDLE  hVideoPort;
+typedef struct _DDGETFIELDNUMIN {
+  HANDLE hDirectDraw;
+  HANDLE hVideoPort;
 } DDGETFIELDNUMIN, *LPDDGETFIELDNUMIN;
 
-typedef struct _DDGETFIELDNUMOUT
-{
-  DWORD  ddRVal;
-  DWORD  dwFieldNum;
+typedef struct _DDGETFIELDNUMOUT {
+  DWORD ddRVal;
+  DWORD dwFieldNum;
 } DDGETFIELDNUMOUT, *LPDDGETFIELDNUMOUT;
 
-typedef struct _DDGETKERNELCAPSOUT
-{
-  DWORD  ddRVal;
-  DWORD  dwCaps;
-  DWORD  dwIRQCaps;
+typedef struct _DDGETKERNELCAPSOUT {
+  DWORD ddRVal;
+  DWORD dwCaps;
+  DWORD dwIRQCaps;
 } DDGETKERNELCAPSOUT, *LPDDGETKERNELCAPSOUT;
 
-typedef struct _DDGETVERSIONNUMBER
-{
-  DWORD  ddRVal;
-  DWORD  dwMajorVersion;
-  DWORD  dwMinorVersion;
+typedef struct _DDGETVERSIONNUMBER {
+  DWORD ddRVal;
+  DWORD dwMajorVersion;
+  DWORD dwMinorVersion;
 } DDGETVERSIONNUMBER, *LPDDGETVERSIONNUMBER;
 
-typedef struct _DDLOCKIN
-{
-  HANDLE  hDirectDraw;
-  HANDLE  hSurface;
+typedef struct _DDLOCKIN {
+  HANDLE hDirectDraw;
+  HANDLE hSurface;
 } DDLOCKIN, *LPDDLOCKIN;
 
-typedef struct _DDLOCKOUT
-{
-  DWORD  ddRVal;
-  DWORD  dwSurfHeight;
-  DWORD  dwSurfWidth;
-  LONG  lSurfPitch;
-  PVOID  lpSurface;
-  DWORD  SurfaceCaps;
-  DWORD  dwFormatFlags;
-  DWORD  dwFormatFourCC;
-  DWORD  dwFormatBitCount;
-  __GNU_EXTENSION union
-  {
-    DWORD  dwRBitMask;
-    DWORD  dwYBitMask;
+typedef struct _DDLOCKOUT {
+  DWORD ddRVal;
+  DWORD dwSurfHeight;
+  DWORD dwSurfWidth;
+  LONG lSurfPitch;
+  PVOID lpSurface;
+  DWORD SurfaceCaps;
+  DWORD dwFormatFlags;
+  DWORD dwFormatFourCC;
+  DWORD dwFormatBitCount;
+  __GNU_EXTENSION union {
+    DWORD dwRBitMask;
+    DWORD dwYBitMask;
   };
-  __GNU_EXTENSION union
-  {
-    DWORD  dwGBitMask;
-    DWORD  dwUBitMask;
+  __GNU_EXTENSION union {
+    DWORD dwGBitMask;
+    DWORD dwUBitMask;
   };
-  __GNU_EXTENSION union
-  {
-    DWORD  dwBBitMask;
-    DWORD  dwVBitMask;
+  __GNU_EXTENSION union {
+    DWORD dwBBitMask;
+    DWORD dwVBitMask;
   };
 } DDLOCKOUT, *LPDDLOCKOUT;
 
 
-typedef struct _DDOPENDIRECTDRAWIN
-{
+typedef struct _DDOPENDIRECTDRAWIN {
   ULONG_PTR dwDirectDrawHandle;
-  LPDD_NOTIFYCALLBACK  pfnDirectDrawClose;
-  PVOID  pContext;
+  LPDD_NOTIFYCALLBACK pfnDirectDrawClose;
+  PVOID pContext;
 } DDOPENDIRECTDRAWIN, *LPDDOPENDIRECTDRAWIN;
 
-typedef struct _DDOPENDIRECTDRAWOUT
-{
-  DWORD  ddRVal;
-  HANDLE  hDirectDraw;
+typedef struct _DDOPENDIRECTDRAWOUT {
+  DWORD ddRVal;
+  HANDLE hDirectDraw;
 } DDOPENDIRECTDRAWOUT, *LPDDOPENDIRECTDRAWOUT;
 
-typedef struct _DDOPENSURFACEIN
-{
-  HANDLE  hDirectDraw;
-  ULONG_PTR  dwSurfaceHandle;
-  LPDD_NOTIFYCALLBACK  pfnSurfaceClose;
-  PVOID  pContext;
+typedef struct _DDOPENSURFACEIN {
+  HANDLE hDirectDraw;
+  ULONG_PTR dwSurfaceHandle;
+  LPDD_NOTIFYCALLBACK pfnSurfaceClose;
+  PVOID pContext;
 } DDOPENSURFACEIN, *LPDDOPENSURFACEIN;
 
-typedef struct _DDOPENSURFACEOUT
-{
-  DWORD  ddRVal;
-  HANDLE  hSurface;
+typedef struct _DDOPENSURFACEOUT {
+  DWORD ddRVal;
+  HANDLE hSurface;
 } DDOPENSURFACEOUT, *LPDDOPENSURFACEOUT;
 
-typedef struct _DDOPENVIDEOPORTIN
-{
-  HANDLE  hDirectDraw;
-  ULONG  dwVideoPortHandle;
-  LPDD_NOTIFYCALLBACK  pfnVideoPortClose;
-  PVOID  pContext;
+typedef struct _DDOPENVIDEOPORTIN {
+  HANDLE hDirectDraw;
+  ULONG dwVideoPortHandle;
+  LPDD_NOTIFYCALLBACK pfnVideoPortClose;
+  PVOID pContext;
 } DDOPENVIDEOPORTIN, *LPDDOPENVIDEOPORTIN;
 
-typedef struct _DDOPENVIDEOPORTOUT
-{
-  DWORD  ddRVal;
-  HANDLE  hVideoPort;
+typedef struct _DDOPENVIDEOPORTOUT {
+  DWORD ddRVal;
+  HANDLE hVideoPort;
 } DDOPENVIDEOPORTOUT, *LPDDOPENVIDEOPORTOUT;
 
-typedef struct _DDOPENVPCAPTUREDEVICEIN
-{
-  HANDLE  hDirectDraw;
-  HANDLE  hVideoPort;
-  DWORD  dwStartLine;
-  DWORD  dwEndLine;
-  DWORD  dwCaptureEveryNFields;
-  LPDD_NOTIFYCALLBACK  pfnCaptureClose;
-  PVOID  pContext;
-  DWORD  dwFlags;
-} DDOPENVPCAPTUREDEVICEIN, * LPDDOPENVPCAPTUREDEVICEIN;
-
-typedef struct _DDOPENVPCAPTUREDEVICEOUT
-{
-  DWORD  ddRVal;
-  HANDLE  hCapture;
-} DDOPENVPCAPTUREDEVICEOUT, * LPDDOPENVPCAPTUREDEVICEOUT;
-
-typedef struct _DDREGISTERCALLBACK
-{
-  HANDLE  hDirectDraw;
-  ULONG  dwEvents;
-  LPDD_NOTIFYCALLBACK  pfnCallback;
-  ULONG_PTR  dwParam1;
-  ULONG_PTR  dwParam2;
-  PVOID  pContext;
+typedef struct _DDOPENVPCAPTUREDEVICEIN {
+  HANDLE hDirectDraw;
+  HANDLE hVideoPort;
+  DWORD dwStartLine;
+  DWORD dwEndLine;
+  DWORD dwCaptureEveryNFields;
+  LPDD_NOTIFYCALLBACK pfnCaptureClose;
+  PVOID pContext;
+  DWORD dwFlags;
+} DDOPENVPCAPTUREDEVICEIN, *LPDDOPENVPCAPTUREDEVICEIN;
+
+typedef struct _DDOPENVPCAPTUREDEVICEOUT {
+  DWORD ddRVal;
+  HANDLE hCapture;
+} DDOPENVPCAPTUREDEVICEOUT, *LPDDOPENVPCAPTUREDEVICEOUT;
+
+typedef struct _DDREGISTERCALLBACK {
+  HANDLE hDirectDraw;
+  ULONG dwEvents;
+  LPDD_NOTIFYCALLBACK pfnCallback;
+  ULONG_PTR dwParam1;
+  ULONG_PTR dwParam2;
+  PVOID pContext;
 } DDREGISTERCALLBACK, *LPDDREGISTERCALLBACK;
 
-typedef struct _DDSETSURFACETATE
-{
-  HANDLE  hDirectDraw;
-  HANDLE  hSurface;
-  DWORD  dwState;
-  DWORD  dwStartField;
+typedef struct _DDSETSURFACETATE {
+  HANDLE hDirectDraw;
+  HANDLE hSurface;
+  DWORD dwState;
+  DWORD dwStartField;
 } DDSETSURFACESTATE, *LPDDSETSURFACESTATE;
 
-typedef struct _DDSETFIELDNUM
-{
-  HANDLE  hDirectDraw;
-  HANDLE  hVideoPort;
-  DWORD  dwFieldNum;
+typedef struct _DDSETFIELDNUM {
+  HANDLE hDirectDraw;
+  HANDLE hVideoPort;
+  DWORD dwFieldNum;
 } DDSETFIELDNUM, *LPDDSETFIELDNUM;
 
-typedef struct _DDSETSKIPFIELD
-{
-  HANDLE  hDirectDraw;
-  HANDLE  hVideoPort;
-  DWORD  dwStartField;
+typedef struct _DDSETSKIPFIELD {
+  HANDLE hDirectDraw;
+  HANDLE hVideoPort;
+  DWORD dwStartField;
 } DDSETSKIPFIELD, *LPDDSETSKIPFIELD;
 
 
@@ -346,5 +303,5 @@ DxApi(IN DWORD dwFunctionNum,
       OUT DWORD cbOutBuffer);
 
 
-
 #endif /* __DDKMAPI_INCLUDED__ */
+
similarity index 99%
rename from reactos/include/dxsdk/ddraw.h
rename to reactos/include/psdk/ddraw.h
index 1e8dbd2..7dac04e 100644 (file)
@@ -1,5 +1,4 @@
 
-
 #ifndef __DDRAW_INCLUDED__
 #define __DDRAW_INCLUDED__
 
 #endif
 #endif
 
+/* Helper macro to enable gcc's extension. */
+#ifndef __GNU_EXTENSION
+#ifdef __GNUC__
+#define __GNU_EXTENSION __extension__
+#else
+#define __GNU_EXTENSION
+#endif
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -2561,7 +2569,7 @@ DECLARE_INTERFACE_( IDirectDrawSurface3, IUnknown )
 #undef INTERFACE
 
 #ifdef __cplusplus
-};
+}
 #endif
 
 #ifdef ENABLE_NAMELESS_UNION_PRAGMA
@@ -2569,6 +2577,3 @@ DECLARE_INTERFACE_( IDirectDrawSurface3, IUnknown )
 #endif
 
 #endif
-
-
-
diff --git a/reactos/include/psdk/ddrawi.h b/reactos/include/psdk/ddrawi.h
new file mode 100644 (file)
index 0000000..5097aa7
--- /dev/null
@@ -0,0 +1,2065 @@
+/*
+ * DirectDraw driver interface
+ * (DirectX 7 version)
+ *
+ * Copyright (C) 2001 Ove Kaaven
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#ifndef __DDRAWI_INCLUDED__
+#define __DDRAWI_INCLUDED__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define OBJECT_ISROOT           0x80000000
+
+#include <ddraw.h>
+#include <dvp.h>
+#include <ddkernel.h>
+#include <dmemmgr.h>
+
+#define DDAPI WINAPI
+
+#define VALID_ALIGNMENT(align) \
+    (!((align==0)||(align%2)!= 0 ))
+
+/* the DirectDraw versions */
+#define DD_VERSION         0x0200 /* compatibility version */
+#define DD_RUNTIME_VERSION 0x0902 /* actual version */
+
+/* the HAL version returned from QUERYESCSUPPORT - DCICOMMAND */
+#define DD_HAL_VERSION     0x0100
+
+/* more DCICOMMAND escapes */
+#ifndef DCICOMMAND
+#define DCICOMMAND 3075
+#endif
+
+#define DDCREATEDRIVEROBJECT 10
+#define DDGET32BITDRIVERNAME 11
+#define DDNEWCALLBACKFNS     12
+#define DDVERSIONINFO        13
+
+#define DDUNSUPPORTEDMODE  ((DWORD) -1)
+
+#include "dciddi.h"
+
+#ifndef CCHDEVICENAME
+#define CCHDEVICENAME 32
+#endif
+#define MAX_DRIVER_NAME CCHDEVICENAME
+
+#define DDHAL_DRIVER_DLLNAME    "DDRAW16.DLL"
+#define DDHAL_APP_DLLNAME       "DDRAW.DLL"
+
+/* GUID */
+#ifdef _WIN32
+DEFINE_GUID(GUID_MiscellaneousCallbacks, 0xefd60cc0, 0x49e7, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a);
+DEFINE_GUID(GUID_VideoPortCallbacks,     0xefd60cc1, 0x49e7, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a);
+DEFINE_GUID(GUID_ColorControlCallbacks,  0xefd60cc2, 0x49e7, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a);
+DEFINE_GUID(GUID_VideoPortCaps,          0xefd60cc3, 0x49e7, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a);
+DEFINE_GUID(GUID_D3DCallbacks2,          0x0ba584e1, 0x70b6, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 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_D3DExtendedCaps,        0x7de41f80, 0x9d93, 0x11d0, 0x89, 0xab, 0x0, 0xa0, 0xc9, 0x5, 0x41, 0x29);
+DEFINE_GUID(GUID_ZPixelFormats,          0x93869880, 0x36cf, 0x11d1, 0x9b, 0x1b, 0x0, 0xaa, 0x0, 0xbb, 0xb8, 0xae);
+DEFINE_GUID(GUID_DDMoreSurfaceCaps,      0x3b8a0466, 0xf269, 0x11d1, 0x88, 0x0b, 0x0, 0xc0, 0x4f, 0xd9, 0x30, 0xc5);
+DEFINE_GUID(GUID_DDStereoMode,           0xf828169c, 0xa8e8, 0x11d2, 0xa1, 0xf2, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6);
+DEFINE_GUID(GUID_OptSurfaceKmodeInfo,    0xe05c8472, 0x51d4, 0x11d1, 0x8c, 0xce, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
+DEFINE_GUID(GUID_OptSurfaceUmodeInfo,    0x9d792804, 0x5fa8, 0x11d1, 0x8c, 0xd0, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
+DEFINE_GUID(GUID_UserModeDriverInfo,     0xf0b0e8e2, 0x5f97, 0x11d1, 0x8c, 0xd0, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
+DEFINE_GUID(GUID_UserModeDriverPassword, 0x97f861b6, 0x60a1, 0x11d1, 0x8c, 0xd0, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
+DEFINE_GUID(GUID_D3DParseUnknownCommandCallback, 0x2e04ffa0, 0x98e4, 0x11d1, 0x8c, 0xe1, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
+DEFINE_GUID(GUID_MotionCompCallbacks,    0xb1122b40, 0x5dA5, 0x11d1, 0x8f, 0xcF, 0x00, 0xc0, 0x4f, 0xc2, 0x9b, 0x4e);
+DEFINE_GUID(GUID_Miscellaneous2Callbacks, 0x406B2F00, 0x3E5A, 0x11D1, 0xB6, 0x40, 0x00, 0xAA, 0x00, 0xA1, 0xF9, 0x6A);
+#endif
+
+#ifndef _WIN32
+#undef  E_NOTIMPL
+#undef  E_OUTOFMEMORY
+#undef  E_INVALIDARG
+#undef  E_FAIL
+#define E_NOTIMPL      0x80004001L
+#define E_OUTOFMEMORY  0x8007000EL
+#define E_INVALIDARG   0x80070057L
+#define E_FAIL         0x80004005L
+#endif
+
+/*****************************************************************************
+ * Initialization stuff
+ */
+typedef struct {
+  char szName[260];
+  char szEntryPoint[64];
+  DWORD dwContext;
+} DD32BITDRIVERDATA,*LPDD32BITDRIVERDATA;
+
+typedef struct {
+  DWORD dwHALVersion;
+  ULONG_PTR dwReserved1;
+  ULONG_PTR dwReserved2;
+} DDVERSIONDATA,*LPDDVERSIONDATA;
+
+typedef DWORD (PASCAL *LPDD32BITDRIVERINIT)(DWORD dwContext);
+
+/* predeclare some structures */
+typedef struct _DDHALINFO *LPDDHALINFO;
+typedef struct _DDRAWI_DIRECTDRAW_INT *LPDDRAWI_DIRECTDRAW_INT;
+
+#ifndef DDRAWI_DIRECTDRAW_DEFINED
+typedef struct _DDRAWI_DIRECTDRAW_LCL *LPDDRAWI_DIRECTDRAW_LCL;
+typedef struct _DDRAWI_DIRECTDRAW_GBL *LPDDRAWI_DIRECTDRAW_GBL;
+#define DDRAWI_DIRECTDRAW_DEFINED
+#endif
+
+typedef struct _DDRAWI_DDRAWSURFACE_INT *LPDDRAWI_DDRAWSURFACE_INT;
+
+#ifndef DDRAWI_DDRAWSURFACE_DEFINED
+typedef struct _DDRAWI_DDRAWSURFACE_LCL *LPDDRAWI_DDRAWSURFACE_LCL;
+#define DDRAWI_DDRAWSURFACE_DEFINED
+#endif
+
+typedef struct _DDRAWI_DDRAWSURFACE_GBL *LPDDRAWI_DDRAWSURFACE_GBL;
+typedef struct _DDRAWI_DDRAWSURFACE_MORE *LPDDRAWI_DDRAWSURFACE_MORE;
+typedef struct _DDRAWI_DDRAWSURFACE_GBL_MORE *LPDDRAWI_DDRAWSURFACE_GBL_MORE;
+typedef struct _DDRAWI_DDRAWPALETTE_INT *LPDDRAWI_DDRAWPALETTE_INT;
+typedef struct _DDRAWI_DDRAWPALETTE_LCL *LPDDRAWI_DDRAWPALETTE_LCL;
+typedef struct _DDRAWI_DDRAWPALETTE_GBL *LPDDRAWI_DDRAWPALETTE_GBL;
+typedef struct _DDRAWI_DDRAWCLIPPER_INT *LPDDRAWI_DDRAWCLIPPER_INT;
+typedef struct _DDRAWI_DDRAWCLIPPER_LCL *LPDDRAWI_DDRAWCLIPPER_LCL;
+typedef struct _DDRAWI_DDRAWCLIPPER_GBL *LPDDRAWI_DDRAWCLIPPER_GBL;
+typedef struct _DDRAWI_DDVIDEOPORT_INT *LPDDRAWI_DDVIDEOPORT_INT;
+typedef struct _DDRAWI_DDVIDEOPORT_LCL *LPDDRAWI_DDVIDEOPORT_LCL;
+typedef struct _DDRAWI_DDMOTIONCOMP_INT *LPDDRAWI_DDMOTIONCOMP_INT;
+typedef struct _DDRAWI_DDMOTIONCOMP_LCL *LPDDRAWI_DDMOTIONCOMP_LCL;
+
+/*****************************************************************************
+ * driver->ddraw callbacks
+ */
+typedef BOOL    (DDAPI *LPDDHAL_SETINFO)(LPDDHALINFO lpDDHalInfo, BOOL reset);
+typedef FLATPTR (DDAPI *LPDDHAL_VIDMEMALLOC)(LPDDRAWI_DIRECTDRAW_GBL lpDD, int heap, DWORD dwWidth, DWORD dwHeight);
+typedef void    (DDAPI *LPDDHAL_VIDMEMFREE)(LPDDRAWI_DIRECTDRAW_GBL lpDD, int heap, FLATPTR fpMem);
+
+typedef struct {
+  DWORD dwSize;
+  LPDDHAL_SETINFO lpSetInfo;
+  LPDDHAL_VIDMEMALLOC lpVidMemAlloc;
+  LPDDHAL_VIDMEMFREE lpVidMemFree;
+} DDHALDDRAWFNS, *LPDDHALDDRAWFNS;
+
+/*****************************************************************************
+ * mode info structure
+ */
+typedef struct _DDHALMODEINFO {
+  DWORD dwWidth;
+  DWORD dwHeight;
+  LONG lPitch;
+  DWORD dwBPP;
+  WORD wFlags;
+  WORD wRefreshRate;
+  DWORD dwRBitMask;
+  DWORD dwGBitMask;
+  DWORD dwBBitMask;
+  DWORD dwAlphaBitMask;
+} DDHALMODEINFO, *LPDDHALMODEINFO;
+
+#define DDMODEINFO_PALETTIZED  0x0001
+#define DDMODEINFO_MODEX       0x0002
+#define DDMODEINFO_UNSUPPORTED 0x0004
+#define DDMODEINFO_STANDARDVGA 0x0008
+#define DDMODEINFO_MAXREFRESH  0x0010
+#define DDMODEINFO_STEREO      0x0020
+
+/*****************************************************************************
+ * video memory info structure
+ */
+typedef struct _VIDMEM {
+    DWORD dwFlags;
+    FLATPTR fpStart;
+    __GNU_EXTENSION union {
+ FLATPTR fpEnd;
+ DWORD dwWidth;
+    };
+    DDSCAPS ddsCaps;
+    DDSCAPS ddsCapsAlt;
+    __GNU_EXTENSION union {
+ LPVMEMHEAP lpHeap;
+ DWORD dwHeight;
+    };
+} VIDMEM;
+
+#define VIDMEM_ISLINEAR                       0x00000001l
+#define VIDMEM_ISRECTANGULAR                  0x00000002l
+#define VIDMEM_ISHEAP                         0x00000004l
+#define VIDMEM_ISNONLOCAL                     0x00000008l
+#define VIDMEM_ISWC                           0x00000010l
+#define VIDMEM_HEAPDISABLED                   0x00000020l
+
+typedef struct _VIDMEMINFO {
+    FLATPTR fpPrimary;
+    DWORD dwFlags;
+    DWORD dwDisplayWidth;
+    DWORD dwDisplayHeight;
+    LONG lDisplayPitch;
+    DDPIXELFORMAT ddpfDisplay;
+    DWORD dwOffscreenAlign;
+    DWORD dwOverlayAlign;
+    DWORD dwTextureAlign;
+    DWORD dwZBufferAlign;
+    DWORD dwAlphaAlign;
+    DWORD dwNumHeaps;
+    LPVIDMEM pvmList;
+} VIDMEMINFO, *LPVIDMEMINFO;
+
+typedef struct _HEAPALIAS {
+  FLATPTR fpVidMem;
+  LPVOID lpAlias;
+  DWORD dwAliasSize;
+} HEAPALIAS, *LPHEAPALIAS;
+
+typedef struct _HEAPALIASINFO {
+  DWORD dwRefCnt;
+  DWORD dwFlags;
+  DWORD dwNumHeaps;
+  LPHEAPALIAS lpAliases;
+} HEAPALIASINFO, *LPHEAPALIASINFO;
+
+#define HEAPALIASINFO_MAPPEDREAL  0x00000001
+#define HEAPALIASINFO_MAPPEDDUMMY 0x00000002
+
+/*****************************************************************************
+ * capabilities structures
+ */
+typedef struct _DDCORECAPS {
+  DWORD dwSize;
+  DWORD dwCaps;
+  DWORD dwCaps2;
+  DWORD dwCKeyCaps;
+  DWORD dwFXCaps;
+  DWORD dwFXAlphaCaps;
+  DWORD dwPalCaps;
+  DWORD dwSVCaps;
+  DWORD dwAlphaBltConstBitDepths;
+  DWORD dwAlphaBltPixelBitDepths;
+  DWORD dwAlphaBltSurfaceBitDepths;
+  DWORD dwAlphaOverlayConstBitDepths;
+  DWORD dwAlphaOverlayPixelBitDepths;
+  DWORD dwAlphaOverlaySurfaceBitDepths;
+  DWORD dwZBufferBitDepths;
+  DWORD dwVidMemTotal;
+  DWORD dwVidMemFree;
+  DWORD dwMaxVisibleOverlays;
+  DWORD dwCurrVisibleOverlays;
+  DWORD dwNumFourCCCodes;
+  DWORD dwAlignBoundarySrc;
+  DWORD dwAlignSizeSrc;
+  DWORD dwAlignBoundaryDest;
+  DWORD dwAlignSizeDest;
+  DWORD dwAlignStrideAlign;
+  DWORD dwRops[DD_ROP_SPACE];
+  DDSCAPS ddsCaps;
+  DWORD dwMinOverlayStretch;
+  DWORD dwMaxOverlayStretch;
+  DWORD dwMinLiveVideoStretch;
+  DWORD dwMaxLiveVideoStretch;
+  DWORD dwMinHwCodecStretch;
+  DWORD dwMaxHwCodecStretch;
+  DWORD dwReserved1;
+  DWORD dwReserved2;
+  DWORD dwReserved3;
+  DWORD dwSVBCaps;
+  DWORD dwSVBCKeyCaps;
+  DWORD dwSVBFXCaps;
+  DWORD dwSVBRops[DD_ROP_SPACE];
+  DWORD dwVSBCaps;
+  DWORD dwVSBCKeyCaps;
+  DWORD dwVSBFXCaps;
+  DWORD dwVSBRops[DD_ROP_SPACE];
+  DWORD dwSSBCaps;
+  DWORD dwSSBCKeyCaps;
+  DWORD dwSSBFXCaps;
+  DWORD dwSSBRops[DD_ROP_SPACE];
+  DWORD dwMaxVideoPorts;
+  DWORD dwCurrVideoPorts;
+  DWORD dwSVBCaps2;
+} DDCORECAPS, *LPDDCORECAPS;
+
+typedef struct _DDNONLOCALVIDMEMCAPS {
+  DWORD dwSize;
+  DWORD dwNLVBCaps;
+  DWORD dwNLVBCaps2;
+  DWORD dwNLVBCKeyCaps;
+  DWORD dwNLVBFXCaps;
+  DWORD dwNLVBRops[DD_ROP_SPACE];
+} DDNONLOCALVIDMEMCAPS, *LPDDNONLOCALVIDMEMCAPS;
+
+#define DDSCAPS_EXECUTEBUFFER  DDSCAPS_RESERVED2
+#define DDSCAPS2_VERTEXBUFFER  DDSCAPS2_RESERVED1
+#define DDSCAPS2_COMMANDBUFFER DDSCAPS2_RESERVED2
+
+/*****************************************************************************
+ * ddraw->driver callbacks
+ */
+#define DDHAL_DRIVER_NOTHANDLED               0x00000000l
+#define DDHAL_DRIVER_HANDLED                  0x00000001l
+#define DDHAL_DRIVER_NOCKEYHW                 0x00000002l
+
+typedef struct _DDHAL_DESTROYDRIVERDATA *LPDDHAL_DESTROYDRIVERDATA;
+typedef struct _DDHAL_CREATESURFACEDATA *LPDDHAL_CREATESURFACEDATA;
+typedef struct _DDHAL_DRVSETCOLORKEYDATA *LPDDHAL_DRVSETCOLORKEYDATA;
+typedef struct _DDHAL_SETMODEDATA *LPDDHAL_SETMODEDATA;
+typedef struct _DDHAL_WAITFORVERTICALBLANKDATA *LPDDHAL_WAITFORVERTICALBLANKDATA;
+typedef struct _DDHAL_CANCREATESURFACEDATA *LPDDHAL_CANCREATESURFACEDATA;
+typedef struct _DDHAL_CREATEPALETTEDATA *LPDDHAL_CREATEPALETTEDATA;
+typedef struct _DDHAL_GETSCANLINEDATA *LPDDHAL_GETSCANLINEDATA;
+typedef struct _DDHAL_SETEXCLUSIVEMODEDATA *LPDDHAL_SETEXCLUSIVEMODEDATA;
+typedef struct _DDHAL_FLIPTOGDISURFACEDATA *LPDDHAL_FLIPTOGDISURFACEDATA;
+
+typedef DWORD (PASCAL *LPDDHAL_DESTROYDRIVER)       (LPDDHAL_DESTROYDRIVERDATA);
+typedef DWORD (PASCAL *LPDDHAL_CREATESURFACE)       (LPDDHAL_CREATESURFACEDATA);
+typedef DWORD (PASCAL *LPDDHAL_SETCOLORKEY)         (LPDDHAL_DRVSETCOLORKEYDATA);
+typedef DWORD (PASCAL *LPDDHAL_SETMODE)             (LPDDHAL_SETMODEDATA);
+typedef DWORD (PASCAL *LPDDHAL_WAITFORVERTICALBLANK)(LPDDHAL_WAITFORVERTICALBLANKDATA);
+typedef DWORD (PASCAL *LPDDHAL_CANCREATESURFACE)    (LPDDHAL_CANCREATESURFACEDATA );
+typedef DWORD (PASCAL *LPDDHAL_CREATEPALETTE)       (LPDDHAL_CREATEPALETTEDATA);
+typedef DWORD (PASCAL *LPDDHAL_GETSCANLINE)         (LPDDHAL_GETSCANLINEDATA);
+typedef DWORD (PASCAL *LPDDHAL_SETEXCLUSIVEMODE)    (LPDDHAL_SETEXCLUSIVEMODEDATA);
+typedef DWORD (PASCAL *LPDDHAL_FLIPTOGDISURFACE)    (LPDDHAL_FLIPTOGDISURFACEDATA);
+
+typedef struct _DDHAL_DDCALLBACKS {
+  DWORD dwSize;
+  DWORD dwFlags;
+  LPDDHAL_DESTROYDRIVER DestroyDriver;
+  LPDDHAL_CREATESURFACE CreateSurface;
+  LPDDHAL_SETCOLORKEY SetColorKey;
+  LPDDHAL_SETMODE SetMode;
+  LPDDHAL_WAITFORVERTICALBLANK WaitForVerticalBlank;
+  LPDDHAL_CANCREATESURFACE CanCreateSurface;
+  LPDDHAL_CREATEPALETTE CreatePalette;
+  LPDDHAL_GETSCANLINE GetScanLine;
+  /* DirectX 2 */
+  LPDDHAL_SETEXCLUSIVEMODE SetExclusiveMode;
+  LPDDHAL_FLIPTOGDISURFACE FlipToGDISurface;
+} DDHAL_DDCALLBACKS, *LPDDHAL_DDCALLBACKS;
+
+typedef struct _DDHAL_DESTROYSURFACEDATA *LPDDHAL_DESTROYSURFACEDATA;
+typedef struct _DDHAL_FLIPDATA *LPDDHAL_FLIPDATA;
+typedef struct _DDHAL_SETCLIPLISTDATA *LPDDHAL_SETCLIPLISTDATA;
+typedef struct _DDHAL_LOCKDATA *LPDDHAL_LOCKDATA;
+typedef struct _DDHAL_UNLOCKDATA *LPDDHAL_UNLOCKDATA;
+typedef struct _DDHAL_BLTDATA *LPDDHAL_BLTDATA;
+typedef struct _DDHAL_SETCOLORKEYDATA *LPDDHAL_SETCOLORKEYDATA;
+typedef struct _DDHAL_ADDATTACHEDSURFACEDATA *LPDDHAL_ADDATTACHEDSURFACEDATA;
+typedef struct _DDHAL_GETBLTSTATUSDATA *LPDDHAL_GETBLTSTATUSDATA;
+typedef struct _DDHAL_GETFLIPSTATUSDATA *LPDDHAL_GETFLIPSTATUSDATA;
+typedef struct _DDHAL_UPDATEOVERLAYDATA *LPDDHAL_UPDATEOVERLAYDATA;
+typedef struct _DDHAL_SETOVERLAYPOSITIONDATA *LPDDHAL_SETOVERLAYPOSITIONDATA;
+typedef struct _DDHAL_SETPALETTEDATA *LPDDHAL_SETPALETTEDATA;
+
+typedef DWORD (PASCAL *LPDDHALSURFCB_DESTROYSURFACE) (LPDDHAL_DESTROYSURFACEDATA);
+typedef DWORD (PASCAL *LPDDHALSURFCB_FLIP) (LPDDHAL_FLIPDATA);
+typedef DWORD (PASCAL *LPDDHALSURFCB_SETCLIPLIST) (LPDDHAL_SETCLIPLISTDATA);
+typedef DWORD (PASCAL *LPDDHALSURFCB_LOCK) (LPDDHAL_LOCKDATA);
+typedef DWORD (PASCAL *LPDDHALSURFCB_UNLOCK) (LPDDHAL_UNLOCKDATA);
+typedef DWORD (PASCAL *LPDDHALSURFCB_BLT) (LPDDHAL_BLTDATA);
+typedef DWORD (PASCAL *LPDDHALSURFCB_SETCOLORKEY) (LPDDHAL_SETCOLORKEYDATA);
+typedef DWORD (PASCAL *LPDDHALSURFCB_ADDATTACHEDSURFACE)(LPDDHAL_ADDATTACHEDSURFACEDATA);
+typedef DWORD (PASCAL *LPDDHALSURFCB_GETBLTSTATUS) (LPDDHAL_GETBLTSTATUSDATA);
+typedef DWORD (PASCAL *LPDDHALSURFCB_GETFLIPSTATUS) (LPDDHAL_GETFLIPSTATUSDATA);
+typedef DWORD (PASCAL *LPDDHALSURFCB_UPDATEOVERLAY) (LPDDHAL_UPDATEOVERLAYDATA);
+typedef DWORD (PASCAL *LPDDHALSURFCB_SETOVERLAYPOSITION)(LPDDHAL_SETOVERLAYPOSITIONDATA);
+typedef DWORD (PASCAL *LPDDHALSURFCB_SETPALETTE) (LPDDHAL_SETPALETTEDATA);
+
+typedef struct _DDHAL_DDSURFACECALLBACKS {
+  DWORD dwSize;
+  DWORD dwFlags;
+  LPDDHALSURFCB_DESTROYSURFACE DestroySurface;
+  LPDDHALSURFCB_FLIP Flip;
+  LPDDHALSURFCB_SETCLIPLIST SetClipList;
+  LPDDHALSURFCB_LOCK Lock;
+  LPDDHALSURFCB_UNLOCK Unlock;
+  LPDDHALSURFCB_BLT Blt;
+  LPDDHALSURFCB_SETCOLORKEY SetColorKey;
+  LPDDHALSURFCB_ADDATTACHEDSURFACE AddAttachedSurface;
+  LPDDHALSURFCB_GETBLTSTATUS GetBltStatus;
+  LPDDHALSURFCB_GETFLIPSTATUS GetFlipStatus;
+  LPDDHALSURFCB_UPDATEOVERLAY UpdateOverlay;
+  LPDDHALSURFCB_SETOVERLAYPOSITION SetOverlayPosition;
+  LPVOID reserved4;
+  LPDDHALSURFCB_SETPALETTE SetPalette;
+} DDHAL_DDSURFACECALLBACKS, *LPDDHAL_DDSURFACECALLBACKS;
+
+typedef struct _DDHAL_DESTROYPALETTEDATA *LPDDHAL_DESTROYPALETTEDATA;
+typedef struct _DDHAL_SETENTRIESDATA *LPDDHAL_SETENTRIESDATA;
+
+typedef DWORD (PASCAL *LPDDHALPALCB_DESTROYPALETTE) (LPDDHAL_DESTROYPALETTEDATA);
+typedef DWORD (PASCAL *LPDDHALPALCB_SETENTRIES) (LPDDHAL_SETENTRIESDATA);
+
+typedef struct _DDHAL_DDPALETTECALLBACKS {
+  DWORD dwSize;
+  DWORD dwFlags;
+  LPDDHALPALCB_DESTROYPALETTE DestroyPalette;
+  LPDDHALPALCB_SETENTRIES SetEntries;
+} DDHAL_DDPALETTECALLBACKS, *LPDDHAL_DDPALETTECALLBACKS;
+
+typedef DWORD (PASCAL *LPDDHALEXEBUFCB_CANCREATEEXEBUF) (LPDDHAL_CANCREATESURFACEDATA);
+typedef DWORD (PASCAL *LPDDHALEXEBUFCB_CREATEEXEBUF) (LPDDHAL_CREATESURFACEDATA);
+typedef DWORD (PASCAL *LPDDHALEXEBUFCB_DESTROYEXEBUF) (LPDDHAL_DESTROYSURFACEDATA);
+typedef DWORD (PASCAL *LPDDHALEXEBUFCB_LOCKEXEBUF) (LPDDHAL_LOCKDATA);
+typedef DWORD (PASCAL *LPDDHALEXEBUFCB_UNLOCKEXEBUF) (LPDDHAL_UNLOCKDATA);
+
+typedef struct _DDHAL_DDEXEBUFCALLBACKS {
+  DWORD dwSize;
+  DWORD dwFlags;
+  LPDDHALEXEBUFCB_CANCREATEEXEBUF CanCreateExecuteBuffer;
+  LPDDHALEXEBUFCB_CREATEEXEBUF CreateExecuteBuffer;
+  LPDDHALEXEBUFCB_DESTROYEXEBUF DestroyExecuteBuffer;
+  LPDDHALEXEBUFCB_LOCKEXEBUF LockExecuteBuffer;
+  LPDDHALEXEBUFCB_UNLOCKEXEBUF UnlockExecuteBuffer;
+} DDHAL_DDEXEBUFCALLBACKS, *LPDDHAL_DDEXEBUFCALLBACKS;
+
+typedef struct _DDHAL_GETAVAILDRIVERMEMORYDATA *LPDDHAL_GETAVAILDRIVERMEMORYDATA;
+typedef struct _DDHAL_UPDATENONLOCALHEAPDATA *LPDDHAL_UPDATENONLOCALHEAPDATA;
+typedef struct _DDHAL_GETHEAPALIGNMENTDATA *LPDDHAL_GETHEAPALIGNMENTDATA;
+
+typedef DWORD (PASCAL *LPDDHAL_GETAVAILDRIVERMEMORY)(LPDDHAL_GETAVAILDRIVERMEMORYDATA);
+typedef DWORD (PASCAL *LPDDHAL_UPDATENONLOCALHEAP)  (LPDDHAL_UPDATENONLOCALHEAPDATA);
+typedef DWORD (PASCAL *LPDDHAL_GETHEAPALIGNMENT)    (LPDDHAL_GETHEAPALIGNMENTDATA);
+
+typedef struct _DDHAL_DDMISCELLANEOUSCALLBACKS {
+  DWORD dwSize;
+  DWORD dwFlags;
+  LPDDHAL_GETAVAILDRIVERMEMORY GetAvailDriverMemory;
+  LPDDHAL_UPDATENONLOCALHEAP UpdateNonLocalHeap;
+  LPDDHAL_GETHEAPALIGNMENT GetHeapAlignment;
+  LPDDHALSURFCB_GETBLTSTATUS GetSysmemBltStatus;
+} DDHAL_DDMISCELLANEOUSCALLBACKS, *LPDDHAL_DDMISCELLANEOUSCALLBACKS;
+
+typedef struct _DDHAL_CREATESURFACEEXDATA *LPDDHAL_CREATESURFACEEXDATA;
+typedef struct _DDHAL_GETDRIVERSTATEDATA *LPDDHAL_GETDRIVERSTATEDATA;
+typedef struct _DDHAL_DESTROYDDLOCALDATA *LPDDHAL_DESTROYDDLOCALDATA;
+
+typedef DWORD (PASCAL *LPDDHAL_CREATESURFACEEX)(LPDDHAL_CREATESURFACEEXDATA);
+typedef DWORD (PASCAL *LPDDHAL_GETDRIVERSTATE) (LPDDHAL_GETDRIVERSTATEDATA);
+typedef DWORD (PASCAL *LPDDHAL_DESTROYDDLOCAL) (LPDDHAL_DESTROYDDLOCALDATA);
+
+typedef struct _DDHAL_DDMISCELLANEOUS2CALLBACKS {
+  DWORD dwSize;
+  DWORD dwFlags;
+  LPVOID Reserved;
+  LPDDHAL_CREATESURFACEEX CreateSurfaceEx;
+  LPDDHAL_GETDRIVERSTATE GetDriverState;
+  LPDDHAL_DESTROYDDLOCAL DestroyDDLocal;
+} DDHAL_DDMISCELLANEOUS2CALLBACKS, *LPDDHAL_DDMISCELLANEOUS2CALLBACKS;
+
+typedef struct _DDHAL_CANCREATEVPORTDATA       *LPDDHAL_CANCREATEVPORTDATA;
+typedef struct _DDHAL_CREATEVPORTDATA          *LPDDHAL_CREATEVPORTDATA;
+typedef struct _DDHAL_FLIPVPORTDATA            *LPDDHAL_FLIPVPORTDATA;
+typedef struct _DDHAL_GETVPORTCONNECTDATA      *LPDDHAL_GETVPORTCONNECTDATA;
+typedef struct _DDHAL_GETVPORTBANDWIDTHDATA    *LPDDHAL_GETVPORTBANDWIDTHDATA;
+typedef struct _DDHAL_GETVPORTINPUTFORMATDATA  *LPDDHAL_GETVPORTINPUTFORMATDATA;
+typedef struct _DDHAL_GETVPORTOUTPUTFORMATDATA *LPDDHAL_GETVPORTOUTPUTFORMATDATA;
+typedef struct _DDHAL_GETVPORTFIELDDATA        *LPDDHAL_GETVPORTFIELDDATA;
+typedef struct _DDHAL_GETVPORTLINEDATA         *LPDDHAL_GETVPORTLINEDATA;
+typedef struct _DDHAL_DESTROYVPORTDATA         *LPDDHAL_DESTROYVPORTDATA;
+typedef struct _DDHAL_GETVPORTFLIPSTATUSDATA   *LPDDHAL_GETVPORTFLIPSTATUSDATA;
+typedef struct _DDHAL_UPDATEVPORTDATA          *LPDDHAL_UPDATEVPORTDATA;
+typedef struct _DDHAL_WAITFORVPORTSYNCDATA     *LPDDHAL_WAITFORVPORTSYNCDATA;
+typedef struct _DDHAL_GETVPORTSIGNALDATA       *LPDDHAL_GETVPORTSIGNALDATA;
+typedef struct _DDHAL_VPORTCOLORDATA           *LPDDHAL_VPORTCOLORDATA;
+
+typedef DWORD (PASCAL *LPDDHALVPORTCB_CANCREATEVIDEOPORT)(LPDDHAL_CANCREATEVPORTDATA);
+typedef DWORD (PASCAL *LPDDHALVPORTCB_CREATEVIDEOPORT)(LPDDHAL_CREATEVPORTDATA);
+typedef DWORD (PASCAL *LPDDHALVPORTCB_FLIP)(LPDDHAL_FLIPVPORTDATA);
+typedef DWORD (PASCAL *LPDDHALVPORTCB_GETBANDWIDTH)(LPDDHAL_GETVPORTBANDWIDTHDATA);
+typedef DWORD (PASCAL *LPDDHALVPORTCB_GETINPUTFORMATS)(LPDDHAL_GETVPORTINPUTFORMATDATA);
+typedef DWORD (PASCAL *LPDDHALVPORTCB_GETOUTPUTFORMATS)(LPDDHAL_GETVPORTOUTPUTFORMATDATA);
+typedef DWORD (PASCAL *LPDDHALVPORTCB_GETFIELD)(LPDDHAL_GETVPORTFIELDDATA);
+typedef DWORD (PASCAL *LPDDHALVPORTCB_GETLINE)(LPDDHAL_GETVPORTLINEDATA);
+typedef DWORD (PASCAL *LPDDHALVPORTCB_GETVPORTCONNECT)(LPDDHAL_GETVPORTCONNECTDATA);
+typedef DWORD (PASCAL *LPDDHALVPORTCB_DESTROYVPORT)(LPDDHAL_DESTROYVPORTDATA);
+typedef DWORD (PASCAL *LPDDHALVPORTCB_GETFLIPSTATUS)(LPDDHAL_GETVPORTFLIPSTATUSDATA);
+typedef DWORD (PASCAL *LPDDHALVPORTCB_UPDATE)(LPDDHAL_UPDATEVPORTDATA);
+typedef DWORD (PASCAL *LPDDHALVPORTCB_WAITFORSYNC)(LPDDHAL_WAITFORVPORTSYNCDATA);
+typedef DWORD (PASCAL *LPDDHALVPORTCB_GETSIGNALSTATUS)(LPDDHAL_GETVPORTSIGNALDATA);
+typedef DWORD (PASCAL *LPDDHALVPORTCB_COLORCONTROL)(LPDDHAL_VPORTCOLORDATA);
+
+typedef struct _DDHAL_DDVIDEOPORTCALLBACKS {
+  DWORD dwSize;
+  DWORD dwFlags;
+  LPDDHALVPORTCB_CANCREATEVIDEOPORT CanCreateVideoPort;
+  LPDDHALVPORTCB_CREATEVIDEOPORT CreateVideoPort;
+  LPDDHALVPORTCB_FLIP FlipVideoPort;
+  LPDDHALVPORTCB_GETBANDWIDTH GetVideoPortBandwidth;
+  LPDDHALVPORTCB_GETINPUTFORMATS GetVideoPortInputFormats;
+  LPDDHALVPORTCB_GETOUTPUTFORMATS GetVideoPortOutputFormats;
+  LPVOID lpReserved1;
+  LPDDHALVPORTCB_GETFIELD GetVideoPortField;
+  LPDDHALVPORTCB_GETLINE GetVideoPortLine;
+  LPDDHALVPORTCB_GETVPORTCONNECT GetVideoPortConnectInfo;
+  LPDDHALVPORTCB_DESTROYVPORT DestroyVideoPort;
+  LPDDHALVPORTCB_GETFLIPSTATUS GetVideoPortFlipStatus;
+  LPDDHALVPORTCB_UPDATE UpdateVideoPort;
+  LPDDHALVPORTCB_WAITFORSYNC WaitForVideoPortSync;
+  LPDDHALVPORTCB_GETSIGNALSTATUS GetVideoSignalStatus;
+  LPDDHALVPORTCB_COLORCONTROL ColorControl;
+} DDHAL_DDVIDEOPORTCALLBACKS;
+
+typedef struct _DDHAL_COLORCONTROLDATA *LPDDHAL_COLORCONTROLDATA;
+
+typedef DWORD (PASCAL *LPDDHALCOLORCB_COLORCONTROL)(LPDDHAL_COLORCONTROLDATA);
+
+typedef struct _DDHAL_DDCOLORCONTROLCALLBACKS {
+  DWORD dwSize;
+  DWORD dwFlags;
+  LPDDHALCOLORCB_COLORCONTROL ColorControl;
+} DDHAL_DDCOLORCONTROLCALLBACKS;
+
+typedef struct _DDHAL_SYNCSURFACEDATA   *LPDDHAL_SYNCSURFACEDATA;
+typedef struct _DDHAL_SYNCVIDEOPORTDATA *LPDDHAL_SYNCVIDEOPORTDATA;
+
+typedef DWORD (PASCAL *LPDDHALKERNELCB_SYNCSURFACE)(LPDDHAL_SYNCSURFACEDATA);
+typedef DWORD (PASCAL *LPDDHALKERNELCB_SYNCVIDEOPORT)(LPDDHAL_SYNCVIDEOPORTDATA);
+
+typedef struct _DDHAL_DDKERNELCALLBACKS {
+  DWORD dwSize;
+  DWORD dwFlags;
+  LPDDHALKERNELCB_SYNCSURFACE SyncSurfaceData;
+  LPDDHALKERNELCB_SYNCVIDEOPORT SyncVideoPortData;
+} DDHAL_DDKERNELCALLBACKS, *LPDDHAL_DDKERNELCALLBACKS;
+
+typedef struct _DDHAL_GETMOCOMPGUIDSDATA *LPDDHAL_GETMOCOMPGUIDSDATA;
+typedef struct _DDHAL_GETMOCOMPFORMATSDATA *LPDDHAL_GETMOCOMPFORMATSDATA;
+typedef struct _DDHAL_CREATEMOCOMPDATA *LPDDHAL_CREATEMOCOMPDATA;
+typedef struct _DDHAL_GETMOCOMPCOMPBUFFDATA *LPDDHAL_GETMOCOMPCOMPBUFFDATA;
+typedef struct _DDHAL_GETINTERNALMOCOMPDATA *LPDDHAL_GETINTERNALMOCOMPDATA;
+typedef struct _DDHAL_BEGINMOCOMPFRAMEDATA *LPDDHAL_BEGINMOCOMPFRAMEDATA;
+typedef struct _DDHAL_ENDMOCOMPFRAMEDATA *LPDDHAL_ENDMOCOMPFRAMEDATA;
+typedef struct _DDHAL_RENDERMOCOMPDATA *LPDDHAL_RENDERMOCOMPDATA;
+typedef struct _DDHAL_QUERYMOCOMPSTATUSDATA *LPDDHAL_QUERYMOCOMPSTATUSDATA;
+typedef struct _DDHAL_DESTROYMOCOMPDATA *LPDDHAL_DESTROYMOCOMPDATA;
+
+typedef DWORD (PASCAL *LPDDHALMOCOMPCB_GETGUIDS)(LPDDHAL_GETMOCOMPGUIDSDATA);
+typedef DWORD (PASCAL *LPDDHALMOCOMPCB_GETFORMATS)(LPDDHAL_GETMOCOMPFORMATSDATA);
+typedef DWORD (PASCAL *LPDDHALMOCOMPCB_CREATE)(LPDDHAL_CREATEMOCOMPDATA);
+typedef DWORD (PASCAL *LPDDHALMOCOMPCB_GETCOMPBUFFINFO)(LPDDHAL_GETMOCOMPCOMPBUFFDATA);
+typedef DWORD (PASCAL *LPDDHALMOCOMPCB_GETINTERNALINFO)(LPDDHAL_GETINTERNALMOCOMPDATA);
+typedef DWORD (PASCAL *LPDDHALMOCOMPCB_BEGINFRAME)(LPDDHAL_BEGINMOCOMPFRAMEDATA);
+typedef DWORD (PASCAL *LPDDHALMOCOMPCB_ENDFRAME)(LPDDHAL_ENDMOCOMPFRAMEDATA);
+typedef DWORD (PASCAL *LPDDHALMOCOMPCB_RENDER)(LPDDHAL_RENDERMOCOMPDATA);
+typedef DWORD (PASCAL *LPDDHALMOCOMPCB_QUERYSTATUS)(LPDDHAL_QUERYMOCOMPSTATUSDATA);
+typedef DWORD (PASCAL *LPDDHALMOCOMPCB_DESTROY)(LPDDHAL_DESTROYMOCOMPDATA);
+
+typedef struct _DDHAL_DDMOTIONCOMPCALLBACKS {
+  DWORD dwSize;
+  DWORD dwFlags;
+  LPDDHALMOCOMPCB_GETGUIDS GetMoCompGuids;
+  LPDDHALMOCOMPCB_GETFORMATS GetMoCompFormats;
+  LPDDHALMOCOMPCB_CREATE CreateMoComp;
+  LPDDHALMOCOMPCB_GETCOMPBUFFINFO GetMoCompBuffInfo;
+  LPDDHALMOCOMPCB_GETINTERNALINFO GetInternalMoCompInfo;
+  LPDDHALMOCOMPCB_BEGINFRAME BeginMoCompFrame;
+  LPDDHALMOCOMPCB_ENDFRAME EndMoCompFrame;
+  LPDDHALMOCOMPCB_RENDER RenderMoComp;
+  LPDDHALMOCOMPCB_QUERYSTATUS QueryMoCompStatus;
+  LPDDHALMOCOMPCB_DESTROY DestroyMoComp;
+} DDHAL_DDMOTIONCOMPCALLBACKS, *LPDDHAL_DDMOTIONCOMPCALLBACKS;
+
+typedef HRESULT (WINAPI *LPDDGAMMACALIBRATORPROC)(LPDDGAMMARAMP, LPBYTE);
+
+/*****************************************************************************
+ * driver info structure
+ *
+ * The HAL is queried for additional callbacks via the GetDriverInfo callback.
+ */
+typedef struct _DDHAL_GETDRIVERINFODATA *LPDDHAL_GETDRIVERINFODATA;
+typedef DWORD (PASCAL *LPDDHAL_GETDRIVERINFO)(LPDDHAL_GETDRIVERINFODATA);
+
+typedef struct _DDHAL_GETDRIVERINFODATA {
+  DWORD dwSize;
+  DWORD dwFlags;
+  GUID guidInfo;
+  DWORD dwExpectedSize;
+  LPVOID lpvData;
+  DWORD dwActualSize;
+  HRESULT ddRVal;
+  ULONG_PTR dwContext;
+} DDHAL_GETDRIVERINFODATA;
+
+typedef struct _DDHALINFO {
+  DWORD dwSize;
+  LPDDHAL_DDCALLBACKS lpDDCallbacks;
+  LPDDHAL_DDSURFACECALLBACKS lpDDSurfaceCallbacks;
+  LPDDHAL_DDPALETTECALLBACKS lpDDPaletteCallbacks;
+  VIDMEMINFO vmiData;
+  DDCORECAPS ddCaps;
+  DWORD dwMonitorFrequency;
+  LPDDHAL_GETDRIVERINFO GetDriverInfo;
+  DWORD dwModeIndex;
+  LPDWORD lpdwFourCC;
+  DWORD dwNumModes;
+  LPDDHALMODEINFO lpModeInfo;
+  DWORD dwFlags;
+  LPVOID lpPDevice;
+  DWORD hInstance;
+  /* DirectX 2 */
+  ULONG_PTR lpD3DGlobalDriverData;
+  ULONG_PTR lpD3DHALCallbacks;
+  LPDDHAL_DDEXEBUFCALLBACKS lpDDExeBufCallbacks;
+} DDHALINFO;
+
+#define DDPALETTECALLBACKSSIZE sizeof(DDHAL_DDPALETTECALLBACKS)
+#define DDSURFACECALLBACKSSIZE sizeof(DDHAL_DDSURFACECALLBACKS)
+#define DDMISCELLANEOUSCALLBACKSSIZE sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS)
+#define DDMISCELLANEOUS2CALLBACKSSIZE sizeof(DDHAL_DDMISCELLANEOUS2CALLBACKS)
+#define DDEXEBUFCALLBACKSSIZE sizeof(DDHAL_DDEXEBUFCALLBACKS)
+#define DDVIDEOPORTCALLBACKSSIZE sizeof(DDHAL_DDVIDEOPORTCALLBACKS)
+#define DDCOLORCONTROLCALLBACKSSIZE sizeof(DDHAL_DDCOLORCONTROLCALLBACKS)
+#define DDKERNELCALLBACKSSIZE sizeof(DDHAL_DDKERNELCALLBACKS)
+#define DDMOTIONCOMPCALLBACKSSIZE sizeof(DDHAL_DDMOTIONCOMPCALLBACKS)
+
+#define MAX_PALETTE_SIZE                    256
+
+#define MAX_AUTOFLIP_BUFFERS                10
+#define DDSCAPS2_INDEXBUFFER                DDSCAPS2_RESERVED3
+#define DDSCAPS3_VIDEO                      DDSCAPS3_RESERVED2
+#define D3DFMT_INTERNAL_D32                 71
+#define D3DFMT_INTERNAL_S1D15               72
+#define D3DFMT_INTERNAL_D15S1               73
+#define D3DFMT_INTERNAL_S8D24               74
+#define D3DFMT_INTERNAL_D24S8               75
+#define D3DFMT_INTERNAL_X8D24               76
+#define D3DFMT_INTERNAL_D24X8               77
+#define DDHAL_PLEASEALLOC_BLOCKSIZE         0x00000002l
+#define DDHAL_PLEASEALLOC_LINEARSIZE        0x00000003l
+
+#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_SETEXCLUSIVEMODE         0x00000100l
+#define DDHAL_CB32_FLIPTOGDISURFACE         0x00000200l
+#define DDHAL_PALCB32_DESTROYPALETTE        0x00000001l
+#define DDHAL_PALCB32_SETENTRIES            0x00000002l
+#define DDHALINFO_ISPRIMARYDISPLAY          0x00000001
+#define DDHALINFO_MODEXILLEGAL              0x00000002
+#define DDHALINFO_GETDRIVERINFOSET          0x00000004
+#define DDHALINFO_GETDRIVERINFO2            0x00000008
+#define DDRAWI_VPORTSTART                   0x0001
+#define DDRAWI_VPORTSTOP                    0x0002
+#define DDRAWI_VPORTUPDATE                  0x0003
+#define DDRAWI_VPORTGETCOLOR                0x0001
+#define DDRAWI_VPORTSETCOLOR                0x0002
+#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
+#define DDHAL_MISCCB32_GETAVAILDRIVERMEMORY 0x00000001
+#define DDHAL_MISCCB32_UPDATENONLOCALHEAP   0x00000002
+#define DDHAL_MISCCB32_GETHEAPALIGNMENT     0x00000004
+#define DDHAL_MISCCB32_GETSYSMEMBLTSTATUS   0x00000008
+#define DDHAL_MISC2CB32_ALPHABLT            0x00000001
+#define DDHAL_MISC2CB32_CREATESURFACEEX     0x00000002
+#define DDHAL_MISC2CB32_GETDRIVERSTATE      0x00000004
+#define DDHAL_MISC2CB32_DESTROYDDLOCAL      0x00000008
+#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_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
+#define DDHAL_COLOR_COLORCONTROL            0x00000001
+#define DDHAL_KERNEL_SYNCSURFACEDATA        0x00000001l
+#define DDHAL_KERNEL_SYNCVIDEOPORTDATA      0x00000002l
+#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
+
+/* where the high-level ddraw implementation stores the callbacks */
+typedef struct _DDHAL_CALLBACKS {
+  DDHAL_DDCALLBACKS cbDDCallbacks;
+  DDHAL_DDSURFACECALLBACKS cbDDSurfaceCallbacks;
+  DDHAL_DDPALETTECALLBACKS cbDDPaletteCallbacks;
+  DDHAL_DDCALLBACKS HALDD;
+  DDHAL_DDSURFACECALLBACKS HALDDSurface;
+  DDHAL_DDPALETTECALLBACKS HALDDPalette;
+  DDHAL_DDCALLBACKS HELDD;
+  DDHAL_DDSURFACECALLBACKS HELDDSurface;
+  DDHAL_DDPALETTECALLBACKS HELDDPalette;
+  DDHAL_DDEXEBUFCALLBACKS cbDDExeBufCallbacks;
+  DDHAL_DDEXEBUFCALLBACKS HALDDExeBuf;
+  DDHAL_DDEXEBUFCALLBACKS HELDDExeBuf;
+  DDHAL_DDVIDEOPORTCALLBACKS cbDDVideoPortCallbacks;
+  DDHAL_DDVIDEOPORTCALLBACKS HALDDVideoPort;
+  DDHAL_DDCOLORCONTROLCALLBACKS cbDDColorControlCallbacks;
+  DDHAL_DDCOLORCONTROLCALLBACKS HALDDColorControl;
+  DDHAL_DDMISCELLANEOUSCALLBACKS cbDDMiscellaneousCallbacks;
+  DDHAL_DDMISCELLANEOUSCALLBACKS HALDDMiscellaneous;
+  DDHAL_DDKERNELCALLBACKS cbDDKernelCallbacks;
+  DDHAL_DDKERNELCALLBACKS HALDDKernel;
+  DDHAL_DDMOTIONCOMPCALLBACKS cbDDMotionCompCallbacks;
+  DDHAL_DDMOTIONCOMPCALLBACKS HALDDMotionComp;
+} DDHAL_CALLBACKS, *LPDDHAL_CALLBACKS;
+
+/*****************************************************************************
+ * parameter structures
+ */
+typedef struct _DDHAL_DESTROYDRIVERDATA {
+  LPDDRAWI_DIRECTDRAW_GBL lpDD;
+  HRESULT ddRVal;
+  LPDDHAL_DESTROYDRIVER DestroyDriver;
+} DDHAL_DESTROYDRIVERDATA;
+
+typedef struct _DDHAL_SETMODEDATA {
+  LPDDRAWI_DIRECTDRAW_GBL lpDD;
+  DWORD dwModeIndex;
+  HRESULT ddRVal;
+  LPDDHAL_SETMODE SetMode;
+  BOOL inexcl;
+  BOOL useRefreshRate;
+} DDHAL_SETMODEDATA;
+
+typedef struct _DDHAL_CREATESURFACEDATA {
+  LPDDRAWI_DIRECTDRAW_GBL lpDD;
+  LPDDSURFACEDESC lpDDSurfaceDesc;
+  LPDDRAWI_DDRAWSURFACE_LCL *lplpSList;
+  DWORD dwSCnt;
+  HRESULT ddRVal;
+  LPDDHAL_CREATESURFACE CreateSurface;
+} DDHAL_CREATESURFACEDATA;
+
+typedef struct _DDHAL_CANCREATESURFACEDATA {
+  LPDDRAWI_DIRECTDRAW_GBL lpDD;
+  LPDDSURFACEDESC lpDDSurfaceDesc;
+  DWORD bIsDifferentPixelFormat;
+  HRESULT ddRVal;
+  LPDDHAL_CANCREATESURFACE CanCreateSurface;
+} DDHAL_CANCREATESURFACEDATA;
+
+typedef struct _DDHAL_CREATEPALETTEDATA {
+  LPDDRAWI_DIRECTDRAW_GBL lpDD;
+  LPDDRAWI_DDRAWPALETTE_GBL lpDDPalette;
+  LPPALETTEENTRY lpColorTable;
+  HRESULT ddRVal;
+  LPDDHAL_CREATEPALETTE CreatePalette;
+  BOOL is_excl;
+} DDHAL_CREATEPALETTEDATA;
+
+typedef struct _DDHAL_SETEXCLUSIVEMODEDATA {
+  LPDDRAWI_DIRECTDRAW_GBL lpDD;
+  DWORD dwEnterExcl;
+  DWORD dwReserved;
+  HRESULT ddRVal;
+  LPDDHAL_SETEXCLUSIVEMODE SetExclusiveMode;
+} DDHAL_SETEXCLUSIVEMODEDATA;
+
+/* surfaces */
+typedef struct _DDHAL_DESTROYSURFACEDATA {
+  LPDDRAWI_DIRECTDRAW_GBL lpDD;
+  LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface;
+  HRESULT ddRVal;
+  LPDDHALSURFCB_DESTROYSURFACE DestroySurface;
+} DDHAL_DESTROYSURFACEDATA;
+
+typedef struct _DDHAL_FLIPDATA {
+  LPDDRAWI_DIRECTDRAW_GBL lpDD;
+  LPDDRAWI_DDRAWSURFACE_LCL lpSurfCurr;
+  LPDDRAWI_DDRAWSURFACE_LCL lpSurfTarg;
+  DWORD dwFlags;
+  HRESULT ddRVal;
+  LPDDHALSURFCB_FLIP Flip;
+  LPDDRAWI_DDRAWSURFACE_LCL lpSurfCurrLeft;
+  LPDDRAWI_DDRAWSURFACE_LCL lpSurfTargLeft;
+} DDHAL_FLIPDATA;
+
+typedef struct _DDHAL_LOCKDATA {
+  LPDDRAWI_DIRECTDRAW_GBL lpDD;
+  LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface;
+  DWORD bHasRect;
+  RECTL rArea;
+  LPVOID lpSurfData;
+  HRESULT ddRVal;
+  LPDDHALSURFCB_LOCK Lock;
+  DWORD dwFlags;
+} DDHAL_LOCKDATA;
+
+typedef struct _DDHAL_UNLOCKDATA {
+  LPDDRAWI_DIRECTDRAW_GBL lpDD;
+  LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface;
+  HRESULT ddRVal;
+  LPDDHALSURFCB_UNLOCK Unlock;
+} DDHAL_UNLOCKDATA;
+
+typedef struct _DDHAL_BLTDATA {
+  LPDDRAWI_DIRECTDRAW_GBL lpDD;
+  LPDDRAWI_DDRAWSURFACE_LCL lpDDDestSurface;
+  RECTL rDest;
+  LPDDRAWI_DDRAWSURFACE_LCL lpDDSrcSurface;
+  RECTL rSrc;
+  DWORD dwFlags;
+  DWORD dwROPFlags;
+  DDBLTFX bltFX;
+  HRESULT ddRVal;
+  LPDDHALSURFCB_BLT Blt;
+  BOOL IsClipped;
+  RECTL rOrigDest;
+  RECTL rOrigSrc;
+  DWORD dwRectCnt;
+  LPRECT prDestRects;
+} DDHAL_BLTDATA;
+
+typedef struct _DDHAL_SETPALETTEDATA {
+  LPDDRAWI_DIRECTDRAW_GBL lpDD;
+  LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface;
+  LPDDRAWI_DDRAWPALETTE_GBL lpDDPalette;
+  HRESULT ddRVal;
+  LPDDHALSURFCB_SETPALETTE SetPalette;
+  BOOL Attach;
+} DDHAL_SETPALETTEDATA;
+
+/* palettes */
+typedef struct _DDHAL_DESTROYPALETTEDATA {
+  LPDDRAWI_DIRECTDRAW_GBL lpDD;
+  LPDDRAWI_DDRAWPALETTE_GBL lpDDPalette;
+  HRESULT ddRVal;
+  LPDDHALPALCB_DESTROYPALETTE DestroyPalette;
+} DDHAL_DESTROYPALETTEDATA;
+
+typedef struct _DDHAL_SETENTRIESDATA {
+  LPDDRAWI_DIRECTDRAW_GBL lpDD;
+  LPDDRAWI_DDRAWPALETTE_GBL lpDDPalette;
+  DWORD dwBase;
+  DWORD dwNumEntries;
+  LPPALETTEENTRY lpEntries;
+  HRESULT ddRVal;
+  LPDDHALPALCB_SETENTRIES SetEntries;
+} DDHAL_SETENTRIESDATA;
+
+typedef struct _DDHAL_CANCREATEVPORTDATA {
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  LPDDVIDEOPORTDESC lpDDVideoPortDesc;
+  HRESULT ddRVal;
+  LPDDHALVPORTCB_CANCREATEVIDEOPORT CanCreateVideoPort;
+} DDHAL_CANCREATEVPORTDATA;
+
+typedef struct _DDHAL_CREATEVPORTDATA {
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  LPDDVIDEOPORTDESC lpDDVideoPortDesc;
+  LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
+  HRESULT ddRVal;
+  LPDDHALVPORTCB_CREATEVIDEOPORT CreateVideoPort;
+} DDHAL_CREATEVPORTDATA;
+
+typedef struct _DDHAL_GETVPORTBANDWIDTHDATA {
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
+  LPDDPIXELFORMAT lpddpfFormat;
+  DWORD dwWidth;
+  DWORD dwHeight;
+  DWORD dwFlags;
+  LPDDVIDEOPORTBANDWIDTH lpBandwidth;
+  HRESULT ddRVal;
+  LPDDHALVPORTCB_GETBANDWIDTH GetVideoPortBandwidth;
+} DDHAL_GETVPORTBANDWIDTHDATA;
+
+typedef struct _DDHAL_GETVPORTINPUTFORMATDATA {
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
+  DWORD dwFlags;
+  LPDDPIXELFORMAT lpddpfFormat;
+  DWORD dwNumFormats;
+  HRESULT ddRVal;
+  LPDDHALVPORTCB_GETINPUTFORMATS GetVideoPortInputFormats;
+} DDHAL_GETVPORTINPUTFORMATDATA;
+
+typedef struct _DDHAL_GETVPORTFIELDDATA {
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
+  BOOL bField;
+  HRESULT ddRVal;
+  LPDDHALVPORTCB_GETFIELD GetVideoPortField;
+} DDHAL_GETVPORTFIELDDATA;
+
+typedef struct _DDHAL_GETVPORTOUTPUTFORMATDATA {
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
+  DWORD dwFlags;
+  LPDDPIXELFORMAT lpddpfInputFormat;
+  LPDDPIXELFORMAT lpddpfOutputFormats;
+  DWORD dwNumFormats;
+  HRESULT ddRVal;
+  LPDDHALVPORTCB_GETOUTPUTFORMATS GetVideoPortOutputFormats;
+} DDHAL_GETVPORTOUTPUTFORMATDATA;
+
+typedef struct _DDHAL_GETVPORTLINEDATA {
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
+  DWORD dwLine;
+  HRESULT ddRVal;
+  LPDDHALVPORTCB_GETLINE GetVideoPortLine;
+} DDHAL_GETVPORTLINEDATA;
+
+typedef struct _DDHAL_DESTROYVPORTDATA {
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
+  HRESULT ddRVal;
+  LPDDHALVPORTCB_DESTROYVPORT DestroyVideoPort;
+} DDHAL_DESTROYVPORTDATA;
+
+typedef struct _DDHAL_GETVPORTFLIPSTATUSDATA {
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  FLATPTR fpSurface;
+  HRESULT ddRVal;
+  LPDDHALVPORTCB_GETFLIPSTATUS GetVideoPortFlipStatus;
+} DDHAL_GETVPORTFLIPSTATUSDATA;
+
+typedef struct _DDHAL_UPDATEVPORTDATA {
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
+  LPDDRAWI_DDRAWSURFACE_INT *lplpDDSurface;
+  LPDDRAWI_DDRAWSURFACE_INT *lplpDDVBISurface;
+  LPDDVIDEOPORTINFO lpVideoInfo;
+  DWORD dwFlags;
+  DWORD dwNumAutoflip;
+  DWORD dwNumVBIAutoflip;
+  HRESULT ddRVal;
+  LPDDHALVPORTCB_UPDATE UpdateVideoPort;
+} DDHAL_UPDATEVPORTDATA;
+
+typedef struct _DDHAL_WAITFORVPORTSYNCDATA {
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
+  DWORD dwFlags;
+  DWORD dwLine;
+  DWORD dwTimeOut;
+  HRESULT ddRVal;
+  LPDDHALVPORTCB_WAITFORSYNC WaitForVideoPortSync;
+} DDHAL_WAITFORVPORTSYNCDATA;
+
+typedef struct _DDHAL_GETVPORTSIGNALDATA {
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
+  DWORD dwStatus;
+  HRESULT ddRVal;
+  LPDDHALVPORTCB_GETSIGNALSTATUS GetVideoSignalStatus;
+} DDHAL_GETVPORTSIGNALDATA;
+
+typedef struct _DDHAL_VPORTCOLORDATA {
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
+  DWORD dwFlags;
+  LPDDCOLORCONTROL lpColorData;
+  HRESULT ddRVal;
+  LPDDHALVPORTCB_COLORCONTROL ColorControl;
+} DDHAL_VPORTCOLORDATA;
+
+typedef struct _DDHAL_FLIPVPORTDATA {
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
+  LPDDRAWI_DDRAWSURFACE_LCL lpSurfCurr;
+  LPDDRAWI_DDRAWSURFACE_LCL lpSurfTarg;
+  HRESULT ddRVal;
+  LPDDHALVPORTCB_FLIP FlipVideoPort;
+} DDHAL_FLIPVPORTDATA;
+
+typedef struct _DDHAL_GETVPORTCONNECTDATA {
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  DWORD dwPortId;
+  LPDDVIDEOPORTCONNECT lpConnect;
+  DWORD dwNumEntries;
+  HRESULT ddRVal;
+  LPDDHALVPORTCB_GETVPORTCONNECT GetVideoPortConnectInfo;
+} DDHAL_GETVPORTCONNECTDATA;
+
+typedef struct _DDHAL_SYNCSURFACEDATA {
+  DWORD dwSize;
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface;
+  DWORD dwSurfaceOffset;
+  ULONG_PTR fpLockPtr;
+  LONG lPitch;
+  DWORD dwOverlayOffset;
+  DWORD dwOverlaySrcWidth;
+  DWORD dwOverlaySrcHeight;
+  DWORD dwOverlayDestWidth;
+  DWORD dwOverlayDestHeight;
+  ULONG_PTR dwDriverReserved1;
+  ULONG_PTR dwDriverReserved2;
+  ULONG_PTR dwDriverReserved3;
+  HRESULT ddRVal;
+} DDHAL_SYNCSURFACEDATA;
+
+typedef struct _DDHAL_SYNCVIDEOPORTDATA {
+  DWORD dwSize;
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
+  DWORD dwOriginOffset;
+  DWORD dwHeight;
+  DWORD dwVBIHeight;
+  ULONG_PTR dwDriverReserved1;
+  ULONG_PTR dwDriverReserved2;
+  ULONG_PTR dwDriverReserved3;
+  HRESULT ddRVal;
+} DDHAL_SYNCVIDEOPORTDATA;
+
+typedef struct _DDHAL_DESTROYDDLOCALDATA {
+  DWORD dwFlags;
+  LPDDRAWI_DIRECTDRAW_LCL pDDLcl;
+  HRESULT ddRVal;
+} DDHAL_DESTROYDDLOCALDATA;
+
+typedef struct _DDHAL_CREATESURFACEEXDATA {
+  DWORD dwFlags;
+  LPDDRAWI_DIRECTDRAW_LCL lpDDLcl;
+  LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl;
+  HRESULT ddRVal;
+} DDHAL_CREATESURFACEEXDATA;
+
+typedef struct _DDHAL_GETHEAPALIGNMENTDATA {
+  ULONG_PTR dwInstance;
+  DWORD dwHeap;
+  HRESULT ddRVal;
+  LPDDHAL_GETHEAPALIGNMENT GetHeapAlignment;
+  HEAPALIGNMENT Alignment;
+} DDHAL_GETHEAPALIGNMENTDATA;
+
+typedef struct _DDMORESURFACECAPS {
+  DWORD dwSize;
+  DDSCAPSEX ddsCapsMore;
+  struct tagExtendedHeapRestrictions {
+    DDSCAPSEX ddsCapsEx;
+    DDSCAPSEX ddsCapsExAlt;
+  } ddsExtendedHeapRestrictions[1];
+} DDMORESURFACECAPS, *LPDDMORESURFACECAPS;
+
+typedef struct _DDSTEREOMODE {
+  DWORD dwSize;
+  DWORD dwHeight;
+  DWORD dwWidth;
+  DWORD dwBpp;
+  DWORD dwRefreshRate;
+  BOOL bSupported;
+} DDSTEREOMODE, *LPDDSTEREOMODE;
+
+/*****************************************************************************
+ * high-level ddraw implementation structures
+ */
+typedef struct _IUNKNOWN_LIST {
+  struct _IUNKNOWN_LIST *lpLink;
+  LPGUID lpGuid;
+#ifndef _NO_COM
+  IUnknown *lpIUnknown;
+#else
+  LPVOID lpIUnknown;
+#endif /* _NO_COM */
+} IUNKNOWN_LIST, *LPIUNKNOWN_LIST;
+
+typedef struct _PROCESS_LIST {
+  struct _PROCESS_LIST *lpLink;
+  DWORD dwProcessId;
+  DWORD dwRefCnt;
+  DWORD dwAlphaDepth;
+  DWORD dwZDepth;
+} PROCESS_LIST, *LPPROCESS_LIST;
+
+typedef struct _ATTACHLIST {
+  DWORD dwFlags;
+  struct _ATTACHLIST *lpLink;
+  LPDDRAWI_DDRAWSURFACE_LCL lpAttached;
+  LPDDRAWI_DDRAWSURFACE_INT lpIAttached;
+} ATTACHLIST, *LPATTACHLIST;
+
+#define DDAL_IMPLICIT 0x00000001
+
+typedef struct _ACCESSRECTLIST {
+  struct _ACCESSRECTLIST *lpLink;
+  RECT rDest;
+  LPDDRAWI_DIRECTDRAW_LCL lpOwner;
+  LPVOID lpSurfaceData;
+  DWORD dwFlags;
+  LPHEAPALIASINFO lpHeapAliasInfo;
+} ACCESSRECTLIST, *LPACCESSRECTLIST;
+
+#define ACCESSRECT_VRAMSTYLE           0x00000001
+#define ACCESSRECT_NOTHOLDINGWIN16LOCK 0x00000002
+#define ACCESSRECT_BROKEN              0x00000004
+
+typedef struct _DBLNODE {
+  struct _DBLNODE *next;
+  struct _DBLNODE *prev;
+  LPDDRAWI_DDRAWSURFACE_LCL object;
+  LPDDRAWI_DDRAWSURFACE_INT object_int;
+} DBLNODE, *LPDBLNODE;
+
+typedef struct _DDRAWI_DIRECTDRAW_INT {
+  LPVOID lpVtbl;
+  LPDDRAWI_DIRECTDRAW_LCL lpLcl;
+  LPDDRAWI_DIRECTDRAW_INT lpLink;
+  DWORD dwIntRefCnt;
+} DDRAWI_DIRECTDRAW_INT;
+
+typedef struct _DDRAWI_DIRECTDRAW_LCL {
+  DWORD lpDDMore;
+  LPDDRAWI_DIRECTDRAW_GBL lpGbl;
+  DWORD dwUnused0;
+  DWORD dwLocalFlags;
+  DWORD dwLocalRefCnt;
+  DWORD dwProcessId;
+#ifndef _NO_COM
+  IUnknown *pUnkOuter;
+#else
+  PVOID pUnkOuter;
+#endif
+  DWORD dwObsolete1;
+  ULONG_PTR hWnd;
+  ULONG_PTR hDC;
+  DWORD dwErrorMode;
+  LPDDRAWI_DDRAWSURFACE_INT lpPrimary;
+  LPDDRAWI_DDRAWSURFACE_INT lpCB;
+  DWORD dwPreferredMode;
+  /* DirectX 2 */
+  HINSTANCE hD3DInstance;
+#ifndef _NO_COM
+  IUnknown *pD3DIUnknown;
+#else
+  PVOID pD3DIUnknown;
+#endif
+  LPDDHAL_CALLBACKS lpDDCB;
+  ULONG_PTR hDDVxd;
+  /* DirectX 5.0 */
+  DWORD dwAppHackFlags;
+  /* DirectX 5.0A */
+  ULONG_PTR hFocusWnd;
+  DWORD dwHotTracking;
+  DWORD dwIMEState;
+  /* DirectX 6.0 */
+  ULONG_PTR hWndPopup;
+  ULONG_PTR hDD;
+  ULONG_PTR hGammaCalibrator;
+  LPDDGAMMACALIBRATORPROC lpGammaCalibrator;
+} DDRAWI_DIRECTDRAW_LCL;
+
+#define DDRAWILCL_HASEXCLUSIVEMODE    0x00000001
+#define DDRAWILCL_ISFULLSCREEN        0x00000002
+#define DDRAWILCL_SETCOOPCALLED       0x00000004
+#define DDRAWILCL_ACTIVEYES           0x00000008
+#define DDRAWILCL_ACTIVENO            0x00000010
+#define DDRAWILCL_HOOKEDHWND          0x00000020
+#define DDRAWILCL_ALLOWMODEX          0x00000040
+#define DDRAWILCL_V1SCLBEHAVIOUR      0x00000080
+#define DDRAWILCL_MODEHASBEENCHANGED  0x00000100
+#define DDRAWILCL_CREATEDWINDOW       0x00000200
+#define DDRAWILCL_DIRTYDC             0x00000400
+#define DDRAWILCL_DISABLEINACTIVATE   0x00000800
+#define DDRAWILCL_CURSORCLIPPED       0x00001000
+#define DDRAWILCL_EXPLICITMONITOR     0x00002000
+#define DDRAWILCL_MULTITHREADED       0x00004000
+#define DDRAWILCL_FPUSETUP            0x00008000
+#define DDRAWILCL_POWEREDDOWN         0x00010000
+#define DDRAWILCL_DIRECTDRAW7         0x00020000
+#define DDRAWILCL_ATTEMPTEDD3DCONTEXT 0x00040000
+#define DDRAWILCL_FPUPRESERVE         0x00080000
+#define DDRAWILCL_DX8DRIVER           0x00100000
+#define DDRAWILCL_DIRECTDRAW8         0x00200000
+
+typedef struct _DDRAWI_DIRECTDRAW_GBL {
+  DWORD dwRefCnt;
+  DWORD dwFlags;
+  FLATPTR fpPrimaryOrig;
+  DDCORECAPS ddCaps;
+  DWORD dwInternal1;
+  DWORD dwUnused1[9];
+  LPDDHAL_CALLBACKS lpDDCBtmp;
+  LPDDRAWI_DDRAWSURFACE_INT dsList;
+  LPDDRAWI_DDRAWPALETTE_INT palList;
+  LPDDRAWI_DDRAWCLIPPER_INT clipperList;
+  LPDDRAWI_DIRECTDRAW_GBL lp16DD;
+  DWORD dwMaxOverlays;
+  DWORD dwCurrOverlays;
+  DWORD dwMonitorFrequency;
+  DDCORECAPS ddHELCaps;
+  DWORD dwUnused2[50];
+  DDCOLORKEY ddckCKDestOverlay;
+  DDCOLORKEY ddckCKSrcOverlay;
+  VIDMEMINFO vmiData;
+  LPVOID lpDriverHandle;
+  LPDDRAWI_DIRECTDRAW_LCL lpExclusiveOwner;
+  DWORD dwModeIndex;
+  DWORD dwModeIndexOrig;
+  DWORD dwNumFourCC;
+  LPDWORD lpdwFourCC;
+  DWORD dwNumModes;
+  LPDDHALMODEINFO lpModeInfo;
+  PROCESS_LIST plProcessList;
+  DWORD dwSurfaceLockCount;
+  DWORD dwAliasedLockCnt;
+  ULONG_PTR dwReserved3;
+  ULONG_PTR hDD;
+  char cObsolete[12];
+  DWORD dwReserved1;
+  DWORD dwReserved2;
+  DBLNODE dbnOverlayRoot;
+  volatile LPWORD lpwPDeviceFlags;
+  DWORD dwPDevice;
+  DWORD dwWin16LockCnt;
+  DWORD dwUnused3;
+  DWORD hInstance;
+  DWORD dwEvent16;
+  DWORD dwSaveNumModes;
+  /* DirectX 2 */
+  ULONG_PTR lpD3DGlobalDriverData;
+  ULONG_PTR lpD3DHALCallbacks;
+  DDCORECAPS ddBothCaps;
+  /* DirectX 5.0 */
+  LPDDVIDEOPORTCAPS lpDDVideoPortCaps;
+  LPDDRAWI_DDVIDEOPORT_INT dvpList;
+  ULONG_PTR lpD3DHALCallbacks2;
+  RECT rectDevice;
+  DWORD cMonitors;
+  LPVOID gpbmiSrc;
+  LPVOID gpbmiDest;
+  LPHEAPALIASINFO phaiHeapAliases;
+  ULONG_PTR hKernelHandle;
+  ULONG_PTR pfnNotifyProc;
+  LPDDKERNELCAPS lpDDKernelCaps;
+  LPDDNONLOCALVIDMEMCAPS lpddNLVCaps;
+  LPDDNONLOCALVIDMEMCAPS lpddNLVHELCaps;
+  LPDDNONLOCALVIDMEMCAPS lpddNLVBothCaps;
+  ULONG_PTR lpD3DExtendedCaps;
+  /* DirectX 5.0A */
+  DWORD dwDOSBoxEvent;
+  RECT rectDesktop;
+  char cDriverName[MAX_DRIVER_NAME];
+  /* DirectX 6.0 */
+  ULONG_PTR lpD3DHALCallbacks3;
+  DWORD dwNumZPixelFormats;
+  LPDDPIXELFORMAT lpZPixelFormats;
+  LPDDRAWI_DDMOTIONCOMP_INT mcList;
+  DWORD hDDVxd;
+  DDSCAPSEX ddsCapsMore;
+} DDRAWI_DIRECTDRAW_GBL;
+
+#define DDRAWI_xxxxxxxxx1              0x00000001
+#define DDRAWI_xxxxxxxxx2              0x00000002
+#define DDRAWI_VIRTUALDESKTOP          0x00000008
+#define DDRAWI_MODEX                   0x00000010
+#define DDRAWI_DISPLAYDRV              0x00000020
+#define DDRAWI_FULLSCREEN              0x00000040
+#define DDRAWI_MODECHANGED             0x00000080
+#define DDRAWI_NOHARDWARE              0x00000100
+#define DDRAWI_PALETTEINIT             0x00000200
+#define DDRAWI_NOEMULATION             0x00000400
+#define DDRAWI_HASCKEYDESTOVERLAY      0x00000800
+#define DDRAWI_HASCKEYSRCOVERLAY       0x00001000
+#define DDRAWI_HASGDIPALETTE           0x00002000
+#define DDRAWI_EMULATIONINITIALIZED    0x00004000
+#define DDRAWI_HASGDIPALETTE_EXCLUSIVE 0x00008000
+#define DDRAWI_MODEXILLEGAL            0x00010000
+#define DDRAWI_FLIPPEDTOGDI            0x00020000
+#define DDRAWI_NEEDSWIN16FORVRAMLOCK   0x00040000
+#define DDRAWI_PDEVICEVRAMBITCLEARED   0x00080000
+#define DDRAWI_STANDARDVGA             0x00100000
+#define DDRAWI_EXTENDEDALIGNMENT       0x00200000
+#define DDRAWI_CHANGINGMODE            0x00400000
+#define DDRAWI_GDIDRV                  0x00800000
+#define DDRAWI_ATTACHEDTODESKTOP       0x01000000
+#define DDRAWI_UMODELOADED             0x02000000
+#define DDRAWI_DDRAWDATANOTFETCHED     0x04000000
+#define DDRAWI_SECONDARYDRIVERLOADED   0x08000000
+#define DDRAWI_TESTINGMODES            0x10000000
+#define DDRAWI_DRIVERINFO2             0x20000000
+#define DDRAWI_BADPDEV                 0x40000000
+
+/* surfaces */
+typedef struct _DDRAWI_DDRAWSURFACE_INT {
+  LPVOID lpVtbl;
+  LPDDRAWI_DDRAWSURFACE_LCL lpLcl;
+  LPDDRAWI_DDRAWSURFACE_INT lpLink;
+  DWORD dwIntRefCnt;
+} DDRAWI_DDRAWSURFACE_INT;
+
+typedef struct _DDRAWI_DDRAWSURFACE_GBL {
+  DWORD dwRefCnt;
+  DWORD dwGlobalFlags;
+  __GNU_EXTENSION union {
+    LPACCESSRECTLIST lpRectList;
+    DWORD dwBlockSizeY;
+    LONG lSlicePitch;
+  };
+  __GNU_EXTENSION union {
+    LPVMEMHEAP lpVidMemHeap;
+    DWORD dwBlockSizeX;
+  };
+  __GNU_EXTENSION union {
+    LPDDRAWI_DIRECTDRAW_GBL lpDD;
+    LPVOID lpDDHandle;
+  };
+  FLATPTR fpVidMem;
+  __GNU_EXTENSION union {
+    LONG lPitch;
+    DWORD dwLinearSize;
+  };
+  WORD wHeight;
+  WORD wWidth;
+  DWORD dwUsageCount;
+  ULONG_PTR dwReserved1;
+  DDPIXELFORMAT ddpfSurface;
+} DDRAWI_DDRAWSURFACE_GBL;
+
+#define DDRAWISURFGBL_MEMFREE                    0x00000001L
+#define DDRAWISURFGBL_SYSMEMREQUESTED            0x00000002L
+#define DDRAWISURFGBL_ISGDISURFACE               0x00000004L
+#define DDRAWISURFGBL_SOFTWAREAUTOFLIP           0x00000008L
+#define DDRAWISURFGBL_LOCKNOTHOLDINGWIN16LOCK    0x00000010L
+#define DDRAWISURFGBL_LOCKVRAMSTYLE              0x00000020L
+#define DDRAWISURFGBL_LOCKBROKEN                 0x00000040L
+#define DDRAWISURFGBL_IMPLICITHANDLE             0x00000080L
+#define DDRAWISURFGBL_ISCLIENTMEM                0x00000100L
+#define DDRAWISURFGBL_HARDWAREOPSOURCE           0x00000200L
+#define DDRAWISURFGBL_HARDWAREOPDEST             0x00000400L
+#define DDRAWISURFGBL_HARDWAREOPSTARTED (DDRAWISURFGBL_HARDWAREOPSOURCE|DDRAWISURFGBL_HARDWAREOPDEST)
+#define DDRAWISURFGBL_VPORTINTERLEAVED           0x00000800L
+#define DDRAWISURFGBL_VPORTDATA                  0x00001000L
+#define DDRAWISURFGBL_LATEALLOCATELINEAR         0x00002000L
+#define DDRAWISURFGBL_SYSMEMEXECUTEBUFFER        0x00004000L
+#define DDRAWISURFGBL_FASTLOCKHELD               0x00008000L
+#define DDRAWISURFGBL_READONLYLOCKHELD           0x00010000L
+#define DDRAWISURFGBL_DX8SURFACE                 0x00080000L
+#define DDRAWISURFGBL_DDHELDONTFREE              0x00100000L
+#define DDRAWISURFGBL_NOTIFYWHENUNLOCKED         0x00200000L
+#define DDRAWISURFGBL_RESERVED0                  0x80000000L // Reserved flag
+
+typedef struct _DDRAWI_DDRAWSURFACE_GBL_MORE {
+  DWORD dwSize;
+  __GNU_EXTENSION union {
+    DWORD dwPhysicalPageTable;
+    FLATPTR fpPhysicalVidMem;
+  };
+  LPDWORD pPageTable;
+  DWORD cPages;
+  ULONG_PTR dwSavedDCContext;
+  FLATPTR fpAliasedVidMem;
+  ULONG_PTR dwDriverReserved;
+  ULONG_PTR dwHELReserved;
+  DWORD cPageUnlocks;
+  ULONG_PTR hKernelSurface;
+  DWORD dwKernelRefCnt;
+  LPDDCOLORCONTROL lpColorInfo;
+  FLATPTR fpNTAlias;
+  DWORD dwContentsStamp;
+  LPVOID lpvUnswappedDriverReserved;
+  LPVOID lpDDRAWReserved2;
+  DWORD dwDDRAWReserved1;
+  DWORD dwDDRAWReserved2;
+  FLATPTR fpAliasOfVidMem;
+} DDRAWI_DDRAWSURFACE_GBL_MORE;
+
+/* the MS version of this macro was somewhat obfuscated and unreadable
+ * (possibly because of mediocre MS coders)... so I simplified it...
+ * (and so I commit no copyright violations either, hah) */
+#define GET_LPDDRAWSURFACE_GBL_MORE(psurf_gbl) \
+  (*(((LPDDRAWI_DDRAWSURFACE_GBL_MORE *)(psurf_gbl)) - 1))
+
+#define SURFACE_PHYSICALVIDMEM( psurf_gbl ) \
+  ( GET_LPDDRAWSURFACE_GBL_MORE(psurf_gbl )->fpPhysicalVidMem )
+
+typedef struct  _DISPLAYMODEINFO {
+  WORD wWidth;
+  WORD wHeight;
+  BYTE wBPP;
+  BYTE wMonitorsAttachedToDesktop;
+  WORD wRefreshRate;
+} DISPLAYMODEINFO, *LPDISPLAYMODEINFO;
+
+#define EQUAL_DISPLAYMODE ( A, B ) (0 == memcmp(&(A), &(B), sizeof (DISPLAYMODEINFO)))
+
+typedef struct _DDRAWI_DDRAWSURFACE_MORE {
+  DWORD dwSize;
+  IUNKNOWN_LIST *lpIUnknowns;
+  LPDDRAWI_DIRECTDRAW_LCL lpDD_lcl;
+  DWORD dwPageLockCount;
+  DWORD dwBytesAllocated;
+  LPDDRAWI_DIRECTDRAW_INT lpDD_int;
+  DWORD dwMipMapCount;
+  LPDDRAWI_DDRAWCLIPPER_INT lpDDIClipper;
+  /* DirectX 5.0 */
+  LPHEAPALIASINFO lpHeapAliasInfo;
+  DWORD dwOverlayFlags;
+  VOID *rgjunc;
+  LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
+  LPDDOVERLAYFX lpddOverlayFX;
+  DDSCAPSEX ddsCapsEx;
+  DWORD dwTextureStage;
+  LPVOID lpDDRAWReserved;
+  LPVOID lpDDRAWReserved2;
+  LPVOID lpDDrawReserved3;
+  DWORD dwDDrawReserved4;
+  LPVOID lpDDrawReserved5;
+  LPDWORD lpGammaRamp;
+  LPDWORD lpOriginalGammaRamp;
+  LPVOID lpDDrawReserved6;
+# ifndef WIN95
+  DISPLAYMODEINFO dmiDDrawReserved7;
+# endif
+  DWORD dwSurfaceHandle;
+  DWORD qwDDrawReserved8[2];
+  LPVOID lpDDrawReserved9;
+  DWORD cSurfaces;
+  LPDDSURFACEDESC2 pCreatedDDSurfaceDesc2;
+  LPDDRAWI_DDRAWSURFACE_LCL *slist;
+  DWORD dwFVF;
+  LPVOID lpVB;
+} DDRAWI_DDRAWSURFACE_MORE;
+
+typedef struct _DDRAWI_DDRAWSURFACE_LCL {
+  LPDDRAWI_DDRAWSURFACE_MORE lpSurfMore;
+  LPDDRAWI_DDRAWSURFACE_GBL lpGbl;
+  ULONG_PTR hDDSurface;
+  LPATTACHLIST lpAttachList;
+  LPATTACHLIST lpAttachListFrom;
+  DWORD dwLocalRefCnt;
+  DWORD dwProcessId;
+  DWORD dwFlags;
+  DDSCAPS ddsCaps;
+  __GNU_EXTENSION union {
+    LPDDRAWI_DDRAWPALETTE_INT lpDDPalette;
+    LPDDRAWI_DDRAWPALETTE_INT lp16DDPalette;
+  };
+  __GNU_EXTENSION union {
+    LPDDRAWI_DDRAWCLIPPER_LCL lpDDClipper;
+    LPDDRAWI_DDRAWCLIPPER_INT lp16DDClipper;
+  };
+  DWORD dwModeCreatedIn;
+  DWORD dwBackBufferCount;
+  DDCOLORKEY ddckCKDestBlt;
+  DDCOLORKEY ddckCKSrcBlt;
+  ULONG_PTR hDC;
+  ULONG_PTR dwReserved1;
+  DDCOLORKEY ddckCKSrcOverlay;
+  DDCOLORKEY ddckCKDestOverlay;
+  LPDDRAWI_DDRAWSURFACE_INT lpSurfaceOverlaying;
+  DBLNODE dbnOverlayNode;
+  RECT rcOverlaySrc;
+  RECT rcOverlayDest;
+  DWORD dwClrXparent;
+  DWORD dwAlpha;
+  LONG lOverlayX;
+  LONG lOverlayY;
+} DDRAWI_DDRAWSURFACE_LCL;
+
+#define DDRAWISURF_ATTACHED           0x00000001L
+#define DDRAWISURF_IMPLICITCREATE     0x00000002L
+#define DDRAWISURF_ISFREE             0x00000004L
+#define DDRAWISURF_ATTACHED_FROM      0x00000008L
+#define DDRAWISURF_IMPLICITROOT       0x00000010L
+#define DDRAWISURF_PARTOFPRIMARYCHAIN 0x00000020L
+#define DDRAWISURF_DATAISALIASED      0x00000040L
+#define DDRAWISURF_HASDC              0x00000080L
+#define DDRAWISURF_HASCKEYDESTOVERLAY 0x00000100L
+#define DDRAWISURF_HASCKEYDESTBLT     0x00000200L
+#define DDRAWISURF_HASCKEYSRCOVERLAY  0x00000400L
+#define DDRAWISURF_HASCKEYSRCBLT      0x00000800L
+#define DDRAWISURF_LOCKEXCLUDEDCURSOR 0x00001000L
+#define DDRAWISURF_HASPIXELFORMAT     0x00002000L
+#define DDRAWISURF_HASOVERLAYDATA     0x00004000L
+#define DDRAWISURF_SETGAMMA           0x00008000L
+#define DDRAWISURF_SW_CKEYDESTOVERLAY 0x00010000L
+#define DDRAWISURF_SW_CKEYDESTBLT     0x00020000L
+#define DDRAWISURF_SW_CKEYSRCOVERLAY  0x00040000L
+#define DDRAWISURF_SW_CKEYSRCBLT      0x00080000L
+#define DDRAWISURF_HW_CKEYDESTOVERLAY 0x00100000L
+#define DDRAWISURF_HW_CKEYDESTBLT     0x00200000L
+#define DDRAWISURF_HW_CKEYSRCOVERLAY  0x00400000L
+#define DDRAWISURF_HW_CKEYSRCBLT      0x00800000L
+#define DDRAWISURF_INMASTERSPRITELIST 0x01000000L
+#define DDRAWISURF_HELCB              0x02000000L
+#define DDRAWISURF_FRONTBUFFER        0x04000000L
+#define DDRAWISURF_BACKBUFFER         0x08000000L
+#define DDRAWISURF_INVALID            0x10000000L
+#define DDRAWISURF_DCIBUSY            0x20000000L
+#define DDRAWISURF_GETDCNULL          0x40000000L
+#define DDRAWISURF_STEREOSURFACELEFT  0x20000000L
+#define DDRAWISURF_DRIVERMANAGED      0x40000000L
+#define DDRAWISURF_DCILOCK            0x80000000L
+
+/* palettes */
+typedef struct _DDRAWI_DDRAWPALETTE_INT {
+  LPVOID lpVtbl;
+  LPDDRAWI_DDRAWPALETTE_LCL lpLcl;
+  LPDDRAWI_DDRAWPALETTE_INT lpLink;
+  DWORD dwIntRefCnt;
+} DDRAWI_DDRAWPALETTE_INT;
+
+typedef struct _DDRAWI_DDRAWPALETTE_GBL {
+  DWORD dwRefCnt;
+  DWORD dwFlags;
+  LPDDRAWI_DIRECTDRAW_LCL lpDD_lcl;
+  DWORD dwProcessId;
+  LPPALETTEENTRY lpColorTable;
+  __GNU_EXTENSION union {
+    ULONG_PTR dwReserved1;
+    HPALETTE hHELGDIPalette;
+  };
+  DWORD dwDriverReserved;
+  DWORD dwContentsStamp;
+  DWORD dwSaveStamp;
+  DWORD dwHandle;
+} DDRAWI_DDRAWPALETTE_GBL;
+
+#define DDRAWIPAL_256           0x00000001
+#define DDRAWIPAL_16            0x00000002
+#define DDRAWIPAL_GDI           0x00000004
+#define DDRAWIPAL_STORED_8      0x00000008
+#define DDRAWIPAL_STORED_16     0x00000010
+#define DDRAWIPAL_STORED_24     0x00000020
+#define DDRAWIPAL_EXCLUSIVE     0x00000040
+#define DDRAWIPAL_INHEL         0x00000080
+#define DDRAWIPAL_DIRTY         0x00000100
+#define DDRAWIPAL_ALLOW256      0x00000200
+#define DDRAWIPAL_4             0x00000400
+#define DDRAWIPAL_2             0x00000800
+#define DDRAWIPAL_STORED_8INDEX 0x00001000
+#define DDRAWIPAL_ALPHA         0x00002000
+
+#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_NOFILTER                             0x00040000L
+#define DDPF_D3DFORMAT                                    0x00200000l
+#define DDPF_NOVEL_TEXTURE_FORMAT                         0x00100000l
+#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 DELETED_OK                                        0
+#define DELETED_LASTONE                                   1
+#define DELETED_NOTFOUND                                  2
+#define DDCALLBACKSSIZE_V1                                (offsetof(DDHAL_DDCALLBACKS, SetExclusiveMode))
+#define DDCALLBACKSSIZE                                   sizeof( DDHAL_DDCALLBACKS )
+#define DDRAWICLIP_WATCHWINDOW                            0x00000001
+#define DDRAWICLIP_ISINITIALIZED                          0x00000002
+#define DDRAWICLIP_INMASTERSPRITELIST                     0x00000004
+#define PFINDEX_UNINITIALIZED                             (0UL)
+#define PFINDEX_UNSUPPORTED                               (~0UL)
+#define ROP_HAS_SOURCE                                    0x00000001l
+#define ROP_HAS_PATTERN                                   0x00000002l
+#define ROP_HAS_SOURCEPATTERN                             ROP_HAS_SOURCE | ROP_HAS_PATTERN
+#define DDRAWIVPORT_ON                                    0x00000001
+#define DDRAWIVPORT_SOFTWARE_AUTOFLIP                     0x00000002
+#define DDRAWIVPORT_COLORKEYANDINTERP                     0x00000004
+#define DDRAWIVPORT_NOKERNELHANDLES                       0x00000008
+#define DDRAWIVPORT_SOFTWARE_BOB                          0x00000010
+#define DDRAWIVPORT_VBION                                 0x00000020
+#define DDRAWIVPORT_VIDEOON                               0x00000040
+#define DDRAWI_GETCOLOR                                   0x0001
+#define DDRAWI_SETCOLOR                                   0x0002
+#define DDMCQUERY_READ                                    0x00000001
+#define DDWAITVB_I_TESTVB                                 0x80000006
+
+#define DDBLT_ANYALPHA                                           \
+  (DDBLT_ALPHASRCSURFACEOVERRIDE | DDBLT_ALPHASRCCONSTOVERRIDE | \
+   DDBLT_ALPHASRC | DDBLT_ALPHADESTSURFACEOVERRIDE |             \
+   DDBLT_ALPHADESTCONSTOVERRIDE | DDBLT_ALPHADEST)
+
+#define DDHAL_ALIGNVALIDCAPS (DDSCAPS_OFFSCREENPLAIN | DDSCAPS_EXECUTEBUFFER | \
+                              DDSCAPS_OVERLAY | DDSCAPS_TEXTURE |              \
+                              DDSCAPS_ZBUFFER | DDSCAPS_ALPHA | DDSCAPS_FLIP )
+
+#define DDHALINFOSIZE_V2 sizeof(DDHALINFO)
+
+#define DDOVER_ANYALPHA                                            \
+  (DDOVER_ALPHASRCSURFACEOVERRIDE | DDOVER_ALPHASRCCONSTOVERRIDE | \
+   DDOVER_ALPHASRC | DDOVER_ALPHADESTSURFACEOVERRIDE |             \
+   DDOVER_ALPHADESTCONSTOVERRIDE | DDOVER_ALPHADEST)
+
+typedef struct _DDRAWI_DDRAWPALETTE_LCL {
+  DWORD lpPalMore;
+  LPDDRAWI_DDRAWPALETTE_GBL lpGbl;
+  ULONG_PTR dwUnused0;
+  DWORD dwLocalRefCnt;
+#ifndef _NO_COM
+  IUnknown *pUnkOuter;
+#else
+  PVOID pUnkOuter;
+#endif
+  LPDDRAWI_DIRECTDRAW_LCL lpDD_lcl;
+  ULONG_PTR dwReserved1;
+  /* DirectX 6.0 */
+  ULONG_PTR dwDDRAWReserved1;
+  ULONG_PTR dwDDRAWReserved2;
+  ULONG_PTR dwDDRAWReserved3;
+} DDRAWI_DDRAWPALETTE_LCL;
+
+typedef struct _DDMCCOMPBUFFERINFO {
+  DWORD dwSize;
+  DWORD dwNumCompBuffers;
+  DWORD dwWidthToCreate;
+  DWORD dwHeightToCreate;
+  DWORD dwBytesToAllocate;
+  DDSCAPS2 ddCompCaps;
+  DDPIXELFORMAT ddPixelFormat;
+} DDMCCOMPBUFFERINFO, *LPDDMCCOMPBUFFERINFO;
+
+typedef struct _DDMCBUFFERINFO {
+  DWORD dwSize;
+  LPDDRAWI_DDRAWSURFACE_LCL lpCompSurface;
+  DWORD dwDataOffset;
+  DWORD dwDataSize;
+  LPVOID lpPrivate;
+} DDMCBUFFERINFO, *LPDDMCBUFFERINFO;
+
+typedef struct _DDHAL_GETDRIVERSTATEDATA {
+  DWORD dwFlags;
+  __GNU_EXTENSION union {
+    ULONG_PTR dwhContext;
+  };
+  LPDWORD lpdwStates;
+  DWORD dwLength;
+  HRESULT ddRVal;
+} DDHAL_GETDRIVERSTATEDATA;
+
+typedef struct _DDHAL_ADDATTACHEDSURFACEDATA {
+  LPDDRAWI_DIRECTDRAW_GBL lpDD;
+  LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface;
+  LPDDRAWI_DDRAWSURFACE_LCL lpSurfAttached;
+  HRESULT ddRVal;
+  LPDDHALSURFCB_ADDATTACHEDSURFACE AddAttachedSurface;
+} DDHAL_ADDATTACHEDSURFACEDATA;
+
+typedef struct _DDHAL_BEGINMOCOMPFRAMEDATA {
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  LPDDRAWI_DDMOTIONCOMP_LCL lpMoComp;
+  LPDDRAWI_DDRAWSURFACE_LCL lpDestSurface;
+  DWORD dwInputDataSize;
+  LPVOID lpInputData;
+  DWORD dwOutputDataSize;
+  LPVOID lpOutputData;
+  HRESULT ddRVal;
+  LPDDHALMOCOMPCB_BEGINFRAME BeginMoCompFrame;
+} DDHAL_BEGINMOCOMPFRAMEDATA;
+
+typedef struct _DDHAL_COLORCONTROLDATA {
+  LPDDRAWI_DIRECTDRAW_GBL lpDD;
+  LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface;
+  LPDDCOLORCONTROL lpColorData;
+  DWORD dwFlags;
+  HRESULT ddRVal;
+  LPDDHALCOLORCB_COLORCONTROL ColorControl;
+} DDHAL_COLORCONTROLDATA;
+
+typedef struct _DDHAL_CREATEMOCOMPDATA {
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  LPDDRAWI_DDMOTIONCOMP_LCL lpMoComp;
+  LPGUID lpGuid;
+  DWORD dwUncompWidth;
+  DWORD dwUncompHeight;
+  DDPIXELFORMAT ddUncompPixelFormat;
+  LPVOID lpData;
+  DWORD dwDataSize;
+  HRESULT ddRVal;
+  LPDDHALMOCOMPCB_CREATE CreateMoComp;
+} DDHAL_CREATEMOCOMPDATA;
+
+typedef struct _DDHAL_DESTROYMOCOMPDATA {
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  LPDDRAWI_DDMOTIONCOMP_LCL lpMoComp;
+  HRESULT ddRVal;
+  LPDDHALMOCOMPCB_DESTROY DestroyMoComp;
+} DDHAL_DESTROYMOCOMPDATA;
+
+typedef struct _DDHAL_ENDMOCOMPFRAMEDATA {
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  LPDDRAWI_DDMOTIONCOMP_LCL lpMoComp;
+  LPVOID lpInputData;
+  DWORD dwInputDataSize;
+  HRESULT ddRVal;
+  LPDDHALMOCOMPCB_ENDFRAME EndMoCompFrame;
+} DDHAL_ENDMOCOMPFRAMEDATA;
+
+typedef struct _DDHAL_FLIPTOGDISURFACEDATA {
+  LPDDRAWI_DIRECTDRAW_GBL lpDD;
+  DWORD dwToGDI;
+  DWORD dwReserved;
+  HRESULT ddRVal;
+  LPDDHAL_FLIPTOGDISURFACE FlipToGDISurface;
+} DDHAL_FLIPTOGDISURFACEDATA;
+
+typedef struct _DDHAL_GETAVAILDRIVERMEMORYDATA {
+  LPDDRAWI_DIRECTDRAW_GBL lpDD;
+  DDSCAPS DDSCaps;
+  DWORD dwTotal;
+  DWORD dwFree;
+  HRESULT ddRVal;
+  LPDDHAL_GETAVAILDRIVERMEMORY GetAvailDriverMemory;
+  DDSCAPSEX ddsCapsEx;
+} DDHAL_GETAVAILDRIVERMEMORYDATA;
+
+typedef struct _DDHAL_GETBLTSTATUSDATA {
+  LPDDRAWI_DIRECTDRAW_GBL lpDD;
+  LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface;
+  DWORD dwFlags;
+  HRESULT ddRVal;
+  LPDDHALSURFCB_GETBLTSTATUS GetBltStatus;
+} DDHAL_GETBLTSTATUSDATA;
+
+typedef struct _DDHAL_GETFLIPSTATUSDATA {
+  LPDDRAWI_DIRECTDRAW_GBL lpDD;
+  LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface;
+  DWORD dwFlags;
+  HRESULT ddRVal;
+  LPDDHALSURFCB_GETFLIPSTATUS GetFlipStatus;
+} DDHAL_GETFLIPSTATUSDATA;
+
+typedef struct _DDHAL_GETINTERNALMOCOMPDATA {
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  LPGUID lpGuid;
+  DWORD dwWidth;
+  DWORD dwHeight;
+  DDPIXELFORMAT ddPixelFormat;
+  DWORD dwScratchMemAlloc;
+  HRESULT ddRVal;
+  LPDDHALMOCOMPCB_GETINTERNALINFO GetInternalMoCompInfo;
+} DDHAL_GETINTERNALMOCOMPDATA;
+
+typedef struct _DDHAL_GETMOCOMPCOMPBUFFDATA {
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  LPGUID lpGuid;
+  DWORD dwWidth;
+  DWORD dwHeight;
+  DDPIXELFORMAT ddPixelFormat;
+  DWORD dwNumTypesCompBuffs;
+  LPDDMCCOMPBUFFERINFO lpCompBuffInfo;
+  HRESULT ddRVal;
+  LPDDHALMOCOMPCB_GETCOMPBUFFINFO GetMoCompBuffInfo;
+} DDHAL_GETMOCOMPCOMPBUFFDATA;
+
+typedef struct _DDHAL_GETMOCOMPGUIDSDATA {
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  DWORD dwNumGuids;
+  LPGUID lpGuids;
+  HRESULT ddRVal;
+  LPDDHALMOCOMPCB_GETGUIDS GetMoCompGuids;
+} DDHAL_GETMOCOMPGUIDSDATA;
+
+typedef struct _DDHAL_GETMOCOMPFORMATSDATA {
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  LPGUID lpGuid;
+  DWORD dwNumFormats;
+  LPDDPIXELFORMAT lpFormats;
+  HRESULT ddRVal;
+  LPDDHALMOCOMPCB_GETFORMATS GetMoCompFormats;
+} DDHAL_GETMOCOMPFORMATSDATA;
+
+typedef struct _DDHAL_GETSCANLINEDATA {
+  LPDDRAWI_DIRECTDRAW_GBL lpDD;
+  DWORD dwScanLine;
+  HRESULT ddRVal;
+  LPDDHAL_GETSCANLINE GetScanLine;
+} DDHAL_GETSCANLINEDATA;
+
+typedef struct _DDHAL_QUERYMOCOMPSTATUSDATA {
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  LPDDRAWI_DDMOTIONCOMP_LCL lpMoComp;
+  LPDDRAWI_DDRAWSURFACE_LCL lpSurface;
+  DWORD dwFlags;
+  HRESULT ddRVal;
+  LPDDHALMOCOMPCB_QUERYSTATUS QueryMoCompStatus;
+} DDHAL_QUERYMOCOMPSTATUSDATA;
+
+typedef struct _DDHAL_RENDERMOCOMPDATA {
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  LPDDRAWI_DDMOTIONCOMP_LCL lpMoComp;
+  DWORD dwNumBuffers;
+  LPDDMCBUFFERINFO lpBufferInfo;
+  DWORD dwFunction;
+  LPVOID lpInputData;
+  DWORD dwInputDataSize;
+  LPVOID lpOutputData;
+  DWORD dwOutputDataSize;
+  HRESULT ddRVal;
+  LPDDHALMOCOMPCB_RENDER RenderMoComp;
+} DDHAL_RENDERMOCOMPDATA;
+
+typedef struct _DDHAL_SETCOLORKEYDATA {
+  LPDDRAWI_DIRECTDRAW_GBL lpDD;
+  LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface;
+  DWORD dwFlags;
+  DDCOLORKEY ckNew;
+  HRESULT ddRVal;
+  LPDDHALSURFCB_SETCOLORKEY SetColorKey;
+} DDHAL_SETCOLORKEYDATA;
+
+typedef struct _DDHAL_SETOVERLAYPOSITIONDATA {
+  LPDDRAWI_DIRECTDRAW_GBL lpDD;
+  LPDDRAWI_DDRAWSURFACE_LCL lpDDSrcSurface;
+  LPDDRAWI_DDRAWSURFACE_LCL lpDDDestSurface;
+  LONG lXPos;
+  LONG lYPos;
+  HRESULT ddRVal;
+  LPDDHALSURFCB_SETOVERLAYPOSITION SetOverlayPosition;
+} DDHAL_SETOVERLAYPOSITIONDATA;
+
+typedef struct _DDHAL_UPDATEOVERLAYDATA {
+  LPDDRAWI_DIRECTDRAW_GBL lpDD;
+  LPDDRAWI_DDRAWSURFACE_LCL lpDDDestSurface;
+  RECTL rDest;
+  LPDDRAWI_DDRAWSURFACE_LCL lpDDSrcSurface;
+  RECTL rSrc;
+  DWORD dwFlags;
+  DDOVERLAYFX overlayFX;
+  HRESULT ddRVal;
+  LPDDHALSURFCB_UPDATEOVERLAY UpdateOverlay;
+} DDHAL_UPDATEOVERLAYDATA;
+
+typedef struct _DDHAL_WAITFORVERTICALBLANKDATA {
+  LPDDRAWI_DIRECTDRAW_GBL lpDD;
+  DWORD dwFlags;
+  DWORD bIsInVB;
+  ULONG_PTR hEvent;
+  HRESULT ddRVal;
+  LPDDHAL_WAITFORVERTICALBLANK WaitForVerticalBlank;
+} DDHAL_WAITFORVERTICALBLANKDATA;
+
+typedef struct _DDHAL_DRVSETCOLORKEYDATA {
+  LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface;
+  DWORD dwFlags;
+  DDCOLORKEY ckNew;
+  HRESULT ddRVal;
+  LPDDHAL_SETCOLORKEY SetColorKey;
+} DDHAL_DRVSETCOLORKEYDATA;
+
+typedef struct _DDMONITORINFO {
+  WORD Manufacturer;
+  WORD Product;
+  DWORD SerialNumber;
+  GUID DeviceIdentifier;
+  int Mode640x480;
+  int Mode800x600;
+  int Mode1024x768;
+  int Mode1280x1024;
+  int Mode1600x1200;
+  int ModeReserved1;
+  int ModeReserved2;
+  int ModeReserved3;
+} DDMONITORINFO, FAR *LPDDMONITORINFO;
+
+typedef struct _DDRAWI_DDRAWCLIPPER_INT {
+  LPVOID lpVtbl;
+  LPDDRAWI_DDRAWCLIPPER_LCL lpLcl;
+  LPDDRAWI_DDRAWCLIPPER_INT lpLink;
+  DWORD dwIntRefCnt;
+} DDRAWI_DDRAWCLIPPER_INT;
+
+typedef struct _DDHAL_UPDATENONLOCALHEAPDATA {
+  LPDDRAWI_DIRECTDRAW_GBL lpDD;
+  DWORD dwHeap;
+  FLATPTR fpGARTLin;
+  FLATPTR fpGARTDev;
+  ULONG_PTR ulPolicyMaxBytes;
+  HRESULT ddRVal;
+  LPDDHAL_UPDATENONLOCALHEAP UpdateNonLocalHeap;
+} DDHAL_UPDATENONLOCALHEAPDATA;
+
+typedef struct _DDHAL_SETCLIPLISTDATA {
+  LPDDRAWI_DIRECTDRAW_GBL lpDD;
+  LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface;
+  HRESULT ddRVal;
+  LPDDHALSURFCB_SETCLIPLIST SetClipList;
+} DDHAL_SETCLIPLISTDATA;
+
+typedef struct _DDRAWI_DDMOTIONCOMP_LCL {
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  GUID guid;
+  DWORD dwUncompWidth;
+  DWORD dwUncompHeight;
+  DDPIXELFORMAT ddUncompPixelFormat;
+  DWORD dwInternalFlags;
+  DWORD dwRefCnt;
+  DWORD dwProcessId;
+  HANDLE hMoComp;
+  DWORD dwDriverReserved1;
+  DWORD dwDriverReserved2;
+  DWORD dwDriverReserved3;
+  LPVOID lpDriverReserved1;
+  LPVOID lpDriverReserved2;
+  LPVOID lpDriverReserved3;
+} DDRAWI_DDMOTIONCOMP_LCL;
+
+typedef struct _DDRAWI_DDMOTIONCOMP_INT {
+  LPVOID lpVtbl;
+  LPDDRAWI_DDMOTIONCOMP_LCL lpLcl;
+  LPDDRAWI_DDMOTIONCOMP_INT lpLink;
+  DWORD dwIntRefCnt;
+} DDRAWI_DDMOTIONCOMP_INT;
+
+typedef struct _DDRAWI_DDVIDEOPORT_LCL {
+  LPDDRAWI_DIRECTDRAW_LCL lpDD;
+  DDVIDEOPORTDESC ddvpDesc;
+  DDVIDEOPORTINFO ddvpInfo;
+  LPDDRAWI_DDRAWSURFACE_INT lpSurface;
+  LPDDRAWI_DDRAWSURFACE_INT lpVBISurface;
+  LPDDRAWI_DDRAWSURFACE_INT *lpFlipInts;
+  DWORD dwNumAutoflip;
+  DWORD dwProcessID;
+  DWORD dwStateFlags;
+  DWORD dwFlags;
+  DWORD dwRefCnt;
+  FLATPTR fpLastFlip;
+  ULONG_PTR dwReserved1;
+  ULONG_PTR dwReserved2;
+  HANDLE hDDVideoPort;
+  DWORD dwNumVBIAutoflip;
+  LPDDVIDEOPORTDESC lpVBIDesc;
+  LPDDVIDEOPORTDESC lpVideoDesc;
+  LPDDVIDEOPORTINFO lpVBIInfo;
+  LPDDVIDEOPORTINFO lpVideoInfo;
+  DWORD dwVBIProcessID;
+  LPDDRAWI_DDVIDEOPORT_INT lpVPNotify;
+} DDRAWI_DDVIDEOPORT_LCL;
+
+typedef struct _DDRAWI_DDVIDEOPORT_INT {
+  LPVOID lpVtbl;
+  LPDDRAWI_DDVIDEOPORT_LCL lpLcl;
+  LPDDRAWI_DDVIDEOPORT_INT lpLink;
+  DWORD dwIntRefCnt;
+  DWORD dwFlags;
+} DDRAWI_DDVIDEOPORT_INT;
+
+typedef struct _DDRAWI_DDRAWCLIPPER_LCL {
+  DWORD lpClipMore;
+  LPDDRAWI_DDRAWCLIPPER_GBL lpGbl;
+  LPDDRAWI_DIRECTDRAW_LCL lpDD_lcl;
+  DWORD dwLocalRefCnt;
+#ifndef _NO_COM
+  IUnknown *pUnkOuter;
+#else
+  PVOID *pUnkOuter;
+#endif
+  LPDDRAWI_DIRECTDRAW_INT lpDD_int;
+  ULONG_PTR dwReserved1;
+#ifndef _NO_COM
+  IUnknown *pAddrefedThisOwner;
+#else
+  PVOID pAddrefedThisOwner;
+#endif
+} DDRAWI_DDRAWCLIPPER_LCL;
+
+typedef struct _DDRAWI_DDRAWCLIPPER_GBL {
+  DWORD dwRefCnt;
+  DWORD dwFlags;
+  LPDDRAWI_DIRECTDRAW_GBL lpDD;
+  DWORD dwProcessId;
+  ULONG_PTR dwReserved1;
+  ULONG_PTR hWnd;
+  LPRGNDATA lpStaticClipList;
+} DDRAWI_DDRAWCLIPPER_GBL;
+
+typedef BOOL (PASCAL *LPDDHEL_INIT)(LPDDRAWI_DIRECTDRAW_GBL,BOOL);
+
+extern HRESULT DDAPI
+LateAllocateSurfaceMem(
+  LPDIRECTDRAWSURFACE lpSurface,
+  DWORD dwPleaseAllocType,
+  DWORD dwWidthInBytesOrSize,
+  DWORD dwHeight);
+
+LPDIRECTDRAWSURFACE GetNextMipMap(
+  LPDIRECTDRAWSURFACE lpLevel);
+
+typedef struct IDirectDrawClipperVtbl DIRECTDRAWCLIPPERCALLBACKS;
+typedef struct IDirectDrawPaletteVtbl DIRECTDRAWPALETTECALLBACKS;
+typedef struct IDirectDrawSurfaceVtbl DIRECTDRAWSURFACECALLBACKS;
+typedef struct IDirectDrawSurface2Vtbl DIRECTDRAWSURFACE2CALLBACKS;
+typedef struct IDirectDrawSurface3Vtbl DIRECTDRAWSURFACE3CALLBACKS;
+typedef struct IDirectDrawSurface4Vtbl DIRECTDRAWSURFACE4CALLBACKS;
+typedef struct IDirectDrawSurface7Vtbl DIRECTDRAWSURFACE7CALLBACKS;
+typedef struct IDirectDrawColorControlVtbl DIRECTDRAWCOLORCONTROLCALLBACKS;
+typedef struct IDirectDrawVtbl DIRECTDRAWCALLBACKS;
+typedef struct IDirectDraw2Vtbl DIRECTDRAW2CALLBACKS;
+typedef struct IDirectDraw4Vtbl DIRECTDRAW4CALLBACKS;
+typedef struct IDirectDraw7Vtbl DIRECTDRAW7CALLBACKS;
+typedef struct IDirectDrawKernelVtbl DIRECTDRAWKERNELCALLBACKS;
+typedef struct IDirectDrawSurfaceKernelVtbl DIRECTDRAWSURFACEKERNELCALLBACKS;
+typedef struct IDirectDrawGammaControlVtbl DIRECTDRAWGAMMACONTROLCALLBACKS;
+
+typedef DIRECTDRAWCLIPPERCALLBACKS  *LPDIRECTDRAWCLIPPERCALLBACKS;
+typedef DIRECTDRAWPALETTECALLBACKS  *LPDIRECTDRAWPALETTECALLBACKS;
+typedef DIRECTDRAWSURFACECALLBACKS  *LPDIRECTDRAWSURFACECALLBACKS;
+typedef DIRECTDRAWCALLBACKS  *LPDIRECTDRAWCALLBACKS;
+
+HRESULT CALLBACK
+D3DParseUnknownCommand (
+  LPVOID lpvCommands,
+  LPVOID *lplpvReturnedCommand);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* __DDRAWI_INCLUDED__ */
diff --git a/reactos/include/psdk/ddrawint.h b/reactos/include/psdk/ddrawint.h
new file mode 100644 (file)
index 0000000..8c2ee61
--- /dev/null
@@ -0,0 +1,1320 @@
+/*
+ * 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 <dvp.h>
+#endif
+#else
+#include <ddraw.h>
+#include <dvp.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#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
+
+#ifndef FLATPTR_DEFINED
+typedef ULONG_PTR FLATPTR;
+#define FLATPTR_DEFINED
+#endif
+
+typedef struct _DD_VIDEOPORT_LOCAL   *PDD_VIDEOPORT_LOCAL;
+
+/************************************************************************/
+/* _DD_GETHEAPALIGNMENTDATA is defined in dmemmgr.h                     */
+ /************************************************************************/
+struct _DD_GETHEAPALIGNMENTDATA;
+#ifndef DD_GETHEAPALIGNMENTDATA_DECLARED
+typedef struct _DD_GETHEAPALIGNMENTDATA *PDD_GETHEAPALIGNMENTDATA;
+#define DD_GETHEAPALIGNMENTDATA_DECLARED
+#endif
+
+/************************************************************************/
+/* Video memory info structures                                         */
+/************************************************************************/
+
+typedef struct _VIDEOMEMORY {
+  DWORD dwFlags;
+  FLATPTR fpStart;
+  __GNU_EXTENSION union {
+    FLATPTR fpEnd;
+    DWORD dwWidth;
+  };
+  DDSCAPS ddsCaps;
+  DDSCAPS ddsCapsAlt;
+  __GNU_EXTENSION union {
+    struct _VMEMHEAP *lpHeap;
+    DWORD dwHeight;
+  };
+} VIDEOMEMORY, *PVIDEOMEMORY;
+
+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, *LPVIDEOMEMORYINFO;
+
+typedef struct _DD_DIRECTDRAW_GLOBAL {
+  PVOID dhpdev;
+  ULONG_PTR dwReserved1;
+  ULONG_PTR dwReserved2;
+  LPDDVIDEOPORTCAPS lpDDVideoPortCaps;
+} DD_DIRECTDRAW_GLOBAL, *PDD_DIRECTDRAW_GLOBAL;
+
+typedef struct _DD_DIRECTDRAW_LOCAL {
+  PDD_DIRECTDRAW_GLOBAL lpGbl;
+} DD_DIRECTDRAW_LOCAL, *PDD_DIRECTDRAW_LOCAL;
+
+typedef struct _DD_SURFACE_GLOBAL {
+  __GNU_EXTENSION union {
+    DWORD dwBlockSizeY;
+    LONG lSlicePitch;
+  };
+  __GNU_EXTENSION union {
+    PVIDEOMEMORY lpVidMemHeap;
+    DWORD dwBlockSizeX;
+    DWORD dwUserMemSize;
+  };
+  FLATPTR fpVidMem;
+  __GNU_EXTENSION 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 _DD_SURFACE_MORE {
+  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 _DD_SURFACE_LOCAL {
+  PDD_SURFACE_GLOBAL lpGbl;
+  DWORD dwFlags;
+  DDSCAPS ddsCaps;
+  ULONG_PTR dwReserved1;
+  __GNU_EXTENSION union {
+    DDCOLORKEY ddckCKSrcOverlay;
+    DDCOLORKEY ddckCKSrcBlt;
+  };
+  __GNU_EXTENSION union {
+    DDCOLORKEY ddckCKDestOverlay;
+    DDCOLORKEY ddckCKDestBlt;
+  };
+  PDD_SURFACE_MORE lpSurfMore;
+  PDD_ATTACHLIST lpAttachList;
+  PDD_ATTACHLIST lpAttachListFrom;
+  RECT rcOverlaySrc;
+} DD_SURFACE_LOCAL, *PDD_SURFACE_LOCAL;
+
+typedef struct _DD_ATTACHLIST {
+  PDD_ATTACHLIST lpLink;
+  PDD_SURFACE_LOCAL lpAttached;
+} DD_ATTACHLIST;
+
+typedef struct _DD_SURFACE_INT {
+  PDD_SURFACE_LOCAL lpLcl;
+} DD_SURFACE_INT, *PDD_SURFACE_INT;
+
+/************************************************************************/
+/* DDI representation of the DirectDrawPalette object                   */
+/************************************************************************/
+
+typedef struct _DD_PALETTE_GLOBAL {
+  ULONG_PTR Reserved1;
+} DD_PALETTE_GLOBAL, *PDD_PALETTE_GLOBAL;
+
+/************************************************************************/
+/* DDI representation of the DirectDrawVideo object                     */
+/************************************************************************/
+
+typedef struct {
+  PDD_DIRECTDRAW_LOCAL lpDD;
+  GUID guid;
+  DWORD dwUncompWidth;
+  DWORD dwUncompHeight;
+  DDPIXELFORMAT ddUncompPixelFormat;
+  DWORD dwDriverReserved1;
+  DWORD dwDriverReserved2;
+  DWORD dwDriverReserved3;
+  LPVOID lpDriverReserved1;
+  LPVOID lpDriverReserved2;
+  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 _DD_LOCKDATA {
+  PDD_DIRECTDRAW_GLOBAL lpDD;
+  PDD_SURFACE_LOCAL lpDDSurface;
+  DWORD bHasRect;
+  RECTL rArea;
+  LPVOID lpSurfData;
+  HRESULT ddRVal;
+  PVOID Lock;
+  DWORD dwFlags;
+  FLATPTR fpProcess;
+} DD_LOCKDATA, *PDD_LOCKDATA;
+typedef DWORD (WINAPI *PDD_SURFCB_LOCK)(PDD_LOCKDATA);
+
+typedef struct _DD_UNLOCKDATA {
+  PDD_DIRECTDRAW_GLOBAL lpDD;
+  PDD_SURFACE_LOCAL lpDDSurface;
+  HRESULT ddRVal;
+  PVOID Unlock;
+} DD_UNLOCKDATA, *PDD_UNLOCKDATA;
+typedef DWORD (WINAPI *PDD_SURFCB_UNLOCK)(PDD_UNLOCKDATA);
+
+#define DDABLT_SRCOVERDEST        0x00000001
+#define DDBLT_AFLAGS              0x80000000
+
+typedef struct _DD_BLTDATA {
+  PDD_DIRECTDRAW_GLOBAL lpDD;
+  PDD_SURFACE_LOCAL lpDDDestSurface;
+  RECTL rDest;
+  PDD_SURFACE_LOCAL lpDDSrcSurface;
+  RECTL rSrc;
+  DWORD dwFlags;
+  DWORD dwROPFlags;
+  DDBLTFX bltFX;
+  HRESULT ddRVal;
+  PVOID Blt;
+  BOOL IsClipped;
+  RECTL rOrigDest;
+  RECTL rOrigSrc;
+  DWORD dwRectCnt;
+  LPRECT prDestRects;
+  DWORD dwAFlags;
+  DDARGB ddargbScaleFactors;
+} DD_BLTDATA, *PDD_BLTDATA;
+typedef DWORD (WINAPI *PDD_SURFCB_BLT)(PDD_BLTDATA);
+
+typedef struct _DD_UPDATEOVERLAYDATA {
+  PDD_DIRECTDRAW_GLOBAL lpDD;
+  PDD_SURFACE_LOCAL lpDDDestSurface;
+  RECTL rDest;
+  PDD_SURFACE_LOCAL lpDDSrcSurface;
+  RECTL rSrc;
+  DWORD dwFlags;
+  DDOVERLAYFX overlayFX;
+  HRESULT ddRVal;
+  PVOID UpdateOverlay;
+} DD_UPDATEOVERLAYDATA, *PDD_UPDATEOVERLAYDATA;
+typedef DWORD (WINAPI *PDD_SURFCB_UPDATEOVERLAY)(PDD_UPDATEOVERLAYDATA);
+
+typedef struct _DD_SETOVERLAYPOSITIONDATA {
+  PDD_DIRECTDRAW_GLOBAL lpDD;
+  PDD_SURFACE_LOCAL lpDDSrcSurface;
+  PDD_SURFACE_LOCAL lpDDDestSurface;
+  LONG lXPos;
+  LONG lYPos;
+  HRESULT ddRVal;
+  PVOID SetOverlayPosition;
+} DD_SETOVERLAYPOSITIONDATA, *PDD_SETOVERLAYPOSITIONDATA;
+typedef DWORD (WINAPI *PDD_SURFCB_SETOVERLAYPOSITION)(PDD_SETOVERLAYPOSITIONDATA);
+
+typedef struct _DD_SETPALETTEDATA {
+  PDD_DIRECTDRAW_GLOBAL lpDD;
+  PDD_SURFACE_LOCAL lpDDSurface;
+  PDD_PALETTE_GLOBAL lpDDPalette;
+  HRESULT ddRVal;
+  PVOID SetPalette;
+  BOOL Attach;
+} DD_SETPALETTEDATA, *PDD_SETPALETTEDATA;
+typedef DWORD (WINAPI *PDD_SURFCB_SETPALETTE)(PDD_SETPALETTEDATA);
+
+typedef struct _DD_FLIPDATA {
+  PDD_DIRECTDRAW_GLOBAL lpDD;
+  PDD_SURFACE_LOCAL lpSurfCurr;
+  PDD_SURFACE_LOCAL lpSurfTarg;
+  DWORD dwFlags;
+  HRESULT ddRVal;
+  PVOID Flip;
+  PDD_SURFACE_LOCAL lpSurfCurrLeft;
+  PDD_SURFACE_LOCAL lpSurfTargLeft;
+} DD_FLIPDATA, *PDD_FLIPDATA;
+typedef DWORD (WINAPI *PDD_SURFCB_FLIP)(PDD_FLIPDATA);
+
+typedef struct _DD_DESTROYSURFACEDATA {
+  PDD_DIRECTDRAW_GLOBAL lpDD;
+  PDD_SURFACE_LOCAL lpDDSurface;
+  HRESULT ddRVal;
+  PVOID DestroySurface;
+} DD_DESTROYSURFACEDATA, *PDD_DESTROYSURFACEDATA;
+typedef DWORD (WINAPI *PDD_SURFCB_DESTROYSURFACE)(PDD_DESTROYSURFACEDATA);
+
+typedef struct _DD_SETCLIPLISTDATA {
+  PDD_DIRECTDRAW_GLOBAL lpDD;
+  PDD_SURFACE_LOCAL lpDDSurface;
+  HRESULT ddRVal;
+  PVOID SetClipList;
+} DD_SETCLIPLISTDATA, *PDD_SETCLIPLISTDATA;
+typedef DWORD (WINAPI *PDD_SURFCB_SETCLIPLIST)(PDD_SETCLIPLISTDATA);
+
+typedef struct _DD_ADDATTACHEDSURFACEDATA {
+  PDD_DIRECTDRAW_GLOBAL lpDD;
+  PDD_SURFACE_LOCAL lpDDSurface;
+  PDD_SURFACE_LOCAL lpSurfAttached;
+  HRESULT ddRVal;
+  PVOID AddAttachedSurface;
+} DD_ADDATTACHEDSURFACEDATA, *PDD_ADDATTACHEDSURFACEDATA;
+typedef DWORD (WINAPI *PDD_SURFCB_ADDATTACHEDSURFACE)(PDD_ADDATTACHEDSURFACEDATA);
+
+typedef struct _DD_SETCOLORKEYDATA {
+  PDD_DIRECTDRAW_GLOBAL lpDD;
+  PDD_SURFACE_LOCAL lpDDSurface;
+  DWORD dwFlags;
+  DDCOLORKEY ckNew;
+  HRESULT ddRVal;
+  PVOID SetColorKey;
+} DD_SETCOLORKEYDATA, *PDD_SETCOLORKEYDATA;
+typedef DWORD (WINAPI *PDD_SURFCB_SETCOLORKEY)(PDD_SETCOLORKEYDATA);
+
+typedef struct _DD_GETBLTSTATUSDATA {
+  PDD_DIRECTDRAW_GLOBAL lpDD;
+  PDD_SURFACE_LOCAL lpDDSurface;
+  DWORD dwFlags;
+  HRESULT ddRVal;
+  PVOID GetBltStatus;
+} DD_GETBLTSTATUSDATA, *PDD_GETBLTSTATUSDATA;
+typedef DWORD (WINAPI *PDD_SURFCB_GETBLTSTATUS)(PDD_GETBLTSTATUSDATA);
+
+typedef struct _DD_GETFLIPSTATUSDATA {
+  PDD_DIRECTDRAW_GLOBAL lpDD;
+  PDD_SURFACE_LOCAL lpDDSurface;
+  DWORD dwFlags;
+  HRESULT ddRVal;
+  PVOID GetFlipStatus;
+} DD_GETFLIPSTATUSDATA, *PDD_GETFLIPSTATUSDATA;
+typedef DWORD (WINAPI *PDD_SURFCB_GETFLIPSTATUS)(PDD_GETFLIPSTATUSDATA);
+
+typedef struct DD_SURFACECALLBACKS {
+  DWORD dwSize;
+  DWORD dwFlags;
+  PDD_SURFCB_DESTROYSURFACE DestroySurface;
+  PDD_SURFCB_FLIP Flip;
+  PDD_SURFCB_SETCLIPLIST SetClipList;
+  PDD_SURFCB_LOCK Lock;
+  PDD_SURFCB_UNLOCK Unlock;
+  PDD_SURFCB_BLT Blt;
+  PDD_SURFCB_SETCOLORKEY SetColorKey;
+  PDD_SURFCB_ADDATTACHEDSURFACE AddAttachedSurface;
+  PDD_SURFCB_GETBLTSTATUS GetBltStatus;
+  PDD_SURFCB_GETFLIPSTATUS GetFlipStatus;
+  PDD_SURFCB_UPDATEOVERLAY UpdateOverlay;
+  PDD_SURFCB_SETOVERLAYPOSITION SetOverlayPosition;
+  PVOID reserved4;
+  PDD_SURFCB_SETPALETTE SetPalette;
+} DD_SURFACECALLBACKS, *PDD_SURFACECALLBACKS;
+
+#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 _DD_CREATESURFACEDATA {
+  PDD_DIRECTDRAW_GLOBAL lpDD;
+  DDSURFACEDESC *lpDDSurfaceDesc;
+  PDD_SURFACE_LOCAL *lplpSList;
+  DWORD dwSCnt;
+  HRESULT ddRVal;
+  PVOID CreateSurface;
+} DD_CREATESURFACEDATA, *PDD_CREATESURFACEDATA;
+typedef DWORD (WINAPI *PDD_CREATESURFACE)(PDD_CREATESURFACEDATA);
+
+typedef struct _DD_DRVSETCOLORKEYDATA {
+  PDD_SURFACE_LOCAL lpDDSurface;
+  DWORD dwFlags;
+  DDCOLORKEY ckNew;
+  HRESULT ddRVal;
+  PVOID SetColorKey;
+} DD_DRVSETCOLORKEYDATA, *PDD_DRVSETCOLORKEYDATA;
+typedef DWORD (WINAPI *PDD_SETCOLORKEY)(PDD_DRVSETCOLORKEYDATA);
+
+#define DDWAITVB_I_TESTVB    0x80000006
+
+typedef struct _DD_WAITFORVERTICALBLANKDATA {
+  PDD_DIRECTDRAW_GLOBAL lpDD;
+  DWORD dwFlags;
+  DWORD bIsInVB;
+  DWORD hEvent;
+  HRESULT ddRVal;
+  PVOID WaitForVerticalBlank;
+} DD_WAITFORVERTICALBLANKDATA, *PDD_WAITFORVERTICALBLANKDATA;
+typedef DWORD (WINAPI *PDD_WAITFORVERTICALBLANK)(PDD_WAITFORVERTICALBLANKDATA);
+
+typedef struct _DD_CANCREATESURFACEDATA {
+  PDD_DIRECTDRAW_GLOBAL lpDD;
+  DDSURFACEDESC *lpDDSurfaceDesc;
+  DWORD bIsDifferentPixelFormat;
+  HRESULT ddRVal;
+  PVOID CanCreateSurface;
+} DD_CANCREATESURFACEDATA, *PDD_CANCREATESURFACEDATA;
+typedef DWORD (WINAPI *PDD_CANCREATESURFACE)(PDD_CANCREATESURFACEDATA);
+
+typedef struct _DD_CREATEPALETTEDATA {
+  PDD_DIRECTDRAW_GLOBAL lpDD;
+  PDD_PALETTE_GLOBAL lpDDPalette;
+  LPPALETTEENTRY lpColorTable;
+  HRESULT ddRVal;
+  PVOID CreatePalette;
+  BOOL is_excl;
+} DD_CREATEPALETTEDATA, *PDD_CREATEPALETTEDATA;
+typedef DWORD (WINAPI *PDD_CREATEPALETTE)(PDD_CREATEPALETTEDATA);
+
+typedef struct _DD_GETSCANLINEDATA {
+  PDD_DIRECTDRAW_GLOBAL lpDD;
+  DWORD dwScanLine;
+  HRESULT ddRVal;
+  PVOID GetScanLine;
+} DD_GETSCANLINEDATA, *PDD_GETSCANLINEDATA;
+typedef DWORD (WINAPI *PDD_GETSCANLINE)(PDD_GETSCANLINEDATA);
+
+typedef struct _DD_MAPMEMORYDATA {
+  PDD_DIRECTDRAW_GLOBAL lpDD;
+  BOOL bMap;
+  HANDLE hProcess;
+  FLATPTR fpProcess;
+  HRESULT ddRVal;
+} DD_MAPMEMORYDATA, *PDD_MAPMEMORYDATA;
+typedef DWORD (WINAPI *PDD_MAPMEMORY)(PDD_MAPMEMORYDATA);
+
+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;
+  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;
+
+#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;
+  DWORD dwTotal;
+  DWORD dwFree;
+  HRESULT ddRVal;
+  PVOID GetAvailDriverMemory;
+} DD_GETAVAILDRIVERMEMORYDATA, *PDD_GETAVAILDRIVERMEMORYDATA;
+typedef DWORD (WINAPI *PDD_GETAVAILDRIVERMEMORY)(PDD_GETAVAILDRIVERMEMORYDATA);
+
+typedef struct _DD_MISCELLANEOUSCALLBACKS {
+  DWORD dwSize;
+  DWORD dwFlags;
+  PDD_GETAVAILDRIVERMEMORY GetAvailDriverMemory;
+} DD_MISCELLANEOUSCALLBACKS, *PDD_MISCELLANEOUSCALLBACKS;
+
+#define DDHAL_MISCCB32_GETAVAILDRIVERMEMORY 0x00000001
+
+typedef DWORD (WINAPI *PDD_ALPHABLT)(PDD_BLTDATA);
+
+typedef struct _DD_CREATESURFACEEXDATA {
+  DWORD dwFlags;
+  PDD_DIRECTDRAW_LOCAL lpDDLcl;
+  PDD_SURFACE_LOCAL lpDDSLcl;
+  HRESULT ddRVal;
+} DD_CREATESURFACEEXDATA, *PDD_CREATESURFACEEXDATA;
+typedef DWORD (WINAPI *PDD_CREATESURFACEEX)(PDD_CREATESURFACEEXDATA);
+
+typedef struct _DD_GETDRIVERSTATEDATA {
+  DWORD dwFlags;
+  __GNU_EXTENSION union {
+    PDD_DIRECTDRAW_GLOBAL lpDD;
+    DWORD_PTR dwhContext;
+  };
+  LPDWORD lpdwStates;
+  DWORD dwLength;
+  HRESULT ddRVal;
+} DD_GETDRIVERSTATEDATA, *PDD_GETDRIVERSTATEDATA;
+typedef DWORD (WINAPI *PDD_GETDRIVERSTATE)(PDD_GETDRIVERSTATEDATA);
+
+typedef struct _DD_DESTROYDDLOCALDATA {
+  DWORD dwFlags;
+  PDD_DIRECTDRAW_LOCAL pDDLcl;
+  HRESULT ddRVal;
+} DD_DESTROYDDLOCALDATA, *PDD_DESTROYDDLOCALDATA;
+typedef DWORD (WINAPI *PDD_DESTROYDDLOCAL)(PDD_DESTROYDDLOCALDATA);
+
+typedef struct _DD_MISCELLANEOUS2CALLBACKS {
+  DWORD dwSize;
+  DWORD dwFlags;
+  PDD_ALPHABLT AlphaBlt;
+  PDD_CREATESURFACEEX CreateSurfaceEx;
+  PDD_GETDRIVERSTATE GetDriverState;
+  PDD_DESTROYDDLOCAL DestroyDDLocal;
+} DD_MISCELLANEOUS2CALLBACKS, *PDD_MISCELLANEOUS2CALLBACKS;
+
+#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;
+  HRESULT ddRVal;
+  PVOID FreeDriverMemory;
+} DD_FREEDRIVERMEMORYDATA, *PDD_FREEDRIVERMEMORYDATA;
+typedef DWORD (WINAPI *PDD_FREEDRIVERMEMORY)(PDD_FREEDRIVERMEMORYDATA);
+
+typedef struct _DD_SETEXCLUSIVEMODEDATA {
+  PDD_DIRECTDRAW_GLOBAL lpDD;
+  DWORD dwEnterExcl;
+  DWORD dwReserved;
+  HRESULT ddRVal;
+  PVOID SetExclusiveMode;
+} DD_SETEXCLUSIVEMODEDATA, *PDD_SETEXCLUSIVEMODEDATA;
+typedef DWORD (WINAPI *PDD_SETEXCLUSIVEMODE)(PDD_SETEXCLUSIVEMODEDATA);
+
+typedef struct _DD_FLIPTOGDISURFACEDATA {
+  PDD_DIRECTDRAW_GLOBAL lpDD;
+  DWORD dwToGDI;
+  DWORD dwReserved;
+  HRESULT ddRVal;
+  PVOID FlipToGDISurface;
+} DD_FLIPTOGDISURFACEDATA, *PDD_FLIPTOGDISURFACEDATA;
+typedef DWORD (WINAPI *PDD_FLIPTOGDISURFACE)(PDD_FLIPTOGDISURFACEDATA);
+
+typedef struct _DD_NTCALLBACKS {
+  DWORD dwSize;
+  DWORD dwFlags;
+  PDD_FREEDRIVERMEMORY FreeDriverMemory;
+  PDD_SETEXCLUSIVEMODE SetExclusiveMode;
+  PDD_FLIPTOGDISURFACE FlipToGDISurface;
+} DD_NTCALLBACKS, *PDD_NTCALLBACKS;
+
+#define DDHAL_NTCB32_FREEDRIVERMEMORY 0x00000001
+#define DDHAL_NTCB32_SETEXCLUSIVEMODE 0x00000002
+#define DDHAL_NTCB32_FLIPTOGDISURFACE 0x00000004
+
+/************************************************************************/
+/* IDirectDrawPalette callbacks                                         */
+/************************************************************************/
+
+typedef struct _DD_DESTROYPALETTEDATA {
+  PDD_DIRECTDRAW_GLOBAL lpDD;
+  PDD_PALETTE_GLOBAL lpDDPalette;
+  HRESULT ddRVal;
+  PVOID DestroyPalette;
+} DD_DESTROYPALETTEDATA, *PDD_DESTROYPALETTEDATA;
+typedef DWORD (WINAPI *PDD_PALCB_DESTROYPALETTE)(PDD_DESTROYPALETTEDATA);
+
+typedef struct _DD_SETENTRIESDATA {
+  PDD_DIRECTDRAW_GLOBAL lpDD;
+  PDD_PALETTE_GLOBAL lpDDPalette;
+  DWORD dwBase;
+  DWORD dwNumEntries;
+  LPPALETTEENTRY lpEntries;
+  HRESULT ddRVal;
+  PVOID SetEntries;
+} DD_SETENTRIESDATA, *PDD_SETENTRIESDATA;
+typedef DWORD (WINAPI *PDD_PALCB_SETENTRIES)(PDD_SETENTRIESDATA);
+
+typedef struct DD_PALETTECALLBACKS {
+  DWORD dwSize;
+  DWORD dwFlags;
+  PDD_PALCB_DESTROYPALETTE DestroyPalette;
+  PDD_PALCB_SETENTRIES SetEntries;
+} DD_PALETTECALLBACKS, *PDD_PALETTECALLBACKS;
+
+#define DDHAL_PALCB32_DESTROYPALETTE  0x00000001l
+#define DDHAL_PALCB32_SETENTRIES      0x00000002l
+
+/************************************************************************/
+/* IDirectDrawVideoport callbacks                                       */
+/************************************************************************/
+
+typedef struct _DD_CANCREATEVPORTDATA {
+  PDD_DIRECTDRAW_LOCAL lpDD;
+  LPDDVIDEOPORTDESC lpDDVideoPortDesc;
+  HRESULT ddRVal;
+  PVOID CanCreateVideoPort;
+} DD_CANCREATEVPORTDATA, *PDD_CANCREATEVPORTDATA;
+typedef DWORD (WINAPI *PDD_VPORTCB_CANCREATEVIDEOPORT)(PDD_CANCREATEVPORTDATA);
+
+typedef struct _DD_CREATEVPORTDATA {
+  PDD_DIRECTDRAW_LOCAL lpDD;
+  LPDDVIDEOPORTDESC lpDDVideoPortDesc;
+  PDD_VIDEOPORT_LOCAL lpVideoPort;
+  HRESULT ddRVal;
+  PVOID CreateVideoPort;
+} DD_CREATEVPORTDATA, *PDD_CREATEVPORTDATA;
+typedef DWORD (WINAPI *PDD_VPORTCB_CREATEVIDEOPORT)(PDD_CREATEVPORTDATA);
+
+typedef struct _DD_FLIPVPORTDATA {
+  PDD_DIRECTDRAW_LOCAL lpDD;
+  PDD_VIDEOPORT_LOCAL lpVideoPort;
+  PDD_SURFACE_LOCAL lpSurfCurr;
+  PDD_SURFACE_LOCAL lpSurfTarg;
+  HRESULT ddRVal;
+  PVOID FlipVideoPort;
+} DD_FLIPVPORTDATA, *PDD_FLIPVPORTDATA;
+typedef DWORD (WINAPI *PDD_VPORTCB_FLIP)(PDD_FLIPVPORTDATA);
+
+typedef struct _DD_GETVPORTBANDWIDTHDATA {
+  PDD_DIRECTDRAW_LOCAL lpDD;
+  PDD_VIDEOPORT_LOCAL lpVideoPort;
+  LPDDPIXELFORMAT lpddpfFormat;
+  DWORD dwWidth;
+  DWORD dwHeight;
+  DWORD dwFlags;
+  LPDDVIDEOPORTBANDWIDTH lpBandwidth;
+  HRESULT ddRVal;
+  PVOID GetVideoPortBandwidth;
+} DD_GETVPORTBANDWIDTHDATA, *PDD_GETVPORTBANDWIDTHDATA;
+typedef DWORD (WINAPI *PDD_VPORTCB_GETBANDWIDTH)(PDD_GETVPORTBANDWIDTHDATA);
+
+typedef struct _DD_GETVPORTINPUTFORMATDATA {
+  PDD_DIRECTDRAW_LOCAL lpDD;
+  PDD_VIDEOPORT_LOCAL lpVideoPort;
+  DWORD dwFlags;
+  LPDDPIXELFORMAT lpddpfFormat;
+  DWORD dwNumFormats;
+  HRESULT ddRVal;
+  PVOID GetVideoPortInputFormats;
+} DD_GETVPORTINPUTFORMATDATA, *PDD_GETVPORTINPUTFORMATDATA;
+typedef DWORD (WINAPI *PDD_VPORTCB_GETINPUTFORMATS)(PDD_GETVPORTINPUTFORMATDATA);
+
+typedef struct _DD_GETVPORTOUTPUTFORMATDATA {
+  PDD_DIRECTDRAW_LOCAL lpDD;
+  PDD_VIDEOPORT_LOCAL lpVideoPort;
+  DWORD dwFlags;
+  LPDDPIXELFORMAT lpddpfInputFormat;
+  LPDDPIXELFORMAT lpddpfOutputFormats;
+  DWORD dwNumFormats;
+  HRESULT ddRVal;
+  PVOID GetVideoPortInputFormats;
+} DD_GETVPORTOUTPUTFORMATDATA, *PDD_GETVPORTOUTPUTFORMATDATA;
+typedef DWORD (WINAPI *PDD_VPORTCB_GETOUTPUTFORMATS)(PDD_GETVPORTOUTPUTFORMATDATA);
+
+typedef struct _DD_GETVPORTFIELDDATA {
+  PDD_DIRECTDRAW_LOCAL lpDD;
+  PDD_VIDEOPORT_LOCAL lpVideoPort;
+  BOOL bField;
+  HRESULT ddRVal;
+  PVOID GetVideoPortField;
+} DD_GETVPORTFIELDDATA, *PDD_GETVPORTFIELDDATA;
+typedef DWORD (WINAPI *PDD_VPORTCB_GETFIELD)(PDD_GETVPORTFIELDDATA);
+
+typedef struct _DD_GETVPORTLINEDATA {
+  PDD_DIRECTDRAW_LOCAL lpDD;
+  PDD_VIDEOPORT_LOCAL lpVideoPort;
+  DWORD dwLine;
+  HRESULT ddRVal;
+  PVOID GetVideoPortLine;
+} DD_GETVPORTLINEDATA, *PDD_GETVPORTLINEDATA;
+typedef DWORD (WINAPI *PDD_VPORTCB_GETLINE)(PDD_GETVPORTLINEDATA);
+
+typedef struct _DD_GETVPORTCONNECTDATA {
+  PDD_DIRECTDRAW_LOCAL lpDD;
+  DWORD dwPortId;
+  LPDDVIDEOPORTCONNECT lpConnect;
+  DWORD dwNumEntries;
+  HRESULT ddRVal;
+  PVOID GetVideoPortConnectInfo;
+} DD_GETVPORTCONNECTDATA, *PDD_GETVPORTCONNECTDATA;
+typedef DWORD (WINAPI *PDD_VPORTCB_GETVPORTCONNECT)(PDD_GETVPORTCONNECTDATA);
+
+typedef struct _DD_DESTROYVPORTDATA {
+  PDD_DIRECTDRAW_LOCAL lpDD;
+  PDD_VIDEOPORT_LOCAL lpVideoPort;
+  HRESULT ddRVal;
+  PVOID DestroyVideoPort;
+} DD_DESTROYVPORTDATA, *PDD_DESTROYVPORTDATA;
+typedef DWORD (WINAPI *PDD_VPORTCB_DESTROYVPORT)(PDD_DESTROYVPORTDATA);
+
+typedef struct _DD_GETVPORTFLIPSTATUSDATA {
+  PDD_DIRECTDRAW_LOCAL lpDD;
+  FLATPTR fpSurface;
+  HRESULT ddRVal;
+  PVOID GetVideoPortFlipStatus;
+} DD_GETVPORTFLIPSTATUSDATA, *PDD_GETVPORTFLIPSTATUSDATA;
+typedef DWORD (WINAPI *PDD_VPORTCB_GETFLIPSTATUS)(PDD_GETVPORTFLIPSTATUSDATA);
+
+typedef struct _DD_UPDATEVPORTDATA {
+  PDD_DIRECTDRAW_LOCAL lpDD;
+  PDD_VIDEOPORT_LOCAL lpVideoPort;
+  PDD_SURFACE_INT *lplpDDSurface;
+  PDD_SURFACE_INT *lplpDDVBISurface;
+  LPDDVIDEOPORTINFO lpVideoInfo;
+  DWORD dwFlags;
+  DWORD dwNumAutoflip;
+  DWORD dwNumVBIAutoflip;
+  HRESULT ddRVal;
+  PVOID UpdateVideoPort;
+} DD_UPDATEVPORTDATA, *PDD_UPDATEVPORTDATA;
+typedef DWORD (WINAPI *PDD_VPORTCB_UPDATE)(PDD_UPDATEVPORTDATA);
+
+typedef struct _DD_WAITFORVPORTSYNCDATA {
+  PDD_DIRECTDRAW_LOCAL lpDD;
+  PDD_VIDEOPORT_LOCAL lpVideoPort;
+  DWORD dwFlags;
+  DWORD dwLine;
+  DWORD dwTimeOut;
+  HRESULT ddRVal;
+  PVOID UpdateVideoPort;
+} DD_WAITFORVPORTSYNCDATA, *PDD_WAITFORVPORTSYNCDATA;
+typedef DWORD (WINAPI *PDD_VPORTCB_WAITFORSYNC)(PDD_WAITFORVPORTSYNCDATA);
+
+typedef struct _DD_GETVPORTSIGNALDATA {
+  PDD_DIRECTDRAW_LOCAL lpDD;
+  PDD_VIDEOPORT_LOCAL lpVideoPort;
+  DWORD dwStatus;
+  HRESULT ddRVal;
+  PVOID GetVideoSignalStatus;
+} DD_GETVPORTSIGNALDATA, *PDD_GETVPORTSIGNALDATA;
+typedef DWORD (WINAPI *PDD_VPORTCB_GETSIGNALSTATUS)(PDD_GETVPORTSIGNALDATA);
+
+typedef struct _DD_VPORTCOLORDATA {
+  PDD_DIRECTDRAW_LOCAL lpDD;
+  PDD_VIDEOPORT_LOCAL lpVideoPort;
+  DWORD dwFlags;
+  LPDDCOLORCONTROL lpColorData;
+  HRESULT ddRVal;
+  PVOID ColorControl;
+} DD_VPORTCOLORDATA, *PDD_VPORTCOLORDATA;
+typedef DWORD (WINAPI *PDD_VPORTCB_COLORCONTROL)(PDD_VPORTCOLORDATA);
+
+typedef struct DD_VIDEOPORTCALLBACKS {
+  DWORD dwSize;
+  DWORD dwFlags;
+  PDD_VPORTCB_CANCREATEVIDEOPORT CanCreateVideoPort;
+  PDD_VPORTCB_CREATEVIDEOPORT CreateVideoPort;
+  PDD_VPORTCB_FLIP FlipVideoPort;
+  PDD_VPORTCB_GETBANDWIDTH GetVideoPortBandwidth;
+  PDD_VPORTCB_GETINPUTFORMATS GetVideoPortInputFormats;
+  PDD_VPORTCB_GETOUTPUTFORMATS GetVideoPortOutputFormats;
+  PVOID lpReserved1;
+  PDD_VPORTCB_GETFIELD GetVideoPortField;
+  PDD_VPORTCB_GETLINE GetVideoPortLine;
+  PDD_VPORTCB_GETVPORTCONNECT GetVideoPortConnectInfo;
+  PDD_VPORTCB_DESTROYVPORT DestroyVideoPort;
+  PDD_VPORTCB_GETFLIPSTATUS GetVideoPortFlipStatus;
+  PDD_VPORTCB_UPDATE UpdateVideoPort;
+  PDD_VPORTCB_WAITFORSYNC WaitForVideoPortSync;
+  PDD_VPORTCB_GETSIGNALSTATUS GetVideoSignalStatus;
+  PDD_VPORTCB_COLORCONTROL ColorControl;
+} DD_VIDEOPORTCALLBACKS, *PDD_VIDEOPORTCALLBACKS;
+
+#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      0x0001
+#define DDRAWI_SETCOLOR      0x0002
+
+typedef struct _DD_COLORCONTROLDATA {
+  PDD_DIRECTDRAW_GLOBAL lpDD;
+  PDD_SURFACE_LOCAL lpDDSurface;
+  LPDDCOLORCONTROL lpColorData;
+  DWORD dwFlags;
+  HRESULT ddRVal;
+  PVOID ColorControl;
+} DD_COLORCONTROLDATA, *PDD_COLORCONTROLDATA;
+typedef DWORD (WINAPI *PDD_COLORCB_COLORCONTROL)(PDD_COLORCONTROLDATA);
+
+typedef struct _DD_COLORCONTROLCALLBACKS {
+  DWORD dwSize;
+  DWORD dwFlags;
+  PDD_COLORCB_COLORCONTROL ColorControl;
+} DD_COLORCONTROLCALLBACKS, *PDD_COLORCONTROLCALLBACKS;
+
+#define DDHAL_COLOR_COLORCONTROL            0x00000001
+
+/************************************************************************/
+/* IDirectDrawVideo callbacks                                           */
+/************************************************************************/
+
+typedef struct _DD_GETMOCOMPGUIDSDATA {
+  PDD_DIRECTDRAW_LOCAL lpDD;
+  DWORD dwNumGuids;
+  GUID *lpGuids;
+  HRESULT ddRVal;
+} DD_GETMOCOMPGUIDSDATA, *PDD_GETMOCOMPGUIDSDATA;
+typedef DWORD (WINAPI *PDD_MOCOMPCB_GETGUIDS)(PDD_GETMOCOMPGUIDSDATA);
+
+typedef struct _DD_GETMOCOMPFORMATSDATA {
+  PDD_DIRECTDRAW_LOCAL lpDD;
+  GUID *lpGuid;
+  DWORD dwNumFormats;
+  LPDDPIXELFORMAT lpFormats;
+  HRESULT ddRVal;
+} DD_GETMOCOMPFORMATSDATA, *PDD_GETMOCOMPFORMATSDATA;
+typedef DWORD (WINAPI *PDD_MOCOMPCB_GETFORMATS)(PDD_GETMOCOMPFORMATSDATA);
+
+typedef struct _DD_CREATEMOCOMPDATA {
+  PDD_DIRECTDRAW_LOCAL lpDD;
+  PDD_MOTIONCOMP_LOCAL lpMoComp;
+  GUID *lpGuid;
+  DWORD dwUncompWidth;
+  DWORD dwUncompHeight;
+  DDPIXELFORMAT ddUncompPixelFormat;
+  LPVOID lpData;
+  DWORD dwDataSize;
+  HRESULT ddRVal;
+} DD_CREATEMOCOMPDATA, *PDD_CREATEMOCOMPDATA;
+typedef DWORD (WINAPI *PDD_MOCOMPCB_CREATE)(PDD_CREATEMOCOMPDATA);
+
+typedef struct _DDCOMPBUFFERINFO {
+  DWORD dwSize;
+  DWORD dwNumCompBuffers;
+  DWORD dwWidthToCreate;
+  DWORD dwHeightToCreate;
+  DWORD dwBytesToAllocate;
+  DDSCAPS2 ddCompCaps;
+  DDPIXELFORMAT ddPixelFormat;
+} DDCOMPBUFFERINFO, *LPDDCOMPBUFFERINFO;
+
+typedef struct _DD_GETMOCOMPCOMPBUFFDATA {
+  PDD_DIRECTDRAW_LOCAL lpDD;
+  GUID *lpGuid;
+  DWORD dwWidth;
+  DWORD dwHeight;
+  DDPIXELFORMAT ddPixelFormat;
+  DWORD dwNumTypesCompBuffs;
+  LPDDCOMPBUFFERINFO lpCompBuffInfo;
+  HRESULT ddRVal;
+} DD_GETMOCOMPCOMPBUFFDATA, *PDD_GETMOCOMPCOMPBUFFDATA;
+typedef DWORD (WINAPI *PDD_MOCOMPCB_GETCOMPBUFFINFO)(PDD_GETMOCOMPCOMPBUFFDATA);
+
+typedef struct _DD_GETINTERNALMOCOMPDATA {
+  PDD_DIRECTDRAW_LOCAL lpDD;
+  GUID *lpGuid;
+  DWORD dwWidth;
+  DWORD dwHeight;
+  DDPIXELFORMAT ddPixelFormat;
+  DWORD dwScratchMemAlloc;
+  HRESULT ddRVal;
+} DD_GETINTERNALMOCOMPDATA, *PDD_GETINTERNALMOCOMPDATA;
+typedef DWORD (WINAPI *PDD_MOCOMPCB_GETINTERNALINFO)(PDD_GETINTERNALMOCOMPDATA);
+
+typedef struct _DD_BEGINMOCOMPFRAMEDATA {
+  PDD_DIRECTDRAW_LOCAL lpDD;
+  PDD_MOTIONCOMP_LOCAL lpMoComp;
+  PDD_SURFACE_LOCAL lpDestSurface;
+  DWORD dwInputDataSize;
+  LPVOID lpInputData;
+  DWORD dwOutputDataSize;
+  LPVOID lpOutputData;
+  HRESULT ddRVal;
+} DD_BEGINMOCOMPFRAMEDATA, *PDD_BEGINMOCOMPFRAMEDATA;
+typedef DWORD (WINAPI *PDD_MOCOMPCB_BEGINFRAME)(PDD_BEGINMOCOMPFRAMEDATA);
+
+typedef struct _DD_ENDMOCOMPFRAMEDATA {
+  PDD_DIRECTDRAW_LOCAL lpDD;
+  PDD_MOTIONCOMP_LOCAL lpMoComp;
+  LPVOID lpInputData;
+  DWORD dwInputDataSize;
+  HRESULT ddRVal;
+} DD_ENDMOCOMPFRAMEDATA, *PDD_ENDMOCOMPFRAMEDATA;
+typedef DWORD (WINAPI *PDD_MOCOMPCB_ENDFRAME)(PDD_ENDMOCOMPFRAMEDATA);
+
+typedef struct _DDMOCOMPBUFFERINFO {
+  DWORD dwSize;
+  PDD_SURFACE_LOCAL lpCompSurface;
+  DWORD dwDataOffset;
+  DWORD dwDataSize;
+  LPVOID lpPrivate;
+} DDMOCOMPBUFFERINFO, *LPDDMOCOMPBUFFERINFO;
+
+typedef struct _DD_RENDERMOCOMPDATA {
+  PDD_DIRECTDRAW_LOCAL lpDD;
+  PDD_MOTIONCOMP_LOCAL lpMoComp;
+  DWORD dwNumBuffers;
+  LPDDMOCOMPBUFFERINFO lpBufferInfo;
+  DWORD dwFunction;
+  LPVOID lpInputData;
+  DWORD dwInputDataSize;
+  LPVOID lpOutputData;
+  DWORD dwOutputDataSize;
+  HRESULT ddRVal;
+} DD_RENDERMOCOMPDATA, *PDD_RENDERMOCOMPDATA;
+typedef DWORD (WINAPI *PDD_MOCOMPCB_RENDER)(PDD_RENDERMOCOMPDATA);
+
+#define DDMCQUERY_READ 0x00000001
+
+typedef struct _DD_QUERYMOCOMPSTATUSDATA {
+  PDD_DIRECTDRAW_LOCAL lpDD;
+  PDD_MOTIONCOMP_LOCAL lpMoComp;
+  PDD_SURFACE_LOCAL lpSurface;
+  DWORD dwFlags;
+  HRESULT ddRVal;
+} DD_QUERYMOCOMPSTATUSDATA, *PDD_QUERYMOCOMPSTATUSDATA;
+typedef DWORD (WINAPI *PDD_MOCOMPCB_QUERYSTATUS)(PDD_QUERYMOCOMPSTATUSDATA);
+
+typedef struct _DD_DESTROYMOCOMPDATA {
+  PDD_DIRECTDRAW_LOCAL lpDD;
+  PDD_MOTIONCOMP_LOCAL lpMoComp;
+  HRESULT ddRVal;
+} DD_DESTROYMOCOMPDATA, *PDD_DESTROYMOCOMPDATA;
+typedef DWORD (WINAPI *PDD_MOCOMPCB_DESTROY)(PDD_DESTROYMOCOMPDATA);
+
+typedef struct DD_MOTIONCOMPCALLBACKS {
+  DWORD dwSize;
+  DWORD dwFlags;
+  PDD_MOCOMPCB_GETGUIDS GetMoCompGuids;
+  PDD_MOCOMPCB_GETFORMATS GetMoCompFormats;
+  PDD_MOCOMPCB_CREATE CreateMoComp;
+  PDD_MOCOMPCB_GETCOMPBUFFINFO GetMoCompBuffInfo;
+  PDD_MOCOMPCB_GETINTERNALINFO GetInternalMoCompInfo;
+  PDD_MOCOMPCB_BEGINFRAME BeginMoCompFrame;
+  PDD_MOCOMPCB_ENDFRAME EndMoCompFrame;
+  PDD_MOCOMPCB_RENDER RenderMoComp;
+  PDD_MOCOMPCB_QUERYSTATUS QueryMoCompStatus;
+  PDD_MOCOMPCB_DESTROY DestroyMoComp;
+} 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 _DD_D3DBUFCALLBACKS {
+  DWORD dwSize;
+  DWORD dwFlags;
+  PDD_CANCREATESURFACE CanCreateD3DBuffer;
+  PDD_CREATESURFACE CreateD3DBuffer;
+  PDD_SURFCB_DESTROYSURFACE DestroyD3DBuffer;
+  PDD_SURFCB_LOCK LockD3DBuffer;
+  PDD_SURFCB_UNLOCK UnlockD3DBuffer;
+} DD_D3DBUFCALLBACKS, *PDD_D3DBUFCALLBACKS;
+
+/************************************************************************/
+/* DdGetDriverInfo callback                                             */
+/************************************************************************/
+
+typedef struct _DD_GETDRIVERINFODATA {
+// Input:
+  PVOID dhpdev;
+  DWORD dwSize;
+  DWORD dwFlags;
+  GUID guidInfo;
+  DWORD dwExpectedSize;
+  PVOID lpvData;
+// Output:
+  DWORD dwActualSize;
+  HRESULT ddRVal;
+} DD_GETDRIVERINFODATA, *PDD_GETDRIVERINFODATA;
+typedef DWORD (WINAPI *PDD_GETDRIVERINFO)(PDD_GETDRIVERINFODATA);
+
+/************************************************************************/
+/* Driver info structures                                               */
+/************************************************************************/
+
+typedef struct _DDNTCORECAPS {
+  DWORD dwSize;
+  DWORD dwCaps;
+  DWORD dwCaps2;
+  DWORD dwCKeyCaps;
+  DWORD dwFXCaps;
+  DWORD dwFXAlphaCaps;
+  DWORD dwPalCaps;
+  DWORD dwSVCaps;
+  DWORD dwAlphaBltConstBitDepths;
+  DWORD dwAlphaBltPixelBitDepths;
+  DWORD dwAlphaBltSurfaceBitDepths;
+  DWORD dwAlphaOverlayConstBitDepths;
+  DWORD dwAlphaOverlayPixelBitDepths;
+  DWORD dwAlphaOverlaySurfaceBitDepths;
+  DWORD dwZBufferBitDepths;
+  DWORD dwVidMemTotal;
+  DWORD dwVidMemFree;
+  DWORD dwMaxVisibleOverlays;
+  DWORD dwCurrVisibleOverlays;
+  DWORD dwNumFourCCCodes;
+  DWORD dwAlignBoundarySrc;
+  DWORD dwAlignSizeSrc;
+  DWORD dwAlignBoundaryDest;
+  DWORD dwAlignSizeDest;
+  DWORD dwAlignStrideAlign;
+  DWORD dwRops[DD_ROP_SPACE];
+  DDSCAPS ddsCaps;
+  DWORD dwMinOverlayStretch;
+  DWORD dwMaxOverlayStretch;
+  DWORD dwMinLiveVideoStretch;
+  DWORD dwMaxLiveVideoStretch;
+  DWORD dwMinHwCodecStretch;
+  DWORD dwMaxHwCodecStretch;
+  DWORD dwReserved1;
+  DWORD dwReserved2;
+  DWORD dwReserved3;
+  DWORD dwSVBCaps;
+  DWORD dwSVBCKeyCaps;
+  DWORD dwSVBFXCaps;
+  DWORD dwSVBRops[DD_ROP_SPACE];
+  DWORD dwVSBCaps;
+  DWORD dwVSBCKeyCaps;
+  DWORD dwVSBFXCaps;
+  DWORD dwVSBRops[DD_ROP_SPACE];
+  DWORD dwSSBCaps;
+  DWORD dwSSBCKeyCaps;
+  DWORD dwSSBFXCaps;
+  DWORD dwSSBRops[DD_ROP_SPACE];
+  DWORD dwMaxVideoPorts;
+  DWORD dwCurrVideoPorts;
+  DWORD dwSVBCaps2;
+} DDNTCORECAPS, *PDDNTCORECAPS;
+
+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;
+  DDNTCORECAPS ddCaps;
+  PDD_GETDRIVERINFO GetDriverInfo;
+  DWORD dwFlags;
+  PVOID lpD3DGlobalDriverData;
+  PVOID lpD3DHALCallbacks;
+  PDD_D3DBUFCALLBACKS lpD3DBufCallbacks;
+} DD_HALINFO, *PDD_HALINFO;
+
+typedef struct _DD_NONLOCALVIDMEMCAPS {
+  DWORD dwSize;
+  DWORD dwNLVBCaps;
+  DWORD dwNLVBCaps2;
+  DWORD dwNLVBCKeyCaps;
+  DWORD dwNLVBFXCaps;
+  DWORD dwNLVBRops[DD_ROP_SPACE];
+} DD_NONLOCALVIDMEMCAPS, *PDD_NONLOCALVIDMEMCAPS;
+
+typedef struct _DD_MORESURFACECAPS {
+  DWORD dwSize;
+  DDSCAPSEX ddsCapsMore;
+  struct tagNTExtendedHeapRestrictions {
+    DDSCAPSEX ddsCapsEx;
+    DDSCAPSEX ddsCapsExAlt;
+  } ddsExtendedHeapRestrictions[1];
+} 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 (WINAPI *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 (WINAPI *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__ */
index ec4e6ec..6c1a08d 100644 (file)
@@ -1975,7 +1975,7 @@ extern const DIDATAFORMAT c_dfDIKeyboard;
 extern const DIDATAFORMAT c_dfDIJoystick;
 extern const DIDATAFORMAT c_dfDIJoystick2;
 #ifdef __cplusplus
-};
+}
 #endif
 
 /*****************************************************************************
@@ -2285,7 +2285,7 @@ HRESULT WINAPI DirectInputCreateW(HINSTANCE,DWORD,LPDIRECTINPUTW *,LPUNKNOWN);
 HRESULT WINAPI DirectInputCreateEx(HINSTANCE,DWORD,REFIID,LPVOID *,LPUNKNOWN);
 
 #ifdef __cplusplus
-};
+}
 #endif
 
 #endif /* __WINE_DINPUT_H */
similarity index 99%
rename from reactos/include/ddk/dmemmgr.h
rename to reactos/include/psdk/dmemmgr.h
index 3d11f0b..5a637f7 100644 (file)
@@ -166,7 +166,7 @@ extern FLATPTR WINAPI
 
 
 #ifdef __cplusplus
-};
+}
 #endif
 
 #endif
index 204492d..fd6c0a5 100644 (file)
@@ -173,7 +173,7 @@ DECLARE_INTERFACE_(IStillImageW, IUnknown)
 #endif
 
 #ifdef __cplusplus
-};
+}
 #endif
 
 #include <poppack.h>