Método IQueueCommand::InvokeAtStreamTime (control.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 InvokeAtStreamTime método enfileira um método ou alteração de propriedade para execução em um tempo de fluxo especificado (ou seja, hora da apresentação em relação ao deslocamento de tempo de fluxo atual).

Sintaxe

HRESULT InvokeAtStreamTime(
  [out]     IDeferredCommand **pCmd,
  [in]      REFTIME          time,
  [in]      GUID             *iid,
  [in]      long             dispidMethod,
  [in]      short            wFlags,
  [in]      long             cArgs,
  [in]      VARIANT          *pDispParams,
  [in, out] VARIANT          *pvarResult,
  [out]     short            *puArgErr
);

Parâmetros

[out] pCmd

Endereço de uma variável que recebe um ponteiro de interface IDeferredCommand .

[in] time

Hora em que invocar o comando.

[in] iid

Ponteiro para o IID (identificador de interface) da interface.

[in] dispidMethod

DISPID (identificador de expedição) de um método ou propriedade na interface. Equivalente ao parâmetro dispIdMember do método IDispatch::Invoke .

[in] wFlags

Sinalizadores que descrevem o contexto da chamada. Equivalente ao parâmetro wFlags do método IDispatch::Invoke .

[in] cArgs

Número de argumentos em pDispParams. Equivalente ao membro cArgs da estrutura DISPPARAMS .

[in] pDispParams

Ponteiro para uma matriz que contém os argumentos. Equivalente ao membro rgvarg da estrutura DISPPARAMS .

[in, out] pvarResult

Ponteiro para um VARIANT que recebe o resultado. Equivalente ao parâmetro pVarResult do método IDispatch::Invoke .

[out] puArgErr

Ponteiro para uma variável que recebe o índice do primeiro argumento que tem um erro. Equivalente ao parâmetro puArgErr do método IDispatch::Invoke .

Retornar valor

Retorna um valor HRESULT .

Comentários

Use o método IDispatch::GetIDsOfNames para recuperar o DISPID para o parâmetro dispidMember .

Exemplos

O exemplo a seguir enfileira um comando IMediaControl::Stop por 3,0 segundos.


IQueueCommand *pQ = 0;
IMediaControl *pControl = 0;

// Query for IQueueCommand.
pGraph->QueryInterface(IID_IQueueCommand, reinterpret_cast<void**>(&pQ));

// Query for IMediaControl.
pGraph->QueryInterface(IID_IMediaControl, reinterpret_cast<void**>(&pControl));

// Find the DISPID of the IMediaControl::Stop method.
OLECHAR *szMethod = OLESTR("Stop");

long dispid;
hr = pControl->GetIDsOfNames(IID_NULL, &szMethod, 1, 0, &dispid);

// Invoke the command.
IDeferredCommand *pCmd = 0;
hr = pQ->InvokeAtPresentationTime(&pCmd, 3.0,
    const_cast<GUID*>(&IID_IMediaControl), dispid, DISPATCH_METHOD, 
    0, 0, 0, 0);
if (SUCCEEDED(hr))
{
    pControl->Run();
    pCmd->Release();
}

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 control.h (inclua Dshow.h)
Biblioteca Strmiids.lib

Confira também

Códigos de erro e êxito

IQueueCommand Interface