[DDRAW] Directory reorganization (part 3)

Christian Costa titan.costa at wanadoo.fr
Wed Jun 1 15:47:17 CDT 2005


Hi,

Changelog:
Merged remaining header files in DirectDraw objects folders into 
ddraw_private.h.

Christian Costa   titan.costa at wanadoo.fr

-------------- next part --------------
--- dlls/ddraw/dclipper/main.h	2004-08-25 20:13:52.000000000 +0100
+++ /dev/null	1970-01-01 01:00:00.000000000 +0100
@@ -1,51 +0,0 @@
-/*
- * Copyright 2000 TransGaming Technologies Inc.
- *
- * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#ifndef WINE_DDRAW_DCLIPPER_MAIN_H_INCLUDED
-#define WINE_DDRAW_DCLIPPER_MAIN_H_INCLUDED
-
-HRESULT WINAPI DirectDrawCreateClipper(DWORD dwFlags,
-				       LPDIRECTDRAWCLIPPER* ppClipper,
-				       LPUNKNOWN pUnkOuter);
-HRESULT DDRAW_CreateClipper(IUnknown* pUnkOuter, REFIID riid, LPVOID* ppObj);
-void Main_DirectDrawClipper_ForceDestroy(IDirectDrawClipperImpl* This);
-
-HRESULT WINAPI
-Main_DirectDrawClipper_SetHwnd(LPDIRECTDRAWCLIPPER iface, DWORD dwFlags,
-			       HWND hWnd);
-ULONG WINAPI Main_DirectDrawClipper_Release(LPDIRECTDRAWCLIPPER iface);
-HRESULT WINAPI
-Main_DirectDrawClipper_GetClipList(LPDIRECTDRAWCLIPPER iface, LPRECT lpRect,
-				   LPRGNDATA lpClipList, LPDWORD lpdwSize);
-HRESULT WINAPI
-Main_DirectDrawClipper_SetClipList(LPDIRECTDRAWCLIPPER iface,LPRGNDATA lprgn,
-				   DWORD dwFlag);
-HRESULT WINAPI
-Main_DirectDrawClipper_QueryInterface(LPDIRECTDRAWCLIPPER iface, REFIID riid,
-				      LPVOID* ppvObj);
-ULONG WINAPI Main_DirectDrawClipper_AddRef( LPDIRECTDRAWCLIPPER iface );
-HRESULT WINAPI
-Main_DirectDrawClipper_GetHWnd(LPDIRECTDRAWCLIPPER iface, HWND* hWndPtr);
-HRESULT WINAPI
-Main_DirectDrawClipper_Initialize(LPDIRECTDRAWCLIPPER iface, LPDIRECTDRAW lpDD,
-				  DWORD dwFlags);
-HRESULT WINAPI
-Main_DirectDrawClipper_IsClipListChanged(LPDIRECTDRAWCLIPPER iface,
-					 BOOL* lpbChanged);
-
-#endif
--- dlls/ddraw/dpalette/main.h	2003-07-28 20:36:35.000000000 +0100
+++ /dev/null	1970-01-01 01:00:00.000000000 +0100
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2001 TransGaming Technologies Inc.
- *
- * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#ifndef WINE_DDRAW_DPALETTE_MAIN_H_INCLUDED
-#define WINE_DDRAW_DPALETTE_MAIN_H_INCLUDED
-
-HRESULT Main_DirectDrawPalette_Construct(IDirectDrawPaletteImpl* This,
-					 IDirectDrawImpl* pDD, DWORD dwFlags);
-void Main_DirectDrawPalette_final_release(IDirectDrawPaletteImpl* This);
-
-
-HRESULT
-Main_DirectDrawPalette_Create(IDirectDrawImpl* pDD, DWORD dwFlags,
-			      LPDIRECTDRAWPALETTE* ppPalette,
-			      LPUNKNOWN pUnkOuter);
-void Main_DirectDrawPalette_ForceDestroy(IDirectDrawPaletteImpl* This);
-
-
-DWORD Main_DirectDrawPalette_Size(DWORD dwFlags);
-
-
-
-HRESULT WINAPI
-Main_DirectDrawPalette_GetEntries(LPDIRECTDRAWPALETTE iface, DWORD dwFlags,
-				  DWORD dwStart, DWORD dwCount,
-				  LPPALETTEENTRY palent);
-HRESULT WINAPI
-Main_DirectDrawPalette_SetEntries(LPDIRECTDRAWPALETTE iface, DWORD dwFlags,
-				  DWORD dwStart, DWORD dwCount,
-				  LPPALETTEENTRY palent);
-ULONG WINAPI
-Main_DirectDrawPalette_Release(LPDIRECTDRAWPALETTE iface);
-ULONG WINAPI Main_DirectDrawPalette_AddRef(LPDIRECTDRAWPALETTE iface);
-HRESULT WINAPI
-Main_DirectDrawPalette_Initialize(LPDIRECTDRAWPALETTE iface,
-				  LPDIRECTDRAW ddraw, DWORD dwFlags,
-				  LPPALETTEENTRY palent);
-HRESULT WINAPI
-Main_DirectDrawPalette_GetCaps(LPDIRECTDRAWPALETTE iface, LPDWORD lpdwCaps);
-HRESULT WINAPI
-Main_DirectDrawPalette_QueryInterface(LPDIRECTDRAWPALETTE iface,
-				      REFIID refiid, LPVOID *obj);
-
-
-#endif
--- dlls/ddraw/dpalette/hal.h	2003-07-28 20:36:35.000000000 +0100
+++ /dev/null	1970-01-01 01:00:00.000000000 +0100
@@ -1,36 +0,0 @@
-/*
- * Copyright 2000-2001 TransGaming Technologies Inc.
- *
- * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#ifndef WINE_DDRAW_DPALETTE_HAL_H_INCLUDED
-#define WINE_DDRAW_DPALETTE_HAL_H_INCLUDED
-
-HRESULT HAL_DirectDrawPalette_Construct(IDirectDrawPaletteImpl* This,
-					 IDirectDrawImpl* pDD, DWORD dwFlags);
-void HAL_DirectDrawPalette_final_release(IDirectDrawPaletteImpl* This);
-
-HRESULT
-HAL_DirectDrawPalette_Create(IDirectDrawImpl* pDD, DWORD dwFlags,
-			      LPDIRECTDRAWPALETTE* ppPalette,
-			      LPUNKNOWN pUnkOuter);
-
-HRESULT WINAPI
-HAL_DirectDrawPalette_SetEntries(LPDIRECTDRAWPALETTE iface, DWORD dwFlags,
-				  DWORD dwStart, DWORD dwCount,
-				  LPPALETTEENTRY palent);
-
-#endif
--- dlls/ddraw/ddraw/main.h	2003-07-28 20:36:35.000000000 +0100
+++ /dev/null	1970-01-01 01:00:00.000000000 +0100
@@ -1,124 +0,0 @@
-/*
- * Copyright 2000-2001 TransGaming Technologies Inc.
- *
- * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#ifndef WINE_DDRAW_DDRAW_MAIN_H_INCLUDED
-#define WINE_DDRAW_DDRAW_MAIN_H_INCLUDED
-
-/* internal virtual functions */
-void Main_DirectDraw_final_release(IDirectDrawImpl* This);
-HRESULT
-Main_create_offscreen(IDirectDrawImpl* This, const DDSURFACEDESC2 *pDDSD,
-		      LPDIRECTDRAWSURFACE7* ppSurf, LPUNKNOWN pOuter);
-HRESULT
-Main_create_texture(IDirectDrawImpl* This, const DDSURFACEDESC2 *pDDSD,
-		    LPDIRECTDRAWSURFACE7* ppSurf, LPUNKNOWN pOuter,
-		    DWORD dwMipMapLevel);
-HRESULT
-Main_create_zbuffer(IDirectDrawImpl* This, const DDSURFACEDESC2 *pDDSD,
-		    LPDIRECTDRAWSURFACE7* ppSurf, LPUNKNOWN pOuter);
-
-/* internal functions */
-HRESULT Main_DirectDraw_Construct(IDirectDrawImpl *This, BOOL ex);
-void Main_DirectDraw_AddSurface(IDirectDrawImpl* This,
-				IDirectDrawSurfaceImpl* surface);
-void Main_DirectDraw_RemoveSurface(IDirectDrawImpl* This,
-				   IDirectDrawSurfaceImpl* surface);
-void Main_DirectDraw_AddClipper(IDirectDrawImpl* This,
-				IDirectDrawClipperImpl* clipper);
-void Main_DirectDraw_RemoveClipper(IDirectDrawImpl* This,
-				   IDirectDrawClipperImpl* clipper);
-void Main_DirectDraw_AddPalette(IDirectDrawImpl* This,
-				IDirectDrawPaletteImpl* palette);
-void Main_DirectDraw_RemovePalette(IDirectDrawImpl* This,
-				   IDirectDrawPaletteImpl* palette);
-
-
-/* interface functions */
-
-ULONG WINAPI Main_DirectDraw_AddRef(LPDIRECTDRAW7 iface);
-ULONG WINAPI Main_DirectDraw_Release(LPDIRECTDRAW7 iface);
-HRESULT WINAPI Main_DirectDraw_QueryInterface(LPDIRECTDRAW7 iface,
-					      REFIID refiid,LPVOID *obj);
-HRESULT WINAPI Main_DirectDraw_Compact(LPDIRECTDRAW7 iface);
-HRESULT WINAPI Main_DirectDraw_CreateClipper(LPDIRECTDRAW7 iface,
-					     DWORD dwFlags,
-					     LPDIRECTDRAWCLIPPER *ppClipper,
-					     IUnknown *pUnkOuter);
-HRESULT WINAPI
-Main_DirectDraw_CreatePalette(LPDIRECTDRAW7 iface, DWORD dwFlags,
-			      LPPALETTEENTRY palent,
-			      LPDIRECTDRAWPALETTE* ppPalette,
-			      LPUNKNOWN pUnknown);
-HRESULT WINAPI
-Main_DirectDraw_CreateSurface(LPDIRECTDRAW7 iface, LPDDSURFACEDESC2 pDDSD,
-			      LPDIRECTDRAWSURFACE7 *ppSurf,
-			      IUnknown *pUnkOuter);
-HRESULT WINAPI
-Main_DirectDraw_DuplicateSurface(LPDIRECTDRAW7 iface, LPDIRECTDRAWSURFACE7 src,
-				 LPDIRECTDRAWSURFACE7* dst);
-HRESULT WINAPI
-Main_DirectDraw_EnumSurfaces(LPDIRECTDRAW7 iface, DWORD dwFlags,
-			     LPDDSURFACEDESC2 lpDDSD2, LPVOID context,
-			     LPDDENUMSURFACESCALLBACK7 callback);
-HRESULT WINAPI
-Main_DirectDraw_EvaluateMode(LPDIRECTDRAW7 iface,DWORD a,DWORD* b);
-HRESULT WINAPI Main_DirectDraw_FlipToGDISurface(LPDIRECTDRAW7 iface);
-HRESULT WINAPI
-Main_DirectDraw_GetCaps(LPDIRECTDRAW7 iface, LPDDCAPS pDriverCaps,
-			LPDDCAPS pHELCaps);
-HRESULT WINAPI
-Main_DirectDraw_GetFourCCCodes(LPDIRECTDRAW7 iface, LPDWORD pNumCodes,
-			       LPDWORD pCodes);
-HRESULT WINAPI
-Main_DirectDraw_GetGDISurface(LPDIRECTDRAW7 iface,
-			      LPDIRECTDRAWSURFACE7 *lplpGDIDDSSurface);
-HRESULT WINAPI
-Main_DirectDraw_GetMonitorFrequency(LPDIRECTDRAW7 iface,LPDWORD freq);
-HRESULT WINAPI
-Main_DirectDraw_GetScanLine(LPDIRECTDRAW7 iface, LPDWORD lpdwScanLine);
-HRESULT WINAPI
-Main_DirectDraw_GetSurfaceFromDC(LPDIRECTDRAW7 iface, HDC hdc,
-				 LPDIRECTDRAWSURFACE7 *lpDDS);
-HRESULT WINAPI
-Main_DirectDraw_GetVerticalBlankStatus(LPDIRECTDRAW7 iface, LPBOOL status);
-HRESULT WINAPI
-Main_DirectDraw_Initialize(LPDIRECTDRAW7 iface, LPGUID lpGuid);
-HRESULT WINAPI Main_DirectDraw_RestoreAllSurfaces(LPDIRECTDRAW7 iface);
-HRESULT WINAPI
-Main_DirectDraw_SetCooperativeLevel(LPDIRECTDRAW7 iface, HWND hwnd,
-				    DWORD cooplevel);
-HRESULT WINAPI
-Main_DirectDraw_SetDisplayMode(LPDIRECTDRAW7 iface, DWORD dwWidth,
-			       DWORD dwHeight, LONG lPitch,
-			       DWORD dwRefreshRate, DWORD dwFlags,
-			       const DDPIXELFORMAT* pixelformat);
-HRESULT WINAPI Main_DirectDraw_RestoreDisplayMode(LPDIRECTDRAW7 iface);
-HRESULT WINAPI
-Main_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7 iface, DWORD dwFlags,
-				     HANDLE h);
-HRESULT WINAPI
-Main_DirectDraw_GetDisplayMode(LPDIRECTDRAW7 iface, LPDDSURFACEDESC2 pDDSD);
-HRESULT WINAPI
-Main_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 iface,LPDDSCAPS2 ddscaps,
-				   LPDWORD total, LPDWORD free);
-HRESULT WINAPI Main_DirectDraw_TestCooperativeLevel(LPDIRECTDRAW7 iface);
-HRESULT WINAPI
-Main_DirectDraw_StartModeTest(LPDIRECTDRAW7 iface, LPSIZE pModes,
-			      DWORD dwNumModes, DWORD dwFlags);
-
-#endif
--- dlls/ddraw/ddraw/user.h	2003-07-28 20:36:35.000000000 +0100
+++ /dev/null	1970-01-01 01:00:00.000000000 +0100
@@ -1,64 +0,0 @@
-/*
- * Copyright 2000-2001 TransGaming Technologies Inc.
- *
- * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#ifndef WINE_DDRAW_DDRAW_USER_H_INCLUDED
-#define WINE_DDRAW_DDRAW_USER_H_INCLUDED
-
-#define USER_DDRAW_PRIV(ddraw) ((User_DirectDrawImpl*)((ddraw)->private))
-#define USER_DDRAW_PRIV_VAR(name,ddraw) \
-	User_DirectDrawImpl* name = USER_DDRAW_PRIV(ddraw)
-
-typedef struct
-{
-    int empty;
-    /* empty */
-} User_DirectDrawImpl_Part;
-
-typedef struct
-{
-    User_DirectDrawImpl_Part user;
-} User_DirectDrawImpl;
-
-void User_DirectDraw_final_release(IDirectDrawImpl* This);
-HRESULT User_DirectDraw_create_primary(IDirectDrawImpl* This,
-				       const DDSURFACEDESC2* pDDSD,
-				       LPDIRECTDRAWSURFACE7* ppSurf,
-				       LPUNKNOWN pOuter);
-HRESULT User_DirectDraw_create_backbuffer(IDirectDrawImpl* This,
-					  const DDSURFACEDESC2* pDDSD,
-					  LPDIRECTDRAWSURFACE7* ppSurf,
-					  LPUNKNOWN pOuter,
-					  IDirectDrawSurfaceImpl* primary);
-HRESULT User_DirectDraw_Construct(IDirectDrawImpl *This, BOOL ex);
-HRESULT User_DirectDraw_Create(const GUID* pGUID, LPDIRECTDRAW7* pIface,
-			       IUnknown* pUnkOuter, BOOL ex);
-
-HRESULT WINAPI
-User_DirectDraw_EnumDisplayModes(LPDIRECTDRAW7 iface, DWORD dwFlags,
-				 LPDDSURFACEDESC2 pDDSD, LPVOID context,
-				 LPDDENUMMODESCALLBACK2 callback);
-HRESULT WINAPI
-User_DirectDraw_GetDeviceIdentifier(LPDIRECTDRAW7 iface,
-				    LPDDDEVICEIDENTIFIER2 pDDDI,
-				    DWORD dwFlags);
-HRESULT WINAPI
-User_DirectDraw_SetDisplayMode(LPDIRECTDRAW7 iface, DWORD dwWidth,
-			       DWORD dwHeight, DWORD dwBPP,
-			       DWORD dwRefreshRate, DWORD dwFlags);
-
-#endif
--- dlls/ddraw/ddraw/hal.h	2003-07-28 20:36:35.000000000 +0100
+++ /dev/null	1970-01-01 01:00:00.000000000 +0100
@@ -1,70 +0,0 @@
-/*
- * Copyright 2001 TransGaming Technologies, Inc.
- *
- * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#ifndef WINE_DDRAW_DDRAW_HAL_H_INCLUDED
-#define WINE_DDRAW_DDRAW_HAL_H_INCLUDED
-
-#define HAL_DDRAW_PRIV(ddraw) \
-	((HAL_DirectDrawImpl*)((ddraw)->private))
-#define HAL_DDRAW_PRIV_VAR(name,ddraw) \
-	HAL_DirectDrawImpl* name = HAL_DDRAW_PRIV(ddraw)
-
-typedef struct
-{
-    DWORD next_vofs;
-} HAL_DirectDrawImpl_Part;
-
-typedef struct
-{
-    User_DirectDrawImpl_Part user;
-    HAL_DirectDrawImpl_Part hal;
-} HAL_DirectDrawImpl;
-
-void HAL_DirectDraw_final_release(IDirectDrawImpl* This);
-HRESULT HAL_DirectDraw_create_primary(IDirectDrawImpl* This,
-				      const DDSURFACEDESC2* pDDSD,
-				      LPDIRECTDRAWSURFACE7* ppSurf,
-				      LPUNKNOWN pOuter);
-HRESULT HAL_DirectDraw_create_backbuffer(IDirectDrawImpl* This,
-					 const DDSURFACEDESC2* pDDSD,
-					 LPDIRECTDRAWSURFACE7* ppSurf,
-					 LPUNKNOWN pOuter,
-					 IDirectDrawSurfaceImpl* primary);
-HRESULT HAL_DirectDraw_create_texture(IDirectDrawImpl* This,
-				      const DDSURFACEDESC2* pDDSD,
-				      LPDIRECTDRAWSURFACE7* ppSurf,
-				      LPUNKNOWN pOuter,
-				      DWORD dwMipMapLevel);
-
-HRESULT HAL_DirectDraw_Construct(IDirectDrawImpl *This, BOOL ex);
-HRESULT HAL_DirectDraw_Create(const GUID* pGUID, LPDIRECTDRAW7* pIface,
-				   IUnknown* pUnkOuter, BOOL ex);
-
-
-HRESULT WINAPI
-HAL_DirectDraw_GetDeviceIdentifier(LPDIRECTDRAW7 iface,
-					LPDDDEVICEIDENTIFIER2 pDDDI,
-					DWORD dwFlags);
-HRESULT WINAPI
-HAL_DirectDraw_SetDisplayMode(LPDIRECTDRAW7 iface, DWORD dwWidth,
-				   DWORD dwHeight, DWORD dwBPP,
-				   DWORD dwRefreshRate, DWORD dwFlags);
-HRESULT WINAPI
-HAL_DirectDraw_RestoreDisplayMode(LPDIRECTDRAW7 iface);
-
-#endif
--- dlls/ddraw/dsurface/main.h	2005-05-28 14:49:23.000000000 +0100
+++ /dev/null	1970-01-01 01:00:00.000000000 +0100
@@ -1,249 +0,0 @@
-/*
- * Copyright 2000-2001 TransGaming Technologies Inc.
- *
- * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#ifndef DDRAW_DSURFACE_MAIN_H_INCLUDED
-#define DDRAW_DSURFACE_MAIN_H_INCLUDED
-
-#include <stdarg.h>
-
-#include "windef.h"
-#include "winbase.h"
-#include "ddraw_private.h"
-
-/* Support for IDirectDrawSurface7::Set/Get/FreePrivateData. I don't think
- * anybody uses it for much so a good implementation is optional. */
-typedef struct PrivateData
-{
-    struct PrivateData* next;
-    struct PrivateData* prev;
-
-    GUID tag;
-    DWORD flags; /* DDSPD_* */
-    DWORD uniqueness_value;
-
-    union
-    {
-	LPVOID data;
-	LPUNKNOWN object;
-    } ptr;
-
-    DWORD size;
-} PrivateData;
-
-extern const IDirectDrawGammaControlVtbl DDRAW_IDDGC_VTable;
-
-/* Non-interface functions */
-HRESULT
-Main_DirectDrawSurface_Construct(IDirectDrawSurfaceImpl* This,
-				 IDirectDrawImpl* pDD,
-				 const DDSURFACEDESC2* pDDSD);
-void Main_DirectDrawSurface_ForceDestroy(IDirectDrawSurfaceImpl* This);
-
-void
-Main_DirectDrawSurface_final_release(IDirectDrawSurfaceImpl* This);
-HRESULT
-Main_DirectDrawSurface_late_allocate(IDirectDrawSurfaceImpl* This);
-BOOL
-Main_DirectDrawSurface_attach(IDirectDrawSurfaceImpl *This,
-			      IDirectDrawSurfaceImpl *to);
-BOOL Main_DirectDrawSurface_detach(IDirectDrawSurfaceImpl *This);
-void
-Main_DirectDrawSurface_lock_update(IDirectDrawSurfaceImpl* This,
-				   LPCRECT pRect, DWORD dwFlags);
-void
-Main_DirectDrawSurface_unlock_update(IDirectDrawSurfaceImpl* This,
-				     LPCRECT pRect);
-void
-Main_DirectDrawSurface_lose_surface(IDirectDrawSurfaceImpl* This);
-void
-Main_DirectDrawSurface_set_palette(IDirectDrawSurfaceImpl* This,
-				   IDirectDrawPaletteImpl* pal);
-void
-Main_DirectDrawSurface_update_palette(IDirectDrawSurfaceImpl* This,
-				      IDirectDrawPaletteImpl* pal,
-				      DWORD dwStart, DWORD dwCount,
-				      LPPALETTEENTRY palent);
-HWND
-Main_DirectDrawSurface_get_display_window(IDirectDrawSurfaceImpl* This);
-
-HRESULT
-Main_DirectDrawSurface_get_gamma_ramp(IDirectDrawSurfaceImpl* This,
-				      DWORD dwFlags,
-				      LPDDGAMMARAMP lpGammaRamp);
-HRESULT
-Main_DirectDrawSurface_set_gamma_ramp(IDirectDrawSurfaceImpl* This,
-				      DWORD dwFlags,
-				      LPDDGAMMARAMP lpGammaRamp);
-
-BOOL Main_DirectDrawSurface_flip_data(IDirectDrawSurfaceImpl* front,
-				      IDirectDrawSurfaceImpl* back,
-				      DWORD dwFlags);
-
-#define CHECK_LOST(This)					\
-	do {							\
-		if (This->lost) return DDERR_SURFACELOST;	\
-	} while (0)
-
-#define CHECK_TEXTURE(This)					\
-	do {							\
-		if (!(This->surface_desc.ddsCaps.dwCaps2	\
-		      & DDSCAPS2_TEXTUREMANAGE))		\
-			return DDERR_INVALIDOBJECT;		\
-	} while (0)
-
-#define LOCK_OBJECT(This) do { } while (0)
-#define UNLOCK_OBJECT(This) do { } while (0)
-
-/* IDirectDrawSurface7 (partial) implementation */
-ULONG WINAPI
-Main_DirectDrawSurface_AddRef(LPDIRECTDRAWSURFACE7 iface);
-ULONG WINAPI
-Main_DirectDrawSurface_Release(LPDIRECTDRAWSURFACE7 iface);
-HRESULT WINAPI
-Main_DirectDrawSurface_QueryInterface(LPDIRECTDRAWSURFACE7 iface, REFIID riid,
-				      LPVOID* ppObj);
-HRESULT WINAPI
-Main_DirectDrawSurface_AddAttachedSurface(LPDIRECTDRAWSURFACE7 iface,
-					  LPDIRECTDRAWSURFACE7 pAttach);
-HRESULT WINAPI
-Main_DirectDrawSurface_AddOverlayDirtyRect(LPDIRECTDRAWSURFACE7 iface,
-					   LPRECT pRect);
-HRESULT WINAPI
-Main_DirectDrawSurface_BltBatch(LPDIRECTDRAWSURFACE7 iface,
-				LPDDBLTBATCH pBatch, DWORD dwCount,
-				DWORD dwFlags);
-HRESULT WINAPI
-Main_DirectDrawSurface_ChangeUniquenessValue(LPDIRECTDRAWSURFACE7 iface);
-HRESULT WINAPI
-Main_DirectDrawSurface_DeleteAttachedSurface(LPDIRECTDRAWSURFACE7 iface,
-					     DWORD dwFlags,
-					     LPDIRECTDRAWSURFACE7 pAttach);
-HRESULT WINAPI
-Main_DirectDrawSurface_EnumAttachedSurfaces(LPDIRECTDRAWSURFACE7 iface,
-					    LPVOID context,
-					    LPDDENUMSURFACESCALLBACK7 cb);
-HRESULT WINAPI
-Main_DirectDrawSurface_EnumOverlayZOrders(LPDIRECTDRAWSURFACE7 iface,
-					  DWORD dwFlags, LPVOID context,
-					  LPDDENUMSURFACESCALLBACK7 cb);
-HRESULT WINAPI
-Main_DirectDrawSurface_Flip(LPDIRECTDRAWSURFACE7 iface,
-			    LPDIRECTDRAWSURFACE7 override, DWORD dwFlags);
-HRESULT WINAPI
-Main_DirectDrawSurface_FreePrivateData(LPDIRECTDRAWSURFACE7 iface,
-				       REFGUID tag);
-HRESULT WINAPI
-Main_DirectDrawSurface_GetAttachedSurface(LPDIRECTDRAWSURFACE7 iface,
-					  LPDDSCAPS2 pCaps,
-					  LPDIRECTDRAWSURFACE7* ppSurface);
-HRESULT WINAPI
-Main_DirectDrawSurface_GetBltStatus(LPDIRECTDRAWSURFACE7 iface,
-				    DWORD dwFlags);
-HRESULT WINAPI
-Main_DirectDrawSurface_GetCaps(LPDIRECTDRAWSURFACE7 iface,
-			       LPDDSCAPS2 pCaps);
-HRESULT WINAPI
-Main_DirectDrawSurface_GetClipper(LPDIRECTDRAWSURFACE7 iface,
-				  LPDIRECTDRAWCLIPPER* ppClipper);
-HRESULT WINAPI
-Main_DirectDrawSurface_GetColorKey(LPDIRECTDRAWSURFACE7 iface,
-				   DWORD dwFlags, LPDDCOLORKEY pCKey);
-HRESULT WINAPI
-Main_DirectDrawSurface_GetDC(LPDIRECTDRAWSURFACE7 iface, HDC *phDC);
-HRESULT WINAPI
-Main_DirectDrawSurface_GetDDInterface(LPDIRECTDRAWSURFACE7 iface,
-				      LPVOID* pDD);
-HRESULT WINAPI
-Main_DirectDrawSurface_GetFlipStatus(LPDIRECTDRAWSURFACE7 iface,
-				     DWORD dwFlags);
-HRESULT WINAPI
-Main_DirectDrawSurface_GetLOD(LPDIRECTDRAWSURFACE7 iface,
-			      LPDWORD pdwMaxLOD);
-HRESULT WINAPI
-Main_DirectDrawSurface_GetOverlayPosition(LPDIRECTDRAWSURFACE7 iface,
-					  LPLONG pX, LPLONG pY);
-HRESULT WINAPI
-Main_DirectDrawSurface_GetPalette(LPDIRECTDRAWSURFACE7 iface,
-				  LPDIRECTDRAWPALETTE* ppPalette);
-HRESULT WINAPI
-Main_DirectDrawSurface_GetPixelFormat(LPDIRECTDRAWSURFACE7 iface,
-				      LPDDPIXELFORMAT pDDPixelFormat);
-HRESULT WINAPI
-Main_DirectDrawSurface_GetPriority(LPDIRECTDRAWSURFACE7 iface,
-				   LPDWORD pdwPriority);
-HRESULT WINAPI
-Main_DirectDrawSurface_GetPrivateData(LPDIRECTDRAWSURFACE7 iface, REFGUID tag,
-				      LPVOID pBuffer, LPDWORD pcbBufferSize);
-HRESULT WINAPI
-Main_DirectDrawSurface_GetSurfaceDesc(LPDIRECTDRAWSURFACE7 iface,
-				      LPDDSURFACEDESC2 pDDSD);
-HRESULT WINAPI
-Main_DirectDrawSurface_GetUniquenessValue(LPDIRECTDRAWSURFACE7 iface,
-					  LPDWORD pValue);
-HRESULT WINAPI
-Main_DirectDrawSurface_Initialize(LPDIRECTDRAWSURFACE7 iface,
-				  LPDIRECTDRAW pDD, LPDDSURFACEDESC2 pDDSD);
-HRESULT WINAPI
-Main_DirectDrawSurface_IsLost(LPDIRECTDRAWSURFACE7 iface);
-HRESULT WINAPI
-Main_DirectDrawSurface_Lock(LPDIRECTDRAWSURFACE7 iface, LPRECT prect,
-			    LPDDSURFACEDESC2 pDDSD, DWORD flags, HANDLE h);
-HRESULT WINAPI
-Main_DirectDrawSurface_PageLock(LPDIRECTDRAWSURFACE7 iface, DWORD dwFlags);
-HRESULT WINAPI
-Main_DirectDrawSurface_PageUnlock(LPDIRECTDRAWSURFACE7 iface, DWORD dwFlags);
-HRESULT WINAPI
-Main_DirectDrawSurface_ReleaseDC(LPDIRECTDRAWSURFACE7 iface, HDC hDC);
-HRESULT WINAPI
-Main_DirectDrawSurface_SetClipper(LPDIRECTDRAWSURFACE7 iface,
-				  LPDIRECTDRAWCLIPPER pDDClipper);
-HRESULT WINAPI
-Main_DirectDrawSurface_SetColorKey(LPDIRECTDRAWSURFACE7 iface,
-				   DWORD dwFlags, LPDDCOLORKEY pCKey);
-HRESULT WINAPI
-Main_DirectDrawSurface_SetLOD(LPDIRECTDRAWSURFACE7 iface, DWORD dwMaxLOD);
-HRESULT WINAPI
-Main_DirectDrawSurface_SetOverlayPosition(LPDIRECTDRAWSURFACE7 iface,
-					  LONG X, LONG Y);
-HRESULT WINAPI
-Main_DirectDrawSurface_SetPalette(LPDIRECTDRAWSURFACE7 iface,
-				  LPDIRECTDRAWPALETTE pPalette);
-HRESULT WINAPI
-Main_DirectDrawSurface_SetPriority(LPDIRECTDRAWSURFACE7 iface,
-				   DWORD dwPriority);
-HRESULT WINAPI
-Main_DirectDrawSurface_SetPrivateData(LPDIRECTDRAWSURFACE7 iface,
-				      REFGUID tag, LPVOID pData,
-				      DWORD cbSize, DWORD dwFlags);
-HRESULT WINAPI
-Main_DirectDrawSurface_Unlock(LPDIRECTDRAWSURFACE7 iface, LPRECT pRect);
-HRESULT WINAPI
-Main_DirectDrawSurface_UpdateOverlay(LPDIRECTDRAWSURFACE7 iface,
-				     LPRECT pSrcRect,
-				     LPDIRECTDRAWSURFACE7 pDstSurface,
-				     LPRECT pDstRect, DWORD dwFlags,
-				     LPDDOVERLAYFX pFX);
-HRESULT WINAPI
-Main_DirectDrawSurface_UpdateOverlayDisplay(LPDIRECTDRAWSURFACE7 iface,
-					    DWORD dwFlags);
-HRESULT WINAPI
-Main_DirectDrawSurface_UpdateOverlayZOrder(LPDIRECTDRAWSURFACE7 iface,
-					   DWORD dwFlags,
-					   LPDIRECTDRAWSURFACE7 pDDSRef);
-
-#endif
--- dlls/ddraw/dsurface/dib.h	2003-07-28 20:36:35.000000000 +0100
+++ /dev/null	1970-01-01 01:00:00.000000000 +0100
@@ -1,84 +0,0 @@
-/*
- * Copyright 2000-2001 TransGaming Technologies Inc.
- *
- * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#ifndef DDRAW_DSURFACE_DIB_H_INCLUDED
-#define DDRAW_DSURFACE_DIB_H_INCLUDED
-
-#define DIB_PRIV(surf) ((DIB_DirectDrawSurfaceImpl*)((surf)->private))
-
-#define DIB_PRIV_VAR(name, surf) \
-	DIB_DirectDrawSurfaceImpl* name = DIB_PRIV(surf)
-
-
-struct DIB_DirectDrawSurfaceImpl_Part
-{
-    HBITMAP DIBsection;
-    void* bitmap_data;
-    HGDIOBJ holdbitmap;
-    BOOL client_memory;
-    DWORD d3d_data[4]; /* room for Direct3D driver data */
-};
-
-typedef struct
-{
-    struct DIB_DirectDrawSurfaceImpl_Part dib;
-} DIB_DirectDrawSurfaceImpl;
-
-HRESULT
-DIB_DirectDrawSurface_Construct(IDirectDrawSurfaceImpl *This,
-				IDirectDrawImpl *pDD,
-				const DDSURFACEDESC2 *pDDSD);
-HRESULT
-DIB_DirectDrawSurface_Create(IDirectDrawImpl *pDD,
-			     const DDSURFACEDESC2 *pDDSD,
-			     LPDIRECTDRAWSURFACE7 *ppSurf,
-			     IUnknown *pUnkOuter);
-
-void DIB_DirectDrawSurface_final_release(IDirectDrawSurfaceImpl* This);
-BOOL DIB_DirectDrawSurface_flip_data(IDirectDrawSurfaceImpl* front,
-				     IDirectDrawSurfaceImpl* back,
-				     DWORD dwFlags);
-
-void DIB_DirectDrawSurface_set_palette(IDirectDrawSurfaceImpl* This,
-				       IDirectDrawPaletteImpl* pal);
-void DIB_DirectDrawSurface_update_palette(IDirectDrawSurfaceImpl* This,
-					  IDirectDrawPaletteImpl* pal,
-					  DWORD dwStart, DWORD dwCount,
-					  LPPALETTEENTRY palent);
-
-HRESULT DIB_DirectDrawSurface_get_dc(IDirectDrawSurfaceImpl* This, HDC* phDC);
-HRESULT DIB_DirectDrawSurface_release_dc(IDirectDrawSurfaceImpl* This,HDC hDC);
-
-HRESULT DIB_DirectDrawSurface_alloc_dc(IDirectDrawSurfaceImpl* This,HDC* phDC);
-HRESULT DIB_DirectDrawSurface_free_dc(IDirectDrawSurfaceImpl* This, HDC hDC);
-
-
-HRESULT WINAPI
-DIB_DirectDrawSurface_Blt(LPDIRECTDRAWSURFACE7 iface, LPRECT prcDest,
-			  LPDIRECTDRAWSURFACE7 pSrcSurf, LPRECT prcSrc,
-			  DWORD dwFlags, LPDDBLTFX pBltFx);
-HRESULT WINAPI
-DIB_DirectDrawSurface_BltFast(LPDIRECTDRAWSURFACE7 iface, DWORD dwX,
-			      DWORD dwY, LPDIRECTDRAWSURFACE7 pSrcSurf,
-			      LPRECT prcSrc, DWORD dwTrans);
-HRESULT WINAPI
-DIB_DirectDrawSurface_Restore(LPDIRECTDRAWSURFACE7 iface);
-HRESULT WINAPI
-DIB_DirectDrawSurface_SetSurfaceDesc(LPDIRECTDRAWSURFACE7 iface,
-				     LPDDSURFACEDESC2 pDDSD, DWORD dwFlags);
-#endif
--- dlls/ddraw/dsurface/user.h	2003-07-28 20:36:35.000000000 +0100
+++ /dev/null	1970-01-01 01:00:00.000000000 +0100
@@ -1,85 +0,0 @@
-/*
- * Copyright 2000-2001 TransGaming Technologies Inc.
- *
- * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#ifndef DDRAW_DSURFACE_USER_H_INCLUDED
-#define DDRAW_DSURFACE_USER_H_INCLUDED
-
-#define USER_PRIV(surf) ((User_DirectDrawSurfaceImpl*)((surf)->private))
-
-#define USER_PRIV_VAR(name,surf) \
-	User_DirectDrawSurfaceImpl* name = USER_PRIV(surf)
-
-struct User_DirectDrawSurfaceImpl_Part
-{
-    HWND window;
-    HDC cached_dc;
-    HANDLE update_thread, update_event, refresh_event;
-    volatile int wait_count, in_refresh;
-    CRITICAL_SECTION crit;
-};
-
-typedef struct
-{
-    struct DIB_DirectDrawSurfaceImpl_Part dib;
-    struct User_DirectDrawSurfaceImpl_Part user;
-} User_DirectDrawSurfaceImpl;
-
-HRESULT
-User_DirectDrawSurface_Construct(IDirectDrawSurfaceImpl* This,
-				 IDirectDrawImpl* pDD,
-				 const DDSURFACEDESC2* pDDSD);
-
-HRESULT
-User_DirectDrawSurface_Create(IDirectDrawImpl *pDD,
-			      const DDSURFACEDESC2 *pDDSD,
-			      LPDIRECTDRAWSURFACE7 *ppSurf,
-			      IUnknown *pUnkOuter);
-
-void User_DirectDrawSurface_final_release(IDirectDrawSurfaceImpl* This);
-
-void User_DirectDrawSurface_lock_update(IDirectDrawSurfaceImpl* This,
-					LPCRECT pRect, DWORD dwFlags);
-void User_DirectDrawSurface_unlock_update(IDirectDrawSurfaceImpl* This,
-					  LPCRECT pRect);
-void User_DirectDrawSurface_set_palette(IDirectDrawSurfaceImpl* This,
-					IDirectDrawPaletteImpl* pal);
-void User_DirectDrawSurface_update_palette(IDirectDrawSurfaceImpl* This,
-					   IDirectDrawPaletteImpl* pal,
-					   DWORD dwStart, DWORD dwCount,
-					   LPPALETTEENTRY palent);
-HRESULT User_DirectDrawSurface_duplicate_surface(IDirectDrawSurfaceImpl* This,
-						 LPDIRECTDRAWSURFACE7* ppDup);
-BOOL User_DirectDrawSurface_flip_data(IDirectDrawSurfaceImpl* front,
-				      IDirectDrawSurfaceImpl* back,
-				      DWORD dwFlags);
-void User_DirectDrawSurface_flip_update(IDirectDrawSurfaceImpl* This,
-					DWORD dwFlags);
-HWND User_DirectDrawSurface_get_display_window(IDirectDrawSurfaceImpl* This);
-
-HRESULT User_DirectDrawSurface_get_dc(IDirectDrawSurfaceImpl* This, HDC* phDC);
-HRESULT User_DirectDrawSurface_release_dc(IDirectDrawSurfaceImpl* This,
-					  HDC hDC);
-
-HRESULT User_DirectDrawSurface_get_gamma_ramp(IDirectDrawSurfaceImpl* This,
-					      DWORD dwFlags,
-					      LPDDGAMMARAMP lpGammaRamp);
-HRESULT User_DirectDrawSurface_set_gamma_ramp(IDirectDrawSurfaceImpl* This,
-					      DWORD dwFlags,
-					      LPDDGAMMARAMP lpGammaRamp);
-
-#endif
--- dlls/ddraw/dsurface/hal.h	2003-07-28 20:36:35.000000000 +0100
+++ /dev/null	1970-01-01 01:00:00.000000000 +0100
@@ -1,74 +0,0 @@
-/*
- * Copyright 2000-2001 TransGaming Technologies Inc.
- *
- * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#ifndef DDRAW_DSURFACE_HAL_H_INCLUDED
-#define DDRAW_DSURFACE_HAL_H_INCLUDED
-
-#define HAL_PRIV(surf) ((HAL_DirectDrawSurfaceImpl*)((surf)->private))
-
-#define HAL_PRIV_VAR(name,surf) \
-	HAL_DirectDrawSurfaceImpl* name = HAL_PRIV(surf)
-
-struct HAL_DirectDrawSurfaceImpl_Part
-{
-    DWORD need_late;
-    LPVOID fb_addr;
-    DWORD fb_pitch, fb_vofs;
-};
-
-typedef struct
-{
-    struct DIB_DirectDrawSurfaceImpl_Part dib;
-    struct User_DirectDrawSurfaceImpl_Part user;
-    struct HAL_DirectDrawSurfaceImpl_Part hal;
-} HAL_DirectDrawSurfaceImpl;
-
-HRESULT
-HAL_DirectDrawSurface_Construct(IDirectDrawSurfaceImpl* This,
-				IDirectDrawImpl* pDD,
-				const DDSURFACEDESC2* pDDSD);
-
-HRESULT
-HAL_DirectDrawSurface_Create(IDirectDrawImpl *pDD,
-			     const DDSURFACEDESC2 *pDDSD,
-			     LPDIRECTDRAWSURFACE7 *ppSurf,
-			     IUnknown *pUnkOuter);
-
-void HAL_DirectDrawSurface_final_release(IDirectDrawSurfaceImpl* This);
-HRESULT HAL_DirectDrawSurface_late_allocate(IDirectDrawSurfaceImpl* This);
-
-void HAL_DirectDrawSurface_set_palette(IDirectDrawSurfaceImpl* This,
-				       IDirectDrawPaletteImpl* pal);
-void HAL_DirectDrawSurface_update_palette(IDirectDrawSurfaceImpl* This,
-					  IDirectDrawPaletteImpl* pal,
-					  DWORD dwStart, DWORD dwCount,
-					  LPPALETTEENTRY palent);
-HRESULT HAL_DirectDrawSurface_duplicate_surface(IDirectDrawSurfaceImpl* This,
-						LPDIRECTDRAWSURFACE7* ppDup);
-void HAL_DirectDrawSurface_lock_update(IDirectDrawSurfaceImpl* This,
-				       LPCRECT pRect, DWORD dwFlags);
-void HAL_DirectDrawSurface_unlock_update(IDirectDrawSurfaceImpl* This,
-					 LPCRECT pRect);
-BOOL HAL_DirectDrawSurface_flip_data(IDirectDrawSurfaceImpl* front,
-				     IDirectDrawSurfaceImpl* back,
-				     DWORD dwFlags);
-void HAL_DirectDrawSurface_flip_update(IDirectDrawSurfaceImpl* This,
-				       DWORD dwFlags);
-HWND HAL_DirectDrawSurface_get_display_window(IDirectDrawSurfaceImpl* This);
-
-#endif
--- dlls/ddraw/dsurface/fakezbuffer.h	2003-09-18 20:33:48.000000000 +0100
+++ /dev/null	1970-01-01 01:00:00.000000000 +0100
@@ -1,45 +0,0 @@
-/*
- * Copyright 200 TransGaming Technologies Inc.
- *
- * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#ifndef DDRAW_DSURFACE_FAKEZBUFFER_H_INCLUDED
-#define DDRAW_DSURFACE_FAKEZBUFFER_H_INCLUDED
-
-typedef struct
-{
-    BOOLEAN in_memory;
-} FakeZBuffer_DirectDrawSurfaceImpl;
-
-HRESULT
-FakeZBuffer_DirectDrawSurface_Construct(IDirectDrawSurfaceImpl* This,
-					IDirectDrawImpl* pDD,
-					const DDSURFACEDESC2* pDDSD);
-
-HRESULT FakeZBuffer_DirectDrawSurface_Create(IDirectDrawImpl* pDD,
-					     const DDSURFACEDESC2* pDDSD,
-					     LPDIRECTDRAWSURFACE7* ppSurf,
-					     IUnknown* pUnkOuter);
-
-void
-FakeZBuffer_DirectDrawSurface_final_release(IDirectDrawSurfaceImpl* This);
-
-HRESULT
-FakeZBuffer_DirectDrawSurface_duplicate_surface(IDirectDrawSurfaceImpl* This,
-						LPDIRECTDRAWSURFACE7* ppDup);
-
-
-#endif
--- dlls/ddraw/dsurface/thunks.h	2005-05-28 14:49:23.000000000 +0100
+++ /dev/null	1970-01-01 01:00:00.000000000 +0100
@@ -1,24 +0,0 @@
-/*
- * Copyright 2000 TransGaming Technologies Inc.
- *
- * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#ifndef DDRAW_DSURFACE_THUNKS_H_INCLUDED
-#define DDRAW_DSURFACE_THUNKS_H_INCLUDED
-
-extern const IDirectDrawSurface3Vtbl DDRAW_IDDS3_Thunk_VTable;
-
-#endif
--- dlls/ddraw/dsurface/wndproc.h	2003-07-28 20:36:35.000000000 +0100
+++ /dev/null	1970-01-01 01:00:00.000000000 +0100
@@ -1,25 +0,0 @@
-/*
- * Copyright 2000 TransGaming Technologies Inc.
- *
- * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#ifndef DDRAW_DSURFACE_WNDPROC_H_INCLUDED
-#define DDRAW_DSURFACE_WNDPROC_H_INCLUDED
-
-void DirectDrawSurface_RegisterClass(void);
-void DirectDrawSurface_UnregisterClass(void);
-
-#endif
Index: dlls/ddraw/dclipper/main.c
===================================================================
RCS file: /home/wine/wine/dlls/ddraw/dclipper/main.c,v
retrieving revision 1.17
diff -u -r1.17 main.c
--- dlls/ddraw/dclipper/main.c	27 May 2005 20:17:36 -0000	1.17
+++ dlls/ddraw/dclipper/main.c	1 Jun 2005 19:29:56 -0000
@@ -33,8 +33,6 @@
 #include "winerror.h"
 
 #include "ddraw_private.h"
-#include "dclipper/main.h"
-#include "ddraw/main.h"
 
 #include "wine/debug.h"
 
Index: dlls/ddraw/dpalette/hal.c
===================================================================
RCS file: /home/wine/wine/dlls/ddraw/dpalette/hal.c,v
retrieving revision 1.6
diff -u -r1.6 hal.c
--- dlls/ddraw/dpalette/hal.c	27 May 2005 20:17:36 -0000	1.6
+++ dlls/ddraw/dpalette/hal.c	1 Jun 2005 19:29:58 -0000
@@ -27,9 +27,6 @@
 #define CONST_VTABLE
 
 #include "ddraw_private.h"
-#include "dpalette/main.h"
-#include "dpalette/hal.h"
-#include "ddraw/main.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(ddraw);
 
Index: dlls/ddraw/dpalette/main.c
===================================================================
RCS file: /home/wine/wine/dlls/ddraw/dpalette/main.c,v
retrieving revision 1.13
diff -u -r1.13 main.c
--- dlls/ddraw/dpalette/main.c	27 May 2005 20:17:36 -0000	1.13
+++ dlls/ddraw/dpalette/main.c	1 Jun 2005 19:29:58 -0000
@@ -28,8 +28,6 @@
 #define CONST_VTABLE
 
 #include "ddraw_private.h"
-#include "dpalette/main.h"
-#include "ddraw/main.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(ddraw);
 
? dlls/ddraw/ddraw/.user.c.swp
Index: dlls/ddraw/ddraw/hal.c
===================================================================
RCS file: /home/wine/wine/dlls/ddraw/ddraw/hal.c,v
retrieving revision 1.18
diff -u -r1.18 hal.c
--- dlls/ddraw/ddraw/hal.c	27 May 2005 20:17:36 -0000	1.18
+++ dlls/ddraw/ddraw/hal.c	1 Jun 2005 19:30:02 -0000
@@ -34,16 +34,6 @@
 #include "d3dhal.h"
 
 #include "ddraw_private.h"
-#include "ddraw/main.h"
-#include "ddraw/user.h"
-#include "ddraw/hal.h"
-#include "dclipper/main.h"
-#include "dpalette/main.h"
-#include "dpalette/hal.h"
-#include "dsurface/main.h"
-#include "dsurface/dib.h"
-#include "dsurface/user.h"
-#include "dsurface/hal.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(ddraw);
 
Index: dlls/ddraw/ddraw/main.c
===================================================================
RCS file: /home/wine/wine/dlls/ddraw/ddraw/main.c,v
retrieving revision 1.61
diff -u -r1.61 main.c
--- dlls/ddraw/ddraw/main.c	30 May 2005 11:11:34 -0000	1.61
+++ dlls/ddraw/ddraw/main.c	1 Jun 2005 19:30:04 -0000
@@ -68,12 +68,6 @@
 
 #include "ddraw_private.h"
 #include "mesa_private.h" /* To have the D3D creation function */
