DirectX SDK |
Although there are no new methods added to the IDirectDraw7 interface in DirectX 7.0, there is a tighter relationship between IDirectDraw7 and Direct3D. IDirectDraw7 objects will support QueryInterface for any IDirect3D interface, but will only allow subsequent QueryInterface calls for the same level of interface. This means that once IDirect3D7 has been obtained from any DirectDraw object, no earlier Direct3D interfaces will be available from that object. Similarly, once any legacy Direct3D interface has been obtained from a DirectDraw object, IDirect3D7 will not be available from that object.
Additionally, IDirectDraw7 created surfaces do not allow Direct3D related QueryInterface calls (they will return E_NOINTERFACE). Applications may only obtain IDirect3DTexture interfaces from surfaces created by IDirectDraw4 or lower interfaces.
The practical result is that to use legacy Direct3D interfaces, applications should not use DirectDraw 7.0 interface versions, and to use DirectX 7.0 Direct3D interfaces, applications should use DirectX 7.0 DirectDraw interfaces.
A new DirectDraw object creation function, DirectDrawCreateEx, has been added in this release to obtain an IDirectDraw7 interface and is further discussed in the next section Getting an IDirectDraw7 Interface.
[C++,Visual Basic]