Метод CBaseAllocator.Alloc
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]
Метод Alloc
выделяет память для буферов.
Синтаксис
virtual HRESULT Alloc();
Параметры
Этот метод не имеет параметров.
Возвращаемое значение
Возвращает одно из следующих значений HRESULT .
Код возврата | Описание |
---|---|
|
Требования к буферу не изменились. |
|
Требования к буферу изменились. |
|
Требования к буферу не заданы. |
Комментарии
Этот метод вызывается методом CBaseAllocator::Commit .
В базовом классе этот метод не выделяет память. Он возвращает ошибку, если требования к буферу не заданы, S_FALSE, если требования не изменились, и S_OK, если требования изменились.
Производный класс должен переопределить этот метод для выполнения фактического выделения памяти. Как правило, производный класс выполняет следующие действия:
- Вызовите реализацию базового класса, чтобы определить, действительно ли требуется выделение памяти.
- Выделение памяти.
- Создайте объекты CMediaSample , содержащие блоки памяти из шага 2.
- Добавьте каждый объект CMediaSample в список бесплатных примеров (CBaseAllocator::m_lFree).
Пример см. в разделе CMemAllocator::Alloc.
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|