次の方法で共有


GetBitmapFormatSize 関数

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]

この関数はGetBitmapFormatSize、指定した BITMAPINFOHEADER 構造体を保持できる VIDEOINFO 構造体に必要なサイズを計算します。

構文

LONG GetBitmapFormatSize(
   const BITMAPINFOHEADER *pHeader
);

パラメーター

pHeader

BITMAPINFOHEADER 構造体へのポインター。

戻り値

サイズをバイト単位で返します。

解説

BITMAPINFOHEADER 構造体の後にカラー マスクまたはパレット エントリが続く場合があるため、既存の BITMAPINFOHEADER 構造体から VIDEOINFO 構造体を構築するために必要なバイト数を特定することは困難な場合があります。

BITMAPINFOHEADER 構造体を VIDEOINFO 構造体にコピーするには、正しいオフセットを計算する HEADER マクロを使用します。

LONG size = GetBitmapFormatSize(&bmi);

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

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

要件

要件
ヘッダー
Wxutil.h (Streams.h を含む)
ライブラリ
Strmbase.lib (製品版ビルド);
Strmbasd.lib (デバッグ ビルド)

関連項目

ビデオ関数と画像関数