Поделиться через


IDirectDrawVideo interface (amvideo.h)

[The feature associated with this page, DirectShow, is a legacy feature. It has been superseded by MediaPlayer, IMFMediaEngine, and Audio/Video Capture in Media Foundation. Those features have been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use MediaPlayer, IMFMediaEngine and Audio/Video Capture in Media Foundation instead of DirectShow, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]

The IDirectDrawVideo interface queries the Video Renderer filter about DirectDraw surfaces and hardware capabilities.

Applications can use this interface to control what DirectDraw features the Video Renderer will take advantage of. For example, if you are positive that you don't want the Video Renderer to use a hardware overlay you can disable its use via the SetSwitches method.

Note  You can't use this interface to force the Video Renderer to use a particular DirectDraw feature; you can only stop it from using that feature.
 
There is some duplication in this interface with the IDirectDraw interface; however, this interface enables simple access to that information without calling the DirectDraw provider directly.

The Video Renderer does not load DirectDraw until it is connected, and likewise DirectDraw is unloaded only when the renderer is disconnected. When the renderer has allocated the DirectDraw surfaces it will use for video playback, an application can obtain a DDSURFACEDESC structure describing it. By passing in a pointer to a DDSURFACEDESC structure, the renderer will fill in the structure with the details of the current surface. If DirectDraw has not been loaded, the renderer will return E_FAIL. If the renderer is using DCI (the predecessor to DirectDraw), the DDSURFACEDESC structure is not filled in but the call will return S_FALSE. The only type of DCI surfaces the renderer uses are primary surfaces.

Inheritance

The IDirectDrawVideo interface inherits from the IUnknown interface. IDirectDrawVideo also has these types of members:

Methods

The IDirectDrawVideo interface has these methods.

 
IDirectDrawVideo::CanUseOverlayStretch

The CanUseOverlayStretch method determines whether the renderer will check overlay restrictions.
IDirectDrawVideo::CanUseScanLine

The CanUseScanLine method determines whether the renderer will check the current scan line when drawing.
IDirectDrawVideo::GetCaps

The GetCaps method retrieves a DirectDraw-defined DDCAPS structure containing the hardware capabilities.
IDirectDrawVideo::GetDirectDraw

The GetDirectDraw method retrieves the IDirectDraw interface.
IDirectDrawVideo::GetEmulatedCaps

The GetEmulatedCaps method retrieves a DirectDraw-defined DDCAPS structure containing the emulated capabilities.
IDirectDrawVideo::GetFourCCCodes

The GetFourCCCodes method retrieves the multimedia format type.
IDirectDrawVideo::GetSurfaceDesc

The GetSurfaceDesc method retrieves a DDSURFACEDESC structure describing the current DirectDraw surface.
IDirectDrawVideo::GetSurfaceType

The GetSurfaceType method retrieves the actual surface type as a DirectShow DirectDraw Surface (AMDDS) definition.
IDirectDrawVideo::GetSwitches

The GetSwitches method retrieves the surface types that the renderer is allowed to use.
IDirectDrawVideo::SetDefault

The SetDefault method makes the current property settings the global default.
IDirectDrawVideo::SetDirectDraw

The SetDirectDraw method passes the IDirectDraw interface to a loaded driver.
IDirectDrawVideo::SetSwitches

The SetSwitches method sets the surface types that the renderer is allowed to use.
IDirectDrawVideo::UseOverlayStretch

The UseOverlayStretch method determines whether the renderer should check overlay stretch limitations.
IDirectDrawVideo::UseScanLine

The UseScanLine method determines whether the renderer should check the current scan line when drawing a video.
IDirectDrawVideo::UseWhenFullScreen

The UseWhenFullScreen method determines whether DirectShow should change display mode when going to full-screen mode.
IDirectDrawVideo::WillUseFullScreen

The WillUseFullScreen method determines whether DirectShow will change display mode when going to full-screen mode.

Requirements

Requirement Value
Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Target Platform Windows
Header amvideo.h (include Dshow.h)