Freigeben über


IReferenceClock::AdvisePeriodic-Methode (strmif.h)

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

Die AdvisePeriodic -Methode erstellt eine regelmäßige Empfehlungsanforderung.

Syntax

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

Parameter

[in] startTime

Zeitpunkt der ersten Benachrichtigung in 100 Nanosekundeneinheiten. Muss größer als null und kleiner als MAX_TIME sein.

[in] periodTime

Zeit zwischen Benachrichtigungen in Einheiten von 100 Nanosekunden. Muss größer sein als Null.

[in] hSemaphore

Handle für ein Semaphor, das vom Aufrufer erstellt wurde.

[out] pdwAdviseCookie

Zeiger auf eine Variable, die einen Bezeichner für die Empfehlungsanforderung empfängt.

Rückgabewert

Gibt einen HRESULT-Wert zurück. Die folgenden Werte sind möglich.

Rückgabecode BESCHREIBUNG
S_OK
Erfolg.
E_INVALIDARG
Ungültige Zeitwerte.
E_OUTOFMEMORY
Fehler.
E_POINTER
NULL-Zeigerargument.

Hinweise

Bei jeder Benachrichtigung gibt die Uhr den im hSemaphor-Parameter angegebenen Semaphor frei. Wenn keine weiteren Benachrichtigungen erforderlich sind, rufen Sie IReferenceClock::Unadvise auf, und übergeben Sie den wert pdwAdviseToken , der von diesem Aufruf zurückgegeben wird.

Im folgenden Codebeispiel wird eine Empfehlungsanforderung erstellt, die fünf Sekunden ab dem Zeitpunkt der Erstellung und danach erneut jede Sekunde signalisiert:

C++
IReferenceClock *pRefClock = NULL; Rufen Sie einen IReferenceClock-Zeiger ab (nicht angezeigt).

DWORD dwAdviseToken; HANDLE hSemaphor = CreateSemaphore(NULL, 0, 0x7FFFFFFF, NULL); REFERENCE_TIME rtPeriodTime = 10000000; Ein Intervall von einer Sekunde REFERENCE_TIME rtNow;

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

pRefClock->Unadvise(dwAdviseToken);

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

Weitere Informationen

Fehler- und Erfolgscodes

IReferenceClock-Schnittstelle