Метод IAMDevMemoryAllocator::GetDevMemoryObject (strmif.h)
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]
Синтаксис
HRESULT GetDevMemoryObject(
[out] IUnknown **ppUnkInnner,
[in] IUnknown *pUnkOuter
);
Параметры
[out] ppUnkInnner
Адрес указателя на собственный IUnknown созданного объекта элемента управления. Этот внутренний интерфейс IUnknown должен быть освобожден при уничтожении внешнего объекта. Настраиваемый распределитель должен вызвать метод QueryInterface для этого указателя, чтобы получить интерфейс IAMDevMemoryControl .
[in] pUnkOuter
Указатель на собственный интерфейс IUnknown пользовательского распределителя. Этот интерфейс объединяет объект управления памятью устройства внутри пользовательского распределителя.
Возвращаемое значение
Возвращает значение HRESULT .
Комментарии
Объект управления памятью устройства необходим для агрегирования с пользовательским распределителем, так как отрисовщики, требующие использования встроенной памяти, будут запрашивать IAMDevMemoryControl при получении нового распределителя, чтобы убедиться, что память находится на том же устройстве. Это происходит потому, что аппаратный фильтр получит объект IMemAllocator , который может использовать или не использовать локальную память. Чтобы решить, является ли он совместимым распределителем, объект запрашивает интерфейс IAMDevMemoryControl для доступа к определенным методам. IAMDevMemoryControl создает агрегированный объект, который реализует методы IAMDevMemoryControl (часто это зависит от оборудования).
Правила реализации агрегирования внешнего объекта см. в документации по COM.
Требования
Целевая платформа | Windows |
Header | strmif.h (включая Dshow.h) |