## DDCAPS

The DDCAPS structure represents the capabilities of the hardware exposed through the DirectDraw object. This structure contains a DDSCAPS structure used in this context to describe what kinds of DirectDrawSurface objects can be created. It may not be possible to simultaneously create all of the surfaces described by these capabilities. This structure is used with the IDirectDraw2::GetCaps method.

typedef struct _DDCAPS {

DWORD dwSize;

DWORD dwCaps; // driver-specific caps

DWORD dwCaps2; // more driver-specific caps

DWORD dwCKeyCaps; // color key caps

DWORD dwFXCaps; // stretching and effects caps

DWORD dwFXAlphaCaps; // alpha caps

DWORD dwPalCaps; // palette caps

DWORD dwSVCaps; // stereo vision caps

DWORD dwAlphaBltConstBitDepths; // alpha bit-depth members

DWORD dwAlphaBltPixelBitDepths; // .

DWORD dwAlphaBltSurfaceBitDepths; // .

DWORD dwAlphaOverlayConstBitDepths; // .

DWORD dwAlphaOverlayPixelBitDepths; // .

DWORD dwAlphaOverlaySurfaceBitDepths; // .

DWORD dwZBufferBitDepths; // Z-buffer bit depth

DWORD dwVidMemTotal; // total video memory

DWORD dwVidMemFree; // total free video memory

DWORD dwMaxVisibleOverlays; // maximum visible overlays

DWORD dwCurrVisibleOverlays; // overlays currently visible

DWORD dwNumFourCCCodes; // number of supported FOURCC codes

DWORD dwAlignBoundarySrc; // overlay alignment restrictions

DWORD dwAlignSizeSrc; // .

DWORD dwAlignBoundaryDest; // .

DWORD dwAlignSizeDest; // .

DWORD dwAlignStrideAlign; // stride alignment

DWORD dwRops[DD_ROP_SPACE]; // supported raster ops

DDSCAPS ddsCaps; // general surface caps

DWORD dwMinOverlayStretch; // overlay stretch factors

DWORD dwMaxOverlayStretch; // .

DWORD dwMinLiveVideoStretch; // obsolete

DWORD dwMaxLiveVideoStretch; // .

DWORD dwMinHwCodecStretch; // .

DWORD dwMaxHwCodecStretch; // .

DWORD dwReserved1; // reserved

DWORD dwReserved2; // .

DWORD dwReserved3; // .

DWORD dwSVBCaps; // system-to-video blit related caps

DWORD dwSVBCKeyCaps; // .

DWORD dwSVBFXCaps; // .

DWORD dwSVBRops[DD_ROP_SPACE]; // .

DWORD dwSVBCaps; // video-to-system blit related caps

DWORD dwVSBCKeyCaps; // .

DWORD dwVSBFXCaps; // .

DWORD dwVSBRops[DD_ROP_SPACE]; // .

DWORD dwSSBCaps; // system-to-system blit related caps

DWORD dwSSBCKeyCaps; // .

DWORD dwSSBCFXCaps; // .

DWORD dwSSBRops[DD_ROP_SPACE]; // .

DWORD dwMaxVideoPorts; // maximum number of live video ports

DWORD dwCurrVideoPorts; // current number of live video ports

DWORD dwSVBCaps2; // additional system-to-video blit caps

DWORD dwNLVBCaps; // nonlocal-to-local video memory blit caps

DWORD dwNLVBCaps2; // .

DWORD dwNLVBCKeyCaps; // .

DWORD dwNLVBFXCaps; // .

DWORD dwNLVBRops[DD_ROP_SPACE];// .

DWORD dwReserved4; // reserved

DWORD dwReserved5; // .

DWORD dwReserved6; // .

} DDCAPS,FAR* LPDDCAPS;

##### Members

dwSize
  Size of the structure, in bytes. This member must be initialized before the structure is used.
