IDirectDrawSurface3

Applications use the methods of the IDirectDrawSurface3 interface to create DirectDrawSurface objects and work with system-level variables. This section is a reference to the methods of this interface. For a conceptual overview, see Surfaces.

The methods of the IDirectDrawSurface3 interface can be organized into the following groups:

Allocating memory Initialize
  IsLost
  Restore
Attaching surfaces AddAttachedSurface
  DeleteAttachedSurface
  EnumAttachedSurfaces
  GetAttachedSurface
Blitting Blt
  BltBatch
  BltFast
  GetBltStatus
Color GetColorKey
  SetColorKey
Device contexts GetDC
  ReleaseDC
Flipping Flip
  GetFlipStatus
Locking surfaces Lock
  PageLock
  PageUnlock
  Unlock
Miscellaneous GetDDInterface
Overlays AddOverlayDirtyRect
  EnumOverlayZOrders
  GetOverlayPosition
  SetOverlayPosition
  UpdateOverlay
  UpdateOverlayDisplay
  UpdateOverlayZOrder
Surface capabilities GetCaps
Surface clipper GetClipper
  SetClipper
Surface description GetPixelFormat
  GetSurfaceDesc
  SetSurfaceDesc
Surface palettes GetPalette
  SetPalette

The IDirectDrawSurface3 interface, like all COM interfaces, inherits the IUnknown interface methods. The IUnknown interface supports the following three methods:

AddRef  
QueryInterface  
Release  

You can use the LPDIRECTDRAWSURFACE, LPDIRECTDRAWDURFACE2, or LPDIRECTDRAWSURFACE3 data types to declare variables that point to an IDirectDrawSurface, IDirectDrawSurface2, or IDirectDrawSurface3 interface. The Ddraw.h header file declares these data types with the following code:

typedef struct IDirectDrawSurface FAR *LPDIRECTDRAWSURFACE;

typedef struct IDirectDrawSurface2 FAR *LPDIRECTDRAWSURFACE2;

typedef struct IDirectDrawSurface3 FAR *LPDIRECTDRAWSURFACE3;