Bagikan melalui


Metode IQueueCommand::InvokeAtStreamTime (control.h)

[Fitur yang terkait dengan halaman ini, DirectShow, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer, IMFMediaEngine, dan Tangkapan Audio/Video di Media Foundation. Fitur-fitur tersebut telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan MediaPlayer, IMFMediaEngine dan Audio/Video Capture di Media Foundation alih-alih DirectShow, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]

Metode ini InvokeAtStreamTime mengantrekan metode atau perubahan properti untuk eksekusi pada waktu streaming tertentu (yaitu, waktu presentasi relatif terhadap offset waktu streaming saat ini).

Sintaks

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

Alamat variabel yang menerima penunjuk antarmuka IDeferredCommand .

[in] time

Waktu untuk memanggil perintah.

[in] iid

Penunjuk ke pengidentifikasi antarmuka (IID) antarmuka.

[in] dispidMethod

Pengidentifikasi pengiriman (DISPID) dari metode atau properti pada antarmuka. Setara dengan parameter dispIdMember dari metode IDispatch::Invoke .

[in] wFlags

Bendera yang menjelaskan konteks panggilan. Setara dengan parameter wFlags dari metode IDispatch::Invoke .

[in] cArgs

Jumlah argumen dalam pDispParams. Setara dengan anggota cArgs struktur DISPPARAMS .

[in] pDispParams

Penunjuk ke array yang berisi argumen. Setara dengan anggota rgvarg struktur DISPPARAMS .

[in, out] pvarResult

Penunjuk ke VARIAN yang menerima hasilnya. Setara dengan parameter pVarResult dari metode IDispatch::Invoke .

[out] puArgErr

Penunjuk ke variabel yang menerima indeks argumen pertama yang memiliki kesalahan. Setara dengan parameter puArgErr dari metode IDispatch::Invoke .

Nilai kembali

Mengembalikan nilai HRESULT .

Keterangan

Gunakan metode IDispatch::GetIDsOfNames untuk mengambil DISPID untuk parameter dispidMember .

Contoh

Contoh berikut mengantre perintah IMediaControl::Stop selama 3,0 detik.


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

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header control.h (termasuk Dshow.h)
Pustaka Strmiids.lib

Lihat juga

Kode Kesalahan dan Keberhasilan

Antarmuka IQueueCommand