FreeMediaType 函式

[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 DirectShow。 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 (包含 Streams.h)
程式庫
Strmbase.lib (零售組建) ;
Strmbasd.lib (偵錯組建)

另請參閱

DeleteMediaType

媒體類型函式