Freigeben über


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

Weitere Informationen

Fehler- und Erfolgscodes

IQueueCommand-Schnittstelle