-#include "ddraw/main.h"
-#include "dclipper/main.h"
-#include "dpalette/main.h"
-#include "dsurface/main.h"
-#include "dsurface/dib.h"
-#include "dsurface/fakezbuffer.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(ddraw);
 
Index: dlls/ddraw/ddraw/user.c
===================================================================
RCS file: /home/wine/wine/dlls/ddraw/ddraw/user.c,v
retrieving revision 1.26
diff -u -r1.26 user.c
--- dlls/ddraw/ddraw/user.c	27 May 2005 20:17:36 -0000	1.26
+++ dlls/ddraw/ddraw/user.c	1 Jun 2005 19:30:05 -0000
@@ -34,13 +34,6 @@
 #include "winuser.h"
 #include "ddraw.h"
 #include "ddraw_private.h"
-#include "ddraw/main.h"
-#include "ddraw/user.h"
-#include "dclipper/main.h"
-#include "dpalette/main.h"
-#include "dsurface/main.h"
-#include "dsurface/dib.h"
-#include "dsurface/user.h"
 #include "wine/debug.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(ddraw);
Index: dlls/ddraw/dsurface/dib.c
===================================================================
RCS file: /home/wine/wine/dlls/ddraw/dsurface/dib.c,v
retrieving revision 1.50
diff -u -r1.50 dib.c
--- dlls/ddraw/dsurface/dib.c	27 May 2005 20:17:35 -0000	1.50
+++ dlls/ddraw/dsurface/dib.c	1 Jun 2005 19:30:10 -0000
@@ -34,8 +34,6 @@
 #include "wine/debug.h"
 #include "ddraw_private.h"
 #include "d3d_private.h"
