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 |