Функция 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;
}
}
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|