dwCaps
  Driver-specific capabilities.

  DDCAPS_3D
  | Indicates that the display hardware has 3-D acceleration.
  DDCAPS_ALIGNBOUNDARYDEST
  | Indicates that DirectDraw will support only those overlay destination rectangles with the x-axis aligned to the dwAlignBoundaryDest boundaries of the surface.
  DDCAPS_ALIGNBOUNDARYSRC
  | Indicates that DirectDraw will support only those source rectangles with the x-axis aligned to the dwAlignBoundarySrc boundaries of the surface.
  DDCAPS_ALIGNSIZEDEST
  | Indicates that DirectDraw will support only those overlay destination rectangles whose x-axis sizes, in pixels, are dwAlignSizeDest multiples.
  DDCAPS_ALIGNSIZESRC
  | Indicates that DirectDraw will support only those overlay source rectangles whose x-axis sizes, in pixels, are dwAlignSizeSrc multiples.
  DDCAPS_ALIGNSTRIDE
  | Indicates that DirectDraw will create display memory surfaces that have a stride alignment equal to the dwAlignStrideAlign value.
  DDCAPS_ALPHA
  | Indicates that the display hardware supports an alpha channel during blit operations.
  DDCAPS_BANKSWITCHED
  | Indicates that the display hardware is bank-switched and is potentially very slow at random access to display memory.
  DDCAPS_BLT
  | Indicates that display hardware is capable of blit operations.
  DDCAPS_BLTCOLORFILL
  | Indicates that display hardware is capable of color filling with a blitter.
  DDCAPS_BLTDEPTHFILL
  | Indicates that display hardware is capable of depth filling z-buffers with a blitter.
  DDCAPS_BLTFOURCC
  | Indicates that display hardware is capable of color-space conversions during blit operations.
  DDCAPS_BLTQUEUE
  | Indicates that display hardware is capable of asynchronous blit operations.
  DDCAPS_BLTSTRETCH
  | Indicates that display hardware is capable of stretching during blit operations.
  DDCAPS_CANBLTSYSMEM
  | Indicates that display hardware is capable of blitting to or from system memory.
  DDCAPS_CANCLIP
  | Indicates that display hardware is capable of clipping with blitting.
  DDCAPS_CANCLIPSTRETCHED
  | Indicates that display hardware is capable of clipping while stretch blitting.
  DDCAPS_COLORKEY
  | Supports some form of color key in either overlay or blit operations. More specific color key capability information can be found in the dwCKeyCaps member.
  DDCAPS_COLORKEYHWASSIST
  | Indicates that the color key is partially hardware assisted. This means that other resources (CPU and/or video memory) might be used. If this bit is not set, full hardware support is in place.
  DDCAPS_GDI
  | Indicates that display hardware is shared with GDI.
  DDCAPS_NOHARDWARE
  | Indicates that there is no hardware support.
  DDCAPS_OVERLAY
  | Indicates that display hardware supports overlays.
  DDCAPS_OVERLAYCANTCLIP
  | Indicates that display hardware supports overlays but cannot clip them.
  DDCAPS_OVERLAYFOURCC
  | Indicates that overlay hardware is capable of color-space conversions during overlay operations.
  DDCAPS_OVERLAYSTRETCH
  | Indicates that overlay hardware is capable of stretching. The dwMinOverlayStretch and dwMaxOverlayStretch members contain valid data.
  DDCAPS_PALETTE
  | Indicates that DirectDraw is capable of creating and supporting DirectDrawPalette objects for more surfaces than only the primary surface.
  DDCAPS_PALETTEVSYNC
  | Indicates that DirectDraw is capable of updating a palette synchronized with the vertical refresh.
  DDCAPS_READSCANLINE
  | Indicates that display hardware is capable of returning the current scan line.
  DDCAPS_STEREOVIEW
  | Indicates that display hardware has stereo vision capabilities.
  DDCAPS_VBI
  | Indicates that display hardware is capable of generating a vertical-blank interrupt.
  DDCAPS_ZBLTS
  | Supports the use of z-buffers with blit operations.
  DDCAPS_ZOVERLAYS
  | Supports the use of the IDirectDrawSurface3::UpdateOverlayZOrder method as a z-value for overlays to control their layering.

