Интерфейс IMemAllocator (strmif.h)

Интерфейс IMemAllocator выделяет образцы мультимедиа для перемещения данных между закреплениями.

Этот интерфейс используется контактами, которые совместно используют распределители, когда входной пин-код предоставляет интерфейс IMemInputPin . Контакты согласовывают, какие контакты будут предоставлять распределитель. Распределитель используется для выделения буферов памяти, извлечения пустых буферов и буферов выпуска. Не каждый фильтр создает собственный распределитель, поэтому один распределитель может использоваться несколькими фильтрами. Дополнительные сведения см. в разделе о подключении фильтров.

Приложения обычно не используют этот интерфейс.

Чтобы использовать распределитель, выполните следующие действия.

  1. Вызовите метод IMemAllocator::SetProperties , чтобы указать требования к буферу, включая количество буферов и размер каждого буфера.
  2. Вызовите метод IMemAllocator::Commit , чтобы выделить буферы.
  3. Вызовите метод IMemAllocator::GetBuffer для получения примеров мультимедиа. Этот метод блокируется до тех пор, пока не станет доступен следующий пример.
  4. Завершив работу с каждым примером, вызовите метод IUnknown::Release в примере. Образец не удаляется, когда его число ссылок достигает нуля. Вместо этого пример возвращается в список свободных элементов распределителя.
  5. Завершив использование распределителя, вызовите метод IMemAllocator::D ecommit , чтобы освободить память для буферов.

Наследование

Интерфейс IMemAllocator наследует от интерфейса IUnknown . IMemAllocator также имеет следующие типы элементов:

Методы

Интерфейс IMemAllocator имеет эти методы.

 
IMemAllocator::Commit

Метод Commit выделяет буферную память.
IMemAllocator::D ecommit

Метод Decommit освобождает буферную память.
IMemAllocator::GetBuffer

Метод GetBuffer извлекает образец мультимедиа, содержащий пустой буфер.
IMemAllocator::GetProperties

Метод GetProperties извлекает количество буферов, создаваемых распределителем, и свойства буфера.
IMemAllocator::ReleaseBuffer

Метод ReleaseBuffer освобождает образец носителя.
IMemAllocator::SetProperties

Метод SetProperties указывает количество буферов для выделения и размер каждого буфера.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header strmif.h (include Dshow.h)