Compartilhar via


Método IPinFlowControl::Block (strmif.h)

[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

O Block método bloqueia ou desbloqueia o fluxo de dados do pino.

Sintaxe

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

Parâmetros

[in] dwBlockFlags

Sinalizador que indica se o pino deve ser bloqueado ou desbloqueado. Deve ser um dos seguintes valores:

  • Zero: desbloqueie o fluxo de dados do pino.
  • AM_PIN_FLOW_CONTROL_BLOCK: bloquear o fluxo de dados do pino.

[in] hEvent

Manipule para um objeto de evento ou NULL. Se esse parâmetro não for NULL, o método será assíncrono e retornará imediatamente. O evento é sinalizado quando a operação é concluída. Se esse parâmetro for NULL, o método será síncrono e não será concluído até que o pino seja bloqueado. Se dwBlockFlags for zero, esse parâmetro deverá ser NULL.

Retornar valor

Retorna um valor HRESULT . Os possíveis valores incluem os seguintes.

Código de retorno Descrição
S_FALSE
O pino já está desbloqueado.
S_OK
Êxito.
VFW_E_PIN_ALREADY_BLOCKED
O pino já está bloqueado em outro thread.
VFW_E_PIN_ALREADY_BLOCKED_ON_THIS_THREAD
O pin já está bloqueado no thread de chamada.

Comentários

Esse método pode ser síncrono ou assíncrono:

  • Para chamá-lo de forma assíncrona, use a função CreateEvent para criar um objeto de evento. Passe o identificador de evento no parâmetro hEvent . O método retorna imediatamente e sinaliza o evento quando a operação é concluída. Chame uma função de espera, como WaitForSingleObject , para aguardar o evento.
  • Para chamar esse método de forma síncrona, defina o parâmetro hEvent como NULL. O método bloqueia até que seja concluído. O método pode não ser concluído até que o pino esteja pronto para entregar uma amostra. Se o filtro estiver pausado, o método poderá bloquear indefinidamente. Portanto, você não deve chamar esse método de forma síncrona do thread de aplicativo main.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho strmif.h (inclua Dshow.h)
Biblioteca Strmiids.lib

Confira também

Reconexão dinâmica

Códigos de erro e êxito

IPinFlowControl Interface