Platform SDK: DirectX

IDirectDraw7::EnumDisplayModes

The IDirectDraw7::EnumDisplayModes method enumerates all the display modes that the hardware exposes through the DirectDraw object that are compatible with a provided surface description.

HRESULT EnumDisplayModes(
  DWORD dwFlags,                              
  LPDDSURFACEDESC2 lpDDSurfaceDesc2,          
  LPVOID lpContext,                           
  LPDDENUMMODESCALLBACK2 lpEnumModesCallback  
);

Parameters

dwFlags
DDEDM_REFRESHRATES
Enumerates modes with different refresh rates. IDirectDraw7::EnumDisplayModes guarantees that a particular mode is enumerated only once. This flag specifies whether the refresh rate is taken into account when determining whether a mode is unique.
DDEDM_STANDARDVGAMODES
Enumerates Mode 13 in addition to the 320x200x8 Mode X mode.
lpDDSurfaceDesc2
Address of a DDSURFACEDESC2 structure to be checked against available modes. If the value of this parameter is NULL, all modes are enumerated.
lpContext
Address of an application-defined structure to be passed to each enumeration member.
lpEnumModesCallback
Address of the EnumModesCallback2 function that the enumeration procedure calls every time a match is found.

Return Values

If the method succeeds, the return value is DD_OK.

If it fails, the method can return one of the following error values:

DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS

Remarks

This method enumerates the dwRefreshRate member of the DDSURFACEDESC2 structure; the IDirectDraw::EnumDisplayModes method does not contain this capability. If you use the IDirectDraw7::SetDisplayMode method to set the refresh rate of a new mode, use IDirectDraw7::EnumDisplayModes to enumerate the dwRefreshRate member.

This method differs from its counterparts in former interfaces in that it accepts the address of an EnumModesCallback2 function as a parameter, rather than an EnumModesCallback function.

Requirements

  Windows NT/2000: Requires Windows 2000.
  Windows 95/98: Requires Windows 98.
  Header: Declared in ddraw.h.

See Also

IDirectDraw7::GetDisplayMode, IDirectDraw7::SetDisplayMode, IDirectDraw7::RestoreDisplayMode