dwCaps2
  More driver-specific capabilities.

  DDCAPS2_AUTOFLIPOVERLAY
  | The overlay can be automatically flipped to the next surface in the flip chain each time a video port VSYNC occurs, allowing the video port and the overlay to double buffer the video without CPU overhead. This option is only valid when the surface is receiving data from a video port. If the video port data is non-interlaced or non-interleaved, it will flip on every VSYNC. If the data is being interleaved in memory, it will flip on every other VSYNC.
  DDCAPS2_CANBOBINTERLEAVED
  | The overlay hardware can display each field individually of an interlaced video stream while it is interleaved in memory without causing any artifacts that might normally occur without special hardware support. This option is only valid when the surface is receiving data from a video port and is only valid when the video is zoomed at least 2X in the vertical direction.
  DDCAPS2_CANBOBNONINTERLEAVED
  | The overlay hardware can display each field individually of an interlaced video stream while it is not interleaved in memory without causing any artifacts that might normally occur without special hardware support. This option is only valid when the surface is receiving data from a video port and is only valid when the video is zoomed at least 2X in the vertical direction.
  DDCAPS2_CANDROPZ16BIT
  | Sixteen-bit RGBZ values can be converted into sixteen-bit RGB values. (The system does not support eight-bit conversions.)
  DDCAPS2_CANFLIPODDEVEN
  | The driver is capable of performing odd and even flip operations, as specified by the DDFLIP_ODD and DDFLIP_EVEN flags used with the IDirectDrawSurface3::Flip method.
  DDCAPS2_CANSMOOTHINTERLEAVED
  | Overlay can display each field of interlaced data individually while it is interleaved in memory without causing jittery artifacts.
  DDCAPS2_CANSMOOTHNONINTERLEAVED
  | Overlay can display each field of interlaced data individually while it is not interleaved in memory without causing jittery artifacts.
  DDCAPS2_CERTIFIED
  | Indicates that display hardware is certified.
  DDCAPS2_COLORCONTROLPRIMARY
  | The primary surface contains color controls (gamma, etc.)
  DDCAPS2_COLORCONTROLOVERLAY
  | The overlay surface contains color controls (brightness, sharpness, etc.)
  DDCAPS2_NO2DDURING3DSCENE
  | Indicates that 2-D operations such as IDirectDrawSurface3::Blt and IDirectDrawSurface3::Lock cannot be performed on any surfaces that Direct3D® is using between calls to the IDirect3DDevice2::BeginScene and IDirect3DDevice2::EndScene methods.
  DDCAPS2_NONLOCALVIDMEM
  | Indicates that the display driver supports surfaces in non-local video memory.
  DDCAPS2_NONLOCALVIDMEMCAPS
  | Indicates that blit capabilities for non-local video memory surfaces differ from local video memory surfaces. If this flag is present, the DDCAPS2_NONLOCALVIDMEM flag will also be present.
  DDCAPS2_NOPAGELOCKREQUIRED
  | DMA blit operations are supported on system memory surfaces that are not page locked.
  DDCAPS2_VIDEOPORT
  | Indicates that display hardware supports live video.
  DDCAPS2_WIDESURFACES
  | Indicates that the display surfaces supports surfaces wider than the primary surface.

dwCKeyCaps
  Color-key capabilities.

  DDCKEYCAPS_DESTBLT
  | Supports transparent blitting with a color key that identifies the replaceable bits of the destination surface for RGB colors.
  DDCKEYCAPS_DESTBLTCLRSPACE
  | Supports transparent blitting with a color space that identifies the replaceable bits of the destination surface for RGB colors.
  DDCKEYCAPS_DESTBLTCLRSPACEYUV
  | Supports transparent blitting with a color space that identifies the replaceable bits of the destination surface for YUV colors.
  DDCKEYCAPS_DESTBLTYUV
  | Supports transparent blitting with a color key that identifies the replaceable bits of the destination surface for YUV colors.
  DDCKEYCAPS_DESTOVERLAY
  | Supports overlaying with color keying of the replaceable bits of the destination surface being overlaid for RGB colors.
  DDCKEYCAPS_DESTOVERLAYCLRSPACE
  | Supports a color space as the color key for the destination of RGB colors.
  DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV
  | Supports a color space as the color key for the destination of YUV colors.
  DDCKEYCAPS_DESTOVERLAYONEACTIVE
  | Supports only one active destination color key value for visible overlay surfaces .
  DDCKEYCAPS_DESTOVERLAYYUV
  | Supports overlaying using color keying of the replaceable bits of the destination surface being overlaid for YUV colors.
  DDCKEYCAPS_NOCOSTOVERLAY
  | Indicates there are no bandwidth trade-offs for using the color key with an overlay.
  DDCKEYCAPS_SRCBLT
  | Supports transparent blitting using the color key for the source with this surface for RGB colors.
  DDCKEYCAPS_SRCBLTCLRSPACE
  | Supports transparent blitting using a color space for the source with this surface for RGB colors.
  DDCKEYCAPS_SRCBLTCLRSPACEYUV
  | Supports transparent blitting using a color space for the source with this surface for YUV colors.
  DDCKEYCAPS_SRCBLTYUV
  | Supports transparent blitting using the color key for the source with this surface for YUV colors.
  DDCKEYCAPS_SRCOVERLAY
  | Supports overlaying using the color key for the source with this overlay surface for RGB colors.
  DDCKEYCAPS_SRCOVERLAYCLRSPACE
  | Supports overlaying using a color space as the source color key for the overlay surface for RGB colors.
  DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV
  | Supports overlaying using a color space as the source color key for the overlay surface for YUV colors.
  DDCKEYCAPS_SRCOVERLAYONEACTIVE
  | Supports only one active source color key value for visible overlay surfaces.
  DDCKEYCAPS_SRCOVERLAYYUV
  | Supports overlaying using the color key for the source with this overlay surface for YUV colors.

