FreeMediaType 函数

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 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

媒体类型函数