Méthode CBaseAllocator.Alloc
[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture in Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation au lieu de DirectShow, si 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 Alloc
méthode alloue de la mémoire pour les mémoires tampons.
Syntaxe
virtual HRESULT Alloc();
Paramètres
Cette méthode n’a aucun paramètre.
Valeur retournée
Retourne l’une des valeurs HRESULT suivantes.
Code de retour | Description |
---|---|
|
La configuration requise pour la mémoire tampon n’a pas changé. |
|
La configuration requise pour la mémoire tampon a changé. |
|
Les exigences de mémoire tampon n’ont pas été définies. |
Notes
Cette méthode est appelée par la méthode CBaseAllocator::Commit .
Dans la classe de base, cette méthode n’alloue pas de mémoire. Elle retourne une erreur si les exigences de la mémoire tampon n’ont pas été définies, S_FALSE si les exigences n’ont pas changé et S_OK si les exigences ont changé.
Une classe dérivée doit remplacer cette méthode pour effectuer l’allocation de mémoire réelle. En règle générale, la classe dérivée effectue les étapes suivantes :
- Appelez l’implémentation de la classe de base pour déterminer si la mémoire a vraiment besoin d’être allouée.
- Allouez de la mémoire.
- Créez des objets CMediaSample qui contiennent des blocs de mémoire à partir de l’étape 2.
- Ajoutez chaque objet CMediaSample à la liste des exemples gratuits (CBaseAllocator::m_lFree).
Pour obtenir un exemple, consultez CMemAllocator::Alloc.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête |
|
Bibliothèque |
|