### IDirectDrawSurface3::UpdateOverlay

The IDirectDrawSurface3::UpdateOverlay method repositions or modifies the visual attributes of an overlay surface. These surfaces must have the DDSCAPS_OVERLAY value set.

HRESULT UpdateOverlay(

LPRECT lpSrcRect,

LPDIRECTDRAWSURFACE3 lpDDDestSurface,

LPRECT lpDestRect,

DWORD dwFlags,

LPDDOVERLAYFX lpDDOverlayFx

);

##### Parameters

lpSrcRect
  Address of a RECT structure that defines the x, y, width, and height of the region on the source surface being used as the overlay. This parameter can be NULL when hiding an overlay or to indicate that the entire overlay surface is to be used and that the overlay surface conforms to any boundary and size alignment restrictions imposed by the device driver.
lpDDDestSurface
  Address of the DirectDraw surface that is being overlaid.
lpDestRect
  Address of a RECT structure that defines the x, y, width, and height of the region on the destination surface that the overlay should be moved to. This parameter can be NULL when hiding the overlay.

dwFlags

DDOVER_ADDDIRTYRECT
| Adds a dirty rectangle to an emulated overlaid surface.
DDOVER_ALPHADEST
| Uses either the alpha information in pixel format or the alpha channel surface attached to the destination surface as the alpha channel for this overlay.
DDOVER_ALPHADESTCONSTOVERRIDE
| Uses the dwAlphaDestConst member of the DDOVERLAYFX structure as the destination alpha channel for this overlay.
DDOVER_ALPHADESTNEG
| Indicates that the destination surface becomes more transparent as the alpha value increases (0 is opaque).
DDOVER_ALPHADESTSURFACEOVERRIDE
| Uses the lpDDSAlphaDest member of the DDOVERLAYFX structure as the alpha channel destination for this overlay.
DDOVER_ALPHAEDGEBLEND
| Uses the dwAlphaEdgeBlend member of the DDOVERLAYFX structure as the alpha channel for the edges of the image that border the color key colors.
DDOVER_ALPHASRC
| Uses either the alpha information in pixel format or the alpha channel surface attached to the source surface as the source alpha channel for this overlay.
DDOVER_ALPHASRCCONSTOVERRIDE
| Uses the dwAlphaSrcConst member of the DDOVERLAYFX structure as the source alpha channel for this overlay.
DDOVER_ALPHASRCNEG
| Indicates that the source surface becomes more transparent as the alpha value increases (0 is opaque).
DDOVER_ALPHASRCSURFACEOVERRIDE
| Uses the lpDDSAlphaSrc member of the DDOVERLAYFX structure as the alpha channel source for this overlay.
DDOVER_AUTOFLIP
| Automatically flip to the next surface in the flip chain each time a video port VSYNC occurs.
DDOVER_BOB
| Display each field individually of the interlaced video stream without causing any artifacts.
DDOVER_DDFX
| Uses the overlay FX flags in the lpDDOverlayFx parameter to define special overlay effects.
DDOVER_HIDE
| Turns this overlay off.
DDOVER_KEYDEST
| Uses the color key associated with the destination surface.
DDOVER_KEYDESTOVERRIDE
| Uses the dckDestColorkey member of the DDOVERLAYFX structure as the color key for the destination surface.
DDOVER_KEYSRC
| Uses the color key associated with the source surface.
DDOVER_KEYSRCOVERRIDE
| Uses the dckSrcColorkey member of the DDOVERLAYFX structure as the color key for the source surface.
DDOVER_OVERRIDEBOBWEAVE
| Indicates that bob/weave decisions should not be overridden by other interfaces.
DDOVER_INTERLEAVED
| Indicates that the surface memory is composed of interleaved fields.
DDOVER_SHOW
| Turns this overlay on.

lpDDOverlayFx
  Address of a DDOVERLAYFX structure that describes the effects to be used. This parameter can be NULL if the DDOVER_DDFX flag is not specified.

##### 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_DEVICEDOESNTOWNSURFACE
DDERR_GENERIC
DDERR_HEIGHTALIGN
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DDERR_INVALIDRECT
DDERR_INVALIDSURFACETYPE
DDERR_NOSTRETCHHW
DDERR_NOTAOVERLAYSURFACE
DDERR_OUTOFCAPS
DDERR_SURFACELOST
DDERR_UNSUPPORTED
DDERR_XALIGN