commit GetDeviceIdentifier and GetDeviceIdentifier7 both are under devloping, I hope I finish this implement today

svn path=/trunk/; revision=27084
This commit is contained in:
Magnus Olsen 2007-06-09 10:05:41 +00:00
parent 8ef4afc835
commit 535019cbf6
3 changed files with 62 additions and 9 deletions

View file

@ -6,7 +6,8 @@ HRESULT WINAPI Main_DirectDraw_Compact(LPDIRECTDRAW7 );
HRESULT WINAPI Main_DirectDraw_CreateClipper(LPDIRECTDRAW7, DWORD, LPDIRECTDRAWCLIPPER *, IUnknown *);
HRESULT WINAPI Main_DirectDraw_CreatePalette(LPDIRECTDRAW7, DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE*, LPUNKNOWN);
HRESULT WINAPI Main_DirectDraw_DuplicateSurface(LPDIRECTDRAW7, LPDIRECTDRAWSURFACE7, LPDIRECTDRAWSURFACE7*);
HRESULT WINAPI Main_DirectDraw_GetDeviceIdentifier(LPDIRECTDRAW7, LPDDDEVICEIDENTIFIER2, DWORD);
HRESULT WINAPI Main_DirectDraw_GetDeviceIdentifier(LPDIRECTDRAW4, LPDDDEVICEIDENTIFIER, DWORD);
HRESULT WINAPI Main_DirectDraw_GetDeviceIdentifier7(LPDIRECTDRAW7, LPDDDEVICEIDENTIFIER2, DWORD);
HRESULT WINAPI Main_DirectDraw_EnumSurfaces(LPDIRECTDRAW7, DWORD, LPDDSURFACEDESC2, LPVOID,
LPDDENUMSURFACESCALLBACK7);
@ -39,7 +40,7 @@ HRESULT WINAPI Main_DirectDraw_CreatePalette(LPDIRECTDRAW7, DWORD, LPPALETTEENTR
HRESULT WINAPI Main_DirectDraw_CreateSurface(LPDIRECTDRAW, LPDDSURFACEDESC, LPDIRECTDRAWSURFACE *, IUnknown *);
HRESULT WINAPI Main_DirectDraw_CreateSurface4(LPDIRECTDRAW7, LPDDSURFACEDESC2, LPDIRECTDRAWSURFACE7 *, IUnknown *);
HRESULT WINAPI Main_DirectDraw_DuplicateSurface(LPDIRECTDRAW7, LPDIRECTDRAWSURFACE7, LPDIRECTDRAWSURFACE7*);
HRESULT WINAPI Main_DirectDraw_GetDeviceIdentifier(LPDIRECTDRAW7, LPDDDEVICEIDENTIFIER2, DWORD);
HRESULT WINAPI Main_DirectDraw_EnumSurfaces(LPDIRECTDRAW7, DWORD, LPDDSURFACEDESC2, LPVOID,
LPDDENUMSURFACESCALLBACK7);

View file

@ -413,6 +413,64 @@ Main_DirectDraw_CreateSurface4(LPDIRECTDRAW7 iface, LPDDSURFACEDESC2 pDDSD,
return ret;
}
/* For DirectDraw 4 - 6 */
HRESULT WINAPI
Main_DirectDraw_GetDeviceIdentifier(LPDIRECTDRAW4 iface,
LPDDDEVICEIDENTIFIER pDDDI, DWORD dwFlags)
{
HRESULT retVal = DD_OK;
DDDEVICEIDENTIFIER2 pDDDI2;
ZeroMemory(&pDDDI2,sizeof(DDDEVICEIDENTIFIER2));
_SEH_TRY
{
memcpy(&pDDDI2 , pDDDI, sizeof(DDDEVICEIDENTIFIER));
retVal = Main_DirectDraw_GetDeviceIdentifier7((LPDIRECTDRAW7)iface, &pDDDI2, dwFlags);
if (IsBadWritePtr(pDDDI, sizeof(DDDEVICEIDENTIFIER)))
{
retVal = DDERR_INVALIDPARAMS;
}
else
{
memcpy(pDDDI , &pDDDI2, sizeof(DDDEVICEIDENTIFIER) );
}
}
_SEH_HANDLE
{
retVal = DD_FALSE;
}
_SEH_END;
return retVal;
}
HRESULT WINAPI
Main_DirectDraw_GetDeviceIdentifier7(LPDIRECTDRAW7 iface,
LPDDDEVICEIDENTIFIER2 pDDDI, DWORD dwFlags)
{
// HRESULT retVal = DD_OK;
HRESULT retVal = DD_FALSE;
DX_WINDBG_trace();
_SEH_TRY
{
if (IsBadWritePtr( pDDDI, sizeof(DDDEVICEIDENTIFIER2) ) )
{
retVal = DDERR_INVALIDPARAMS;
}
}
_SEH_HANDLE
{
retVal = DD_FALSE;
}
_SEH_END;
return retVal;
}
/* 5 of 31 DirectDraw7_Vtable api are working simluare to windows */
/* 8 of 31 DirectDraw7_Vtable api are under devloping / testing */
@ -445,7 +503,7 @@ IDirectDraw7Vtbl DirectDraw7_Vtable =
Main_DirectDraw_GetSurfaceFromDC,
Main_DirectDraw_RestoreAllSurfaces,
Main_DirectDraw_TestCooperativeLevel,
Main_DirectDraw_GetDeviceIdentifier,
Main_DirectDraw_GetDeviceIdentifier7,
Main_DirectDraw_StartModeTest,
Main_DirectDraw_EvaluateMode
};

View file

@ -117,12 +117,6 @@ HRESULT WINAPI Main_DirectDraw_TestCooperativeLevel(LPDIRECTDRAW7 iface)
DX_STUB;
}
HRESULT WINAPI Main_DirectDraw_GetDeviceIdentifier(LPDIRECTDRAW7 iface,
LPDDDEVICEIDENTIFIER2 pDDDI, DWORD dwFlags)
{
DX_WINDBG_trace();
DX_STUB;
}
HRESULT WINAPI Main_DirectDraw_StartModeTest(LPDIRECTDRAW7 iface, LPSIZE pModes,
DWORD dwNumModes, DWORD dwFlags)