The IDirectDrawSurface3::Unlock method notifies DirectDraw that the direct surface manipulations are complete.
HRESULT Unlock(
LPVOID lpSurfaceData
);
Parameters
lpSurfaceData
Address of the surface to be unlocked, as retrieved by the IDirectDrawSurface3::Lock method. This parameter can be NULL only if the entire surface was locked by passing NULL in the lpDestRect parameter of the corresponding call to the IDirectDrawSurface3::Lock method.
Return Values
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 | 
Remarks
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.
QuickInfo
  Windows NT: Use version 5.0 or later.
  Windows: Use Windows 95 or later. Available as a redistributable for Windows 95.
  Windows CE: Unsupported.
  Header: Declared in ddraw.h.
  Import Library: Use ddraw.lib.
See Also
IDirectDrawSurface3::Lock