Поделиться через


Функция FreeMediaType

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

Функция FreeMediaType удаляет блок формата в AM_MEDIA_TYPE структуре.

Синтаксис

void FreeMediaType(
   AM_MEDIA_TYPE &mt
);

Параметры

mt [ссылка]

Ссылка на структуру AM_MEDIA_TYPE .

Возвращаемое значение

Эта функция не возвращает значение.

Комментарии

Блок формата выделяется в куче. Элемент pbFormatAM_MEDIA_TYPE указывает на блок формата. Используйте эту функцию, чтобы освободить только блок форматирования. Чтобы удалить выделенную 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

Функции типов мультимедиа