Freigeben über


DeleteMediaType-Funktion

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

Die DeleteMediaType-Funktion löscht eine zugeordnete AM_MEDIA_TYPE-Struktur , einschließlich des Formatblocks.

Syntax

void WINAPI DeleteMediaType(
   AM_MEDIA_TYPE *pmt
);

Parameter

Pmt

Ein Zeiger auf eine AM_MEDIA_TYPE-Struktur .

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Bemerkungen

Verwenden Sie diese Funktion, um jede Medientypstruktur freizugeben, die entweder mit CoTaskMemAlloc oder CreateMediaType zugeordnet wurde.

Diese Funktion ist in der DirectShow-Basisklassenbibliothek definiert. Wenn Sie keine Verknüpfung mit der Basisklassenbibliothek herstellen möchten, können Sie den folgenden Code verwenden:

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

Anforderungen

Anforderung Wert
Header
Mtype.h (Einschließen von Streams.h)
Bibliothek
Strmbase.lib (Einzelhandelsbuilds);
Strmbasd.lib (Debugbuilds)

Siehe auch

FreeMediaType

Medientypfunktionen