-#include "dsurface/main.h"
-#include "dsurface/dib.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(ddraw);
 
Index: dlls/ddraw/dsurface/fakezbuffer.c
===================================================================
RCS file: /home/wine/wine/dlls/ddraw/dsurface/fakezbuffer.c,v
retrieving revision 1.18
diff -u -r1.18 fakezbuffer.c
--- dlls/ddraw/dsurface/fakezbuffer.c	27 May 2005 20:17:35 -0000	1.18
+++ dlls/ddraw/dsurface/fakezbuffer.c	1 Jun 2005 19:30:11 -0000
@@ -44,8 +44,6 @@
 #include "ddcomimpl.h"
 #include "ddraw_private.h"
 #include "d3d_private.h"
-#include "dsurface/main.h"
-#include "dsurface/fakezbuffer.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(ddraw);
 
Index: dlls/ddraw/dsurface/gamma.c
===================================================================
RCS file: /home/wine/wine/dlls/ddraw/dsurface/gamma.c,v
retrieving revision 1.7
diff -u -r1.7 gamma.c
--- dlls/ddraw/dsurface/gamma.c	27 May 2005 20:17:35 -0000	1.7
+++ dlls/ddraw/dsurface/gamma.c	1 Jun 2005 19:30:11 -0000
@@ -27,7 +27,6 @@
 
 #include "wine/debug.h"
 #include "ddraw_private.h"