dwFXCaps
  Driver-specific stretching and effects capabilities.

  DDFXCAPS_BLTARITHSTRETCHY
  | Uses arithmetic operations, rather than pixel-doubling techniques, to stretch and shrink surfaces during a blit operation. Occurs along the y-axis (vertically).
  DDFXCAPS_BLTARITHSTRETCHYN
  | Uses arithmetic operations, rather than pixel-doubling techniques, to stretch and shrink surfaces during a blit operation. Occurs along the y-axis (vertically), and works only for integer stretching (´1, ´2, and so on).
  DDFXCAPS_BLTMIRRORLEFTRIGHT
  | Supports mirroring left to right in a blit operation.
  DDFXCAPS_BLTMIRRORUPDOWN
  | Supports mirroring top to bottom in a blit operation.
  DDFXCAPS_BLTROTATION
  | Supports arbitrary rotation in a blit operation.
  DDFXCAPS_BLTROTATION90
  | Supports 90-degree rotations in a blit operation.
  DDFXCAPS_BLTSHRINKX
  | Supports arbitrary shrinking of a surface along the x-axis (horizontally). This flag is valid only for blit operations.
  DDFXCAPS_BLTSHRINKXN
  | Supports integer shrinking (´1, ´2, and so on) of a surface along the x-axis (horizontally). This flag is valid only for blit operations.
  DDFXCAPS_BLTSHRINKY
  | Supports arbitrary shrinking of a surface along the y-axis (vertically). This flag is valid only for blit operations.
  DDFXCAPS_BLTSHRINKYN
  | Supports integer shrinking (´1, ´2, and so on) of a surface along the y-axis (vertically). This flag is valid only for blit operations.
  DDFXCAPS_BLTSTRETCHX
  | Supports arbitrary stretching of a surface along the x-axis (horizontally). This flag is valid only for blit operations.
  DDFXCAPS_BLTSTRETCHXN
  | Supports integer stretching (´1, ´2, and so on) of a surface along the x-axis (horizontally). This flag is valid only for blit operations.
  DDFXCAPS_BLTSTRETCHY
  | Supports arbitrary stretching of a surface along the y-axis (vertically). This flag is valid only for blit operations.
  DDFXCAPS_BLTSTRETCHYN
  | Supports integer stretching (´1, ´2, and so on) of a surface along the y-axis (vertically). This flag is valid only for blit operations.
  DDFXCAPS_OVERLAYARITHSTRETCHY
  | Uses arithmetic operations, rather than pixel-doubling techniques, to stretch and shrink surfaces during an overlay operation. Occurs along the y-axis (vertically).
  DDFXCAPS_OVERLAYARITHSTRETCHYN
  | Uses arithmetic operations, rather than pixel-doubling techniques, to stretch and shrink surfaces during an overlay operation. Occurs along the y-axis (vertically), and works only for integer stretching (´1, ´2, and so on).
  DDFXCAPS_OVERLAYMIRRORLEFTRIGHT
  | Supports mirroring of overlays around the vertical axis.
  DDFXCAPS_OVERLAYMIRRORUPDOWN
  | Supports mirroring of overlays across the horizontal axis.
  DDFXCAPS_OVERLAYSHRINKX
  | Supports arbitrary shrinking of a surface along the x-axis (horizontally). This flag is valid only for DDSCAPS_OVERLAY surfaces. This flag indicates only the capabilities of a surface; it does not indicate that shrinking is available.
  DDFXCAPS_OVERLAYSHRINKXN
  | Supports integer shrinking (´1, ´2, and so on) of a surface along the x-axis (horizontally). This flag is valid only for DDSCAPS_OVERLAY surfaces. This flag indicates only the capabilities of a surface; it does not indicate that shrinking is available.
  DDFXCAPS_OVERLAYSHRINKY
  | Supports arbitrary shrinking of a surface along the y-axis (vertically). This flag is valid only for DDSCAPS_OVERLAY surfaces. This flag indicates only the capabilities of a surface; it does not indicate that shrinking is available.
  DDFXCAPS_OVERLAYSHRINKYN
  | Supports integer shrinking (´1, ´2, and so on) of a surface along the y-axis (vertically). This flag is valid only for DDSCAPS_OVERLAY surfaces. This flag indicates only the capabilities of a surface; it does not indicate that shrinking is available.
  DDFXCAPS_OVERLAYSTRETCHX
  | Supports arbitrary stretching of a surface along the x-axis (horizontally). This flag is valid only for DDSCAPS_OVERLAY surfaces. This flag indicates only the capabilities of a surface; it does not indicate that stretching is available.
  DDFXCAPS_OVERLAYSTRETCHXN
  | Supports integer stretching (´1, ´2, and so on) of a surface along the x-axis (horizontally). This flag is valid only for DDSCAPS_OVERLAY surfaces. This flag indicates only the capabilities of a surface; it does not indicate that stretching is available.
  DDFXCAPS_OVERLAYSTRETCHY
  | Supports arbitrary stretching of a surface along the y-axis (vertically). This flag is valid only for DDSCAPS_OVERLAY surfaces. This flag indicates only the capabilities of a surface; it does not indicate that stretching is available.
  DDFXCAPS_OVERLAYSTRETCHYN
  | Supports integer stretching (´1, ´2, and so on) of a surface along the y-axis (vertically). This flag is valid only for DDSCAPS_OVERLAY surfaces. This flag indicates only the capabilities of a surface; it does not indicate that stretching is available.

