Bagikan melalui


IReferenceClock::AdvisePeriodic method (strmif.h)

[Fitur yang terkait dengan halaman ini, DirectShow, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer, IMFMediaEngine, dan Pengambilan 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 Pengambilan Audio/Video 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 AdvisePeriodic membuat permintaan saran berkala.

Sintaks

HRESULT AdvisePeriodic(
  [in]  REFERENCE_TIME startTime,
  [in]  REFERENCE_TIME periodTime,
  [in]  HSEMAPHORE     hSemaphore,
  [out] DWORD_PTR      *pdwAdviseCookie
);

Parameter

[in] startTime

Waktu pemberitahuan pertama, dalam unit 100 nanodetik. Harus lebih besar dari nol dan kurang dari MAX_TIME.

[in] periodTime

Waktu antara pemberitahuan, dalam unit 100 nanodetik. Harus lebih besar dari nol.

[in] hSemaphore

Tangani ke semaphore, yang dibuat oleh pemanggil.

[out] pdwAdviseCookie

Penunjuk ke variabel yang menerima pengidentifikasi untuk permintaan saran.

Nilai kembali

Mengembalikan nilai HRESULT . Nilai yang mungkin termasuk yang berikut ini.

Menampilkan kode Deskripsi
S_OK
Berhasil.
E_INVALIDARG
Nilai waktu tidak valid.
E_OUTOFMEMORY
Kegagalan.
E_POINTER
Argumen pointer NULL.

Keterangan

Pada setiap waktu pemberitahuan, jam melepaskan semaphore yang ditentukan dalam parameter hSemaphore . Ketika tidak ada pemberitahuan lebih lanjut yang diperlukan, panggil IReferenceClock::Unadvise dan teruskan nilai pdwAdviseToken yang dikembalikan dari panggilan ini.

Contoh kode berikut membuat permintaan saran yang memberi sinyal lima detik sejak dibuat, dan sekali lagi setiap detik setelahnya:

C++
IReferenceClock *pRefClock = NULL; Dapatkan penunjuk IReferenceClock (tidak ditampilkan).

DWORD dwAdviseToken; HANDLE hSemaphore = CreateSemaphore(NULL, 0, 0x7FFFFFFF, NULL); REFERENCE_TIME rtPeriodTime = 10000000; Interval satu detik REFERENCE_TIME rtNow;

pRefClock-GetTime>(&rtNow); pRefClock-AdvisePeriodic>(rtNow + (5 * rtPeriodTime), rtPeriodTime, hSemaphore, &dwAdviseToken); ...

pRefClock->Unadvise(dwAdviseToken);

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 strmif.h (termasuk Dshow.h)
Pustaka Strmiids.lib

Lihat juga

Kode Kesalahan dan Keberhasilan

Antarmuka IReferenceClock