DeleteMediaType, fonction

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement au nouveau code d’utiliser MediaPlayer, IMFMediaEngine et La capture audio/vidéo dans Media Foundation au lieu de DirectShow, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

La fonction DeleteMediaType supprime une structure de AM_MEDIA_TYPE allouée, y compris le bloc de format.

Syntaxe

void WINAPI DeleteMediaType(
   AM_MEDIA_TYPE *pmt
);

Paramètres

Pmt

Pointeur vers une structure AM_MEDIA_TYPE .

Valeur renvoyée

Cette fonction ne retourne pas de valeur.

Notes

Utilisez cette fonction pour libérer toute structure de type multimédia allouée à l’aide de CoTaskMemAlloc ou CreateMediaType.

Cette fonction est définie dans la bibliothèque Classes de base DirectShow . Si vous préférez ne pas créer de lien vers la bibliothèque de classes de base, vous pouvez utiliser le code suivant :

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

Configuration requise

Condition requise Valeur
En-tête
Mtype.h (include Streams.h)
Bibliothèque
Strmbase.lib (builds de vente au détail) ;
Strmbasd.lib (builds de débogage)

Voir aussi

FreeMediaType

Fonctions de type multimédia