GetBitmapFormatSize function

[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 GetBitmapFormatSize function calculates the size needed for a VIDEOINFO structure that can hold a specified BITMAPINFOHEADER structure.

Syntax

LONG GetBitmapFormatSize(
   const BITMAPINFOHEADER *pHeader
);

Parameters

pHeader

Pointer to a BITMAPINFOHEADER structure.

Return value

Returns the size, in bytes.

Remarks

A BITMAPINFOHEADER structure might be followed by color masks or palette entries, so it can be difficult to determine the number of bytes required to construct a VIDEOINFO structure from an existing BITMAPINFOHEADER structure.

To copy a BITMAPINFOHEADER structure into a VIDEOINFO structure, use the HEADER macro, which calculates the correct offset.

Examples

LONG size = GetBitmapFormatSize(&bmi);

VIDEOINFO *pVi = static_cast<VIDEOINFO*>(CoTaskMemAlloc(size));

if (pVi != NULL)
{
    CopyMemory(HEADER(pVi), &bmi, sizeof(BITMAPINFOHEADER));
}

Requirements

Requirement Value
Header
Wxutil.h (include Streams.h)
Library
Strmbase.lib (retail builds);
Strmbasd.lib (debug builds)

See also

Video and Image Functions