次の方法で共有


FreeMediaType 関数

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

FreeMediaType 関数は、AM_MEDIA_TYPE構造体の書式ブロックを削除します。

構文

void FreeMediaType(
   AM_MEDIA_TYPE &mt
);

パラメーター

mt [ref]

AM_MEDIA_TYPE構造体への参照。

戻り値

この関数は値を返しません。

注釈

フォーマット ブロックはヒープに割り当てられます。 AM_MEDIA_TYPEpbFormat メンバーは、書式ブロックを指します。 書式ブロックだけを解放するには、この関数を使用します。 割り当てられた AM_MEDIA_TYPE 構造体を削除するには、 DeleteMediaType を呼び出します。

この関数は、 DirectShow 基本クラス ライブラリで定義されています。 基底クラス ライブラリにリンクしない場合は、次のコードを使用できます。

// Release the format block for a media type.

void _FreeMediaType(AM_MEDIA_TYPE& mt)
{
    if (mt.cbFormat != 0)
    {
        CoTaskMemFree((PVOID)mt.pbFormat);
        mt.cbFormat = 0;
        mt.pbFormat = NULL;
    }
    if (mt.pUnk != NULL)
    {
        // pUnk should not be used.
        mt.pUnk->Release();
        mt.pUnk = NULL;
    }
}

要件

要件
ヘッダー
Mtype.h (Stream.h を含む)
ライブラリ
Strmbase.lib (小売ビルド);
Strmbasd.lib (デバッグ ビルド)

関連項目

DeleteMediaType

メディアタイプ関数