Freigeben über


FreeMediaType-Funktion

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

Die FreeMediaType-Funktion löscht den Formatblock in einer AM_MEDIA_TYPE-Struktur .

Syntax

void FreeMediaType(
   AM_MEDIA_TYPE &mt
);

Parameter

mt [ref]

Ein Verweis auf eine AM_MEDIA_TYPE-Struktur .

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Bemerkungen

Der Formatblock wird auf dem Heap zugeordnet. Das pbFormat-Element des AM_MEDIA_TYPE verweist auf den Formatblock. Verwenden Sie diese Funktion, um nur den Formatblock frei zu geben. Um eine zugeordnete AM_MEDIA_TYPE-Struktur zu löschen, rufen Sie DeleteMediaType auf.

Diese Funktion ist in der DirectShow-Basisklassenbibliothek definiert. Wenn Sie es vorziehen, keine Verknüpfung mit der Basisklassenbibliothek zu erstellen, 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;
    }
}

Anforderungen

Anforderung Wert
Header
Mtype.h (streams.h einschließen)
Bibliothek
Strmbase.lib (Einzelhandelsbuilds);
Strmbasd.lib (Debugbuilds)

Siehe auch

DeleteMediaType

Medientypfunktionen