diff --git a/inc/IDirectDrawSurface.h b/inc/IDirectDrawSurface.h index 10d0640..e465a7d 100644 --- a/inc/IDirectDrawSurface.h +++ b/inc/IDirectDrawSurface.h @@ -84,6 +84,23 @@ struct IDirectDrawSurfaceImplVtbl HRESULT (__stdcall *UpdateOverlay)(IDirectDrawSurfaceImpl*, LPRECT, LPDIRECTDRAWSURFACE,LPRECT,DWORD, LPDDOVERLAYFX); HRESULT (__stdcall *UpdateOverlayDisplay)(IDirectDrawSurfaceImpl*, DWORD); HRESULT (__stdcall *UpdateOverlayZOrder)(IDirectDrawSurfaceImpl*, DWORD, LPDIRECTDRAWSURFACE); + // v2 + HRESULT (__stdcall *GetDDInterface)(IDirectDrawSurfaceImpl*, LPVOID*); + HRESULT (__stdcall *PageLock)(IDirectDrawSurfaceImpl*, DWORD); + HRESULT (__stdcall *PageUnlock)(IDirectDrawSurfaceImpl*, DWORD); + // v3 + HRESULT (__stdcall *SetSurfaceDesc)(IDirectDrawSurfaceImpl*, LPDDSURFACEDESC, DWORD); + // v4 + HRESULT (__stdcall *SetPrivateData)(IDirectDrawSurfaceImpl*, REFGUID, LPVOID, DWORD, DWORD); + HRESULT (__stdcall *GetPrivateData)(IDirectDrawSurfaceImpl*, REFGUID, LPVOID, LPDWORD); + HRESULT (__stdcall *FreePrivateData)(IDirectDrawSurfaceImpl*, REFGUID); + HRESULT (__stdcall *GetUniquenessValue)(IDirectDrawSurfaceImpl*, LPDWORD); + HRESULT (__stdcall *ChangeUniquenessValue)(IDirectDrawSurfaceImpl*); + // v7 + HRESULT (__stdcall *SetPriority)(IDirectDrawSurfaceImpl*, DWORD); + HRESULT (__stdcall *GetPriority)(IDirectDrawSurfaceImpl*, LPDWORD); + HRESULT (__stdcall *SetLOD)(IDirectDrawSurfaceImpl*, DWORD); + HRESULT (__stdcall *GetLOD)(IDirectDrawSurfaceImpl*, LPDWORD); }; extern struct IDirectDrawSurfaceImplVtbl g_dds_vtbl; diff --git a/src/IDirectDraw/IDirectDrawSurface.c b/src/IDirectDraw/IDirectDrawSurface.c index 7910dc6..fa81078 100644 --- a/src/IDirectDraw/IDirectDrawSurface.c +++ b/src/IDirectDraw/IDirectDrawSurface.c @@ -368,6 +368,110 @@ HRESULT __stdcall IDirectDrawSurface__UpdateOverlayZOrder(IDirectDrawSurfaceImpl return ret; } +HRESULT __stdcall IDirectDrawSurface__GetDDInterface(IDirectDrawSurfaceImpl *This, LPVOID* lplpDD) +{ + dprintf("NOT_IMPLEMENTED -> %s(This=%p)\n", __FUNCTION__, This); + HRESULT ret = DDERR_INVALIDOBJECT; + dprintf("NOT_IMPLEMENTED <- %s\n", __FUNCTION__); + return ret; +} + +HRESULT __stdcall IDirectDrawSurface__PageLock(IDirectDrawSurfaceImpl *This, DWORD dwFlags) +{ + dprintf("NOT_IMPLEMENTED -> %s(This=%p)\n", __FUNCTION__, This); + HRESULT ret = DD_OK; + dprintf("NOT_IMPLEMENTED <- %s\n", __FUNCTION__); + return ret; +} + +HRESULT __stdcall IDirectDrawSurface__PageUnlock(IDirectDrawSurfaceImpl *This, DWORD dwFlags) +{ + dprintf("NOT_IMPLEMENTED -> %s(This=%p)\n", __FUNCTION__, This); + HRESULT ret = DD_OK; + dprintf("NOT_IMPLEMENTED <- %s\n", __FUNCTION__); + return ret; +} + +HRESULT __stdcall IDirectDrawSurface__SetSurfaceDesc(IDirectDrawSurfaceImpl *This, LPDDSURFACEDESC lpDDSD, DWORD dwFlags) +{ + dprintf("NOT_IMPLEMENTED -> %s(This=%p)\n", __FUNCTION__, This); + HRESULT ret = DDERR_UNSUPPORTED; + dprintf("NOT_IMPLEMENTED <- %s\n", __FUNCTION__); + return ret; +} + +HRESULT __stdcall IDirectDrawSurface__SetPrivateData(IDirectDrawSurfaceImpl *This, REFGUID rtag, LPVOID lpData, DWORD dwSize, DWORD dwFlags) +{ + dprintf("NOT_IMPLEMENTED -> %s(This=%p)\n", __FUNCTION__, This); + HRESULT ret = DDERR_OUTOFMEMORY; + dprintf("NOT_IMPLEMENTED <- %s\n", __FUNCTION__); + return ret; +} + +HRESULT __stdcall IDirectDrawSurface__GetPrivateData(IDirectDrawSurfaceImpl *This, REFGUID rtag, LPVOID lpBuffer, LPDWORD lpdwBufferSize) +{ + dprintf("NOT_IMPLEMENTED -> %s(This=%p)\n", __FUNCTION__, This); + HRESULT ret = DDERR_NOTFOUND; + dprintf("NOT_IMPLEMENTED <- %s\n", __FUNCTION__); + return ret; +} + +HRESULT __stdcall IDirectDrawSurface__FreePrivateData(IDirectDrawSurfaceImpl *This, REFGUID rtag) +{ + dprintf("NOT_IMPLEMENTED -> %s(This=%p)\n", __FUNCTION__, This); + HRESULT ret = DD_OK; + dprintf("NOT_IMPLEMENTED <- %s\n", __FUNCTION__); + return ret; +} + +HRESULT __stdcall IDirectDrawSurface__GetUniquenessValue(IDirectDrawSurfaceImpl *This, LPDWORD lpdwValue) +{ + dprintf("NOT_IMPLEMENTED -> %s(This=%p)\n", __FUNCTION__, This); + HRESULT ret = DDERR_INVALIDOBJECT; + dprintf("NOT_IMPLEMENTED <- %s\n", __FUNCTION__); + return ret; +} + +HRESULT __stdcall IDirectDrawSurface__ChangeUniquenessValue(IDirectDrawSurfaceImpl *This) +{ + dprintf("NOT_IMPLEMENTED -> %s(This=%p)\n", __FUNCTION__, This); + HRESULT ret = DDERR_INVALIDOBJECT; + dprintf("NOT_IMPLEMENTED <- %s\n", __FUNCTION__); + return ret; +} + +HRESULT __stdcall IDirectDrawSurface__SetPriority(IDirectDrawSurfaceImpl *This, DWORD dwPrio) +{ + dprintf("NOT_IMPLEMENTED -> %s(This=%p)\n", __FUNCTION__, This); + HRESULT ret = DDERR_INVALIDOBJECT; + dprintf("NOT_IMPLEMENTED <- %s\n", __FUNCTION__); + return ret; +} + +HRESULT __stdcall IDirectDrawSurface__GetPriority(IDirectDrawSurfaceImpl *This, LPDWORD lpdwPrio) +{ + dprintf("NOT_IMPLEMENTED -> %s(This=%p)\n", __FUNCTION__, This); + HRESULT ret = DDERR_INVALIDOBJECT; + dprintf("NOT_IMPLEMENTED <- %s\n", __FUNCTION__); + return ret; +} + +HRESULT __stdcall IDirectDrawSurface__SetLOD(IDirectDrawSurfaceImpl *This, DWORD dwLod) +{ + dprintf("NOT_IMPLEMENTED -> %s(This=%p)\n", __FUNCTION__, This); + HRESULT ret = DDERR_INVALIDOBJECT; + dprintf("NOT_IMPLEMENTED <- %s\n", __FUNCTION__); + return ret; +} + +HRESULT __stdcall IDirectDrawSurface__GetLOD(IDirectDrawSurfaceImpl *This, LPDWORD lpdwLod) +{ + dprintf("NOT_IMPLEMENTED -> %s(This=%p)\n", __FUNCTION__, This); + HRESULT ret = DDERR_INVALIDOBJECT; + dprintf("NOT_IMPLEMENTED <- %s\n", __FUNCTION__); + return ret; +} + struct IDirectDrawSurfaceImplVtbl g_dds_vtbl = { /* IUnknown */ @@ -407,5 +511,22 @@ struct IDirectDrawSurfaceImplVtbl g_dds_vtbl = IDirectDrawSurface__Unlock, IDirectDrawSurface__UpdateOverlay, IDirectDrawSurface__UpdateOverlayDisplay, - IDirectDrawSurface__UpdateOverlayZOrder + IDirectDrawSurface__UpdateOverlayZOrder, + // v2 + IDirectDrawSurface__GetDDInterface, + IDirectDrawSurface__PageLock, + IDirectDrawSurface__PageUnlock, + // v3 + IDirectDrawSurface__SetSurfaceDesc, + // v4 + IDirectDrawSurface__SetPrivateData, + IDirectDrawSurface__GetPrivateData, + IDirectDrawSurface__FreePrivateData, + IDirectDrawSurface__GetUniquenessValue, + IDirectDrawSurface__ChangeUniquenessValue, + // v7 + IDirectDrawSurface__SetPriority, + IDirectDrawSurface__GetPriority, + IDirectDrawSurface__SetLOD, + IDirectDrawSurface__GetLOD };