This section details new features provided by the IDirectDraw4 interface and describes it's new features or how it behaves differently than its predecessor, IDirectDraw2 (there is no IDirectDraw3 interface). The following topics are discussed:
The most obvious difference between the IDirectDraw4 interface and its predecessors is how it works with surfaces—how surfaces are described and which interfaces it automatically provides to access them. All of the surface-related methods in the new interface accept slightly different parameters than their counterparts in former interface versions. Wherever an IDirectDraw2 interface method might accept a DDSURFACEDESC structure or retrieve an IDirectDrawSurface3 interface, the methods of IDirectDraw4 accept a DDSURFACEDESC2 structure and retrieve an IDirectDrawSurface4 interface instead.
Another behavioral change that IDirectDraw4 introduces affects the lifetimes of child objects with respect to their parent DirectDraw object. For more information, see Parent and Child Object Lifetimes.