dwFXAlphaCaps
  Driver-specific alpha capabilities.

  DDFXALPHACAPS_BLTALPHAEDGEBLEND
  | Supports alpha blending around the edge of a source color-keyed surface. Used for blit operations.
  DDFXALPHACAPS_BLTALPHAPIXELS
  | Supports alpha information in pixel format. The bit depth of alpha information in the pixel format can be 1, 2, 4, or 8. The alpha value becomes more opaque as the alpha value increases. Regardless of the depth of the alpha information, 0 is always the fully transparent value. Used for blit operations.
  DDFXALPHACAPS_BLTALPHAPIXELSNEG
  | Supports alpha information in pixel format. The bit depth of alpha information in the pixel format can be 1, 2, 4, or 8. The alpha value becomes more transparent as the alpha value increases. Regardless of the depth of the alpha information, 0 is always the fully opaque value. This flag can be used only if DDCAPS_ALPHA is set. Used for blit operations.
  DDFXALPHACAPS_BLTALPHASURFACES
  | Supports alpha-only surfaces. The bit depth of an alpha-only surface can be 1, 2, 4, or 8. The alpha value becomes more opaque as the alpha value increases. Regardless of the depth of the alpha information, 0 is always the fully transparent value. Used for blit operations.
  DDFXALPHACAPS_BLTALPHASURFACESNEG
  | Indicates that the alpha channel becomes more transparent as the alpha value increases. The depth of the alpha channel data can be 1, 2, 4, or 8. Regardless of the depth of the alpha information, 0 is always the fully opaque value. This flag can be set only if DDCAPS_ALPHA has been set. Used for blit operations.
  DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND
  | Supports alpha blending around the edge of a source color-keyed surface. Used for overlays.
  DDFXALPHACAPS_OVERLAYALPHAPIXELS
  | Supports alpha information in pixel format. The bit depth of alpha information in pixel format can be 1, 2, 4, or 8. The alpha value becomes more opaque as the alpha value increases. Regardless of the depth of the alpha information, 0 is always the fully transparent value. Used for overlays.
  DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG
  | Supports alpha information in pixel format. The bit depth of alpha information in pixel format can be 1, 2, 4, or 8. The alpha value becomes more transparent as the alpha value increases. Regardless of the depth of the alpha information, 0 is always the fully opaque value. This flag can be used only if DDCAPS_ALPHA has been set. Used for overlays.
  DDFXALPHACAPS_OVERLAYALPHASURFACES
  | Supports alpha-only surfaces. The bit depth of an alpha-only surface can be 1, 2, 4, or 8. The alpha value becomes more opaque as the alpha value increases. Regardless of the depth of the alpha information, 0 is always the fully transparent value. Used for overlays.
  DDFXALPHACAPS_OVERLAYALPHASURFACESNEG
  | Indicates that the alpha channel becomes more transparent as the alpha value increases. The depth of the alpha channel data can be 1, 2, 4, or 8. Regardless of the depth of the alpha information, 0 is always the fully opaque value. This flag can be used only if DDCAPS_ALPHA has been set. Used for overlays.

