Condividi tramite


Metodo IQueueCommand::InvokeAtStreamTime (control.h)

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Il InvokeAtStreamTime metodo accoda un metodo o una modifica della proprietà per l'esecuzione in un intervallo di flusso specificato, ovvero il tempo di presentazione relativo all'offset dell'ora di flusso corrente.

Sintassi

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
);

Parametri

[out] pCmd

Indirizzo di una variabile che riceve un puntatore di interfaccia IDeferredCommand .

[in] time

Ora in cui richiamare il comando.

[in] iid

Puntatore all'identificatore di interfaccia (IID) dell'interfaccia.

[in] dispidMethod

Identificatore di invio (DISPID) di un metodo o di una proprietà nell'interfaccia. Equivalente al parametro dispIdMember del metodo IDispatch::Invoke .

[in] wFlags

Flag che descrivono il contesto della chiamata. Equivalente al parametro wFlags del metodo IDispatch::Invoke .

[in] cArgs

Numero di argomenti in pDispParams. Equivalente al membro cArgs della struttura DISPPARAMS .

[in] pDispParams

Puntatore a una matrice contenente gli argomenti. Equivalente al membro rgvarg della struttura DISPPARAMS .

[in, out] pvarResult

Puntatore a un valore VARIANT che riceve il risultato. Equivalente al parametro pVarResult del metodo IDispatch::Invoke .

[out] puArgErr

Puntatore a una variabile che riceve l'indice del primo argomento con un errore. Equivalente al parametro puArgErr del metodo IDispatch::Invoke .

Valore restituito

Restituisce un valore HRESULT .

Commenti

Utilizzare il metodo IDispatch::GetIDsOfNames per recuperare IL VALORE DISPID per il parametro dispidMember .

Esempio

Nell'esempio seguente viene accodato un comando IMediaControl::Stop per 3,0 secondi.


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();
}

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione control.h (includere Dshow.h)
Libreria Strmiids.lib

Vedi anche

Codici errore e esito positivo

Interfaccia IQueueCommand