CBaseAllocator.Alloc-Methode
[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 Alloc
-Methode ordnet Arbeitsspeicher für die Puffer zu.
Syntax
virtual HRESULT Alloc();
Parameter
Diese Methode hat keine Parameter.
Rückgabewert
Gibt einen der folgenden HRESULT-Werte zurück.
Rückgabecode | Beschreibung |
---|---|
|
Die Pufferanforderungen haben sich nicht geändert. |
|
Die Pufferanforderungen haben sich geändert. |
|
Pufferanforderungen wurden nicht festgelegt. |
Bemerkungen
Diese Methode wird von der CBaseAllocator::Commit-Methode aufgerufen.
In der Basisklasse ordnet diese Methode keinen Arbeitsspeicher zu. Es wird ein Fehler zurückgegeben, wenn die Pufferanforderungen nicht festgelegt wurden, S_FALSE, wenn sich die Anforderungen nicht geändert haben, und S_OK, wenn sich die Anforderungen geändert haben.
Eine abgeleitete Klasse sollte diese Methode überschreiben, um die tatsächliche Speicherbelegung auszuführen. In der Regel führt die abgeleitete Klasse die folgenden Schritte aus:
- Rufen Sie die Basisklassenimplementierung auf, um zu bestimmen, ob der Arbeitsspeicher wirklich zugewiesen werden muss.
- Zuordnen von Arbeitsspeicher.
- Erstellen Sie CMediaSample-Objekte , die Speicherblöcke aus Schritt 2 enthalten.
- Fügen Sie jedes CMediaSample-Objekt der Liste der kostenlosen Beispiele hinzu (CBaseAllocator::m_lFree).
Ein Beispiel finden Sie unter CMemAllocator::Alloc.
Anforderungen
Anforderung | Wert |
---|---|
Header |
|
Bibliothek |
|