mirror of
https://github.com/reactos/reactos.git
synced 2024-11-20 06:15:26 +00:00
920 lines
24 KiB
C
920 lines
24 KiB
C
|
|
|
|
#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
|
|
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
|
|
};
|