Condividi tramite


Funzione DeleteMediaType

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation invece di DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

La funzione DeleteMediaType elimina una struttura AM_MEDIA_TYPE allocata, incluso il blocco di formato.

Sintassi

void WINAPI DeleteMediaType(
   AM_MEDIA_TYPE *pmt
);

Parametri

Pmt

Puntatore a una struttura AM_MEDIA_TYPE .

Valore restituito

Questa funzione non restituisce un valore.

Commenti

Usare questa funzione per rilasciare qualsiasi struttura del tipo di supporto allocata usando CoTaskMemAlloc o CreateMediaType.

Questa funzione è definita nella libreria Classi di base DirectShow . Se si preferisce non collegarsi alla libreria di classi di base, è possibile usare il codice seguente:

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

Requisiti

Requisito Valore
Intestazione
Mtype.h (include Streams.h)
Libreria
Strmbase.lib (build retail);
Strmbasd.lib (build di debug)

Vedi anche

FreeMediaType

Funzioni del tipo di supporto