The IDirectDrawSurface3::Unlock method notifies DirectDraw that the direct surface manipulations are complete.
HRESULT Unlock(
LPVOID lpSurfaceData
);
If the method succeeds, the return value is DD_OK.
If the method fails, the return value may be one of the following error values:
| DDERR_GENERIC |
| DDERR_INVALIDOBJECT |
| DDERR_INVALIDPARAMS |
| DDERR_INVALIDRECT |
| DDERR_NOTLOCKED |
| DDERR_SURFACELOST |
Because it is possible to call IDirectDrawSurface3::Lock multiple times for the same surface with different destination rectangles, the pointer in lpSurfaceData links the calls to the IDirectDrawSurface3::Lock and IDirectDrawSurface3::Unlock methods.
IDirectDrawSurface3::Lock