patch from Kamil Hornicek tykef at atlas dot cz (irc nick : Pigglesworth)

design cleanup bit. 
fix so each directdraw surface got own directdraw surface vtable. 
For some api are new in some version and some functions have more param or different struct in newer directdraw surface 






 

svn path=/trunk/; revision=31183
This commit is contained in:
Magnus Olsen 2007-12-12 15:01:25 +00:00
parent 95e9a03075
commit 9787fc988b
12 changed files with 665 additions and 76 deletions

View file

@ -188,7 +188,7 @@ Internal_CreateSurface( LPDDRAWI_DIRECTDRAW_INT pDDraw, LPDDSURFACEDESC2 pDDSD,
/* FIXME the lpLnk */
Main_DDrawSurface_AddRef((LPDIRECTDRAWSURFACE7)ThisSurfInt);
Main_DDrawSurface_AddRef(ThisSurfInt);
}
pDDraw->lpLcl->lpGbl->dsList = (LPDDRAWI_DDRAWSURFACE_INT) slist_int;
@ -247,3 +247,4 @@ void CopyDDSurfDescToDDSurfDesc2(LPDDSURFACEDESC2 dst_pDesc, LPDDSURFACEDESC src

View file

@ -1,8 +1,7 @@
// public interfaces
ULONG WINAPI Main_DDrawSurface_AddRef(LPDIRECTDRAWSURFACE7);
ULONG WINAPI Main_DDrawSurface_AddRef(LPDDRAWI_DDRAWSURFACE_INT);
ULONG WINAPI Main_DDrawSurface_Release(LPDIRECTDRAWSURFACE7);
HRESULT WINAPI Main_DDrawSurface_QueryInterface(LPDIRECTDRAWSURFACE7, REFIID, LPVOID*);
HRESULT WINAPI Main_DDrawSurface_ReleaseDC(LPDIRECTDRAWSURFACE7, HDC);
HRESULT WINAPI Main_DDrawSurface_QueryInterface(LPDDRAWI_DDRAWSURFACE_INT, REFIID, LPVOID*);
HRESULT WINAPI Main_DDrawSurface_Blt(LPDIRECTDRAWSURFACE7, LPRECT, LPDIRECTDRAWSURFACE7, LPRECT, DWORD, LPDDBLTFX);
HRESULT WINAPI Main_DDrawSurface_BltBatch(LPDIRECTDRAWSURFACE7, LPDDBLTBATCH, DWORD, DWORD);
HRESULT WINAPI Main_DDrawSurface_BltFast(LPDIRECTDRAWSURFACE7, DWORD, DWORD, LPDIRECTDRAWSURFACE7, LPRECT, DWORD);
@ -68,3 +67,4 @@ DWORD CALLBACK HelDdSetExclusiveMode(LPDDHAL_SETEXCLUSIVEMODEDATA lpSetExclusiv
DWORD CALLBACK HelDdFlipToGDISurface(LPDDHAL_FLIPTOGDISURFACEDATA lpFlipToGDISurface);

View file

@ -20,19 +20,31 @@
SetPalette;
*/
LPDDRAWI_DDRAWSURFACE_INT
internal_directdrawsurface_int_alloc(LPDDRAWI_DDRAWSURFACE_INT This)
{
LPDDRAWI_DDRAWSURFACE_INT newThis;
DxHeapMemAlloc(newThis, sizeof(LPDDRAWI_DDRAWSURFACE_INT));
if (newThis)
{
newThis->lpLcl = This->lpLcl;
newThis->lpLink = This;
}
return newThis;
}
HRESULT WINAPI Main_DDrawSurface_Initialize (LPDIRECTDRAWSURFACE7 iface, LPDIRECTDRAW pDD, LPDDSURFACEDESC2 pDDSD2)
{
return DDERR_ALREADYINITIALIZED;
}
ULONG WINAPI Main_DDrawSurface_AddRef(LPDIRECTDRAWSURFACE7 iface)
ULONG WINAPI Main_DDrawSurface_AddRef(LPDDRAWI_DDRAWSURFACE_INT iface)
{
LPDDRAWI_DDRAWSURFACE_INT This = (LPDDRAWI_DDRAWSURFACE_INT)iface;
DX_WINDBG_trace();
if (iface!=NULL)
if (This!=NULL)
{
This->dwIntRefCnt++;
This->lpLcl->dwLocalRefCnt++;
@ -47,14 +59,102 @@ ULONG WINAPI Main_DDrawSurface_AddRef(LPDIRECTDRAWSURFACE7 iface)
}
HRESULT WINAPI
Main_DDrawSurface_QueryInterface(LPDIRECTDRAWSURFACE7 iface, REFIID riid,
Main_DDrawSurface_QueryInterface(LPDDRAWI_DDRAWSURFACE_INT iface, REFIID riid,
LPVOID* ppObj)
{
LPDDRAWI_DDRAWSURFACE_INT This = (LPDDRAWI_DDRAWSURFACE_INT)iface;
DX_WINDBG_trace();
HRESULT retVal = DD_OK;
*ppObj = NULL;
DX_STUB_str("Unimplement\n");
return E_NOINTERFACE;
_SEH_TRY
{
if (IsEqualGUID(&IID_IDirectDrawSurface7, riid))
{
if (This->lpVtbl != &DirectDrawSurface7_Vtable)
{
This = internal_directdrawsurface_int_alloc(This);
if (!This)
{
retVal = DDERR_OUTOFVIDEOMEMORY;
_SEH_LEAVE;
}
}
This->lpVtbl = &DirectDrawSurface7_Vtable;
*ppObj = This;
Main_DDrawSurface_AddRef(This);
}
else if (IsEqualGUID(&IID_IDirectDrawSurface4, riid))
{
if (This->lpVtbl != &DirectDrawSurface4_Vtable)
{
This = internal_directdrawsurface_int_alloc(This);
if (!This)
{
retVal = DDERR_OUTOFVIDEOMEMORY;
_SEH_LEAVE;
}
}
This->lpVtbl = &DirectDrawSurface4_Vtable;
*ppObj = This;
Main_DDrawSurface_AddRef(This);
}
else if (IsEqualGUID(&IID_IDirectDrawSurface3, riid))
{
if (This->lpVtbl != &DirectDrawSurface3_Vtable)
{
This = internal_directdrawsurface_int_alloc(This);
if (!This)
{
retVal = DDERR_OUTOFVIDEOMEMORY;
_SEH_LEAVE;
}
}
This->lpVtbl = &DirectDrawSurface3_Vtable;
*ppObj = This;
Main_DDrawSurface_AddRef(This);
}
else if (IsEqualGUID(&IID_IDirectDrawSurface2, riid))
{
if (This->lpVtbl != &DirectDrawSurface2_Vtable)
{
This = internal_directdrawsurface_int_alloc(This);
if (!This)
{
retVal = DDERR_OUTOFVIDEOMEMORY;
_SEH_LEAVE;
}
}
This->lpVtbl = &DirectDrawSurface2_Vtable;
*ppObj = This;
Main_DDrawSurface_AddRef(This);
}
else if (IsEqualGUID(&IID_IDirectDrawSurface, riid))
{
if (This->lpVtbl != &DirectDrawSurface_Vtable)
{
This = internal_directdrawsurface_int_alloc(This);
if (!This)
{
retVal = DDERR_OUTOFVIDEOMEMORY;
_SEH_LEAVE;
}
}
This->lpVtbl = &DirectDrawSurface_Vtable;
*ppObj = This;
Main_DDrawSurface_AddRef(This);
}
else
{
DX_STUB_str("E_NOINTERFACE");
retVal = E_NOINTERFACE;
}
}
_SEH_HANDLE
{
}
_SEH_END;
return retVal;
}
@ -688,62 +788,3 @@ Main_DDrawSurface_SetOverlayPosition (LPDIRECTDRAWSURFACE7 iface, LONG X, LONG Y
return DDERR_GENERIC;
}
IDirectDrawSurface7Vtbl DirectDrawSurface7_Vtable =
{
/*** IUnknown ***/
Main_DDrawSurface_QueryInterface,
Main_DDrawSurface_AddRef, /* (Compact done) */
Main_DDrawSurface_Release,
/*** IDirectDrawSurface ***/
Main_DDrawSurface_AddAttachedSurface,
Main_DDrawSurface_AddOverlayDirtyRect,
Main_DDrawSurface_Blt,
Main_DDrawSurface_BltBatch,
Main_DDrawSurface_BltFast,
Main_DDrawSurface_DeleteAttachedSurface,
Main_DDrawSurface_EnumAttachedSurfaces,
Main_DDrawSurface_EnumOverlayZOrders,
Main_DDrawSurface_Flip,
Main_DDrawSurface_GetAttachedSurface,
Main_DDrawSurface_GetBltStatus,
Main_DDrawSurface_GetCaps,
Main_DDrawSurface_GetClipper,
Main_DDrawSurface_GetColorKey,
Main_DDrawSurface_GetDC,
Main_DDrawSurface_GetFlipStatus,
Main_DDrawSurface_GetOverlayPosition,
Main_DDrawSurface_GetPalette,
Main_DDrawSurface_GetPixelFormat,
Main_DDrawSurface_GetSurfaceDesc,
Main_DDrawSurface_Initialize,
Main_DDrawSurface_IsLost,
Main_DDrawSurface_Lock,
Main_DDrawSurface_ReleaseDC,
Main_DDrawSurface_Restore,
Main_DDrawSurface_SetClipper,
Main_DDrawSurface_SetColorKey,
Main_DDrawSurface_SetOverlayPosition,
Main_DDrawSurface_SetPalette,
Main_DDrawSurface_Unlock,
Main_DDrawSurface_UpdateOverlay,
Main_DDrawSurface_UpdateOverlayDisplay,
Main_DDrawSurface_UpdateOverlayZOrder,
/*** IDirectDrawSurface2 ***/
Main_DDrawSurface_GetDDInterface,
Main_DDrawSurface_PageLock,
Main_DDrawSurface_PageUnlock,
/*** IDirectDrawSurface3 ***/
Main_DDrawSurface_SetSurfaceDesc,
/*** IDirectDrawSurface4 ***/
Main_DDrawSurface_SetPrivateData,
Main_DDrawSurface_GetPrivateData,
Main_DDrawSurface_FreePrivateData,
Main_DDrawSurface_GetUniquenessValue,
Main_DDrawSurface_ChangeUniquenessValue,
/*** IDirectDrawSurface7 ***/
Main_DDrawSurface_SetPriority,
Main_DDrawSurface_GetPriority,
Main_DDrawSurface_SetLOD,
Main_DDrawSurface_GetLOD
};

View file

@ -55,8 +55,8 @@ Main_DirectDraw_CreateSurface(
HRESULT WINAPI
Main_DirectDraw_DuplicateSurface(
LPDIRECTDRAW2 iface,
LPDIRECTDRAWSURFACE2 src,
LPDIRECTDRAWSURFACE2* dst);
LPDIRECTDRAWSURFACE src,
LPDIRECTDRAWSURFACE* dst);
HRESULT WINAPI
Main_DirectDraw_EnumDisplayModes(
@ -182,3 +182,4 @@ IDirectDraw2Vtbl DirectDraw2_Vtable =
};

View file

@ -72,7 +72,7 @@ Main_DirectDraw_EnumSurfaces(
DWORD dwFlags,
LPDDSURFACEDESC2 lpDDSD2,
LPVOID context,
LPDDENUMSURFACESCALLBACK7 callback);
LPDDENUMSURFACESCALLBACK2 callback);
HRESULT WINAPI
Main_DirectDraw_FlipToGDISurface(LPDIRECTDRAW4 iface);
@ -97,7 +97,7 @@ Main_DirectDraw_GetFourCCCodes(
HRESULT WINAPI
Main_DirectDraw_GetGDISurface(
LPDIRECTDRAW4 iface,
LPDIRECTDRAWSURFACE7 *lplpGDIDDSSurface);
LPDIRECTDRAWSURFACE4 *lplpGDIDDSSurface);
HRESULT WINAPI
Main_DirectDraw_GetMonitorFrequency (
@ -156,7 +156,7 @@ HRESULT WINAPI
Main_DirectDraw_GetSurfaceFromDC(
LPDIRECTDRAW4 iface,
HDC hdc,
LPDIRECTDRAWSURFACE7 *lpDDS);
LPDIRECTDRAWSURFACE4 *lpDDS);
HRESULT WINAPI
Main_DirectDraw_RestoreAllSurfaces(LPDIRECTDRAW4 iface);

View file

@ -0,0 +1,103 @@
#include <windows.h>
#include <stdio.h>
#include <ddraw.h>
#include <ddrawi.h>
#include <d3dhal.h>
#include <ddrawgdi.h>
#if defined(_WIN32) && !defined(_NO_COM )
#define COM_NO_WINDOWS_H
#include <objbase.h>
#else
#define IUnknown void
#if !defined(NT_BUILD_ENVIRONMENT) && !defined(WINNT)
#define CO_E_NOTINITIALIZED 0x800401F0
#endif
#endif
ULONG WINAPI Main_DDrawSurface_AddRef(LPDIRECTDRAWSURFACE2);
ULONG WINAPI Main_DDrawSurface_Release(LPDIRECTDRAWSURFACE2);
HRESULT WINAPI Main_DDrawSurface_QueryInterface(LPDIRECTDRAWSURFACE2, REFIID, LPVOID*);
HRESULT WINAPI Main_DDrawSurface_ReleaseDC(LPDIRECTDRAWSURFACE2, HDC);
HRESULT WINAPI Main_DDrawSurface_Blt(LPDIRECTDRAWSURFACE2, LPRECT, LPDIRECTDRAWSURFACE2, LPRECT, DWORD, LPDDBLTFX);
HRESULT WINAPI Main_DDrawSurface_BltBatch(LPDIRECTDRAWSURFACE2, LPDDBLTBATCH, DWORD, DWORD);
HRESULT WINAPI Main_DDrawSurface_BltFast(LPDIRECTDRAWSURFACE2, DWORD, DWORD, LPDIRECTDRAWSURFACE2, LPRECT, DWORD);
HRESULT WINAPI Main_DDrawSurface_DeleteAttachedSurface(LPDIRECTDRAWSURFACE2, DWORD, LPDIRECTDRAWSURFACE2);
HRESULT WINAPI Main_DDrawSurface_EnumAttachedSurfaces(LPDIRECTDRAWSURFACE2, LPVOID, LPDDENUMSURFACESCALLBACK);
HRESULT WINAPI Main_DDrawSurface_EnumOverlayZOrders(LPDIRECTDRAWSURFACE2, DWORD, LPVOID,LPDDENUMSURFACESCALLBACK);
HRESULT WINAPI Main_DDrawSurface_Flip(LPDIRECTDRAWSURFACE2 , LPDIRECTDRAWSURFACE2, DWORD);
HRESULT WINAPI Main_DDrawSurface_GetAttachedSurface(LPDIRECTDRAWSURFACE2, LPDDSCAPS, LPDIRECTDRAWSURFACE2*);
HRESULT WINAPI Main_DDrawSurface_GetBltStatus(LPDIRECTDRAWSURFACE2, DWORD dwFlags);
HRESULT WINAPI Main_DDrawSurface_GetCaps(LPDIRECTDRAWSURFACE2, LPDDSCAPS pCaps);
HRESULT WINAPI Main_DDrawSurface_GetClipper(LPDIRECTDRAWSURFACE2, LPDIRECTDRAWCLIPPER*);
HRESULT WINAPI Main_DDrawSurface_GetColorKey(LPDIRECTDRAWSURFACE2, DWORD, LPDDCOLORKEY);
HRESULT WINAPI Main_DDrawSurface_GetDC(LPDIRECTDRAWSURFACE2, HDC *);
HRESULT WINAPI Main_DDrawSurface_GetDDInterface(LPDIRECTDRAWSURFACE2, LPVOID*);
HRESULT WINAPI Main_DDrawSurface_GetFlipStatus(LPDIRECTDRAWSURFACE2, DWORD);
HRESULT WINAPI Main_DDrawSurface_GetOverlayPosition(LPDIRECTDRAWSURFACE2, LPLONG, LPLONG);
HRESULT WINAPI Main_DDrawSurface_GetPalette(LPDIRECTDRAWSURFACE2, LPDIRECTDRAWPALETTE*);
HRESULT WINAPI Main_DDrawSurface_GetPixelFormat(LPDIRECTDRAWSURFACE2, LPDDPIXELFORMAT);
HRESULT WINAPI Main_DDrawSurface_GetSurfaceDesc(LPDIRECTDRAWSURFACE2, LPDDSURFACEDESC);
HRESULT WINAPI Main_DDrawSurface_IsLost(LPDIRECTDRAWSURFACE2);
HRESULT WINAPI Main_DDrawSurface_PageLock(LPDIRECTDRAWSURFACE2, DWORD);
HRESULT WINAPI Main_DDrawSurface_PageUnlock(LPDIRECTDRAWSURFACE2, DWORD);
HRESULT WINAPI Main_DDrawSurface_ReleaseDC(LPDIRECTDRAWSURFACE2, HDC);
HRESULT WINAPI Main_DDrawSurface_SetClipper (LPDIRECTDRAWSURFACE2, LPDIRECTDRAWCLIPPER);
HRESULT WINAPI Main_DDrawSurface_SetColorKey (LPDIRECTDRAWSURFACE2, DWORD, LPDDCOLORKEY);
HRESULT WINAPI Main_DDrawSurface_SetOverlayPosition (LPDIRECTDRAWSURFACE2, LONG, LONG);
HRESULT WINAPI Main_DDrawSurface_SetPalette (LPDIRECTDRAWSURFACE2, LPDIRECTDRAWPALETTE);
HRESULT WINAPI Main_DDrawSurface_UpdateOverlayDisplay (LPDIRECTDRAWSURFACE2, DWORD);
HRESULT WINAPI Main_DDrawSurface_UpdateOverlayZOrder (LPDIRECTDRAWSURFACE2, DWORD, LPDIRECTDRAWSURFACE2);
HRESULT WINAPI Main_DDrawSurface_Unlock (LPDIRECTDRAWSURFACE2, LPVOID);
HRESULT WINAPI Main_DDrawSurface_Initialize (LPDIRECTDRAWSURFACE2, LPDIRECTDRAW, LPDDSURFACEDESC);
HRESULT WINAPI Main_DDrawSurface_Lock (LPDIRECTDRAWSURFACE2, LPRECT, LPDDSURFACEDESC, DWORD, HANDLE);
HRESULT WINAPI Main_DDrawSurface_Restore(LPDIRECTDRAWSURFACE2);
HRESULT WINAPI Main_DDrawSurface_UpdateOverlay (LPDIRECTDRAWSURFACE2, LPRECT, LPDIRECTDRAWSURFACE2, LPRECT,
DWORD, LPDDOVERLAYFX);
HRESULT WINAPI Main_DDrawSurface_AddAttachedSurface(LPDIRECTDRAWSURFACE2, LPDIRECTDRAWSURFACE2);
HRESULT WINAPI Main_DDrawSurface_AddOverlayDirtyRect(LPDIRECTDRAWSURFACE2, LPRECT);
HRESULT WINAPI Main_DDrawSurface_SetSurfaceDesc(LPDIRECTDRAWSURFACE2, DDSURFACEDESC2, DWORD);
IDirectDrawSurface2Vtbl DirectDrawSurface2_Vtable =
{
Main_DDrawSurface_QueryInterface,
Main_DDrawSurface_AddRef, /* (Compact done) */
Main_DDrawSurface_Release,
Main_DDrawSurface_AddAttachedSurface,
Main_DDrawSurface_AddOverlayDirtyRect,
Main_DDrawSurface_Blt,
Main_DDrawSurface_BltBatch,
Main_DDrawSurface_BltFast,
Main_DDrawSurface_DeleteAttachedSurface,
Main_DDrawSurface_EnumAttachedSurfaces,
Main_DDrawSurface_EnumOverlayZOrders,
Main_DDrawSurface_Flip,
Main_DDrawSurface_GetAttachedSurface,
Main_DDrawSurface_GetBltStatus,
Main_DDrawSurface_GetCaps,
Main_DDrawSurface_GetClipper,
Main_DDrawSurface_GetColorKey,
Main_DDrawSurface_GetDC,
Main_DDrawSurface_GetFlipStatus,
Main_DDrawSurface_GetOverlayPosition,
Main_DDrawSurface_GetPalette,
Main_DDrawSurface_GetPixelFormat,
Main_DDrawSurface_GetSurfaceDesc,
Main_DDrawSurface_Initialize,
Main_DDrawSurface_IsLost,
Main_DDrawSurface_Lock,
Main_DDrawSurface_ReleaseDC,
Main_DDrawSurface_Restore,
Main_DDrawSurface_SetClipper,
Main_DDrawSurface_SetColorKey,
Main_DDrawSurface_SetOverlayPosition,
Main_DDrawSurface_SetPalette,
Main_DDrawSurface_Unlock,
Main_DDrawSurface_UpdateOverlay,
Main_DDrawSurface_UpdateOverlayDisplay,
Main_DDrawSurface_UpdateOverlayZOrder,
Main_DDrawSurface_GetDDInterface,
Main_DDrawSurface_PageLock,
Main_DDrawSurface_PageUnlock,
};

View file

@ -0,0 +1,104 @@
#include <windows.h>
#include <stdio.h>
#include <ddraw.h>
#include <ddrawi.h>
#include <d3dhal.h>
#include <ddrawgdi.h>
#if defined(_WIN32) && !defined(_NO_COM )
#define COM_NO_WINDOWS_H
#include <objbase.h>
#else
#define IUnknown void
#if !defined(NT_BUILD_ENVIRONMENT) && !defined(WINNT)
#define CO_E_NOTINITIALIZED 0x800401F0
#endif
#endif
ULONG WINAPI Main_DDrawSurface_AddRef(LPDIRECTDRAWSURFACE3);
ULONG WINAPI Main_DDrawSurface_Release(LPDIRECTDRAWSURFACE3);
HRESULT WINAPI Main_DDrawSurface_QueryInterface(LPDIRECTDRAWSURFACE3, REFIID, LPVOID*);
HRESULT WINAPI Main_DDrawSurface_ReleaseDC(LPDIRECTDRAWSURFACE3, HDC);
HRESULT WINAPI Main_DDrawSurface_Blt(LPDIRECTDRAWSURFACE3, LPRECT, LPDIRECTDRAWSURFACE3, LPRECT, DWORD, LPDDBLTFX);
HRESULT WINAPI Main_DDrawSurface_BltBatch(LPDIRECTDRAWSURFACE3, LPDDBLTBATCH, DWORD, DWORD);
HRESULT WINAPI Main_DDrawSurface_BltFast(LPDIRECTDRAWSURFACE3, DWORD, DWORD, LPDIRECTDRAWSURFACE3, LPRECT, DWORD);
HRESULT WINAPI Main_DDrawSurface_DeleteAttachedSurface(LPDIRECTDRAWSURFACE3, DWORD, LPDIRECTDRAWSURFACE3);
HRESULT WINAPI Main_DDrawSurface_EnumAttachedSurfaces(LPDIRECTDRAWSURFACE3, LPVOID, LPDDENUMSURFACESCALLBACK);
HRESULT WINAPI Main_DDrawSurface_EnumOverlayZOrders(LPDIRECTDRAWSURFACE3, DWORD, LPVOID,LPDDENUMSURFACESCALLBACK);
HRESULT WINAPI Main_DDrawSurface_Flip(LPDIRECTDRAWSURFACE3 , LPDIRECTDRAWSURFACE3, DWORD);
HRESULT WINAPI Main_DDrawSurface_GetAttachedSurface(LPDIRECTDRAWSURFACE3, LPDDSCAPS, LPDIRECTDRAWSURFACE3*);
HRESULT WINAPI Main_DDrawSurface_GetBltStatus(LPDIRECTDRAWSURFACE3, DWORD dwFlags);
HRESULT WINAPI Main_DDrawSurface_GetCaps(LPDIRECTDRAWSURFACE3, LPDDSCAPS pCaps);
HRESULT WINAPI Main_DDrawSurface_GetClipper(LPDIRECTDRAWSURFACE3, LPDIRECTDRAWCLIPPER*);
HRESULT WINAPI Main_DDrawSurface_GetColorKey(LPDIRECTDRAWSURFACE3, DWORD, LPDDCOLORKEY);
HRESULT WINAPI Main_DDrawSurface_GetDC(LPDIRECTDRAWSURFACE3, HDC *);
HRESULT WINAPI Main_DDrawSurface_GetDDInterface(LPDIRECTDRAWSURFACE3, LPVOID*);
HRESULT WINAPI Main_DDrawSurface_GetFlipStatus(LPDIRECTDRAWSURFACE3, DWORD);
HRESULT WINAPI Main_DDrawSurface_GetOverlayPosition(LPDIRECTDRAWSURFACE3, LPLONG, LPLONG);
HRESULT WINAPI Main_DDrawSurface_GetPalette(LPDIRECTDRAWSURFACE3, LPDIRECTDRAWPALETTE*);
HRESULT WINAPI Main_DDrawSurface_GetPixelFormat(LPDIRECTDRAWSURFACE3, LPDDPIXELFORMAT);
HRESULT WINAPI Main_DDrawSurface_GetSurfaceDesc(LPDIRECTDRAWSURFACE3, LPDDSURFACEDESC);
HRESULT WINAPI Main_DDrawSurface_IsLost(LPDIRECTDRAWSURFACE3);
HRESULT WINAPI Main_DDrawSurface_PageLock(LPDIRECTDRAWSURFACE3, DWORD);
HRESULT WINAPI Main_DDrawSurface_PageUnlock(LPDIRECTDRAWSURFACE3, DWORD);
HRESULT WINAPI Main_DDrawSurface_ReleaseDC(LPDIRECTDRAWSURFACE3, HDC);
HRESULT WINAPI Main_DDrawSurface_SetClipper (LPDIRECTDRAWSURFACE3, LPDIRECTDRAWCLIPPER);
HRESULT WINAPI Main_DDrawSurface_SetColorKey (LPDIRECTDRAWSURFACE3, DWORD, LPDDCOLORKEY);
HRESULT WINAPI Main_DDrawSurface_SetOverlayPosition (LPDIRECTDRAWSURFACE3, LONG, LONG);
HRESULT WINAPI Main_DDrawSurface_SetPalette (LPDIRECTDRAWSURFACE3, LPDIRECTDRAWPALETTE);
HRESULT WINAPI Main_DDrawSurface_UpdateOverlayDisplay (LPDIRECTDRAWSURFACE3, DWORD);
HRESULT WINAPI Main_DDrawSurface_UpdateOverlayZOrder (LPDIRECTDRAWSURFACE3, DWORD, LPDIRECTDRAWSURFACE3);
HRESULT WINAPI Main_DDrawSurface_SetSurfaceDesc(LPDIRECTDRAWSURFACE3, DDSURFACEDESC *, DWORD);
HRESULT WINAPI Main_DDrawSurface_Unlock (LPDIRECTDRAWSURFACE3, LPVOID);
HRESULT WINAPI Main_DDrawSurface_Initialize (LPDIRECTDRAWSURFACE3, LPDIRECTDRAW, LPDDSURFACEDESC);
HRESULT WINAPI Main_DDrawSurface_Lock (LPDIRECTDRAWSURFACE3, LPRECT, LPDDSURFACEDESC, DWORD, HANDLE);
HRESULT WINAPI Main_DDrawSurface_Restore(LPDIRECTDRAWSURFACE3);
HRESULT WINAPI Main_DDrawSurface_UpdateOverlay (LPDIRECTDRAWSURFACE3, LPRECT, LPDIRECTDRAWSURFACE3, LPRECT,
DWORD, LPDDOVERLAYFX);
HRESULT WINAPI Main_DDrawSurface_AddAttachedSurface(LPDIRECTDRAWSURFACE3, LPDIRECTDRAWSURFACE3);
HRESULT WINAPI Main_DDrawSurface_AddOverlayDirtyRect(LPDIRECTDRAWSURFACE3, LPRECT);
IDirectDrawSurface3Vtbl DirectDrawSurface3_Vtable =
{
Main_DDrawSurface_QueryInterface,
Main_DDrawSurface_AddRef, /* (Compact done) */
Main_DDrawSurface_Release,
Main_DDrawSurface_AddAttachedSurface,
Main_DDrawSurface_AddOverlayDirtyRect,
Main_DDrawSurface_Blt,
Main_DDrawSurface_BltBatch,
Main_DDrawSurface_BltFast,
Main_DDrawSurface_DeleteAttachedSurface,
Main_DDrawSurface_EnumAttachedSurfaces,
Main_DDrawSurface_EnumOverlayZOrders,
Main_DDrawSurface_Flip,
Main_DDrawSurface_GetAttachedSurface,
Main_DDrawSurface_GetBltStatus,
Main_DDrawSurface_GetCaps,
Main_DDrawSurface_GetClipper,
Main_DDrawSurface_GetColorKey,
Main_DDrawSurface_GetDC,
Main_DDrawSurface_GetFlipStatus,
Main_DDrawSurface_GetOverlayPosition,
Main_DDrawSurface_GetPalette,
Main_DDrawSurface_GetPixelFormat,
Main_DDrawSurface_GetSurfaceDesc,
Main_DDrawSurface_Initialize,
Main_DDrawSurface_IsLost,
Main_DDrawSurface_Lock,
Main_DDrawSurface_ReleaseDC,
Main_DDrawSurface_Restore,
Main_DDrawSurface_SetClipper,
Main_DDrawSurface_SetColorKey,
Main_DDrawSurface_SetOverlayPosition,
Main_DDrawSurface_SetPalette,
Main_DDrawSurface_Unlock,
Main_DDrawSurface_UpdateOverlay,
Main_DDrawSurface_UpdateOverlayDisplay,
Main_DDrawSurface_UpdateOverlayZOrder,
Main_DDrawSurface_GetDDInterface,
Main_DDrawSurface_PageLock,
Main_DDrawSurface_PageUnlock,
Main_DDrawSurface_SetSurfaceDesc,
};

View file

@ -0,0 +1,114 @@
#include <windows.h>
#include <stdio.h>
#include <ddraw.h>
#include <ddrawi.h>
#include <d3dhal.h>
#include <ddrawgdi.h>
#if defined(_WIN32) && !defined(_NO_COM )
#define COM_NO_WINDOWS_H
#include <objbase.h>
#else
#define IUnknown void
#if !defined(NT_BUILD_ENVIRONMENT) && !defined(WINNT)
#define CO_E_NOTINITIALIZED 0x800401F0
#endif
#endif
ULONG WINAPI Main_DDrawSurface_AddRef(LPDIRECTDRAWSURFACE4);
ULONG WINAPI Main_DDrawSurface_Release(LPDIRECTDRAWSURFACE4);
HRESULT WINAPI Main_DDrawSurface_QueryInterface(LPDIRECTDRAWSURFACE4, REFIID, LPVOID*);
HRESULT WINAPI Main_DDrawSurface_ReleaseDC(LPDIRECTDRAWSURFACE4, HDC);
HRESULT WINAPI Main_DDrawSurface_Blt(LPDIRECTDRAWSURFACE4, LPRECT, LPDIRECTDRAWSURFACE4, LPRECT, DWORD, LPDDBLTFX);
HRESULT WINAPI Main_DDrawSurface_BltBatch(LPDIRECTDRAWSURFACE4, LPDDBLTBATCH, DWORD, DWORD);
HRESULT WINAPI Main_DDrawSurface_BltFast(LPDIRECTDRAWSURFACE4, DWORD, DWORD, LPDIRECTDRAWSURFACE4, LPRECT, DWORD);
HRESULT WINAPI Main_DDrawSurface_DeleteAttachedSurface(LPDIRECTDRAWSURFACE4, DWORD, LPDIRECTDRAWSURFACE4);
HRESULT WINAPI Main_DDrawSurface_EnumAttachedSurfaces(LPDIRECTDRAWSURFACE4, LPVOID, LPDDENUMSURFACESCALLBACK2);
HRESULT WINAPI Main_DDrawSurface_EnumOverlayZOrders(LPDIRECTDRAWSURFACE4, DWORD, LPVOID,LPDDENUMSURFACESCALLBACK2);
HRESULT WINAPI Main_DDrawSurface_Flip(LPDIRECTDRAWSURFACE4 , LPDIRECTDRAWSURFACE4, DWORD);
HRESULT WINAPI Main_DDrawSurface_FreePrivateData(LPDIRECTDRAWSURFACE4, REFGUID);
HRESULT WINAPI Main_DDrawSurface_GetAttachedSurface(LPDIRECTDRAWSURFACE4, LPDDSCAPS2, LPDIRECTDRAWSURFACE4*);
HRESULT WINAPI Main_DDrawSurface_GetBltStatus(LPDIRECTDRAWSURFACE4, DWORD dwFlags);
HRESULT WINAPI Main_DDrawSurface_GetCaps(LPDIRECTDRAWSURFACE4, LPDDSCAPS2 pCaps);
HRESULT WINAPI Main_DDrawSurface_GetClipper(LPDIRECTDRAWSURFACE4, LPDIRECTDRAWCLIPPER*);
HRESULT WINAPI Main_DDrawSurface_GetColorKey(LPDIRECTDRAWSURFACE4, DWORD, LPDDCOLORKEY);
HRESULT WINAPI Main_DDrawSurface_GetDC(LPDIRECTDRAWSURFACE4, HDC *);
HRESULT WINAPI Main_DDrawSurface_GetDDInterface(LPDIRECTDRAWSURFACE4, LPVOID*);
HRESULT WINAPI Main_DDrawSurface_GetFlipStatus(LPDIRECTDRAWSURFACE4, DWORD);
HRESULT WINAPI Main_DDrawSurface_GetOverlayPosition(LPDIRECTDRAWSURFACE4, LPLONG, LPLONG);
HRESULT WINAPI Main_DDrawSurface_GetPalette(LPDIRECTDRAWSURFACE4, LPDIRECTDRAWPALETTE*);
HRESULT WINAPI Main_DDrawSurface_GetPixelFormat(LPDIRECTDRAWSURFACE4, LPDDPIXELFORMAT);
HRESULT WINAPI Main_DDrawSurface_GetPrivateData(LPDIRECTDRAWSURFACE4, REFGUID, LPVOID, LPDWORD);
HRESULT WINAPI Main_DDrawSurface_GetSurfaceDesc(LPDIRECTDRAWSURFACE4, LPDDSURFACEDESC2);
HRESULT WINAPI Main_DDrawSurface_GetUniquenessValue(LPDIRECTDRAWSURFACE4, LPDWORD);
HRESULT WINAPI Main_DDrawSurface_IsLost(LPDIRECTDRAWSURFACE4);
HRESULT WINAPI Main_DDrawSurface_PageLock(LPDIRECTDRAWSURFACE4, DWORD);
HRESULT WINAPI Main_DDrawSurface_PageUnlock(LPDIRECTDRAWSURFACE4, DWORD);
HRESULT WINAPI Main_DDrawSurface_ReleaseDC(LPDIRECTDRAWSURFACE4, HDC);
HRESULT WINAPI Main_DDrawSurface_SetClipper (LPDIRECTDRAWSURFACE4, LPDIRECTDRAWCLIPPER);
HRESULT WINAPI Main_DDrawSurface_SetColorKey (LPDIRECTDRAWSURFACE4, DWORD, LPDDCOLORKEY);
HRESULT WINAPI Main_DDrawSurface_SetOverlayPosition (LPDIRECTDRAWSURFACE4, LONG, LONG);
HRESULT WINAPI Main_DDrawSurface_SetPalette (LPDIRECTDRAWSURFACE4, LPDIRECTDRAWPALETTE);
HRESULT WINAPI Main_DDrawSurface_SetPrivateData (LPDIRECTDRAWSURFACE4, REFGUID, LPVOID, DWORD, DWORD);
HRESULT WINAPI Main_DDrawSurface_UpdateOverlayDisplay (LPDIRECTDRAWSURFACE4, DWORD);
HRESULT WINAPI Main_DDrawSurface_UpdateOverlayZOrder (LPDIRECTDRAWSURFACE4, DWORD, LPDIRECTDRAWSURFACE4);
HRESULT WINAPI Main_DDrawSurface_SetSurfaceDesc(LPDIRECTDRAWSURFACE4, DDSURFACEDESC2 *, DWORD);
HRESULT WINAPI Main_DDrawSurface_Unlock (LPDIRECTDRAWSURFACE4, LPRECT);
HRESULT WINAPI Main_DDrawSurface_Initialize (LPDIRECTDRAWSURFACE4, LPDIRECTDRAW, LPDDSURFACEDESC2);
HRESULT WINAPI Main_DDrawSurface_Lock (LPDIRECTDRAWSURFACE4, LPRECT, LPDDSURFACEDESC2, DWORD, HANDLE);
HRESULT WINAPI Main_DDrawSurface_Restore(LPDIRECTDRAWSURFACE4);
HRESULT WINAPI Main_DDrawSurface_UpdateOverlay (LPDIRECTDRAWSURFACE4, LPRECT, LPDIRECTDRAWSURFACE4, LPRECT,
DWORD, LPDDOVERLAYFX);
HRESULT WINAPI Main_DDrawSurface_ChangeUniquenessValue(LPDIRECTDRAWSURFACE4);
HRESULT WINAPI Main_DDrawSurface_AddAttachedSurface(LPDIRECTDRAWSURFACE4, LPDIRECTDRAWSURFACE4);
HRESULT WINAPI Main_DDrawSurface_AddOverlayDirtyRect(LPDIRECTDRAWSURFACE4, LPRECT);
IDirectDrawSurface4Vtbl DirectDrawSurface4_Vtable =
{
Main_DDrawSurface_QueryInterface,
Main_DDrawSurface_AddRef, /* (Compact done) */
Main_DDrawSurface_Release,
Main_DDrawSurface_AddAttachedSurface,
Main_DDrawSurface_AddOverlayDirtyRect,
Main_DDrawSurface_Blt,
Main_DDrawSurface_BltBatch,
Main_DDrawSurface_BltFast,
Main_DDrawSurface_DeleteAttachedSurface,
Main_DDrawSurface_EnumAttachedSurfaces,
Main_DDrawSurface_EnumOverlayZOrders,
Main_DDrawSurface_Flip,
Main_DDrawSurface_GetAttachedSurface,
Main_DDrawSurface_GetBltStatus,
Main_DDrawSurface_GetCaps,
Main_DDrawSurface_GetClipper,
Main_DDrawSurface_GetColorKey,
Main_DDrawSurface_GetDC,
Main_DDrawSurface_GetFlipStatus,
Main_DDrawSurface_GetOverlayPosition,
Main_DDrawSurface_GetPalette,
Main_DDrawSurface_GetPixelFormat,
Main_DDrawSurface_GetSurfaceDesc,
Main_DDrawSurface_Initialize,
Main_DDrawSurface_IsLost,
Main_DDrawSurface_Lock,
Main_DDrawSurface_ReleaseDC,
Main_DDrawSurface_Restore,
Main_DDrawSurface_SetClipper,
Main_DDrawSurface_SetColorKey,
Main_DDrawSurface_SetOverlayPosition,
Main_DDrawSurface_SetPalette,
Main_DDrawSurface_Unlock,
Main_DDrawSurface_UpdateOverlay,
Main_DDrawSurface_UpdateOverlayDisplay,
Main_DDrawSurface_UpdateOverlayZOrder,
Main_DDrawSurface_GetDDInterface,
Main_DDrawSurface_PageLock,
Main_DDrawSurface_PageUnlock,
Main_DDrawSurface_SetSurfaceDesc,
Main_DDrawSurface_SetPrivateData,
Main_DDrawSurface_GetPrivateData,
Main_DDrawSurface_FreePrivateData,
Main_DDrawSurface_GetUniquenessValue,
Main_DDrawSurface_ChangeUniquenessValue,
};

View file

@ -0,0 +1,122 @@
#include <windows.h>
#include <stdio.h>
#include <ddraw.h>
#include <ddrawi.h>
#include <d3dhal.h>
#include <ddrawgdi.h>
#if defined(_WIN32) && !defined(_NO_COM )
#define COM_NO_WINDOWS_H
#include <objbase.h>
#else
#define IUnknown void
#if !defined(NT_BUILD_ENVIRONMENT) && !defined(WINNT)
#define CO_E_NOTINITIALIZED 0x800401F0
#endif
#endif
ULONG WINAPI Main_DDrawSurface_AddRef(LPDIRECTDRAWSURFACE7);
ULONG WINAPI Main_DDrawSurface_Release(LPDIRECTDRAWSURFACE7);
HRESULT WINAPI Main_DDrawSurface_QueryInterface(LPDIRECTDRAWSURFACE7, REFIID, LPVOID*);
HRESULT WINAPI Main_DDrawSurface_ReleaseDC(LPDIRECTDRAWSURFACE7, HDC);
HRESULT WINAPI Main_DDrawSurface_Blt(LPDIRECTDRAWSURFACE7, LPRECT, LPDIRECTDRAWSURFACE7, LPRECT, DWORD, LPDDBLTFX);
HRESULT WINAPI Main_DDrawSurface_BltBatch(LPDIRECTDRAWSURFACE7, LPDDBLTBATCH, DWORD, DWORD);
HRESULT WINAPI Main_DDrawSurface_BltFast(LPDIRECTDRAWSURFACE7, DWORD, DWORD, LPDIRECTDRAWSURFACE7, LPRECT, DWORD);
HRESULT WINAPI Main_DDrawSurface_DeleteAttachedSurface(LPDIRECTDRAWSURFACE7, DWORD, LPDIRECTDRAWSURFACE7);
HRESULT WINAPI Main_DDrawSurface_EnumAttachedSurfaces(LPDIRECTDRAWSURFACE7, LPVOID, LPDDENUMSURFACESCALLBACK7);
HRESULT WINAPI Main_DDrawSurface_EnumOverlayZOrders(LPDIRECTDRAWSURFACE7, DWORD, LPVOID,LPDDENUMSURFACESCALLBACK7);
HRESULT WINAPI Main_DDrawSurface_Flip(LPDIRECTDRAWSURFACE7 , LPDIRECTDRAWSURFACE7, DWORD);
HRESULT WINAPI Main_DDrawSurface_FreePrivateData(LPDIRECTDRAWSURFACE7, REFGUID);
HRESULT WINAPI Main_DDrawSurface_GetAttachedSurface(LPDIRECTDRAWSURFACE7, LPDDSCAPS2, LPDIRECTDRAWSURFACE7*);
HRESULT WINAPI Main_DDrawSurface_GetBltStatus(LPDIRECTDRAWSURFACE7, DWORD dwFlags);
HRESULT WINAPI Main_DDrawSurface_GetCaps(LPDIRECTDRAWSURFACE7, LPDDSCAPS2 pCaps);
HRESULT WINAPI Main_DDrawSurface_GetClipper(LPDIRECTDRAWSURFACE7, LPDIRECTDRAWCLIPPER*);
HRESULT WINAPI Main_DDrawSurface_GetColorKey(LPDIRECTDRAWSURFACE7, DWORD, LPDDCOLORKEY);
HRESULT WINAPI Main_DDrawSurface_GetDC(LPDIRECTDRAWSURFACE7, HDC *);
HRESULT WINAPI Main_DDrawSurface_GetDDInterface(LPDIRECTDRAWSURFACE7, LPVOID*);
HRESULT WINAPI Main_DDrawSurface_GetFlipStatus(LPDIRECTDRAWSURFACE7, DWORD);
HRESULT WINAPI Main_DDrawSurface_GetLOD(LPDIRECTDRAWSURFACE7, LPDWORD);
HRESULT WINAPI Main_DDrawSurface_GetOverlayPosition(LPDIRECTDRAWSURFACE7, LPLONG, LPLONG);
HRESULT WINAPI Main_DDrawSurface_GetPalette(LPDIRECTDRAWSURFACE7, LPDIRECTDRAWPALETTE*);
HRESULT WINAPI Main_DDrawSurface_GetPixelFormat(LPDIRECTDRAWSURFACE7, LPDDPIXELFORMAT);
HRESULT WINAPI Main_DDrawSurface_GetPriority(LPDIRECTDRAWSURFACE7, LPDWORD);
HRESULT WINAPI Main_DDrawSurface_GetPrivateData(LPDIRECTDRAWSURFACE7, REFGUID, LPVOID, LPDWORD);
HRESULT WINAPI Main_DDrawSurface_GetSurfaceDesc(LPDIRECTDRAWSURFACE7, LPDDSURFACEDESC2);
HRESULT WINAPI Main_DDrawSurface_GetUniquenessValue(LPDIRECTDRAWSURFACE7, LPDWORD);
HRESULT WINAPI Main_DDrawSurface_IsLost(LPDIRECTDRAWSURFACE7);
HRESULT WINAPI Main_DDrawSurface_PageLock(LPDIRECTDRAWSURFACE7, DWORD);
HRESULT WINAPI Main_DDrawSurface_PageUnlock(LPDIRECTDRAWSURFACE7, DWORD);
HRESULT WINAPI Main_DDrawSurface_ReleaseDC(LPDIRECTDRAWSURFACE7, HDC);
HRESULT WINAPI Main_DDrawSurface_SetClipper (LPDIRECTDRAWSURFACE7, LPDIRECTDRAWCLIPPER);
HRESULT WINAPI Main_DDrawSurface_SetColorKey (LPDIRECTDRAWSURFACE7, DWORD, LPDDCOLORKEY);
HRESULT WINAPI Main_DDrawSurface_SetOverlayPosition (LPDIRECTDRAWSURFACE7, LONG, LONG);
HRESULT WINAPI Main_DDrawSurface_SetPalette (LPDIRECTDRAWSURFACE7, LPDIRECTDRAWPALETTE);
HRESULT WINAPI Main_DDrawSurface_SetPriority (LPDIRECTDRAWSURFACE7, DWORD);
HRESULT WINAPI Main_DDrawSurface_SetPrivateData (LPDIRECTDRAWSURFACE7, REFGUID, LPVOID, DWORD, DWORD);
HRESULT WINAPI Main_DDrawSurface_UpdateOverlayDisplay (LPDIRECTDRAWSURFACE7, DWORD);
HRESULT WINAPI Main_DDrawSurface_UpdateOverlayZOrder (LPDIRECTDRAWSURFACE7, DWORD, LPDIRECTDRAWSURFACE7);
HRESULT WINAPI Main_DDrawSurface_SetSurfaceDesc(LPDIRECTDRAWSURFACE7, DDSURFACEDESC2 *, DWORD);
HRESULT WINAPI Main_DDrawSurface_SetLOD(LPDIRECTDRAWSURFACE7, DWORD);
HRESULT WINAPI Main_DDrawSurface_Unlock (LPDIRECTDRAWSURFACE7, LPRECT);
HRESULT WINAPI Main_DDrawSurface_Initialize (LPDIRECTDRAWSURFACE7, LPDIRECTDRAW, LPDDSURFACEDESC2);
HRESULT WINAPI Main_DDrawSurface_Lock (LPDIRECTDRAWSURFACE7, LPRECT, LPDDSURFACEDESC2, DWORD, HANDLE);
HRESULT WINAPI Main_DDrawSurface_Restore(LPDIRECTDRAWSURFACE7);
HRESULT WINAPI Main_DDrawSurface_UpdateOverlay (LPDIRECTDRAWSURFACE7, LPRECT, LPDIRECTDRAWSURFACE7, LPRECT,
DWORD, LPDDOVERLAYFX);
HRESULT WINAPI Main_DDrawSurface_ChangeUniquenessValue(LPDIRECTDRAWSURFACE7);
HRESULT WINAPI Main_DDrawSurface_AddAttachedSurface(LPDIRECTDRAWSURFACE7, LPDIRECTDRAWSURFACE7);
HRESULT WINAPI Main_DDrawSurface_AddOverlayDirtyRect(LPDIRECTDRAWSURFACE7, LPRECT);
IDirectDrawSurface7Vtbl DirectDrawSurface7_Vtable =
{
Main_DDrawSurface_QueryInterface,
Main_DDrawSurface_AddRef, /* (Compact done) */
Main_DDrawSurface_Release,
Main_DDrawSurface_AddAttachedSurface,
Main_DDrawSurface_AddOverlayDirtyRect,
Main_DDrawSurface_Blt,
Main_DDrawSurface_BltBatch,
Main_DDrawSurface_BltFast,
Main_DDrawSurface_DeleteAttachedSurface,
Main_DDrawSurface_EnumAttachedSurfaces,
Main_DDrawSurface_EnumOverlayZOrders,
Main_DDrawSurface_Flip,
Main_DDrawSurface_GetAttachedSurface,
Main_DDrawSurface_GetBltStatus,
Main_DDrawSurface_GetCaps,
Main_DDrawSurface_GetClipper,
Main_DDrawSurface_GetColorKey,
Main_DDrawSurface_GetDC,
Main_DDrawSurface_GetFlipStatus,
Main_DDrawSurface_GetOverlayPosition,
Main_DDrawSurface_GetPalette,
Main_DDrawSurface_GetPixelFormat,
Main_DDrawSurface_GetSurfaceDesc,
Main_DDrawSurface_Initialize,
Main_DDrawSurface_IsLost,
Main_DDrawSurface_Lock,
Main_DDrawSurface_ReleaseDC,
Main_DDrawSurface_Restore,
Main_DDrawSurface_SetClipper,
Main_DDrawSurface_SetColorKey,
Main_DDrawSurface_SetOverlayPosition,
Main_DDrawSurface_SetPalette,
Main_DDrawSurface_Unlock,
Main_DDrawSurface_UpdateOverlay,
Main_DDrawSurface_UpdateOverlayDisplay,
Main_DDrawSurface_UpdateOverlayZOrder,
Main_DDrawSurface_GetDDInterface,
Main_DDrawSurface_PageLock,
Main_DDrawSurface_PageUnlock,
Main_DDrawSurface_SetSurfaceDesc,
Main_DDrawSurface_SetPrivateData,
Main_DDrawSurface_GetPrivateData,
Main_DDrawSurface_FreePrivateData,
Main_DDrawSurface_GetUniquenessValue,
Main_DDrawSurface_ChangeUniquenessValue,
Main_DDrawSurface_SetPriority,
Main_DDrawSurface_GetPriority,
Main_DDrawSurface_SetLOD,
Main_DDrawSurface_GetLOD
};

View file

@ -0,0 +1,95 @@
#include <windows.h>
#include <stdio.h>
#include <ddraw.h>
#include <ddrawi.h>
#include <d3dhal.h>
#include <ddrawgdi.h>
#if defined(_WIN32) && !defined(_NO_COM )
#define COM_NO_WINDOWS_H
#include <objbase.h>
#else
#define IUnknown void
#if !defined(NT_BUILD_ENVIRONMENT) && !defined(WINNT)
#define CO_E_NOTINITIALIZED 0x800401F0
#endif
#endif
ULONG WINAPI Main_DDrawSurface_AddRef(LPDIRECTDRAWSURFACE);
ULONG WINAPI Main_DDrawSurface_Release(LPDIRECTDRAWSURFACE);
HRESULT WINAPI Main_DDrawSurface_QueryInterface(LPDIRECTDRAWSURFACE, REFIID, LPVOID*);
HRESULT WINAPI Main_DDrawSurface_Blt(LPDIRECTDRAWSURFACE, LPRECT, LPDIRECTDRAWSURFACE, LPRECT, DWORD, LPDDBLTFX);
HRESULT WINAPI Main_DDrawSurface_BltBatch(LPDIRECTDRAWSURFACE, LPDDBLTBATCH, DWORD, DWORD);
HRESULT WINAPI Main_DDrawSurface_BltFast(LPDIRECTDRAWSURFACE, DWORD, DWORD, LPDIRECTDRAWSURFACE, LPRECT, DWORD);
HRESULT WINAPI Main_DDrawSurface_DeleteAttachedSurface(LPDIRECTDRAWSURFACE, DWORD, LPDIRECTDRAWSURFACE);
HRESULT WINAPI Main_DDrawSurface_EnumAttachedSurfaces(LPDIRECTDRAWSURFACE, LPVOID, LPDDENUMSURFACESCALLBACK);
HRESULT WINAPI Main_DDrawSurface_EnumOverlayZOrders(LPDIRECTDRAWSURFACE, DWORD, LPVOID,LPDDENUMSURFACESCALLBACK);
HRESULT WINAPI Main_DDrawSurface_Flip(LPDIRECTDRAWSURFACE , LPDIRECTDRAWSURFACE, DWORD);
HRESULT WINAPI Main_DDrawSurface_GetAttachedSurface(LPDIRECTDRAWSURFACE, LPDDSCAPS, LPDIRECTDRAWSURFACE*);
HRESULT WINAPI Main_DDrawSurface_GetBltStatus(LPDIRECTDRAWSURFACE, DWORD dwFlags);
HRESULT WINAPI Main_DDrawSurface_GetCaps(LPDIRECTDRAWSURFACE, LPDDSCAPS pCaps);
HRESULT WINAPI Main_DDrawSurface_GetClipper(LPDIRECTDRAWSURFACE, LPDIRECTDRAWCLIPPER*);
HRESULT WINAPI Main_DDrawSurface_GetColorKey(LPDIRECTDRAWSURFACE, DWORD, LPDDCOLORKEY);
HRESULT WINAPI Main_DDrawSurface_GetDC(LPDIRECTDRAWSURFACE, HDC *);
HRESULT WINAPI Main_DDrawSurface_GetFlipStatus(LPDIRECTDRAWSURFACE, DWORD);
HRESULT WINAPI Main_DDrawSurface_GetOverlayPosition(LPDIRECTDRAWSURFACE, LPLONG, LPLONG);
HRESULT WINAPI Main_DDrawSurface_GetPalette(LPDIRECTDRAWSURFACE, LPDIRECTDRAWPALETTE*);
HRESULT WINAPI Main_DDrawSurface_GetPixelFormat(LPDIRECTDRAWSURFACE, LPDDPIXELFORMAT);
HRESULT WINAPI Main_DDrawSurface_GetSurfaceDesc(LPDIRECTDRAWSURFACE, LPDDSURFACEDESC);
HRESULT WINAPI Main_DDrawSurface_IsLost(LPDIRECTDRAWSURFACE);
HRESULT WINAPI Main_DDrawSurface_ReleaseDC(LPDIRECTDRAWSURFACE, HDC);
HRESULT WINAPI Main_DDrawSurface_SetClipper (LPDIRECTDRAWSURFACE, LPDIRECTDRAWCLIPPER);
HRESULT WINAPI Main_DDrawSurface_SetColorKey (LPDIRECTDRAWSURFACE, DWORD, LPDDCOLORKEY);
HRESULT WINAPI Main_DDrawSurface_SetOverlayPosition (LPDIRECTDRAWSURFACE, LONG, LONG);
HRESULT WINAPI Main_DDrawSurface_SetPalette (LPDIRECTDRAWSURFACE, LPDIRECTDRAWPALETTE);
HRESULT WINAPI Main_DDrawSurface_UpdateOverlayDisplay (LPDIRECTDRAWSURFACE, DWORD);
HRESULT WINAPI Main_DDrawSurface_UpdateOverlayZOrder (LPDIRECTDRAWSURFACE, DWORD, LPDIRECTDRAWSURFACE);
HRESULT WINAPI Main_DDrawSurface_Unlock (LPDIRECTDRAWSURFACE, LPVOID);
HRESULT WINAPI Main_DDrawSurface_Initialize (LPDIRECTDRAWSURFACE, LPDIRECTDRAW, LPDDSURFACEDESC);
HRESULT WINAPI Main_DDrawSurface_Lock (LPDIRECTDRAWSURFACE, LPRECT, LPDDSURFACEDESC, DWORD, HANDLE);
HRESULT WINAPI Main_DDrawSurface_Restore(LPDIRECTDRAWSURFACE);
HRESULT WINAPI Main_DDrawSurface_UpdateOverlay (LPDIRECTDRAWSURFACE, LPRECT, LPDIRECTDRAWSURFACE, LPRECT,
DWORD, LPDDOVERLAYFX);
HRESULT WINAPI Main_DDrawSurface_AddAttachedSurface(LPDIRECTDRAWSURFACE, LPDIRECTDRAWSURFACE);
HRESULT WINAPI Main_DDrawSurface_AddOverlayDirtyRect(LPDIRECTDRAWSURFACE, LPRECT);
IDirectDrawSurfaceVtbl DirectDrawSurface_Vtable =
{
Main_DDrawSurface_QueryInterface,
Main_DDrawSurface_AddRef, /* (Compact done) */
Main_DDrawSurface_Release,
Main_DDrawSurface_AddAttachedSurface,
Main_DDrawSurface_AddOverlayDirtyRect,
Main_DDrawSurface_Blt,
Main_DDrawSurface_BltBatch,
Main_DDrawSurface_BltFast,
Main_DDrawSurface_DeleteAttachedSurface,
Main_DDrawSurface_EnumAttachedSurfaces,
Main_DDrawSurface_EnumOverlayZOrders,
Main_DDrawSurface_Flip,
Main_DDrawSurface_GetAttachedSurface,
Main_DDrawSurface_GetBltStatus,
Main_DDrawSurface_GetCaps,
Main_DDrawSurface_GetClipper,
Main_DDrawSurface_GetColorKey,
Main_DDrawSurface_GetDC,
Main_DDrawSurface_GetFlipStatus,
Main_DDrawSurface_GetOverlayPosition,
Main_DDrawSurface_GetPalette,
Main_DDrawSurface_GetPixelFormat,
Main_DDrawSurface_GetSurfaceDesc,
Main_DDrawSurface_Initialize,
Main_DDrawSurface_IsLost,
Main_DDrawSurface_Lock,
Main_DDrawSurface_ReleaseDC,
Main_DDrawSurface_Restore,
Main_DDrawSurface_SetClipper,
Main_DDrawSurface_SetColorKey,
Main_DDrawSurface_SetOverlayPosition,
Main_DDrawSurface_SetPalette,
Main_DDrawSurface_Unlock,
Main_DDrawSurface_UpdateOverlay,
Main_DDrawSurface_UpdateOverlayDisplay,
Main_DDrawSurface_UpdateOverlayZOrder,
};

View file

@ -62,5 +62,10 @@
<file>DirectDraw4_Vtable.c</file>
<file>DirectDraw2_Vtable.c</file>
<file>DirectDraw_Vtable.c</file>
<file>DirectDrawSurface7_Vtable.c</file>
<file>DirectDrawSurface4_Vtable.c</file>
<file>DirectDrawSurface3_Vtable.c</file>
<file>DirectDrawSurface2_Vtable.c</file>
<file>DirectDrawSurface_Vtable.c</file>
</directory>
</module>
</module>

View file

@ -28,7 +28,10 @@ extern IDirectDrawVtbl DirectDraw_Vtable;
extern IDirectDrawSurface7Vtbl DirectDrawSurface7_Vtable;
extern IDirectDrawSurface3Vtbl DirectDrawSurface3_VTable;
extern IDirectDrawSurface4Vtbl DirectDrawSurface4_Vtable;
extern IDirectDrawSurface3Vtbl DirectDrawSurface3_Vtable;
extern IDirectDrawSurface2Vtbl DirectDrawSurface2_Vtable;
extern IDirectDrawSurfaceVtbl DirectDrawSurface_Vtable;
extern IDirectDrawPaletteVtbl DirectDrawPalette_Vtable;
extern IDirectDrawClipperVtbl DirectDrawClipper_Vtable;
extern IDirectDrawColorControlVtbl DirectDrawColorControl_Vtable;