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 |