Поделиться через


Метод IMemAllocatorCallbackTemp::SetNotify (strmif.h)

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

Метод SetNotify задает или удаляет обратный вызов в распределителе. Распределитель вызывает метод обратного вызова при каждом вызове метода IMemAllocator::ReleaseBuffer .

Синтаксис

HRESULT SetNotify(
  IMemAllocatorNotifyCallbackTemp *pNotify
);

Параметры

pNotify

Указатель на интерфейс IMemAllocatorNotifyCallbackTemp , который будет использоваться для обратного вызова. Вызывающий объект должен реализовать интерфейс . Используйте значение NULL , чтобы удалить обратный вызов.

Возвращаемое значение

Возвращает S_OK в случае успешного выполнения или код ошибки в противном случае.

Комментарии

При каждом вызове метода ReleaseBuffer распределителя он вызывает метод NotifyRelease в интерфейсе, указанном в pNotify. Метод ReleaseBuffer возвращает образец носителя в список свободного распределителя. Примеры вызывают этот метод, когда количество ссылок достигает нуля.

Распределитель содержит счетчик ссылок в интерфейсе IMemAllocatorNotifyCallbackTemp вызывающей стороны. Это может создавать циклические счетчики ссылок, тем самым предотвращая правильное освобождение объектов в графе. Поэтому, когда вызывающему объекту больше не нужны уведомления о обратном вызове, он должен снова вызвать этот метод со значением NULL. Подходящее время для этого — остановка графа или отключение контактов.

Требования

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

См. также раздел

Коды ошибок и успешности

Интерфейс IMemAllocatorCallbackTemp