### IDirectDrawSurface3::SetColorKey

The IDirectDrawSurface3::SetColorKey method sets the color key value for the DirectDrawSurface object if the hardware supports color keys on a per surface basis.

HRESULT SetColorKey(

DWORD dwFlags,

LPDDCOLORKEY lpDDColorKey

);

##### Parameters

dwFlags
  Determines which color key is requested.

  DDCKEY_COLORSPACE
  | Set if the structure contains a color space. Not set if the structure contains a single color key.
  DDCKEY_DESTBLT
  | Set if the structure specifies a color key or color space to be used as a destination color key for blit operations.
  DDCKEY_DESTOVERLAY
  | Set if the structure specifies a color key or color space to be used as a destination color key for overlay operations.
  DDCKEY_SRCBLT
  | Set if the structure specifies a color key or color space to be used as a source color key for blit operations.
  DDCKEY_SRCOVERLAY
  | Set if the structure specifies a color key or color space to be used as a source color key for overlay operations.

lpDDColorKey
  Address of the DDCOLORKEY structure that contains the new color key values for the DirectDrawSurface object.

##### 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_INVALIDSURFACETYPE
DDERR_NOOVERLAYHW
DDERR_NOTAOVERLAYSURFACE
DDERR_SURFACELOST
DDERR_UNSUPPORTED
DDERR_WASSTILLDRAWING

##### Remarks

For transparent blits and overlays, you should set destination color on the destination surface and source color on the source surface.

##### See Also

IDirectDrawSurface3::GetColorKey