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;