### IDirectDrawSurface3::Unlock

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.

##### See Also

IDirectDrawSurface3::Lock