Método IAMStreamControl::StartAt (strmif.h)

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in 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 Audio/Video Capture in 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 StartAt método informa ao pino quando começar a fornecer dados.

Sintaxe

HRESULT StartAt(
  [in] const REFERENCE_TIME *ptStart,
  [in] DWORD                dwCookie
);

Parâmetros

[in] ptStart

Ponteiro para um valor REFERENCE_TIME que especifica quando o pino deve começar a fornecer dados. Se o valor for MAXLONGLONG (0x7FFFFFFFFFFFFFFF), o método cancelará a solicitação inicial anterior. Se psStart for NULL, o pino será iniciado imediatamente quando o grafo for executado.

Para pinos de visualização, somente os valores NULL e MAXLONGLONG são válidos, pois os pinos de visualização não carimbam os exemplos que eles entregam.

[in] dwCookie

Especifica um valor a ser enviado junto com a notificação de início. Consulte Observações.

Valor retornado

Se o método for bem-sucedido, o valor retornado será S_OK. Caso contrário, retorna um valor HRESULT que indica a causa da falha.

Comentários

Por padrão, o pino entrega dados assim que o grafo de filtro é executado. O StartAt método faz com que o pino aguarde até um horário especificado após a execução do grafo, antes que o pino comece a fornecer dados.

Se o parâmetro dwCookie for diferente de zero, o pino enviará um evento EC_STREAM_CONTROL_STARTED quando começar a entregar dados. O primeiro parâmetro de evento é um ponteiro para a interface IPin do pino e o segundo é o valor de dwCookie.

Esse método implementa os seguintes casos especiais:

  • Se ptStart for NULL, o pin será iniciado assim que o grafo for executado. Nenhum evento é enviado e o valor de dwCookie é ignorado.
  • Se ptStart contiver o valor MAXLONGLONG e houver uma solicitação de parada pendente, o pino será iniciado quando o grafo for executado. Se não houver nenhuma solicitação de parada pendente, o pino permanecerá parado. Em ambos os casos, nenhum evento de início é enviado e o valor de dwCookie é ignorado.
Esse método também lida com as seguintes condições de limite:
  • Se a hora de início ficar entre os horários de início e parada de um exemplo, o pino entregará esse exemplo.
  • Se a hora de início for igual à hora de parada, o pino fornecerá uma amostra.
MAXLONGLONG é o maior valor de REFERENCE_TIME possível. Na biblioteca de classes base, ela também é definida como a MAX_TIME constante.

Requisitos

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

Confira também

Códigos de erro e êxito

IAMStreamControl Interface