IQueueCommand::InvokeAtStreamTime-Methode (control.h)
[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]
Die InvokeAtStreamTime
-Methode stellt eine Methode oder Eigenschaftsänderung für die Ausführung zu einer angegebenen Streamzeit in die Warteschlange (d.a. Präsentationszeit relativ zum aktuellen Streamzeitoffset).
Syntax
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
);
Parameter
[out] pCmd
Adresse einer Variablen, die einen IDeferredCommand-Schnittstellenzeiger empfängt.
[in] time
Zeit, zu der der Befehl aufgerufen werden soll.
[in] iid
Zeiger auf den Schnittstellenbezeichner (IID) der Schnittstelle.
[in] dispidMethod
Dispatch Identifier (DISPID) einer Methode oder Eigenschaft auf der Schnittstelle. Entspricht dem dispIdMember-Parameter der IDispatch::Invoke-Methode .
[in] wFlags
Flags, die den Kontext des Aufrufs beschreiben. Entspricht dem wFlags-Parameter der IDispatch::Invoke-Methode .
[in] cArgs
Anzahl der Argumente in pDispParams. Entspricht dem cArgs-Member der DISPPARAMS-Struktur .
[in] pDispParams
Zeiger auf ein Array, das die Argumente enthält. Entspricht dem rgvarg-Element der DISPPARAMS-Struktur .
[in, out] pvarResult
Zeiger auf einen VARIANT-Wert, der das Ergebnis empfängt. Entspricht dem pVarResult-Parameter der IDispatch::Invoke-Methode .
[out] puArgErr
Zeiger auf eine Variable, die den Index des ersten Arguments empfängt, das einen Fehler aufweist. Entspricht dem puArgErr-Parameter der IDispatch::Invoke-Methode .
Rückgabewert
Gibt einen HRESULT-Wert zurück.
Hinweise
Verwenden Sie die IDispatch::GetIDsOfNames-Methode , um die DISPID für den dispidMember-Parameter abzurufen.
Beispiele
Im folgenden Beispiel wird ein IMediaControl::Stop-Befehl für 3,0 Sekunden in die Warteschlange gestellt.
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();
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | control.h (include Dshow.h) |
Bibliothek | Strmiids.lib |