start writing on the createsurface code, current does not setup the interface right yet so we do not doing the callbacks yet

svn path=/trunk/; revision=25080
This commit is contained in:
Magnus Olsen 2006-12-07 16:46:33 +00:00
parent ab5143ea78
commit f2f6e89dc0
3 changed files with 1491 additions and 18 deletions

View file

@ -202,7 +202,8 @@ HRESULT WINAPI Main_DirectDraw_CreateSurface (LPDIRECTDRAW7 iface, LPDDSURFACEDE
}
That->lpLcl = (LPDDRAWI_DDRAWSURFACE_LCL)DxHeapMemAlloc(sizeof(DDRAWI_DDRAWSURFACE_LCL));
This->lpLcl->lpPrimary = That;
if (That == NULL)
{
return E_OUTOFMEMORY;
@ -214,15 +215,7 @@ HRESULT WINAPI Main_DirectDraw_CreateSurface (LPDIRECTDRAW7 iface, LPDDSURFACEDE
That->lpLcl->lpGbl = &ddSurfGbl;
That->lpLcl->lpGbl->lpDD = &ddgbl;
Main_DDrawSurface_AddRef((LPDIRECTDRAWSURFACE7)That);
if (This->lpLcl->lpGbl->dsList == NULL)
{
This->lpLcl->lpGbl->dsList = That;
}
/* Code from wine cvs 24/7-2006 */
if (!(pDDSD->dwFlags & DDSD_CAPS))
@ -253,16 +246,27 @@ HRESULT WINAPI Main_DirectDraw_CreateSurface (LPDIRECTDRAW7 iface, LPDDSURFACEDE
DX_STUB_str("pDDSD->dwFlags ok");
/* own code now */
/* FIXME
remove all old code for create a surface
for we need rewrite it
*/
/* own code now */
if (pDDSD->ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE)
{
DX_STUB_str( "Can not create primary surface");
{
/* we only create one surface it is primary */
//LPDDRAWI_DDRAWSURFACE_LCL surf;
DX_STUB_str( "Can not create primary surface well yet");
if (That == NULL)
{
return E_OUTOFMEMORY;
}
// This->lpLcl->lpDDCB->cbDDCallbacks.CanCreateSurface();
// This->lpLcl->lpDDCB->cbDDCallbacks.CreateSurface();
Main_DirectDraw_AddRef((LPDIRECTDRAW7)This);
Main_DDrawSurface_AddRef((LPDIRECTDRAWSURFACE7)That);
return DD_OK;
}
else if (pDDSD->ddsCaps.dwCaps & DDSCAPS_OVERLAY)
{
@ -720,7 +724,7 @@ Main_DirectDraw_SetCooperativeLevel (LPDIRECTDRAW7 iface, HWND hwnd, DWORD coopl
/* This code should be a callback */
This->lpLcl->hWnd = hwnd;
This->lpLcl->hFocusWnd = hwnd;
ReCreateDirectDraw(iface);
ReCreateDirectDraw((LPDIRECTDRAW*)iface);
// TODO:
// - create a scaner that check which driver we should get the HDC from

View file

@ -0,0 +1,947 @@
#include "../rosdraw.h"
HRESULT WINAPI
ThunkDirectDraw_QueryInterface(LPDIRECTDRAW iface, REFIID iid, LPVOID *ppObj)
{
DX_WINDBG_trace();
return Main_DirectDraw_QueryInterface ((LPDIRECTDRAW7) iface, iid, ppObj);
}
HRESULT WINAPI
ThunkDirectDraw2_QueryInterface(LPDIRECTDRAW2 iface, REFIID iid, LPVOID *obj)
{
DX_WINDBG_trace();
return Main_DirectDraw_QueryInterface ((LPDIRECTDRAW7) iface, iid, obj);
}
HRESULT WINAPI
ThunkDirectDraw4_QueryInterface(LPDIRECTDRAW4 iface, REFIID iid, LPVOID *ppObj)
{
DX_WINDBG_trace();
return Main_DirectDraw_QueryInterface ((LPDIRECTDRAW7) iface, iid, ppObj);
}
ULONG WINAPI
ThunkDirectDraw_AddRef(LPDIRECTDRAW iface)
{
DX_WINDBG_trace();
return Main_DirectDraw_AddRef((LPDIRECTDRAW7) iface);
}
ULONG WINAPI
ThunkDirectDraw2_AddRef(LPDIRECTDRAW2 iface)
{
DX_WINDBG_trace();
return Main_DirectDraw_AddRef((LPDIRECTDRAW7) iface);
}
ULONG WINAPI
ThunkDirectDraw4_AddRef(LPDIRECTDRAW4 iface)
{
DX_WINDBG_trace();
return Main_DirectDraw_AddRef((LPDIRECTDRAW7) iface);
}
ULONG WINAPI
ThunkDirectDraw_Release(LPDIRECTDRAW iface)
{
DX_WINDBG_trace();
return Main_DirectDraw_Release ((LPDIRECTDRAW7) iface);
}
ULONG WINAPI
ThunkDirectDraw2_Release(LPDIRECTDRAW2 iface)
{
DX_WINDBG_trace();
return Main_DirectDraw_Release ((LPDIRECTDRAW7) iface);
}
ULONG WINAPI
ThunkDirectDraw4_Release(LPDIRECTDRAW4 iface)
{
DX_WINDBG_trace();
return Main_DirectDraw_Release ((LPDIRECTDRAW7) iface);
}
HRESULT WINAPI
ThunkDirectDraw_Compact(LPDIRECTDRAW iface)
{
DX_WINDBG_trace();
return Main_DirectDraw_Compact((LPDIRECTDRAW7) iface) ;
}
HRESULT WINAPI
ThunkDirectDraw2_Compact(LPDIRECTDRAW2 iface)
{
DX_WINDBG_trace();
return Main_DirectDraw_Compact((LPDIRECTDRAW7) iface) ;
}
HRESULT WINAPI
ThunkDirectDraw4_Compact(LPDIRECTDRAW4 iface)
{
DX_WINDBG_trace();
return Main_DirectDraw_Compact((LPDIRECTDRAW7) iface) ;
}
HRESULT WINAPI
ThunkDirectDraw_CreateClipper(LPDIRECTDRAW iface,DWORD dwFlags,LPDIRECTDRAWCLIPPER *ppClipper,IUnknown *pUnkOuter)
{
DX_WINDBG_trace();
return Main_DirectDraw_CreateClipper( (LPDIRECTDRAW7) iface, dwFlags, ppClipper, pUnkOuter);
}
HRESULT WINAPI
ThunkDirectDraw2_CreateClipper(LPDIRECTDRAW2 iface,DWORD dwFlags,LPDIRECTDRAWCLIPPER *ppClipper,IUnknown *pUnkOuter)
{
DX_WINDBG_trace();
return Main_DirectDraw_CreateClipper( (LPDIRECTDRAW7) iface, dwFlags, ppClipper, pUnkOuter);
}
HRESULT WINAPI
ThunkDirectDraw4_CreateClipper(LPDIRECTDRAW4 iface,DWORD dwFlags,LPDIRECTDRAWCLIPPER *ppClipper,IUnknown *pUnkOuter)
{
DX_WINDBG_trace();
return Main_DirectDraw_CreateClipper( (LPDIRECTDRAW7) iface, dwFlags, ppClipper, pUnkOuter);
}
HRESULT WINAPI
ThunkDirectDraw_CreatePalette(LPDIRECTDRAW iface, DWORD dwFlags,
LPPALETTEENTRY pEntries,
LPDIRECTDRAWPALETTE *ppPalette,
IUnknown *pUnkOuter)
{
DX_WINDBG_trace();
return Main_DirectDraw_CreatePalette( (LPDIRECTDRAW7) iface, dwFlags, pEntries, ppPalette, pUnkOuter);
}
HRESULT WINAPI
ThunkDirectDraw2_CreatePalette(LPDIRECTDRAW2 iface, DWORD dwFlags,
LPPALETTEENTRY pEntries,
LPDIRECTDRAWPALETTE *ppPalette,
IUnknown *pUnkOuter)
{
DX_WINDBG_trace();
return Main_DirectDraw_CreatePalette( (LPDIRECTDRAW7) iface, dwFlags, pEntries, ppPalette, pUnkOuter);
}
HRESULT WINAPI
ThunkDirectDraw4_CreatePalette(LPDIRECTDRAW4 iface, DWORD dwFlags, LPPALETTEENTRY pEntries,
LPDIRECTDRAWPALETTE *ppPalette, IUnknown *pUnkOuter)
{
DX_WINDBG_trace();
return Main_DirectDraw_CreatePalette( (LPDIRECTDRAW7) iface, dwFlags, pEntries, ppPalette, pUnkOuter);
}
HRESULT WINAPI
ThunkDirectDraw_CreateSurface(LPDIRECTDRAW iface, LPDDSURFACEDESC pDDSD,
LPDIRECTDRAWSURFACE *ppSurf,
IUnknown *pUnkOuter)
{
HRESULT retValue = DDERR_GENERIC;
LPDDRAWI_DDRAWSURFACE_INT That;
DX_WINDBG_trace();
if (pDDSD != NULL)
{
DDSURFACEDESC2 pDDSD2;
ZeroMemory(&pDDSD2,sizeof(DDSURFACEDESC2));
memcpy(&pDDSD2, pDDSD, sizeof(DDSURFACEDESC));
pDDSD2.dwSize = sizeof(DDSURFACEDESC2);
retValue = Main_DirectDraw_CreateSurface ((LPDIRECTDRAW7) iface, &pDDSD2,
(LPDIRECTDRAWSURFACE7 *) ppSurf, pUnkOuter);
memcpy(pDDSD, &pDDSD2, sizeof(DDSURFACEDESC));
pDDSD->dwSize = sizeof(DDSURFACEDESC);
}
else
{
retValue = Main_DirectDraw_CreateSurface ((LPDIRECTDRAW7) iface, NULL,
(LPDIRECTDRAWSURFACE7 *) ppSurf, pUnkOuter);
}
That = (LPDDRAWI_DDRAWSURFACE_INT) *ppSurf;
That->lpVtbl = &DirectDrawSurface3_VTable;
return retValue;
}
HRESULT WINAPI
ThunkDirectDraw2_CreateSurface(LPDIRECTDRAW2 iface, LPDDSURFACEDESC pDDSD,
LPDIRECTDRAWSURFACE *ppSurface, IUnknown *pUnkOuter)
{
HRESULT retValue = DDERR_GENERIC;
LPDDRAWI_DDRAWSURFACE_INT That;
DX_WINDBG_trace();
if (pDDSD != NULL)
{
DDSURFACEDESC2 pDDSD2;
ZeroMemory(&pDDSD2,sizeof(DDSURFACEDESC2));
memcpy(&pDDSD2, pDDSD, sizeof(DDSURFACEDESC));
pDDSD2.dwSize = sizeof(DDSURFACEDESC2);
retValue = Main_DirectDraw_CreateSurface ((LPDIRECTDRAW7) iface, &pDDSD2,
(LPDIRECTDRAWSURFACE7 *) ppSurface, pUnkOuter);
memcpy(pDDSD, &pDDSD2, sizeof(DDSURFACEDESC));
pDDSD->dwSize = sizeof(DDSURFACEDESC);
}
else
{
retValue = Main_DirectDraw_CreateSurface ((LPDIRECTDRAW7) iface, NULL,
(LPDIRECTDRAWSURFACE7 *) ppSurface, pUnkOuter);
}
That = (LPDDRAWI_DDRAWSURFACE_INT) *ppSurface;
That->lpVtbl = &DirectDrawSurface3_VTable;
return retValue;
}
HRESULT WINAPI
ThunkDirectDraw4_CreateSurface(LPDIRECTDRAW4 iface, LPDDSURFACEDESC2 pDDSD2,
LPDIRECTDRAWSURFACE4 *ppSurface, IUnknown *pUnkOuter)
{
HRESULT retValue;
LPDDRAWI_DDRAWSURFACE_INT That;
DX_WINDBG_trace();
retValue = Main_DirectDraw_CreateSurface ((LPDIRECTDRAW7) iface, pDDSD2,
(LPDIRECTDRAWSURFACE7 *) ppSurface, pUnkOuter);
That = (LPDDRAWI_DDRAWSURFACE_INT) *ppSurface;
That->lpVtbl = &DirectDrawSurface3_VTable;
return retValue;
}
HRESULT WINAPI
ThunkDirectDraw_DuplicateSurface(LPDIRECTDRAW iface, LPDIRECTDRAWSURFACE src, LPDIRECTDRAWSURFACE *dst)
{
DX_WINDBG_trace();
return Main_DirectDraw_DuplicateSurface((LPDIRECTDRAW7) iface, (LPDIRECTDRAWSURFACE7) src,
(LPDIRECTDRAWSURFACE7*) dst);
}
HRESULT WINAPI
ThunkDirectDraw2_DuplicateSurface(LPDIRECTDRAW2 iface, LPDIRECTDRAWSURFACE src, LPDIRECTDRAWSURFACE *dst)
{
DX_WINDBG_trace();
return Main_DirectDraw_DuplicateSurface((LPDIRECTDRAW7) iface, (LPDIRECTDRAWSURFACE7) src,
(LPDIRECTDRAWSURFACE7*) dst);
}
HRESULT WINAPI
ThunkDirectDraw4_DuplicateSurface(LPDIRECTDRAW4 iface, LPDIRECTDRAWSURFACE4 src, LPDIRECTDRAWSURFACE4 *dst)
{
DX_WINDBG_trace();
return Main_DirectDraw_DuplicateSurface((LPDIRECTDRAW7) iface, (LPDIRECTDRAWSURFACE7) src,
(LPDIRECTDRAWSURFACE7*) dst);
}
HRESULT WINAPI
ThunkDirectDraw_EnumDisplayModes(LPDIRECTDRAW iface, DWORD dwFlags,
LPDDSURFACEDESC pDDSD, LPVOID context,
LPDDENUMMODESCALLBACK cb)
{
HRESULT retValue = DDERR_GENERIC;
DX_WINDBG_trace();
if (pDDSD != NULL)
{
DDSURFACEDESC2 pDDSD2;
ZeroMemory(&pDDSD2,sizeof(DDSURFACEDESC2));
memcpy(&pDDSD2, pDDSD, sizeof(DDSURFACEDESC));
pDDSD2.dwSize = sizeof(DDSURFACEDESC2);
retValue = Main_DirectDraw_EnumDisplayModes((LPDIRECTDRAW7) iface, dwFlags, &pDDSD2,
context, (LPDDENUMMODESCALLBACK2)cb);
memcpy(pDDSD, &pDDSD2, sizeof(DDSURFACEDESC));
pDDSD->dwSize = sizeof(DDSURFACEDESC);
}
else
{
retValue = Main_DirectDraw_EnumDisplayModes((LPDIRECTDRAW7) iface, dwFlags, NULL,
context, (LPDDENUMMODESCALLBACK2)cb);
}
return retValue;
}
HRESULT WINAPI
ThunkDirectDraw2_EnumDisplayModes(LPDIRECTDRAW2 iface, DWORD dwFlags,
LPDDSURFACEDESC pDDSD, LPVOID context,
LPDDENUMMODESCALLBACK cb)
{
HRESULT retValue = DDERR_GENERIC;
DX_WINDBG_trace();
if (pDDSD != NULL)
{
DDSURFACEDESC2 pDDSD2;
ZeroMemory(&pDDSD2,sizeof(DDSURFACEDESC2));
memcpy(&pDDSD2, pDDSD, sizeof(DDSURFACEDESC));
pDDSD2.dwSize = sizeof(DDSURFACEDESC2);
retValue = Main_DirectDraw_EnumDisplayModes((LPDIRECTDRAW7) iface, dwFlags, &pDDSD2,
context, (LPDDENUMMODESCALLBACK2)cb);
memcpy(pDDSD, &pDDSD2, sizeof(DDSURFACEDESC));
pDDSD->dwSize = sizeof(DDSURFACEDESC);
}
else
{
retValue = Main_DirectDraw_EnumDisplayModes((LPDIRECTDRAW7) iface, dwFlags, NULL,
context, (LPDDENUMMODESCALLBACK2)cb);
}
return retValue;
}
HRESULT WINAPI
ThunkDirectDraw4_EnumDisplayModes(LPDIRECTDRAW4 iface, DWORD dwFlags,
LPDDSURFACEDESC2 pDDSD, LPVOID context,
LPDDENUMMODESCALLBACK2 cb)
{
DX_WINDBG_trace();
return Main_DirectDraw_EnumDisplayModes((LPDIRECTDRAW7) iface, dwFlags, pDDSD, context, cb);
}
HRESULT WINAPI
ThunkDirectDraw_EnumSurfaces(LPDIRECTDRAW iface, DWORD dwFlags,
LPDDSURFACEDESC pDDSD, LPVOID context,
LPDDENUMSURFACESCALLBACK cb)
{
HRESULT retValue = DDERR_GENERIC;
DX_WINDBG_trace();
if (pDDSD != NULL)
{
DDSURFACEDESC2 pDDSD2;
ZeroMemory(&pDDSD2,sizeof(DDSURFACEDESC2));
memcpy(&pDDSD2, pDDSD, sizeof(DDSURFACEDESC));
pDDSD2.dwSize = sizeof(DDSURFACEDESC2);
retValue = Main_DirectDraw_EnumSurfaces((LPDIRECTDRAW7) iface, dwFlags, &pDDSD2,
context, (LPDDENUMSURFACESCALLBACK7)cb);
memcpy(pDDSD, &pDDSD2, sizeof(DDSURFACEDESC));
pDDSD->dwSize = sizeof(DDSURFACEDESC);
}
else
{
retValue = Main_DirectDraw_EnumSurfaces((LPDIRECTDRAW7) iface, dwFlags, NULL,
context, (LPDDENUMSURFACESCALLBACK7)cb);
}
return retValue;
}
HRESULT WINAPI
ThunkDirectDraw2_EnumSurfaces(LPDIRECTDRAW2 iface, DWORD dwFlags,
LPDDSURFACEDESC pDDSD, LPVOID context,
LPDDENUMSURFACESCALLBACK cb)
{
HRESULT retValue = DDERR_GENERIC;
DX_WINDBG_trace();
if (pDDSD != NULL)
{
DDSURFACEDESC2 pDDSD2;
ZeroMemory(&pDDSD2,sizeof(DDSURFACEDESC2));
memcpy(&pDDSD2, pDDSD, sizeof(DDSURFACEDESC));
pDDSD2.dwSize = sizeof(DDSURFACEDESC2);
retValue = Main_DirectDraw_EnumSurfaces((LPDIRECTDRAW7) iface, dwFlags, &pDDSD2,
context, (LPDDENUMSURFACESCALLBACK7)cb);
memcpy(pDDSD, &pDDSD2, sizeof(DDSURFACEDESC));
pDDSD->dwSize = sizeof(DDSURFACEDESC);
}
else
{
retValue = Main_DirectDraw_EnumSurfaces((LPDIRECTDRAW7) iface, dwFlags, NULL,
context, (LPDDENUMSURFACESCALLBACK7)cb);
}
return retValue;
}
HRESULT WINAPI
ThunkDirectDraw4_EnumSurfaces(LPDIRECTDRAW4 iface, DWORD dwFlags,
LPDDSURFACEDESC2 pDDSD, LPVOID context,
LPDDENUMSURFACESCALLBACK2 cb)
{
DX_WINDBG_trace();
return Main_DirectDraw_EnumSurfaces((LPDIRECTDRAW7) iface, dwFlags, pDDSD, context, (LPDDENUMSURFACESCALLBACK7)cb);
}
HRESULT WINAPI
ThunkDirectDraw_FlipToGDISurface(LPDIRECTDRAW iface)
{
DX_WINDBG_trace();
return Main_DirectDraw_FlipToGDISurface((LPDIRECTDRAW7) iface);
}
HRESULT WINAPI
ThunkDirectDraw2_FlipToGDISurface(LPDIRECTDRAW2 iface)
{
DX_WINDBG_trace();
return Main_DirectDraw_FlipToGDISurface((LPDIRECTDRAW7) iface);
}
HRESULT WINAPI
ThunkDirectDraw4_FlipToGDISurface(LPDIRECTDRAW4 iface)
{
DX_WINDBG_trace();
return Main_DirectDraw_FlipToGDISurface((LPDIRECTDRAW7) iface);
}
HRESULT WINAPI
ThunkDirectDraw_GetCaps(LPDIRECTDRAW iface, LPDDCAPS pDDC1, LPDDCAPS pDDC2)
{
DX_WINDBG_trace();
return Main_DirectDraw_GetCaps((LPDIRECTDRAW7) iface, pDDC1, pDDC2);
}
HRESULT WINAPI
ThunkDirectDraw2_GetCaps(LPDIRECTDRAW2 iface, LPDDCAPS pDDC1, LPDDCAPS pDDC2)
{
DX_WINDBG_trace();
return Main_DirectDraw_GetCaps((LPDIRECTDRAW7) iface, pDDC1, pDDC2);
}
HRESULT WINAPI
ThunkDirectDraw4_GetCaps(LPDIRECTDRAW4 iface, LPDDCAPS pDDC1, LPDDCAPS pDDC2)
{
DX_WINDBG_trace();
return Main_DirectDraw_GetCaps((LPDIRECTDRAW7) iface, pDDC1, pDDC2);
}
HRESULT WINAPI
ThunkDirectDraw_GetDisplayMode(LPDIRECTDRAW iface, LPDDSURFACEDESC pDDSD)
{
HRESULT retValue = DDERR_GENERIC;
DX_WINDBG_trace();
if (pDDSD != NULL)
{
DDSURFACEDESC2 pDDSD2;
ZeroMemory(&pDDSD2,sizeof(DDSURFACEDESC2));
memcpy(&pDDSD2, pDDSD, sizeof(DDSURFACEDESC));
pDDSD2.dwSize = sizeof(DDSURFACEDESC2);
retValue = Main_DirectDraw_GetDisplayMode((LPDIRECTDRAW7) iface, &pDDSD2);
memcpy(pDDSD, &pDDSD2, sizeof(DDSURFACEDESC));
pDDSD->dwSize = sizeof(DDSURFACEDESC);
}
else
{
retValue = Main_DirectDraw_GetDisplayMode((LPDIRECTDRAW7) iface, NULL);
}
return retValue;
}
HRESULT WINAPI
ThunkDirectDraw2_GetDisplayMode(LPDIRECTDRAW2 iface, LPDDSURFACEDESC pDDSD)
{
HRESULT retValue = DDERR_GENERIC;
DX_WINDBG_trace();
if (pDDSD != NULL)
{
DDSURFACEDESC2 pDDSD2;
ZeroMemory(&pDDSD2,sizeof(DDSURFACEDESC2));
memcpy(&pDDSD2, pDDSD, sizeof(DDSURFACEDESC));
pDDSD2.dwSize = sizeof(DDSURFACEDESC2);
retValue = Main_DirectDraw_GetDisplayMode((LPDIRECTDRAW7) iface, &pDDSD2);
memcpy(pDDSD, &pDDSD2, sizeof(DDSURFACEDESC));
pDDSD->dwSize = sizeof(DDSURFACEDESC);
}
else
{
retValue = Main_DirectDraw_GetDisplayMode((LPDIRECTDRAW7) iface, NULL);
}
return retValue;
}
HRESULT WINAPI
ThunkDirectDraw4_GetDisplayMode(LPDIRECTDRAW4 iface, LPDDSURFACEDESC2 pDDSD2)
{
DX_WINDBG_trace();
return Main_DirectDraw_GetDisplayMode((LPDIRECTDRAW7) iface, pDDSD2);
}
HRESULT WINAPI
ThunkDirectDraw_GetFourCCCodes(LPDIRECTDRAW iface, LPDWORD pNumCodes,
LPDWORD pCodes)
{
DX_WINDBG_trace();
return Main_DirectDraw_GetFourCCCodes((LPDIRECTDRAW7) iface, pNumCodes, pCodes);
}
HRESULT WINAPI
ThunkDirectDraw2_GetFourCCCodes(LPDIRECTDRAW2 iface, LPDWORD pNumCodes,
LPDWORD pCodes)
{
DX_WINDBG_trace();
return Main_DirectDraw_GetFourCCCodes((LPDIRECTDRAW7) iface, pNumCodes, pCodes);
}
HRESULT WINAPI
ThunkDirectDraw4_GetFourCCCodes(LPDIRECTDRAW4 iface, LPDWORD pNumCodes,
LPDWORD pCodes)
{
DX_WINDBG_trace();
return Main_DirectDraw_GetFourCCCodes((LPDIRECTDRAW7) iface, pNumCodes, pCodes);
}
HRESULT WINAPI
ThunkDirectDraw_GetGDISurface(LPDIRECTDRAW iface, LPDIRECTDRAWSURFACE *lplpGDIDDSSurface)
{
DX_WINDBG_trace();
return Main_DirectDraw_GetGDISurface((LPDIRECTDRAW7) iface, (LPDIRECTDRAWSURFACE7 *) lplpGDIDDSSurface);
}
HRESULT WINAPI
ThunkDirectDraw2_GetGDISurface(LPDIRECTDRAW2 iface, LPDIRECTDRAWSURFACE *lplpGDIDDSSurface)
{
DX_WINDBG_trace();
return Main_DirectDraw_GetGDISurface((LPDIRECTDRAW7) iface, (LPDIRECTDRAWSURFACE7 *) lplpGDIDDSSurface);
}
HRESULT WINAPI
ThunkDirectDraw4_GetGDISurface(LPDIRECTDRAW4 iface, LPDIRECTDRAWSURFACE4 *lplpGDIDDSSurface)
{
DX_WINDBG_trace();
return Main_DirectDraw_GetGDISurface((LPDIRECTDRAW7) iface, (LPDIRECTDRAWSURFACE7 *) lplpGDIDDSSurface);
}
HRESULT WINAPI
ThunkDirectDraw_GetMonitorFrequency(LPDIRECTDRAW iface, LPDWORD pdwFreq)
{
DX_WINDBG_trace();
return Main_DirectDraw_GetMonitorFrequency((LPDIRECTDRAW7) iface, pdwFreq);
}
HRESULT WINAPI
ThunkDirectDraw2_GetMonitorFrequency(LPDIRECTDRAW2 iface, LPDWORD pdwFreq)
{
DX_WINDBG_trace();
return Main_DirectDraw_GetMonitorFrequency((LPDIRECTDRAW7) iface, pdwFreq);
}
HRESULT WINAPI
ThunkDirectDraw4_GetMonitorFrequency(LPDIRECTDRAW4 iface, LPDWORD pdwFreq)
{
DX_WINDBG_trace();
return Main_DirectDraw_GetMonitorFrequency((LPDIRECTDRAW7) iface, pdwFreq);
}
HRESULT WINAPI
ThunkDirectDraw_GetScanLine(LPDIRECTDRAW iface, LPDWORD lpdwScanLine)
{
DX_WINDBG_trace();
return Main_DirectDraw_GetScanLine((LPDIRECTDRAW7) iface, lpdwScanLine);
}
HRESULT WINAPI
ThunkDirectDraw2_GetScanLine(LPDIRECTDRAW2 iface, LPDWORD lpdwScanLine)
{
DX_WINDBG_trace();
return Main_DirectDraw_GetScanLine((LPDIRECTDRAW7) iface, lpdwScanLine);
}
HRESULT WINAPI
ThunkDirectDraw4_GetScanLine(LPDIRECTDRAW4 iface, LPDWORD lpdwScanLine)
{
DX_WINDBG_trace();
return Main_DirectDraw_GetScanLine((LPDIRECTDRAW7) iface, lpdwScanLine);
}
HRESULT WINAPI
ThunkDirectDraw_GetVerticalBlankStatus(LPDIRECTDRAW iface, LPBOOL lpbIsInVB)
{
DX_WINDBG_trace();
return Main_DirectDraw_GetVerticalBlankStatus((LPDIRECTDRAW7) iface, lpbIsInVB);
}
HRESULT WINAPI
ThunkDirectDraw2_GetVerticalBlankStatus(LPDIRECTDRAW2 iface, LPBOOL lpbIsInVB)
{
DX_WINDBG_trace();
return Main_DirectDraw_GetVerticalBlankStatus((LPDIRECTDRAW7) iface, lpbIsInVB);
}
HRESULT WINAPI
ThunkDirectDraw4_GetVerticalBlankStatus(LPDIRECTDRAW4 iface, LPBOOL lpbIsInVB)
{
DX_WINDBG_trace();
return Main_DirectDraw_GetVerticalBlankStatus((LPDIRECTDRAW7) iface, lpbIsInVB);
}
HRESULT WINAPI
ThunkDirectDraw_Initialize(LPDIRECTDRAW iface, LPGUID pGUID)
{
DX_WINDBG_trace();
if (iface==NULL)
{
return DDERR_NOTINITIALIZED;
}
return DDERR_ALREADYINITIALIZED;
}
HRESULT WINAPI
ThunkDirectDraw2_Initialize(LPDIRECTDRAW2 iface, LPGUID pGUID)
{
DX_WINDBG_trace();
if (iface==NULL)
{
return DDERR_NOTINITIALIZED;
}
return DDERR_ALREADYINITIALIZED;
}
HRESULT WINAPI
ThunkDirectDraw4_Initialize(LPDIRECTDRAW4 iface, LPGUID pGUID)
{
DX_WINDBG_trace();
if (iface==NULL)
{
return DDERR_NOTINITIALIZED;
}
return DDERR_ALREADYINITIALIZED;
}
HRESULT WINAPI
ThunkDirectDraw_RestoreDisplayMode(LPDIRECTDRAW iface)
{
DX_WINDBG_trace();
return Main_DirectDraw_RestoreDisplayMode((LPDIRECTDRAW7) iface);
}
HRESULT WINAPI
ThunkDirectDraw2_RestoreDisplayMode(LPDIRECTDRAW2 iface)
{
DX_WINDBG_trace();
return Main_DirectDraw_RestoreDisplayMode((LPDIRECTDRAW7) iface);
}
HRESULT WINAPI
ThunkDirectDraw4_RestoreDisplayMode(LPDIRECTDRAW4 iface)
{
DX_WINDBG_trace();
return Main_DirectDraw_RestoreDisplayMode((LPDIRECTDRAW7) iface);
}
HRESULT WINAPI
ThunkDirectDraw_SetCooperativeLevel(LPDIRECTDRAW iface, HWND hwnd, DWORD dwFlags)
{
DX_WINDBG_trace();
return Main_DirectDraw_SetCooperativeLevel ((LPDIRECTDRAW7) iface, hwnd, dwFlags);
}
HRESULT WINAPI
ThunkDirectDraw2_SetCooperativeLevel(LPDIRECTDRAW2 iface, HWND hwnd, DWORD dwFlags)
{
DX_WINDBG_trace();
return Main_DirectDraw_SetCooperativeLevel ((LPDIRECTDRAW7) iface, hwnd, dwFlags);
}
HRESULT WINAPI
ThunkDirectDraw4_SetCooperativeLevel(LPDIRECTDRAW4 iface, HWND hwnd, DWORD dwFlags)
{
DX_WINDBG_trace();
return Main_DirectDraw_SetCooperativeLevel ((LPDIRECTDRAW7) iface, hwnd, dwFlags);
}
HRESULT WINAPI
ThunkDirectDraw_SetDisplayMode(LPDIRECTDRAW iface, DWORD dwWidth, DWORD dwHeight, DWORD dwBPP)
{
DX_WINDBG_trace();
return Main_DirectDraw_SetDisplayMode ((LPDIRECTDRAW7) iface, dwWidth, dwHeight, dwBPP, 0, 0);
}
HRESULT WINAPI
ThunkDirectDraw2_SetDisplayMode(LPDIRECTDRAW2 iface, DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD d, DWORD e)
{
DX_WINDBG_trace();
return Main_DirectDraw_SetDisplayMode ((LPDIRECTDRAW7) iface, dwWidth, dwHeight, dwBPP, 0, 0);
}
HRESULT WINAPI
ThunkDirectDraw4_SetDisplayMode(LPDIRECTDRAW4 iface, DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD d, DWORD e)
{
DX_WINDBG_trace();
return Main_DirectDraw_SetDisplayMode ((LPDIRECTDRAW7) iface, dwWidth, dwHeight, dwBPP, 0, 0);
}
HRESULT WINAPI
ThunkDirectDraw_WaitForVerticalBlank(LPDIRECTDRAW iface, DWORD dwFlags, HANDLE hEvent)
{
DX_WINDBG_trace();
return Main_DirectDraw_WaitForVerticalBlank((LPDIRECTDRAW7) iface, dwFlags, hEvent);
}
HRESULT WINAPI
ThunkDirectDraw2_WaitForVerticalBlank(LPDIRECTDRAW2 iface, DWORD dwFlags, HANDLE hEvent)
{
DX_WINDBG_trace();
return Main_DirectDraw_WaitForVerticalBlank((LPDIRECTDRAW7) iface, dwFlags, hEvent);
}
HRESULT WINAPI
ThunkDirectDraw4_WaitForVerticalBlank(LPDIRECTDRAW4 iface, DWORD dwFlags, HANDLE hEvent)
{
DX_WINDBG_trace();
return Main_DirectDraw_WaitForVerticalBlank((LPDIRECTDRAW7) iface, dwFlags, hEvent);
}
HRESULT WINAPI
ThunkDirectDraw2_GetAvailableVidMem(LPDIRECTDRAW2 iface, LPDDSCAPS pCaps, LPDWORD pdwTotal, LPDWORD pdwFree)
{
HRESULT retValue = DDERR_GENERIC;
DX_WINDBG_trace();
if (pCaps != NULL)
{
DDSCAPS2 pCaps2;
ZeroMemory(&pCaps2,sizeof(DDSCAPS2));
memcpy(&pCaps2, pCaps, sizeof(DDSCAPS));
retValue = Main_DirectDraw_GetAvailableVidMem((LPDIRECTDRAW7) iface, &pCaps2, pdwTotal, pdwFree);
memcpy(pCaps, &pCaps2, sizeof(DDSCAPS));
}
else
{
retValue = Main_DirectDraw_GetAvailableVidMem((LPDIRECTDRAW7) iface, NULL, pdwTotal, pdwFree);
}
return retValue;
}
HRESULT WINAPI
ThunkDirectDraw4_GetAvailableVidMem(LPDIRECTDRAW4 iface, LPDDSCAPS2 pCaps, LPDWORD pdwTotal, LPDWORD pdwFree)
{
DX_WINDBG_trace();
return Main_DirectDraw_GetAvailableVidMem((LPDIRECTDRAW7) iface, pCaps, pdwTotal, pdwFree);
}
HRESULT WINAPI
ThunkDirectDraw4_GetSurfaceFromDC(LPDIRECTDRAW4 iface, HDC hdc, LPDIRECTDRAWSURFACE4 *pSurf)
{
DX_WINDBG_trace();
return Main_DirectDraw_GetSurfaceFromDC((LPDIRECTDRAW7) iface, hdc, (LPDIRECTDRAWSURFACE7 *) pSurf);
}
HRESULT WINAPI
ThunkDirectDraw4_RestoreAllSurfaces(LPDIRECTDRAW4 iface)
{
DX_WINDBG_trace();
return Main_DirectDraw_RestoreAllSurfaces((LPDIRECTDRAW7) iface);
}
HRESULT WINAPI
ThunkDirectDraw4_TestCooperativeLevel(LPDIRECTDRAW4 iface)
{
DX_WINDBG_trace();
return Main_DirectDraw_TestCooperativeLevel((LPDIRECTDRAW7) iface);
}
HRESULT WINAPI
ThunkDirectDraw4_GetDeviceIdentifier(LPDIRECTDRAW4 iface,
LPDDDEVICEIDENTIFIER pDDDI, DWORD dwFlags)
{
HRESULT retValue = DDERR_GENERIC;
DX_WINDBG_trace();
if (pDDDI != NULL)
{
DDDEVICEIDENTIFIER2 pDDDI2;
ZeroMemory(&pDDDI2,sizeof(DDDEVICEIDENTIFIER2));
memcpy(&pDDDI2, pDDDI, sizeof(DDDEVICEIDENTIFIER));
retValue = Main_DirectDraw_GetDeviceIdentifier((LPDIRECTDRAW7) iface, &pDDDI2, dwFlags);
memcpy(pDDDI, &pDDDI2, sizeof(DDDEVICEIDENTIFIER));
}
else
{
retValue = Main_DirectDraw_GetDeviceIdentifier((LPDIRECTDRAW7) iface, NULL, dwFlags);
}
return retValue;
}
IDirectDrawVtbl DirectDraw_Vtable =
{
ThunkDirectDraw_QueryInterface,
ThunkDirectDraw_AddRef,
ThunkDirectDraw_Release,
ThunkDirectDraw_Compact,
ThunkDirectDraw_CreateClipper,
ThunkDirectDraw_CreatePalette,
ThunkDirectDraw_CreateSurface,
ThunkDirectDraw_DuplicateSurface,
ThunkDirectDraw_EnumDisplayModes,
ThunkDirectDraw_EnumSurfaces,
ThunkDirectDraw_FlipToGDISurface,
ThunkDirectDraw_GetCaps,
ThunkDirectDraw_GetDisplayMode,
ThunkDirectDraw_GetFourCCCodes,
ThunkDirectDraw_GetGDISurface,
ThunkDirectDraw_GetMonitorFrequency,
ThunkDirectDraw_GetScanLine,
ThunkDirectDraw_GetVerticalBlankStatus,
ThunkDirectDraw_Initialize,
ThunkDirectDraw_RestoreDisplayMode,
ThunkDirectDraw_SetCooperativeLevel,
ThunkDirectDraw_SetDisplayMode,
ThunkDirectDraw_WaitForVerticalBlank,
};
IDirectDraw2Vtbl DirectDraw2_Vtable =
{
ThunkDirectDraw2_QueryInterface,
ThunkDirectDraw2_AddRef,
ThunkDirectDraw2_Release,
ThunkDirectDraw2_Compact,
ThunkDirectDraw2_CreateClipper,
ThunkDirectDraw2_CreatePalette,
ThunkDirectDraw2_CreateSurface,
ThunkDirectDraw2_DuplicateSurface,
ThunkDirectDraw2_EnumDisplayModes,
ThunkDirectDraw2_EnumSurfaces,
ThunkDirectDraw2_FlipToGDISurface,
ThunkDirectDraw2_GetCaps,
ThunkDirectDraw2_GetDisplayMode,
ThunkDirectDraw2_GetFourCCCodes,
ThunkDirectDraw2_GetGDISurface,
ThunkDirectDraw2_GetMonitorFrequency,
ThunkDirectDraw2_GetScanLine,
ThunkDirectDraw2_GetVerticalBlankStatus,
ThunkDirectDraw2_Initialize,
ThunkDirectDraw2_RestoreDisplayMode,
ThunkDirectDraw2_SetCooperativeLevel,
ThunkDirectDraw2_SetDisplayMode,
ThunkDirectDraw2_WaitForVerticalBlank,
ThunkDirectDraw2_GetAvailableVidMem
};
IDirectDraw4Vtbl DirectDraw4_Vtable =
{
ThunkDirectDraw4_QueryInterface,
ThunkDirectDraw4_AddRef,
ThunkDirectDraw4_Release,
ThunkDirectDraw4_Compact,
ThunkDirectDraw4_CreateClipper,
ThunkDirectDraw4_CreatePalette,
ThunkDirectDraw4_CreateSurface,
ThunkDirectDraw4_DuplicateSurface,
ThunkDirectDraw4_EnumDisplayModes,
ThunkDirectDraw4_EnumSurfaces,
ThunkDirectDraw4_FlipToGDISurface,
ThunkDirectDraw4_GetCaps,
ThunkDirectDraw4_GetDisplayMode,
ThunkDirectDraw4_GetFourCCCodes,
ThunkDirectDraw4_GetGDISurface,
ThunkDirectDraw4_GetMonitorFrequency,
ThunkDirectDraw4_GetScanLine,
ThunkDirectDraw4_GetVerticalBlankStatus,
ThunkDirectDraw4_Initialize,
ThunkDirectDraw4_RestoreDisplayMode,
ThunkDirectDraw4_SetCooperativeLevel,
ThunkDirectDraw4_SetDisplayMode,
ThunkDirectDraw4_WaitForVerticalBlank,
ThunkDirectDraw4_GetAvailableVidMem,
ThunkDirectDraw4_GetSurfaceFromDC,
ThunkDirectDraw4_RestoreAllSurfaces,
ThunkDirectDraw4_TestCooperativeLevel,
ThunkDirectDraw4_GetDeviceIdentifier
};

View file

@ -0,0 +1,522 @@
#include "../rosdraw.h"
HRESULT WINAPI
Thunk_DDrawSurface3_QueryInterface(LPDIRECTDRAWSURFACE3 iface, REFIID iid,
LPVOID *ppObj)
{
DX_WINDBG_trace();
return Main_DDrawSurface_QueryInterface((LPDIRECTDRAWSURFACE7) iface, iid, ppObj);
}
ULONG WINAPI
Thunk_DDrawSurface3_AddRef(LPDIRECTDRAWSURFACE3 iface)
{
DX_WINDBG_trace();
return Main_DDrawSurface_AddRef((LPDIRECTDRAWSURFACE7) iface);
}
ULONG WINAPI
Thunk_DDrawSurface3_Release(LPDIRECTDRAWSURFACE3 iface)
{
DX_WINDBG_trace();
return Main_DDrawSurface_Release((LPDIRECTDRAWSURFACE7) iface);
}
HRESULT WINAPI
Thunk_DDrawSurface3_AddAttachedSurface(LPDIRECTDRAWSURFACE3 iface, LPDIRECTDRAWSURFACE3 pAttach)
{
DX_WINDBG_trace();
return Main_DDrawSurface_AddAttachedSurface((LPDIRECTDRAWSURFACE7) iface, (LPDIRECTDRAWSURFACE7) pAttach);
}
HRESULT WINAPI
Thunk_DDrawSurface3_AddOverlayDirtyRect(LPDIRECTDRAWSURFACE3 iface, LPRECT pRect)
{
DX_WINDBG_trace();
return Main_DDrawSurface_AddOverlayDirtyRect((LPDIRECTDRAWSURFACE7) iface, pRect);
}
HRESULT WINAPI
Thunk_DDrawSurface3_Blt(LPDIRECTDRAWSURFACE3 iface, LPRECT rdst,
LPDIRECTDRAWSURFACE3 src, LPRECT rsrc,
DWORD dwFlags, LPDDBLTFX pFX)
{
DX_WINDBG_trace();
return Main_DDrawSurface_Blt((LPDIRECTDRAWSURFACE7) iface, rdst,(LPDIRECTDRAWSURFACE7) src, rsrc, dwFlags, pFX);
}
HRESULT WINAPI
Thunk_DDrawSurface3_BltBatch(LPDIRECTDRAWSURFACE3 iface, LPDDBLTBATCH pBatch, DWORD dwCount, DWORD dwFlags)
{
DX_WINDBG_trace();
return Main_DDrawSurface_BltBatch((LPDIRECTDRAWSURFACE7) iface, pBatch, dwCount, dwFlags);
}
HRESULT WINAPI
Thunk_DDrawSurface3_BltFast(LPDIRECTDRAWSURFACE3 iface, DWORD dstx, DWORD dsty,
LPDIRECTDRAWSURFACE3 src, LPRECT rsrc, DWORD dwTrans)
{
DX_WINDBG_trace();
return Main_DDrawSurface_BltFast((LPDIRECTDRAWSURFACE7) iface, dstx, dsty,
(LPDIRECTDRAWSURFACE7)src, rsrc, dwTrans);
}
HRESULT WINAPI
Thunk_DDrawSurface3_DeleteAttachedSurface(LPDIRECTDRAWSURFACE3 iface, DWORD dwFlags, LPDIRECTDRAWSURFACE3 pAttached)
{
DX_WINDBG_trace();
return Main_DDrawSurface_DeleteAttachedSurface((LPDIRECTDRAWSURFACE7) iface, dwFlags,
(LPDIRECTDRAWSURFACE7) pAttached);
}
HRESULT WINAPI
Thunk_DDrawSurface3_EnumAttachedSurfaces(LPDIRECTDRAWSURFACE3 iface,
LPVOID context,
LPDDENUMSURFACESCALLBACK cb)
{
DX_WINDBG_trace();
return Main_DDrawSurface_EnumAttachedSurfaces((LPDIRECTDRAWSURFACE7) iface,
context, (LPDDENUMSURFACESCALLBACK7)cb);
}
HRESULT WINAPI
Thunk_DDrawSurface3_EnumOverlayZOrders(LPDIRECTDRAWSURFACE3 iface,
DWORD dwFlags, LPVOID context,
LPDDENUMSURFACESCALLBACK cb)
{
DX_WINDBG_trace();
return Main_DDrawSurface_EnumOverlayZOrders( (LPDIRECTDRAWSURFACE7) iface, dwFlags, context,
(LPDDENUMSURFACESCALLBACK7) cb);
}
HRESULT WINAPI
Thunk_DDrawSurface3_Flip(LPDIRECTDRAWSURFACE3 iface,
LPDIRECTDRAWSURFACE3 lpDDSurfaceTargetOverride, DWORD dwFlags)
{
DX_WINDBG_trace();
return Main_DDrawSurface_Flip( (LPDIRECTDRAWSURFACE7)iface, (LPDIRECTDRAWSURFACE7) lpDDSurfaceTargetOverride,
dwFlags);
}
HRESULT WINAPI
Thunk_DDrawSurface3_GetAttachedSurface(LPDIRECTDRAWSURFACE3 iface,
LPDDSCAPS pCaps,
LPDIRECTDRAWSURFACE3* ppAttached)
{
DDSCAPS2 caps;
HRESULT hr = DDERR_GENERIC;
DX_WINDBG_trace();
ZeroMemory(&caps,sizeof(DDSCAPS2));
if (pCaps != NULL)
{
caps.dwCaps = pCaps->dwCaps;
hr = Main_DDrawSurface_GetAttachedSurface( (LPDIRECTDRAWSURFACE7) iface,
&caps, (LPDIRECTDRAWSURFACE7 *) ppAttached);
pCaps->dwCaps = caps.dwCaps;
}
else
{
hr = Main_DDrawSurface_GetAttachedSurface( (LPDIRECTDRAWSURFACE7) iface,
NULL, (LPDIRECTDRAWSURFACE7 *) ppAttached);
}
return hr;
}
HRESULT WINAPI
Thunk_DDrawSurface3_GetBltStatus(LPDIRECTDRAWSURFACE3 iface, DWORD dwFlags)
{
DX_WINDBG_trace();
return Main_DDrawSurface_GetBltStatus((LPDIRECTDRAWSURFACE7) iface, dwFlags);
}
HRESULT WINAPI
Thunk_DDrawSurface3_GetCaps(LPDIRECTDRAWSURFACE3 iface, LPDDSCAPS pCaps)
{
DDSCAPS2 caps;
HRESULT hr = DDERR_GENERIC;
DX_WINDBG_trace();
ZeroMemory(&caps,sizeof(DDSCAPS2));
if (pCaps != NULL)
{
hr = Main_DDrawSurface_GetCaps((LPDIRECTDRAWSURFACE7) iface, &caps);
pCaps->dwCaps = caps.dwCaps;
}
else
{
hr = Main_DDrawSurface_GetCaps((LPDIRECTDRAWSURFACE7) iface, NULL);
}
return hr;
}
HRESULT WINAPI
Thunk_DDrawSurface3_GetClipper(LPDIRECTDRAWSURFACE3 iface,
LPDIRECTDRAWCLIPPER* ppClipper)
{
DX_WINDBG_trace();
return Main_DDrawSurface_GetClipper((LPDIRECTDRAWSURFACE7) iface, ppClipper);
}
HRESULT WINAPI
Thunk_DDrawSurface3_GetColorKey(LPDIRECTDRAWSURFACE3 iface, DWORD dwFlags,
LPDDCOLORKEY pCKey)
{
DX_WINDBG_trace();
return Main_DDrawSurface_GetColorKey( (LPDIRECTDRAWSURFACE7) iface, dwFlags, pCKey);
}
HRESULT WINAPI
Thunk_DDrawSurface3_GetDC(LPDIRECTDRAWSURFACE3 iface, HDC* phDC)
{
DX_WINDBG_trace();
return Main_DDrawSurface_GetDC((LPDIRECTDRAWSURFACE7) iface, phDC);
}
HRESULT WINAPI
Thunk_DDrawSurface3_GetFlipStatus(LPDIRECTDRAWSURFACE3 iface, DWORD dwFlags)
{
DX_WINDBG_trace();
return Main_DDrawSurface_GetFlipStatus((LPDIRECTDRAWSURFACE7) iface, dwFlags);
}
HRESULT WINAPI
Thunk_DDrawSurface3_GetOverlayPosition(LPDIRECTDRAWSURFACE3 iface, LPLONG pX, LPLONG pY)
{
DX_WINDBG_trace();
return Main_DDrawSurface_GetOverlayPosition((LPDIRECTDRAWSURFACE7) iface, pX, pY);
}
HRESULT WINAPI
Thunk_DDrawSurface3_GetPalette(LPDIRECTDRAWSURFACE3 iface,
LPDIRECTDRAWPALETTE* ppPalette)
{
DX_WINDBG_trace();
return Main_DDrawSurface_GetPalette((LPDIRECTDRAWSURFACE7) iface, ppPalette);
}
HRESULT WINAPI
Thunk_DDrawSurface3_GetPixelFormat(LPDIRECTDRAWSURFACE3 iface,
LPDDPIXELFORMAT pDDPixelFormat)
{
DX_WINDBG_trace();
return Main_DDrawSurface_GetPixelFormat((LPDIRECTDRAWSURFACE7) iface, pDDPixelFormat);
}
HRESULT WINAPI
Thunk_DDrawSurface3_GetSurfaceDesc(LPDIRECTDRAWSURFACE3 iface,
LPDDSURFACEDESC pDDSD)
{
HRESULT retValue = DDERR_GENERIC;
DX_WINDBG_trace();
if (pDDSD != NULL)
{
DDSURFACEDESC2 pDDSD2;
ZeroMemory(&pDDSD2,sizeof(DDSURFACEDESC2));
memcpy(&pDDSD2, pDDSD, sizeof(DDSURFACEDESC));
pDDSD2.dwSize = sizeof(DDSURFACEDESC2);
retValue = Main_DDrawSurface_GetSurfaceDesc((LPDIRECTDRAWSURFACE7) iface, &pDDSD2);
memcpy(pDDSD, &pDDSD2, sizeof(DDSURFACEDESC));
pDDSD->dwSize = sizeof(DDSURFACEDESC);
}
else
{
retValue = Main_DDrawSurface_GetSurfaceDesc((LPDIRECTDRAWSURFACE7) iface, NULL);
}
return retValue;
}
HRESULT WINAPI
Thunk_DDrawSurface3_Initialize(LPDIRECTDRAWSURFACE3 iface, LPDIRECTDRAW pDD,
LPDDSURFACEDESC pDDSD)
{
HRESULT retValue = DDERR_GENERIC;
DDSURFACEDESC2 pDDSD2;
DX_WINDBG_trace();
ZeroMemory(&pDDSD2,sizeof(DDSURFACEDESC2));
if (pDDSD != NULL)
{
DDSURFACEDESC2 pDDSD2;
ZeroMemory(&pDDSD2,sizeof(DDSURFACEDESC2));
memcpy(&pDDSD2, pDDSD, sizeof(DDSURFACEDESC));
pDDSD2.dwSize = sizeof(DDSURFACEDESC2);
retValue = Main_DDrawSurface_Initialize((LPDIRECTDRAWSURFACE7) iface, pDD, &pDDSD2);
memcpy(pDDSD, &pDDSD2, sizeof(DDSURFACEDESC));
pDDSD->dwSize = sizeof(DDSURFACEDESC);
}
else
{
retValue = Main_DDrawSurface_Initialize ((LPDIRECTDRAWSURFACE7) iface, pDD, NULL);
}
return retValue;
}
HRESULT WINAPI
Thunk_DDrawSurface3_IsLost(LPDIRECTDRAWSURFACE3 iface)
{
DX_WINDBG_trace();
return Main_DDrawSurface_IsLost((LPDIRECTDRAWSURFACE7) iface);
}
HRESULT WINAPI
Thunk_DDrawSurface3_Lock(LPDIRECTDRAWSURFACE3 iface, LPRECT pRect,
LPDDSURFACEDESC pDDSD, DWORD dwFlags, HANDLE events)
{
HRESULT retValue = DDERR_GENERIC;
DDSURFACEDESC2 pDDSD2;
DX_WINDBG_trace();
ZeroMemory(&pDDSD2,sizeof(DDSURFACEDESC2));
if (pDDSD != NULL)
{
DDSURFACEDESC2 pDDSD2;
ZeroMemory(&pDDSD2,sizeof(DDSURFACEDESC2));
memcpy(&pDDSD2, pDDSD, sizeof(DDSURFACEDESC));
pDDSD2.dwSize = sizeof(DDSURFACEDESC2);
retValue = Main_DDrawSurface_Lock ( (LPDIRECTDRAWSURFACE7) iface, pRect, &pDDSD2, dwFlags, events);
memcpy(pDDSD, &pDDSD2, sizeof(DDSURFACEDESC));
pDDSD->dwSize = sizeof(DDSURFACEDESC);
}
else
{
retValue = Main_DDrawSurface_Lock ( (LPDIRECTDRAWSURFACE7) iface, pRect, NULL, dwFlags, events);
}
return retValue;
}
HRESULT WINAPI
Thunk_DDrawSurface3_ReleaseDC(LPDIRECTDRAWSURFACE3 iface, HDC hDC)
{
DX_WINDBG_trace();
return Main_DDrawSurface_ReleaseDC((LPDIRECTDRAWSURFACE7) iface, hDC);
}
HRESULT WINAPI
Thunk_DDrawSurface3_Restore(LPDIRECTDRAWSURFACE3 iface)
{
DX_WINDBG_trace();
return Main_DDrawSurface_Restore((LPDIRECTDRAWSURFACE7) iface);
}
HRESULT WINAPI
Thunk_DDrawSurface3_SetClipper(LPDIRECTDRAWSURFACE3 iface, LPDIRECTDRAWCLIPPER pDDClipper)
{
DX_WINDBG_trace();
return Main_DDrawSurface_SetClipper ((LPDIRECTDRAWSURFACE7) iface, pDDClipper);
}
HRESULT WINAPI
Thunk_DDrawSurface3_SetColorKey(LPDIRECTDRAWSURFACE3 iface, DWORD dwFlags,
LPDDCOLORKEY pCKey)
{
DX_WINDBG_trace();
return Main_DDrawSurface_SetColorKey ((LPDIRECTDRAWSURFACE7) iface, dwFlags, pCKey);
}
HRESULT WINAPI
Thunk_DDrawSurface3_SetOverlayPosition(LPDIRECTDRAWSURFACE3 iface, LONG X,LONG Y)
{
DX_WINDBG_trace();
return Main_DDrawSurface_SetOverlayPosition ((LPDIRECTDRAWSURFACE7) iface, X, Y);
}
HRESULT WINAPI
Thunk_DDrawSurface3_SetPalette(LPDIRECTDRAWSURFACE3 iface,
LPDIRECTDRAWPALETTE pPalette)
{
DX_WINDBG_trace();
return Main_DDrawSurface_SetPalette ((LPDIRECTDRAWSURFACE7) iface, pPalette);
}
/*
HRESULT WINAPI
Thunk_DDrawSurface3_Unlock(LPDIRECTDRAWSURFACE3 iface, LPRECT pRect)
{
DX_WINDBG_trace();
return Main_DDrawSurface_Unlock ((LPDIRECTDRAWSURFACE7) iface, pRect);
} */
HRESULT WINAPI
Thunk_DDrawSurface3_Unlock(LPVOID iface, LPVOID pRect)
{
DX_WINDBG_trace();
DX_STUB;
}
HRESULT WINAPI
Thunk_DDrawSurface3_UpdateOverlay(LPDIRECTDRAWSURFACE3 iface, LPRECT pSrcRect, LPDIRECTDRAWSURFACE3 pDstSurface,
LPRECT pDstRect, DWORD dwFlags, LPDDOVERLAYFX pFX)
{
DX_WINDBG_trace();
return Main_DDrawSurface_UpdateOverlay ( (LPDIRECTDRAWSURFACE7) iface, pSrcRect,
(LPDIRECTDRAWSURFACE7) pDstSurface, pDstRect, dwFlags, pFX);
}
HRESULT WINAPI
Thunk_DDrawSurface3_UpdateOverlayDisplay(LPDIRECTDRAWSURFACE3 iface, DWORD dwFlags)
{
DX_WINDBG_trace();
return Main_DDrawSurface_UpdateOverlayDisplay((LPDIRECTDRAWSURFACE7) iface, dwFlags);
}
HRESULT WINAPI
Thunk_DDrawSurface3_UpdateOverlayZOrder(LPDIRECTDRAWSURFACE3 iface,
DWORD dwFlags,
LPDIRECTDRAWSURFACE3 pSurfReference)
{
DX_WINDBG_trace();
return Main_DDrawSurface_UpdateOverlayZOrder((LPDIRECTDRAWSURFACE7) iface, dwFlags,
(LPDIRECTDRAWSURFACE7) pSurfReference);
}
HRESULT WINAPI
Thunk_DDrawSurface3_GetDDInterface(LPDIRECTDRAWSURFACE3 iface, LPVOID* ppDD)
{
DX_WINDBG_trace();
return Main_DDrawSurface_GetDDInterface((LPDIRECTDRAWSURFACE7) iface, ppDD);
}
HRESULT WINAPI
Thunk_DDrawSurface3_PageLock(LPDIRECTDRAWSURFACE3 iface, DWORD dwFlags)
{
DX_WINDBG_trace();
return Main_DDrawSurface_PageLock((LPDIRECTDRAWSURFACE7) iface, dwFlags);
}
HRESULT WINAPI
Thunk_DDrawSurface3_PageUnlock(LPDIRECTDRAWSURFACE3 iface, DWORD dwFlags)
{
DX_WINDBG_trace();
return Main_DDrawSurface_PageUnlock((LPDIRECTDRAWSURFACE7) iface, dwFlags);
}
HRESULT WINAPI
Thunk_DDrawSurface3_SetSurfaceDesc(LPDIRECTDRAWSURFACE3 iface,
LPDDSURFACEDESC pDDSD, DWORD dwFlags)
{
HRESULT retValue = DDERR_GENERIC;
DX_WINDBG_trace();
if (pDDSD != NULL)
{
DDSURFACEDESC2 pDDSD2;
ZeroMemory(&pDDSD2,sizeof(DDSURFACEDESC2));
memcpy(&pDDSD2, pDDSD, sizeof(DDSURFACEDESC));
pDDSD2.dwSize = sizeof(DDSURFACEDESC2);
retValue = Main_DDrawSurface_SetSurfaceDesc((LPDIRECTDRAWSURFACE7) iface, &pDDSD2, dwFlags);
memcpy(pDDSD, &pDDSD2, sizeof(DDSURFACEDESC));
pDDSD->dwSize = sizeof(DDSURFACEDESC);
}
else
{
retValue = Main_DDrawSurface_SetSurfaceDesc((LPDIRECTDRAWSURFACE7) iface, NULL, dwFlags);
}
return retValue;
}
IDirectDrawSurface3Vtbl DirectDrawSurface3_VTable =
{
Thunk_DDrawSurface3_QueryInterface,
Thunk_DDrawSurface3_AddRef,
Thunk_DDrawSurface3_Release,
Thunk_DDrawSurface3_AddAttachedSurface,
Thunk_DDrawSurface3_AddOverlayDirtyRect,
Thunk_DDrawSurface3_Blt,
Thunk_DDrawSurface3_BltBatch,
Thunk_DDrawSurface3_BltFast,
Thunk_DDrawSurface3_DeleteAttachedSurface,
Thunk_DDrawSurface3_EnumAttachedSurfaces,
Thunk_DDrawSurface3_EnumOverlayZOrders,
Thunk_DDrawSurface3_Flip,
Thunk_DDrawSurface3_GetAttachedSurface,
Thunk_DDrawSurface3_GetBltStatus,
Thunk_DDrawSurface3_GetCaps,
Thunk_DDrawSurface3_GetClipper,
Thunk_DDrawSurface3_GetColorKey,
Thunk_DDrawSurface3_GetDC,
Thunk_DDrawSurface3_GetFlipStatus,
Thunk_DDrawSurface3_GetOverlayPosition,
Thunk_DDrawSurface3_GetPalette,
Thunk_DDrawSurface3_GetPixelFormat,
Thunk_DDrawSurface3_GetSurfaceDesc,
Thunk_DDrawSurface3_Initialize,
Thunk_DDrawSurface3_IsLost,
Thunk_DDrawSurface3_Lock,
Thunk_DDrawSurface3_ReleaseDC,
Thunk_DDrawSurface3_Restore,
Thunk_DDrawSurface3_SetClipper,
Thunk_DDrawSurface3_SetColorKey,
Thunk_DDrawSurface3_SetOverlayPosition,
Thunk_DDrawSurface3_SetPalette,
Thunk_DDrawSurface3_Unlock,
Thunk_DDrawSurface3_UpdateOverlay,
Thunk_DDrawSurface3_UpdateOverlayDisplay,
Thunk_DDrawSurface3_UpdateOverlayZOrder,
Thunk_DDrawSurface3_GetDDInterface,
Thunk_DDrawSurface3_PageLock,
Thunk_DDrawSurface3_PageUnlock,
Thunk_DDrawSurface3_SetSurfaceDesc
};