-#include "dsurface/main.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(ddraw);
 
Index: dlls/ddraw/dsurface/hal.c
===================================================================
RCS file: /home/wine/wine/dlls/ddraw/dsurface/hal.c,v
retrieving revision 1.11
diff -u -r1.11 hal.c
--- dlls/ddraw/dsurface/hal.c	27 May 2005 20:17:35 -0000	1.11
+++ dlls/ddraw/dsurface/hal.c	1 Jun 2005 19:30:12 -0000
@@ -29,12 +29,6 @@
 
 #include "wine/debug.h"
 #include "ddraw_private.h"
-#include "ddraw/user.h"
-#include "ddraw/hal.h"
-#include "dsurface/main.h"
-#include "dsurface/dib.h"
-#include "dsurface/user.h"
-#include "dsurface/hal.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(ddraw);
 
Index: dlls/ddraw/dsurface/main.c
===================================================================
RCS file: /home/wine/wine/dlls/ddraw/dsurface/main.c,v
retrieving revision 1.66
diff -u -r1.66 main.c
--- dlls/ddraw/dsurface/main.c	27 May 2005 20:17:35 -0000	1.66
+++ dlls/ddraw/dsurface/main.c	1 Jun 2005 19:30:15 -0000
@@ -33,9 +33,6 @@
 #include "mesa_private.h"
 #include "wine/debug.h"
 #include "ddraw_private.h"
