次の方法で共有


DeleteMediaType 関数

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

DeleteMediaType 関数は、書式ブロックを含む、割り当てられたAM_MEDIA_TYPE構造体を削除します。

構文

void WINAPI DeleteMediaType(
   AM_MEDIA_TYPE *pmt
);

パラメーター

Pmt

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

戻り値

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

注釈

CoTaskMemAlloc または CreateMediaType を使用して割り当てられたメディアの種類の構造体を解放するには、この関数を使用します。

この関数は、 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;
    }
}


// Delete a media type structure that was allocated on the heap.
void _DeleteMediaType(AM_MEDIA_TYPE *pmt)
{
    if (pmt != NULL)
    {
        _FreeMediaType(*pmt); 
        CoTaskMemFree(pmt);
    }
}

要件

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

関連項目

FreeMediaType

メディアタイプ関数