DeleteMediaType 函式

[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。

DeleteMediaType函式會刪除配置的AM_MEDIA_TYPE結構,包括格式區塊。

語法

void WINAPI DeleteMediaType(
   AM_MEDIA_TYPE *pmt
);

參數

Pmt

AM_MEDIA_TYPE結構的指標。

傳回值

此函式不會傳回值。

備註

使用此函式釋放使用 CoTaskMemAllocCreateMediaType配置的任何媒體類型結構。

此函式定義于 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 (包含 Streams.h)
程式庫
Strmbase.lib (零售組建) ;
Strmbasd.lib (偵錯組建)

另請參閱

FreeMediaType

媒體類型函式