-#include "dsurface/main.h"
-#include "ddraw/main.h"
-#include "dsurface/thunks.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(ddraw);
 WINE_DECLARE_DEBUG_CHANNEL(ddraw_flip);
Index: dlls/ddraw/dsurface/thunks.c
===================================================================
RCS file: /home/wine/wine/dlls/ddraw/dsurface/thunks.c,v
retrieving revision 1.11
diff -u -r1.11 thunks.c
--- dlls/ddraw/dsurface/thunks.c	27 May 2005 20:17:35 -0000	1.11
+++ dlls/ddraw/dsurface/thunks.c	1 Jun 2005 19:30:16 -0000
@@ -27,8 +27,7 @@
 #include "ddraw.h"
 #include "winerror.h"
 
-#include "dsurface/main.h"
-#include "dsurface/thunks.h"
+#include "ddraw_private.h"
 #include "ddcomimpl.h"
 
 #define CONVERT(pdds) COM_INTERFACE_CAST(IDirectDrawSurfaceImpl,	\
Index: dlls/ddraw/dsurface/user.c
===================================================================
RCS file: /home/wine/wine/dlls/ddraw/dsurface/user.c,v
retrieving revision 1.19
diff -u -r1.19 user.c
--- dlls/ddraw/dsurface/user.c	27 May 2005 20:17:35 -0000	1.19
+++ dlls/ddraw/dsurface/user.c	1 Jun 2005 19:30:18 -0000
@@ -28,10 +28,6 @@
 #include "winerror.h"
 #include "wine/debug.h"
 #include "ddraw_private.h"
-#include "dsurface/main.h"
-#include "dsurface/dib.h"
-#include "dsurface/user.h"
-#include "dsurface/wndproc.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(ddraw);
 
Index: dlls/ddraw/dsurface/wndproc.c
===================================================================
RCS file: /home/wine/wine/dlls/ddraw/dsurface/wndproc.c,v
retrieving revision 1.8
diff -u -r1.8 wndproc.c
--- dlls/ddraw/dsurface/wndproc.c	10 Sep 2003 03:56:48 -0000	1.8
+++ dlls/ddraw/dsurface/wndproc.c	1 Jun 2005 19:30:19 -0000
@@ -26,7 +26,6 @@
 #include "winerror.h"
 
 #include "ddraw_private.h"
-#include "dsurface/wndproc.h"
 
 #include "wine/debug.h"
 
Index: dlls/ddraw/ddraw_private.h
===================================================================
RCS file: /home/wine/wine/dlls/ddraw/ddraw_private.h,v
retrieving revision 1.46
diff -u -r1.46 ddraw_private.h
--- dlls/ddraw/ddraw_private.h	7 Mar 2005 12:23:34 -0000	1.46
+++ dlls/ddraw/ddraw_private.h	1 Jun 2005 19:30:23 -0000
@@ -440,4 +440,698 @@
 extern void DDRAW_dump_flags_(DWORD flags, const flag_info* names, size_t num_names, int newline);
 extern void DDRAW_dump_members(DWORD flags, const void* data, const member_info* mems, size_t num_mems);
 
