Función DeleteMediaType

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

La función DeleteMediaType elimina una estructura de AM_MEDIA_TYPE asignada, incluido el bloque de formato.

Sintaxis

void WINAPI DeleteMediaType(
   AM_MEDIA_TYPE *pmt
);

Parámetros

Pmt

Puntero a una estructura AM_MEDIA_TYPE .

Valor devuelto

Esta función no devuelve ningún valor.

Observaciones

Use esta función para liberar cualquier estructura de tipo multimedia asignada mediante CoTaskMemAlloc o CreateMediaType.

Esta función se define en la biblioteca DirectShow Base Classes . Si prefiere no vincular a la biblioteca de clases base, puede usar el código siguiente:

// 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);
    }
}

Requisitos

Requisito Value
Encabezado
Mtype.h (include Streams.h)
Biblioteca
Strmbase.lib (compilaciones comerciales);
Strmbasd.lib (compilaciones de depuración)

Consulte también

FreeMediaType

Funciones de tipo de medio