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


Метод IPinFlowControl::Block (strmif.h)

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

Метод Block блокирует или разблокирует поток данных из контакта.

Синтаксис

HRESULT Block(
  [in] DWORD  dwBlockFlags,
  [in] HANDLE hEvent
);

Параметры

[in] dwBlockFlags

Флаг, указывающий, следует ли блокировать или разблокировать закрепление. Необходимо установить одно из следующих значений.

  • Ноль: разблокировка потока данных из закрепления.
  • AM_PIN_FLOW_CONTROL_BLOCK. Блокировка потока данных из закрепления.

[in] hEvent

Дескриптор объекта события или NULL. Если этот параметр не равен NULL, метод является асинхронным и возвращается немедленно. Событие получает сигнал по завершении операции. Если этот параметр имеет значение NULL, метод является синхронным и не завершается, пока закрепление не будет заблокировано. Если dwBlockFlags равно нулю, этот параметр должен иметь значение NULL.

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

Возвращает значение HRESULT . Ниже приведены возможные значения.

Код возврата Описание
S_FALSE
Закрепление уже разблокировано.
S_OK
Успешно.
VFW_E_PIN_ALREADY_BLOCKED
Закрепление уже заблокировано в другом потоке.
VFW_E_PIN_ALREADY_BLOCKED_ON_THIS_THREAD
Закрепление уже заблокировано в вызывающем потоке.

Комментарии

Этот метод может быть синхронным или асинхронным:

  • Чтобы вызвать его асинхронно, используйте функцию CreateEvent для создания объекта события. Передайте дескриптор события в параметре hEvent . Метод возвращает немедленно и сообщает о событии после завершения операции. Вызовите функцию ожидания, например WaitForSingleObject , чтобы дождаться события.
  • Чтобы вызвать этот метод синхронно, задайте для параметра hEventзначение NULL. Метод блокируется до завершения. Метод может не завершиться, пока контакт не будет готов к доставке примера. Если фильтр приостановлен, метод может блокироваться на неопределенный срок. Поэтому не следует вызывать этот метод синхронно из потока приложения main.

Требования

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

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

Динамическое повторное подключение

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

Интерфейс IPinFlowControl