Compartir a través de


Método IQueueCommand::InvokeAtStreamTime (control.h)

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

El InvokeAtStreamTime método pone en cola un cambio de propiedad o método para su ejecución en un tiempo de flujo especificado (es decir, el tiempo de presentación con respecto al desplazamiento de tiempo de flujo actual).

Sintaxis

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

Dirección de una variable que recibe un puntero de interfaz IDeferredCommand .

[in] time

Hora en la que se va a invocar el comando.

[in] iid

Puntero al identificador de interfaz (IID) de la interfaz.

[in] dispidMethod

Identificador de envío (DISPID) de un método o propiedad en la interfaz. Equivalente al parámetro dispIdMember del método IDispatch::Invoke .

[in] wFlags

Marcas que describen el contexto de la llamada. Equivalente al parámetro wFlags del método IDispatch::Invoke .

[in] cArgs

Número de argumentos en pDispParams. Equivalente al miembro cArgs de la estructura DISPPARAMS .

[in] pDispParams

Puntero a una matriz que contiene los argumentos. Equivalente al miembro rgvarg de la estructura DISPPARAMS .

[in, out] pvarResult

Puntero a un variant que recibe el resultado. Equivalente al parámetro pVarResult del método IDispatch::Invoke .

[out] puArgErr

Puntero a una variable que recibe el índice del primer argumento que tiene un error. Equivalente al parámetro puArgErr del método IDispatch::Invoke .

Valor devuelto

Devuelve un valor HRESULT .

Comentarios

Use el método IDispatch::GetIDsOfNames para recuperar el DISPID para el parámetro dispidMember .

Ejemplos

En el ejemplo siguiente se pone en cola un comando IMediaControl::Stop durante 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 Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado control.h (incluir Dshow.h)
Library Strmiids.lib

Consulte también

Códigos de error y éxito

IQueueCommand (Interfaz)