Функция DeleteMediaType
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]
Функция DeleteMediaType удаляет выделенную AM_MEDIA_TYPE структуру, включая блок форматирования.
Синтаксис
void WINAPI DeleteMediaType(
AM_MEDIA_TYPE *pmt
);
Параметры
-
Pmt
-
Указатель на структуру AM_MEDIA_TYPE .
Возвращаемое значение
Эта функция не возвращает значение.
Комментарии
Эта функция позволяет освободить любую структуру типов мультимедиа, выделенную с помощью CoTaskMemAlloc или CreateMediaType.
Эта функция определена в библиотеке базовых классов 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);
}
}
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|