dwPalCaps
  Palette capabilities.

  DDPCAPS_1BIT
  | Indicates that the index is 1 bit. There are two entries in the color table.
  DDPCAPS_2BIT
  | Indicates that the index is 2 bits. There are four entries in the color table.
  DDPCAPS_4BIT
  | Indicates that the index is 4 bits. There are 16 entries in the color table.
  DDPCAPS_8BIT
  | Indicates that the index is 8 bits. There are 256 entries in the color table.
  DDPCAPS_8BITENTRIES
  | Specifies an index to an 8-bit color index. This field is valid only when used with the DDPCAPS_1BIT, DDPCAPS_2BIT, or DDPCAPS_4BIT capability and when the target surface is in 8 bits per pixel (bpp). Each color entry is 1 byte long and is an index to an 8-bpp palette on the destination surface.
  DDPCAPS_ALLOW256
  | Indicates that this palette can have all 256 entries defined.
  DDPCAPS_PRIMARYSURFACE
  | Indicates that the palette is attached to the primary surface. Changing the palette has an immediate effect on the display unless the DDPCAPS_VSYNC capability is specified and supported.
  DDPCAPS_PRIMARYSURFACELEFT
  | Indicates that the palette is attached to the primary surface on the left. Changing the palette has an immediate effect on the display unless the DDPCAPS_VSYNC capability is specified and supported.
  DDPCAPS_VSYNC
  | Indicates that the palette can be modified synchronously with the monitor's refresh rate.

dwSVCaps
  Stereo vision capabilities.

  DDSVCAPS_ENIGMA
  | Indicates that the stereo view is accomplished using Enigma encoding.
  DDSVCAPS_FLICKER
  | Indicates that the stereo view is accomplished using high-frequency flickering.
  DDSVCAPS_REDBLUE
  | Indicates that the stereo view is accomplished when the viewer looks at the image through red and blue filters placed over the left and right eyes. All images must adapt their color spaces for this process.
  DDSVCAPS_SPLIT
  | Indicates that the stereo view is accomplished with split-screen technology.

dwAlphaBltConstBitDepths
  DDBD_2, DDBD_4, or DDBD_8. (Indicates 2-, 4-, or 8-bits per pixel.)
dwAlphaBltPixelBitDepths
  DDBD_1, DDBD_2, DDBD_4, or DDBD_8. (Indicates 1-, 2-, 4-, or 8-bits per pixel.)
dwAlphaBltSurfaceBitDepths
  DDBD_1, DDBD_2, DDBD_4, or DDBD_8. (Indicates 1-, 2-, 4-, or 8-bits per pixel.)
dwAlphaOverlayConstBitDepths
  DDBD_2, DDBD_4, or DDBD_8. (Indicates 2-, 4-, or 8-bits per pixel.)
dwAlphaOverlayPixelBitDepths
  DDBD_1, DDBD_2, DDBD_4, or DDBD_8. (Indicates 1-, 2-, 4-, or 8-bits per pixel.)
dwAlphaOverlaySurfaceBitDepths
  DDBD_1, DDBD_2, DDBD_4, or DDBD_8. (Indicates 1-, 2-, 4-, or 8-bits per pixel.)
dwZBufferBitDepths
  DDBD_8, DDBD_16, or DDBD_24. (Indicates 8-, 16-, 24-bits per pixel.) 32-bit z-buffers are not supported.
dwVidMemTotal
  Total amount of display memory.
dwVidMemFree
  Amount of free display memory.