+void DirectDrawSurface_RegisterClass(void);
+void DirectDrawSurface_UnregisterClass(void);
+
+extern const IDirectDrawSurface3Vtbl DDRAW_IDDS3_Thunk_VTable;
+
+/*****************************************************************************
+ * IDirectDrawClipper declarations
+ */
+HRESULT WINAPI DirectDrawCreateClipper(DWORD dwFlags,
+				       LPDIRECTDRAWCLIPPER* ppClipper,
+				       LPUNKNOWN pUnkOuter);
+HRESULT DDRAW_CreateClipper(IUnknown* pUnkOuter, REFIID riid, LPVOID* ppObj);
+void Main_DirectDrawClipper_ForceDestroy(IDirectDrawClipperImpl* This);
+
+HRESULT WINAPI
+Main_DirectDrawClipper_SetHwnd(LPDIRECTDRAWCLIPPER iface, DWORD dwFlags,
+			       HWND hWnd);
+ULONG WINAPI Main_DirectDrawClipper_Release(LPDIRECTDRAWCLIPPER iface);
+HRESULT WINAPI
+Main_DirectDrawClipper_GetClipList(LPDIRECTDRAWCLIPPER iface, LPRECT lpRect,
+				   LPRGNDATA lpClipList, LPDWORD lpdwSize);
+HRESULT WINAPI
+Main_DirectDrawClipper_SetClipList(LPDIRECTDRAWCLIPPER iface,LPRGNDATA lprgn,
+				   DWORD dwFlag);
+HRESULT WINAPI
+Main_DirectDrawClipper_QueryInterface(LPDIRECTDRAWCLIPPER iface, REFIID riid,
+				      LPVOID* ppvObj);
+ULONG WINAPI Main_DirectDrawClipper_AddRef( LPDIRECTDRAWCLIPPER iface );
+HRESULT WINAPI
+Main_DirectDrawClipper_GetHWnd(LPDIRECTDRAWCLIPPER iface, HWND* hWndPtr);
+HRESULT WINAPI
+Main_DirectDrawClipper_Initialize(LPDIRECTDRAWCLIPPER iface, LPDIRECTDRAW lpDD,
+				  DWORD dwFlags);
+HRESULT WINAPI
+Main_DirectDrawClipper_IsClipListChanged(LPDIRECTDRAWCLIPPER iface,
+					 BOOL* lpbChanged);
+
+/*****************************************************************************
+ * IDirectDrawPalette MAIN declarations
+ */
+HRESULT Main_DirectDrawPalette_Construct(IDirectDrawPaletteImpl* This,
+					 IDirectDrawImpl* pDD, DWORD dwFlags);
+void Main_DirectDrawPalette_final_release(IDirectDrawPaletteImpl* This);
+
+HRESULT Main_DirectDrawPalette_Create(IDirectDrawImpl* pDD, DWORD dwFlags,
+				      LPDIRECTDRAWPALETTE* ppPalette,
+				      LPUNKNOWN pUnkOuter);
+void Main_DirectDrawPalette_ForceDestroy(IDirectDrawPaletteImpl* This);
+
+DWORD Main_DirectDrawPalette_Size(DWORD dwFlags);
+
+HRESULT WINAPI
+Main_DirectDrawPalette_GetEntries(LPDIRECTDRAWPALETTE iface, DWORD dwFlags,
+				  DWORD dwStart, DWORD dwCount,
+				  LPPALETTEENTRY palent);
+HRESULT WINAPI
+Main_DirectDrawPalette_SetEntries(LPDIRECTDRAWPALETTE iface, DWORD dwFlags,
+				  DWORD dwStart, DWORD dwCount,
+				  LPPALETTEENTRY palent);
+ULONG WINAPI
+Main_DirectDrawPalette_Release(LPDIRECTDRAWPALETTE iface);
+ULONG WINAPI Main_DirectDrawPalette_AddRef(LPDIRECTDRAWPALETTE iface);
+HRESULT WINAPI
+Main_DirectDrawPalette_Initialize(LPDIRECTDRAWPALETTE iface,
+				  LPDIRECTDRAW ddraw, DWORD dwFlags,
+				  LPPALETTEENTRY palent);
+HRESULT WINAPI
+Main_DirectDrawPalette_GetCaps(LPDIRECTDRAWPALETTE iface, LPDWORD lpdwCaps);
+HRESULT WINAPI
+Main_DirectDrawPalette_QueryInterface(LPDIRECTDRAWPALETTE iface,
+				      REFIID refiid, LPVOID *obj);
+
+/*****************************************************************************
+ * IDirectDrawPalette HAL declarations
+ */
+HRESULT HAL_DirectDrawPalette_Construct(IDirectDrawPaletteImpl* This,
+					 IDirectDrawImpl* pDD, DWORD dwFlags);
+void HAL_DirectDrawPalette_final_release(IDirectDrawPaletteImpl* This);
+
+HRESULT HAL_DirectDrawPalette_Create(IDirectDrawImpl* pDD, DWORD dwFlags,
+				     LPDIRECTDRAWPALETTE* ppPalette,
+				     LPUNKNOWN pUnkOuter);
+
+HRESULT WINAPI
+HAL_DirectDrawPalette_SetEntries(LPDIRECTDRAWPALETTE iface, DWORD dwFlags,
+				 DWORD dwStart, DWORD dwCount,
+				 LPPALETTEENTRY palent);
+
+/*****************************************************************************
+ * IDirectDraw MAIN declarations
+ */
+/* internal virtual functions */
+void Main_DirectDraw_final_release(IDirectDrawImpl* This);
+HRESULT Main_create_offscreen(IDirectDrawImpl* This, const DDSURFACEDESC2 *pDDSD,
+			      LPDIRECTDRAWSURFACE7* ppSurf, LPUNKNOWN pOuter);
+HRESULT Main_create_texture(IDirectDrawImpl* This, const DDSURFACEDESC2 *pDDSD,
+			    LPDIRECTDRAWSURFACE7* ppSurf, LPUNKNOWN pOuter,
+			    DWORD dwMipMapLevel);
+HRESULT Main_create_zbuffer(IDirectDrawImpl* This, const DDSURFACEDESC2 *pDDSD,
+			    LPDIRECTDRAWSURFACE7* ppSurf, LPUNKNOWN pOuter);
+
+/* internal functions */
+HRESULT Main_DirectDraw_Construct(IDirectDrawImpl *This, BOOL ex);
+void Main_DirectDraw_AddSurface(IDirectDrawImpl* This,
+				IDirectDrawSurfaceImpl* surface);
+void Main_DirectDraw_RemoveSurface(IDirectDrawImpl* This,
+				   IDirectDrawSurfaceImpl* surface);
+void Main_DirectDraw_AddClipper(IDirectDrawImpl* This,
+				IDirectDrawClipperImpl* clipper);
+void Main_DirectDraw_RemoveClipper(IDirectDrawImpl* This,
+				   IDirectDrawClipperImpl* clipper);
+void Main_DirectDraw_AddPalette(IDirectDrawImpl* This,
+				IDirectDrawPaletteImpl* palette);
+void Main_DirectDraw_RemovePalette(IDirectDrawImpl* This,
+				   IDirectDrawPaletteImpl* palette);
+
+/* interface functions */
+ULONG WINAPI Main_DirectDraw_AddRef(LPDIRECTDRAW7 iface);
+ULONG WINAPI Main_DirectDraw_Release(LPDIRECTDRAW7 iface);
+HRESULT WINAPI Main_DirectDraw_QueryInterface(LPDIRECTDRAW7 iface,
+					      REFIID refiid,LPVOID *obj);
+HRESULT WINAPI Main_DirectDraw_Compact(LPDIRECTDRAW7 iface);
+HRESULT WINAPI Main_DirectDraw_CreateClipper(LPDIRECTDRAW7 iface,
+					     DWORD dwFlags,
+					     LPDIRECTDRAWCLIPPER *ppClipper,
+					     IUnknown *pUnkOuter);
+HRESULT WINAPI
+Main_DirectDraw_CreatePalette(LPDIRECTDRAW7 iface, DWORD dwFlags,
+			      LPPALETTEENTRY palent,
+			      LPDIRECTDRAWPALETTE* ppPalette,
+			      LPUNKNOWN pUnknown);
+HRESULT WINAPI
+Main_DirectDraw_CreateSurface(LPDIRECTDRAW7 iface, LPDDSURFACEDESC2 pDDSD,
+			      LPDIRECTDRAWSURFACE7 *ppSurf,
+			      IUnknown *pUnkOuter);
+HRESULT WINAPI
+Main_DirectDraw_DuplicateSurface(LPDIRECTDRAW7 iface, LPDIRECTDRAWSURFACE7 src,
+				 LPDIRECTDRAWSURFACE7* dst);
+HRESULT WINAPI
+Main_DirectDraw_EnumSurfaces(LPDIRECTDRAW7 iface, DWORD dwFlags,
+			     LPDDSURFACEDESC2 lpDDSD2, LPVOID context,
+			     LPDDENUMSURFACESCALLBACK7 callback);
+HRESULT WINAPI
+Main_DirectDraw_EvaluateMode(LPDIRECTDRAW7 iface,DWORD a,DWORD* b);
+HRESULT WINAPI Main_DirectDraw_FlipToGDISurface(LPDIRECTDRAW7 iface);
+HRESULT WINAPI
+Main_DirectDraw_GetCaps(LPDIRECTDRAW7 iface, LPDDCAPS pDriverCaps,
+			LPDDCAPS pHELCaps);
+HRESULT WINAPI
+Main_DirectDraw_GetFourCCCodes(LPDIRECTDRAW7 iface, LPDWORD pNumCodes,
+			       LPDWORD pCodes);
+HRESULT WINAPI
+Main_DirectDraw_GetGDISurface(LPDIRECTDRAW7 iface,
+			      LPDIRECTDRAWSURFACE7 *lplpGDIDDSSurface);
+HRESULT WINAPI
+Main_DirectDraw_GetMonitorFrequency(LPDIRECTDRAW7 iface,LPDWORD freq);
+HRESULT WINAPI
+Main_DirectDraw_GetScanLine(LPDIRECTDRAW7 iface, LPDWORD lpdwScanLine);
+HRESULT WINAPI
+Main_DirectDraw_GetSurfaceFromDC(LPDIRECTDRAW7 iface, HDC hdc,
+				 LPDIRECTDRAWSURFACE7 *lpDDS);
+HRESULT WINAPI
+Main_DirectDraw_GetVerticalBlankStatus(LPDIRECTDRAW7 iface, LPBOOL status);
+HRESULT WINAPI
+Main_DirectDraw_Initialize(LPDIRECTDRAW7 iface, LPGUID lpGuid);
+HRESULT WINAPI Main_DirectDraw_RestoreAllSurfaces(LPDIRECTDRAW7 iface);
+HRESULT WINAPI
+Main_DirectDraw_SetCooperativeLevel(LPDIRECTDRAW7 iface, HWND hwnd,
+				    DWORD cooplevel);
+HRESULT WINAPI
+Main_DirectDraw_SetDisplayMode(LPDIRECTDRAW7 iface, DWORD dwWidth,
+			       DWORD dwHeight, LONG lPitch,
+			       DWORD dwRefreshRate, DWORD dwFlags,
+			       const DDPIXELFORMAT* pixelformat);
+HRESULT WINAPI Main_DirectDraw_RestoreDisplayMode(LPDIRECTDRAW7 iface);
+HRESULT WINAPI
+Main_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7 iface, DWORD dwFlags,
+				     HANDLE h);
+HRESULT WINAPI
+Main_DirectDraw_GetDisplayMode(LPDIRECTDRAW7 iface, LPDDSURFACEDESC2 pDDSD);
+HRESULT WINAPI
+Main_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 iface,LPDDSCAPS2 ddscaps,
+				   LPDWORD total, LPDWORD free);
+HRESULT WINAPI Main_DirectDraw_TestCooperativeLevel(LPDIRECTDRAW7 iface);
+HRESULT WINAPI
+Main_DirectDraw_StartModeTest(LPDIRECTDRAW7 iface, LPSIZE pModes,
+			      DWORD dwNumModes, DWORD dwFlags);
+
+/*****************************************************************************
+ * IDirectDraw USER object declarations
+ */
+#define USER_DDRAW_PRIV(ddraw) ((User_DirectDrawImpl*)((ddraw)->private))
+#define USER_DDRAW_PRIV_VAR(name,ddraw) \
+	User_DirectDrawImpl* name = USER_DDRAW_PRIV(ddraw)
+
+typedef struct
+{
+    int empty;
+    /* empty */
+} User_DirectDrawImpl_Part;
+
+typedef struct
+{
+    User_DirectDrawImpl_Part user;
+} User_DirectDrawImpl;
+
+void User_DirectDraw_final_release(IDirectDrawImpl* This);
+HRESULT User_DirectDraw_create_primary(IDirectDrawImpl* This,
+				       const DDSURFACEDESC2* pDDSD,
+				       LPDIRECTDRAWSURFACE7* ppSurf,
+				       LPUNKNOWN pOuter);
+HRESULT User_DirectDraw_create_backbuffer(IDirectDrawImpl* This,
+					  const DDSURFACEDESC2* pDDSD,
+					  LPDIRECTDRAWSURFACE7* ppSurf,
+					  LPUNKNOWN pOuter,
+					  IDirectDrawSurfaceImpl* primary);
+HRESULT User_DirectDraw_Construct(IDirectDrawImpl *This, BOOL ex);
+HRESULT User_DirectDraw_Create(const GUID* pGUID, LPDIRECTDRAW7* pIface,
+			       IUnknown* pUnkOuter, BOOL ex);
+
+HRESULT WINAPI
+User_DirectDraw_EnumDisplayModes(LPDIRECTDRAW7 iface, DWORD dwFlags,
+				 LPDDSURFACEDESC2 pDDSD, LPVOID context,
+				 LPDDENUMMODESCALLBACK2 callback);
+HRESULT WINAPI
+User_DirectDraw_GetDeviceIdentifier(LPDIRECTDRAW7 iface,
+				    LPDDDEVICEIDENTIFIER2 pDDDI,
+				    DWORD dwFlags);
+HRESULT WINAPI
+User_DirectDraw_SetDisplayMode(LPDIRECTDRAW7 iface, DWORD dwWidth,
+			       DWORD dwHeight, DWORD dwBPP,
+			       DWORD dwRefreshRate, DWORD dwFlags);
+
+/*****************************************************************************
+ * IDirectDraw HAL declarations
+ */
+#define HAL_DDRAW_PRIV(ddraw) \
+	((HAL_DirectDrawImpl*)((ddraw)->private))
+#define HAL_DDRAW_PRIV_VAR(name,ddraw) \
+	HAL_DirectDrawImpl* name = HAL_DDRAW_PRIV(ddraw)
+
+typedef struct
+{
+    DWORD next_vofs;
+} HAL_DirectDrawImpl_Part;
+
+typedef struct
+{
+    User_DirectDrawImpl_Part user;
+    HAL_DirectDrawImpl_Part hal;
+} HAL_DirectDrawImpl;
+
+void HAL_DirectDraw_final_release(IDirectDrawImpl* This);
+HRESULT HAL_DirectDraw_create_primary(IDirectDrawImpl* This,
+				      const DDSURFACEDESC2* pDDSD,
+				      LPDIRECTDRAWSURFACE7* ppSurf,
+				      LPUNKNOWN pOuter);
+HRESULT HAL_DirectDraw_create_backbuffer(IDirectDrawImpl* This,
+					 const DDSURFACEDESC2* pDDSD,
+					 LPDIRECTDRAWSURFACE7* ppSurf,
+					 LPUNKNOWN pOuter,
+					 IDirectDrawSurfaceImpl* primary);
+HRESULT HAL_DirectDraw_create_texture(IDirectDrawImpl* This,
+				      const DDSURFACEDESC2* pDDSD,
+				      LPDIRECTDRAWSURFACE7* ppSurf,
+				      LPUNKNOWN pOuter,
+				      DWORD dwMipMapLevel);
+
+HRESULT HAL_DirectDraw_Construct(IDirectDrawImpl *This, BOOL ex);
+HRESULT HAL_DirectDraw_Create(const GUID* pGUID, LPDIRECTDRAW7* pIface,
+				   IUnknown* pUnkOuter, BOOL ex);
+
+HRESULT WINAPI
+HAL_DirectDraw_GetDeviceIdentifier(LPDIRECTDRAW7 iface,
+					LPDDDEVICEIDENTIFIER2 pDDDI,
+					DWORD dwFlags);
+HRESULT WINAPI
+HAL_DirectDraw_SetDisplayMode(LPDIRECTDRAW7 iface, DWORD dwWidth,
+				   DWORD dwHeight, DWORD dwBPP,
+				   DWORD dwRefreshRate, DWORD dwFlags);
+HRESULT WINAPI HAL_DirectDraw_RestoreDisplayMode(LPDIRECTDRAW7 iface);
+
+/*****************************************************************************
+ * IDirectDrawSurface MAIN declarations
+ */
+/* Support for IDirectDrawSurface7::Set/Get/FreePrivateData. I don't think
+ * anybody uses it for much so a good implementation is optional. */
+typedef struct PrivateData
+{
+    struct PrivateData* next;
+    struct PrivateData* prev;
+
+    GUID tag;
+    DWORD flags; /* DDSPD_* */
+    DWORD uniqueness_value;
+
+    union
+    {
+	LPVOID data;
+	LPUNKNOWN object;
+    } ptr;
+
+    DWORD size;
+} PrivateData;
+
+extern const IDirectDrawGammaControlVtbl DDRAW_IDDGC_VTable;
+
+/* Non-interface functions */
+HRESULT Main_DirectDrawSurface_Construct(IDirectDrawSurfaceImpl* This,
+					 IDirectDrawImpl* pDD,
+					 const DDSURFACEDESC2* pDDSD);
+void Main_DirectDrawSurface_ForceDestroy(IDirectDrawSurfaceImpl* This);
+
+void Main_DirectDrawSurface_final_release(IDirectDrawSurfaceImpl* This);
+HRESULT Main_DirectDrawSurface_late_allocate(IDirectDrawSurfaceImpl* This);
+BOOL Main_DirectDrawSurface_attach(IDirectDrawSurfaceImpl *This,
+				   IDirectDrawSurfaceImpl *to);
+BOOL Main_DirectDrawSurface_detach(IDirectDrawSurfaceImpl *This);
+void Main_DirectDrawSurface_lock_update(IDirectDrawSurfaceImpl* This,
+					LPCRECT pRect, DWORD dwFlags);
+void Main_DirectDrawSurface_unlock_update(IDirectDrawSurfaceImpl* This,
+					  LPCRECT pRect);
+void Main_DirectDrawSurface_lose_surface(IDirectDrawSurfaceImpl* This);
+void Main_DirectDrawSurface_set_palette(IDirectDrawSurfaceImpl* This,
+					IDirectDrawPaletteImpl* pal);
+void Main_DirectDrawSurface_update_palette(IDirectDrawSurfaceImpl* This,
+					   IDirectDrawPaletteImpl* pal,
+					   DWORD dwStart, DWORD dwCount,
+			                   LPPALETTEENTRY palent);
+HWND Main_DirectDrawSurface_get_display_window(IDirectDrawSurfaceImpl* This);
+
+HRESULT Main_DirectDrawSurface_get_gamma_ramp(IDirectDrawSurfaceImpl* This,
+					      DWORD dwFlags,
+					      LPDDGAMMARAMP lpGammaRamp);
+HRESULT Main_DirectDrawSurface_set_gamma_ramp(IDirectDrawSurfaceImpl* This,
+					      DWORD dwFlags,
+					      LPDDGAMMARAMP lpGammaRamp);
+
+BOOL Main_DirectDrawSurface_flip_data(IDirectDrawSurfaceImpl* front,
+				      IDirectDrawSurfaceImpl* back,
+				      DWORD dwFlags);
+
+#define CHECK_LOST(This)					\
+	do {							\
+		if (This->lost) return DDERR_SURFACELOST;	\
+	} while (0)
+
+#define CHECK_TEXTURE(This)					\
+	do {							\
+		if (!(This->surface_desc.ddsCaps.dwCaps2	\
+		      & DDSCAPS2_TEXTUREMANAGE))		\
+			return DDERR_INVALIDOBJECT;		\
+	} while (0)
+
+#define LOCK_OBJECT(This) do { } while (0)
+#define UNLOCK_OBJECT(This) do { } while (0)
+
+/* IDirectDrawSurface7 (partial) implementation */
+ULONG WINAPI Main_DirectDrawSurface_AddRef(LPDIRECTDRAWSURFACE7 iface);
+ULONG WINAPI Main_DirectDrawSurface_Release(LPDIRECTDRAWSURFACE7 iface);
+HRESULT WINAPI
+Main_DirectDrawSurface_QueryInterface(LPDIRECTDRAWSURFACE7 iface, REFIID riid,
+				      LPVOID* ppObj);
+HRESULT WINAPI
+Main_DirectDrawSurface_AddAttachedSurface(LPDIRECTDRAWSURFACE7 iface,
+					  LPDIRECTDRAWSURFACE7 pAttach);
+HRESULT WINAPI
+Main_DirectDrawSurface_AddOverlayDirtyRect(LPDIRECTDRAWSURFACE7 iface,
+					   LPRECT pRect);
+HRESULT WINAPI
+Main_DirectDrawSurface_BltBatch(LPDIRECTDRAWSURFACE7 iface,
+				LPDDBLTBATCH pBatch, DWORD dwCount,
+				DWORD dwFlags);
+HRESULT WINAPI
+Main_DirectDrawSurface_ChangeUniquenessValue(LPDIRECTDRAWSURFACE7 iface);
+HRESULT WINAPI
+Main_DirectDrawSurface_DeleteAttachedSurface(LPDIRECTDRAWSURFACE7 iface,
+					     DWORD dwFlags,
+					     LPDIRECTDRAWSURFACE7 pAttach);
+HRESULT WINAPI
+Main_DirectDrawSurface_EnumAttachedSurfaces(LPDIRECTDRAWSURFACE7 iface,
+					    LPVOID context,
+					    LPDDENUMSURFACESCALLBACK7 cb);
+HRESULT WINAPI
+Main_DirectDrawSurface_EnumOverlayZOrders(LPDIRECTDRAWSURFACE7 iface,
+					  DWORD dwFlags, LPVOID context,
+					  LPDDENUMSURFACESCALLBACK7 cb);
+HRESULT WINAPI
+Main_DirectDrawSurface_Flip(LPDIRECTDRAWSURFACE7 iface,
+			    LPDIRECTDRAWSURFACE7 override, DWORD dwFlags);
+HRESULT WINAPI
+Main_DirectDrawSurface_FreePrivateData(LPDIRECTDRAWSURFACE7 iface,
+				       REFGUID tag);
+HRESULT WINAPI
+Main_DirectDrawSurface_GetAttachedSurface(LPDIRECTDRAWSURFACE7 iface,
+					  LPDDSCAPS2 pCaps,
+					  LPDIRECTDRAWSURFACE7* ppSurface);
+HRESULT WINAPI
+Main_DirectDrawSurface_GetBltStatus(LPDIRECTDRAWSURFACE7 iface,
+				    DWORD dwFlags);
+HRESULT WINAPI
+Main_DirectDrawSurface_GetCaps(LPDIRECTDRAWSURFACE7 iface,
+			       LPDDSCAPS2 pCaps);
+HRESULT WINAPI
+Main_DirectDrawSurface_GetClipper(LPDIRECTDRAWSURFACE7 iface,
+				  LPDIRECTDRAWCLIPPER* ppClipper);
+HRESULT WINAPI
+Main_DirectDrawSurface_GetColorKey(LPDIRECTDRAWSURFACE7 iface,
+				   DWORD dwFlags, LPDDCOLORKEY pCKey);
+HRESULT WINAPI
+Main_DirectDrawSurface_GetDC(LPDIRECTDRAWSURFACE7 iface, HDC *phDC);
+HRESULT WINAPI
+Main_DirectDrawSurface_GetDDInterface(LPDIRECTDRAWSURFACE7 iface,
+				      LPVOID* pDD);
+HRESULT WINAPI
+Main_DirectDrawSurface_GetFlipStatus(LPDIRECTDRAWSURFACE7 iface,
+				     DWORD dwFlags);
+HRESULT WINAPI
+Main_DirectDrawSurface_GetLOD(LPDIRECTDRAWSURFACE7 iface,
+			      LPDWORD pdwMaxLOD);
+HRESULT WINAPI
+Main_DirectDrawSurface_GetOverlayPosition(LPDIRECTDRAWSURFACE7 iface,
+					  LPLONG pX, LPLONG pY);
+HRESULT WINAPI
+Main_DirectDrawSurface_GetPalette(LPDIRECTDRAWSURFACE7 iface,
+				  LPDIRECTDRAWPALETTE* ppPalette);
+HRESULT WINAPI
+Main_DirectDrawSurface_GetPixelFormat(LPDIRECTDRAWSURFACE7 iface,
+				      LPDDPIXELFORMAT pDDPixelFormat);
+HRESULT WINAPI
+Main_DirectDrawSurface_GetPriority(LPDIRECTDRAWSURFACE7 iface,
+				   LPDWORD pdwPriority);
+HRESULT WINAPI
+Main_DirectDrawSurface_GetPrivateData(LPDIRECTDRAWSURFACE7 iface, REFGUID tag,
+				      LPVOID pBuffer, LPDWORD pcbBufferSize);
+HRESULT WINAPI
+Main_DirectDrawSurface_GetSurfaceDesc(LPDIRECTDRAWSURFACE7 iface,
+				      LPDDSURFACEDESC2 pDDSD);
+HRESULT WINAPI
+Main_DirectDrawSurface_GetUniquenessValue(LPDIRECTDRAWSURFACE7 iface,
+					  LPDWORD pValue);
+HRESULT WINAPI
+Main_DirectDrawSurface_Initialize(LPDIRECTDRAWSURFACE7 iface,
+				  LPDIRECTDRAW pDD, LPDDSURFACEDESC2 pDDSD);
+HRESULT WINAPI
+Main_DirectDrawSurface_IsLost(LPDIRECTDRAWSURFACE7 iface);
+HRESULT WINAPI
+Main_DirectDrawSurface_Lock(LPDIRECTDRAWSURFACE7 iface, LPRECT prect,
+			    LPDDSURFACEDESC2 pDDSD, DWORD flags, HANDLE h);
+HRESULT WINAPI
+Main_DirectDrawSurface_PageLock(LPDIRECTDRAWSURFACE7 iface, DWORD dwFlags);
+HRESULT WINAPI
+Main_DirectDrawSurface_PageUnlock(LPDIRECTDRAWSURFACE7 iface, DWORD dwFlags);
+HRESULT WINAPI
+Main_DirectDrawSurface_ReleaseDC(LPDIRECTDRAWSURFACE7 iface, HDC hDC);
+HRESULT WINAPI
+Main_DirectDrawSurface_SetClipper(LPDIRECTDRAWSURFACE7 iface,
+				  LPDIRECTDRAWCLIPPER pDDClipper);
+HRESULT WINAPI
+Main_DirectDrawSurface_SetColorKey(LPDIRECTDRAWSURFACE7 iface,
+				   DWORD dwFlags, LPDDCOLORKEY pCKey);
+HRESULT WINAPI
+Main_DirectDrawSurface_SetLOD(LPDIRECTDRAWSURFACE7 iface, DWORD dwMaxLOD);
+HRESULT WINAPI
+Main_DirectDrawSurface_SetOverlayPosition(LPDIRECTDRAWSURFACE7 iface,
+					  LONG X, LONG Y);
+HRESULT WINAPI
+Main_DirectDrawSurface_SetPalette(LPDIRECTDRAWSURFACE7 iface,
+				  LPDIRECTDRAWPALETTE pPalette);
+HRESULT WINAPI
+Main_DirectDrawSurface_SetPriority(LPDIRECTDRAWSURFACE7 iface,
+				   DWORD dwPriority);
+HRESULT WINAPI
+Main_DirectDrawSurface_SetPrivateData(LPDIRECTDRAWSURFACE7 iface,
+				      REFGUID tag, LPVOID pData,
+				      DWORD cbSize, DWORD dwFlags);
+HRESULT WINAPI
+Main_DirectDrawSurface_Unlock(LPDIRECTDRAWSURFACE7 iface, LPRECT pRect);
+HRESULT WINAPI
+Main_DirectDrawSurface_UpdateOverlay(LPDIRECTDRAWSURFACE7 iface,
+				     LPRECT pSrcRect,
+				     LPDIRECTDRAWSURFACE7 pDstSurface,
+				     LPRECT pDstRect, DWORD dwFlags,
+				     LPDDOVERLAYFX pFX);
+HRESULT WINAPI
+Main_DirectDrawSurface_UpdateOverlayDisplay(LPDIRECTDRAWSURFACE7 iface,
+					    DWORD dwFlags);
+HRESULT WINAPI
+Main_DirectDrawSurface_UpdateOverlayZOrder(LPDIRECTDRAWSURFACE7 iface,
+					   DWORD dwFlags,
+					   LPDIRECTDRAWSURFACE7 pDDSRef);
+
+/*****************************************************************************
+ * IDirectDrawSurface DIB declarations
+ */
+#define DIB_PRIV(surf) ((DIB_DirectDrawSurfaceImpl*)((surf)->private))
+
+#define DIB_PRIV_VAR(name, surf) \
+	DIB_DirectDrawSurfaceImpl* name = DIB_PRIV(surf)
+
+struct DIB_DirectDrawSurfaceImpl_Part
+{
+    HBITMAP DIBsection;
+    void* bitmap_data;
+    HGDIOBJ holdbitmap;
+    BOOL client_memory;
+    DWORD d3d_data[4]; /* room for Direct3D driver data */
+};
+
+typedef struct
+{
+    struct DIB_DirectDrawSurfaceImpl_Part dib;
+} DIB_DirectDrawSurfaceImpl;
+
+HRESULT
+DIB_DirectDrawSurface_Construct(IDirectDrawSurfaceImpl *This,
+				IDirectDrawImpl *pDD,
+				const DDSURFACEDESC2 *pDDSD);
+HRESULT
+DIB_DirectDrawSurface_Create(IDirectDrawImpl *pDD,
+			     const DDSURFACEDESC2 *pDDSD,
+			     LPDIRECTDRAWSURFACE7 *ppSurf,
+			     IUnknown *pUnkOuter);
+
+void DIB_DirectDrawSurface_final_release(IDirectDrawSurfaceImpl* This);
+BOOL DIB_DirectDrawSurface_flip_data(IDirectDrawSurfaceImpl* front,
+				     IDirectDrawSurfaceImpl* back,
+				     DWORD dwFlags);
+
+void DIB_DirectDrawSurface_set_palette(IDirectDrawSurfaceImpl* This,
+				       IDirectDrawPaletteImpl* pal);
+void DIB_DirectDrawSurface_update_palette(IDirectDrawSurfaceImpl* This,
+					  IDirectDrawPaletteImpl* pal,
+					  DWORD dwStart, DWORD dwCount,
+					  LPPALETTEENTRY palent);
+
+HRESULT DIB_DirectDrawSurface_get_dc(IDirectDrawSurfaceImpl* This, HDC* phDC);
+HRESULT DIB_DirectDrawSurface_release_dc(IDirectDrawSurfaceImpl* This,HDC hDC);
+
+HRESULT DIB_DirectDrawSurface_alloc_dc(IDirectDrawSurfaceImpl* This,HDC* phDC);
+HRESULT DIB_DirectDrawSurface_free_dc(IDirectDrawSurfaceImpl* This, HDC hDC);
+
+HRESULT WINAPI
+DIB_DirectDrawSurface_Blt(LPDIRECTDRAWSURFACE7 iface, LPRECT prcDest,
+			  LPDIRECTDRAWSURFACE7 pSrcSurf, LPRECT prcSrc,
+			  DWORD dwFlags, LPDDBLTFX pBltFx);
+HRESULT WINAPI
+DIB_DirectDrawSurface_BltFast(LPDIRECTDRAWSURFACE7 iface, DWORD dwX,
+			      DWORD dwY, LPDIRECTDRAWSURFACE7 pSrcSurf,
+			      LPRECT prcSrc, DWORD dwTrans);
+HRESULT WINAPI DIB_DirectDrawSurface_Restore(LPDIRECTDRAWSURFACE7 iface);
+HRESULT WINAPI
+DIB_DirectDrawSurface_SetSurfaceDesc(LPDIRECTDRAWSURFACE7 iface,
+				     LPDDSURFACEDESC2 pDDSD, DWORD dwFlags);
+
+/*****************************************************************************
+ * IDirectDrawSurface USER declarations
+ */
+#define USER_PRIV(surf) ((User_DirectDrawSurfaceImpl*)((surf)->private))
+
+#define USER_PRIV_VAR(name,surf) \
+	User_DirectDrawSurfaceImpl* name = USER_PRIV(surf)
+
+struct User_DirectDrawSurfaceImpl_Part
+{
+    HWND window;
+    HDC cached_dc;
+    HANDLE update_thread, update_event, refresh_event;
+    volatile int wait_count, in_refresh;
+    CRITICAL_SECTION crit;
+};
+
+typedef struct
+{
+    struct DIB_DirectDrawSurfaceImpl_Part dib;
+    struct User_DirectDrawSurfaceImpl_Part user;
+} User_DirectDrawSurfaceImpl;
+
+HRESULT User_DirectDrawSurface_Construct(IDirectDrawSurfaceImpl* This,
+					 IDirectDrawImpl* pDD,
+					 const DDSURFACEDESC2* pDDSD);
+
+HRESULT User_DirectDrawSurface_Create(IDirectDrawImpl *pDD,
+				      const DDSURFACEDESC2 *pDDSD,
+				      LPDIRECTDRAWSURFACE7 *ppSurf,
+				      IUnknown *pUnkOuter);
+
+void User_DirectDrawSurface_final_release(IDirectDrawSurfaceImpl* This);
+
+void User_DirectDrawSurface_lock_update(IDirectDrawSurfaceImpl* This,
+					LPCRECT pRect, DWORD dwFlags);
+void User_DirectDrawSurface_unlock_update(IDirectDrawSurfaceImpl* This,
+					  LPCRECT pRect);
+void User_DirectDrawSurface_set_palette(IDirectDrawSurfaceImpl* This,
+					IDirectDrawPaletteImpl* pal);
+void User_DirectDrawSurface_update_palette(IDirectDrawSurfaceImpl* This,
+					   IDirectDrawPaletteImpl* pal,
+					   DWORD dwStart, DWORD dwCount,
+					   LPPALETTEENTRY palent);
+HRESULT User_DirectDrawSurface_duplicate_surface(IDirectDrawSurfaceImpl* This,
+						 LPDIRECTDRAWSURFACE7* ppDup);
+BOOL User_DirectDrawSurface_flip_data(IDirectDrawSurfaceImpl* front,
+				      IDirectDrawSurfaceImpl* back,
+				      DWORD dwFlags);
+void User_DirectDrawSurface_flip_update(IDirectDrawSurfaceImpl* This,
+					DWORD dwFlags);
+HWND User_DirectDrawSurface_get_display_window(IDirectDrawSurfaceImpl* This);
+
+HRESULT User_DirectDrawSurface_get_dc(IDirectDrawSurfaceImpl* This, HDC* phDC);
+HRESULT User_DirectDrawSurface_release_dc(IDirectDrawSurfaceImpl* This,
+					  HDC hDC);
+
+HRESULT User_DirectDrawSurface_get_gamma_ramp(IDirectDrawSurfaceImpl* This,
+					      DWORD dwFlags,
+					      LPDDGAMMARAMP lpGammaRamp);
+HRESULT User_DirectDrawSurface_set_gamma_ramp(IDirectDrawSurfaceImpl* This,
+					      DWORD dwFlags,
+					      LPDDGAMMARAMP lpGammaRamp);
+
+/*****************************************************************************
+ * IDirectDrawSurface HAL declarations
+ */
+#define HAL_PRIV(surf) ((HAL_DirectDrawSurfaceImpl*)((surf)->private))
+
+#define HAL_PRIV_VAR(name,surf) \
+	HAL_DirectDrawSurfaceImpl* name = HAL_PRIV(surf)
+
+struct HAL_DirectDrawSurfaceImpl_Part
+{
+    DWORD need_late;
+    LPVOID fb_addr;
+    DWORD fb_pitch, fb_vofs;
+};
+
+typedef struct
+{
+    struct DIB_DirectDrawSurfaceImpl_Part dib;
+    struct User_DirectDrawSurfaceImpl_Part user;
+    struct HAL_DirectDrawSurfaceImpl_Part hal;
+} HAL_DirectDrawSurfaceImpl;
+
+HRESULT HAL_DirectDrawSurface_Construct(IDirectDrawSurfaceImpl* This,
+					IDirectDrawImpl* pDD,
+					const DDSURFACEDESC2* pDDSD);
+
+HRESULT HAL_DirectDrawSurface_Create(IDirectDrawImpl *pDD,
+				     const DDSURFACEDESC2 *pDDSD,
+				     LPDIRECTDRAWSURFACE7 *ppSurf,
+				     IUnknown *pUnkOuter);
+
+void HAL_DirectDrawSurface_final_release(IDirectDrawSurfaceImpl* This);
+HRESULT HAL_DirectDrawSurface_late_allocate(IDirectDrawSurfaceImpl* This);
+
+void HAL_DirectDrawSurface_set_palette(IDirectDrawSurfaceImpl* This,
+				       IDirectDrawPaletteImpl* pal);
+void HAL_DirectDrawSurface_update_palette(IDirectDrawSurfaceImpl* This,
+					  IDirectDrawPaletteImpl* pal,
+					  DWORD dwStart, DWORD dwCount,
+					  LPPALETTEENTRY palent);
+HRESULT HAL_DirectDrawSurface_duplicate_surface(IDirectDrawSurfaceImpl* This,
+						LPDIRECTDRAWSURFACE7* ppDup);
+void HAL_DirectDrawSurface_lock_update(IDirectDrawSurfaceImpl* This,
+				       LPCRECT pRect, DWORD dwFlags);
+void HAL_DirectDrawSurface_unlock_update(IDirectDrawSurfaceImpl* This,
+					 LPCRECT pRect);
+BOOL HAL_DirectDrawSurface_flip_data(IDirectDrawSurfaceImpl* front,
+				     IDirectDrawSurfaceImpl* back,
+				     DWORD dwFlags);
+void HAL_DirectDrawSurface_flip_update(IDirectDrawSurfaceImpl* This,
+				       DWORD dwFlags);
+HWND HAL_DirectDrawSurface_get_display_window(IDirectDrawSurfaceImpl* This);
+
+/*****************************************************************************
+ * IDirectDrawSurface FAKEZBUFFER declarations
+ */
+typedef struct
+{
+    BOOLEAN in_memory;
+} FakeZBuffer_DirectDrawSurfaceImpl;
+
+HRESULT FakeZBuffer_DirectDrawSurface_Construct(IDirectDrawSurfaceImpl* This,
+						IDirectDrawImpl* pDD,
+						const DDSURFACEDESC2* pDDSD);
+
+HRESULT FakeZBuffer_DirectDrawSurface_Create(IDirectDrawImpl* pDD,
+					     const DDSURFACEDESC2* pDDSD,
+					     LPDIRECTDRAWSURFACE7* ppSurf,
+					     IUnknown* pUnkOuter);
+
+void FakeZBuffer_DirectDrawSurface_final_release(IDirectDrawSurfaceImpl* This);
+
+HRESULT FakeZBuffer_DirectDrawSurface_duplicate_surface(IDirectDrawSurfaceImpl* This,
+							LPDIRECTDRAWSURFACE7* ppDup);
+
 #endif /* __WINE_DLLS_DDRAW_DDRAW_PRIVATE_H */


More information about the wine-patches mailing list