dwMaxVisibleOverlays
  Maximum number of visible overlays.
dwCurrVisibleOverlays
  Current number of visible overlays.
dwNumFourCCCodes
  Number of FourCC codes.
dwAlignBoundarySrc
  Source rectangle alignment for an overlay surface, in pixels.
dwAlignSizeSrc
  Source rectangle size alignment for an overlay surface, in pixels. Overlay source rectangles must have a pixel width that is a multiple of this value.
dwAlignBoundaryDest
  Destination rectangle alignment for an overlay surface, in pixels.
dwAlignSizeDest
  Destination rectangle size alignment for an overlay surface, in pixels. Overlay destination rectangles must have a pixel width that is a multiple of this value.
dwAlignStrideAlign
  Stride alignment.
dwRops[DD_ROP_SPACE]
  Raster operations supported.
ddsCaps
  DDSCAPS structure with general capabilities.
dwMinOverlayStretch and dwMaxOverlayStretch
  Minimum and maximum overlay stretch factors multiplied by 1000. For example, 1.3 = 1300.
dwMinLiveVideoStretch and dwMaxLiveVideoStretch
  These members are obsolete; do not use.
dwMinHwCodecStretch and dwMaxHwCodecStretch
  These members are obsolete; do not use.
dwReserved1, dwReserved2, and dwReserved3
  Reserved for future use.
dwSVBCaps
  Driver-specific capabilities for system-memory-to-display-memory blits. Valid flags are identical to the blit-related flags used with the dwCaps member.
dwSVBCKeyCaps
  Driver color-key capabilities for system-memory-to-display-memory blits. Valid flags are identical to the blit-related flags used with for the dwCKeyCaps member.
dwSVBFXCaps
  Driver FX capabilities for system-memory-to-display-memory blits. Valid flags are identical to the blit-related flags used with the dwFXCaps member.
dwSVBRops[DD_ROP_SPACE]
  Raster operations supported for system-memory-to-display-memory blits.
dwVSBCaps
  Driver-specific capabilities for display-memory-to-system-memory blits. Valid flags are identical to the blit-related flags used with the dwCaps member.
dwVSBCKeyCaps
  Driver color-key capabilities for display-memory-to-system-memory blits. Valid flags are identical to the blit-related flags used with for the dwCKeyCaps member.
dwVSBFXCaps
  Driver FX capabilities for display-memory-to-system-memory blits. Valid flags are identical to the blit-related flags used with the dwFXCaps member.
dwVSBRops[DD_ROP_SPACE]
  Raster operations supported for display-memory-to-system-memory blits.
dwSSBCaps
  Driver-specific capabilities for system-memory-to-system-memory blits. Valid flags are identical to the blit-related flags used with the dwCaps member.
dwSSBCKeyCaps
  Driver color-key capabilities for system-memory-to-system-memory blits. Valid flags are identical to the blit-related flags used with for the dwCKeyCaps member.
dwSSBCFXCaps
  Driver FX capabilities for system-memory-to-system-memory blits. Valid flags are identical to the blit-related flags used with the dwFXCaps member.
dwSSBRops[DD_ROP_SPACE]
  Raster operations supported for system-memory-to-system-memory blits.
dwMaxVideoPorts
  Maximum number of live video ports.
dwCurrVideoPorts
  Current number of live video ports.
dwSVBCaps2
  More driver-specific capabilities for system-memory-to-video-memory blits. Valid flags are identical to the blit-related flags used with the dwCaps2 member.
dwNLVBCaps
  Driver-specific capabilities for nonlocal-to-local video memory blits. Valid flags are identical to the blit-related flags used with the dwCaps member.
dwNLVBCaps2
  More driver-specific capabilities for nonlocal-to-local video memory blits. Valid flags are identical to the blit-related flags used with the dwCaps2 member.
dwNLVBCKeyCaps
  Driver color-key capabilities for nonlocal-to-local video memory blits. Valid flags are identical to the blit-related flags used with for the dwCKeyCaps member.
dwNLVBFXCaps
  Driver FX capabilities for nonlocal-to-local video memory blits. Valid flags are identical to the blit-related flags used with the dwFXCaps member.
dwNLVBRops[DD_ROP_SPACE]
  Raster operations supported for nonlocal-to-local video memory blits.
dwReserved4, dwReserved5, and dwReserved6
  Reserved for future use.