CRefTime-Klasse
[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 CRefTime
-Klasse ist eine Hilfsklasse zum Verwalten von Referenzzeiten.
Eine Referenzzeit ist eine Zeiteinheit, die in 100 Nanosekundeneinheiten dargestellt wird. Diese Klasse verwendet dasselbe Datenlayout wie der REFERENCE_TIME Datentyp, fügt jedoch einige Methoden und Operatoren hinzu, die Vergleichs-, Konvertierungs- und arithmetische Funktionen bereitstellen. Weitere Informationen zu Referenzzeiten finden Sie unter Zeit und Uhren in DirectShow.
Öffentliche Membervariablen | BESCHREIBUNG |
---|---|
m_time | Gibt den wert der REFERENCE_TIME an. |
Öffentliche Methoden | BESCHREIBUNG |
CRefTime | Konstruktormethode. |
GetUnits | Ruft die Referenzzeit in 100 Nanosekundeneinheiten ab. |
Millisecs | Konvertiert die Referenzzeit in Millisekunden. |
Operatoren | Beschreibung |
Operator REFERENCE_TIME() | Wandelt das Objekt in einen REFERENCE_TIME-Datentyp um. |
operator= | Weist eine neue Referenzzeit zu. |
Operator+= | Fügt zwei Verweiszeiten hinzu. |
Operator = | Subtrahiert eine Verweiszeit von einer anderen. |
Bemerkungen
Es besteht ein potenzieller Fallstrick bei der Verwendung dieser Klasse. Wenn Sie den Operator += mit einem CRefTime-Objekt als linken Operanden und einer Variablen vom Typ LONG als rechten Operanden anwenden, wird der rechte Operand vom Compiler implizit in ein CRefTime-Objekt umgewandelt. Diese Coercion verwendet den CRefTime-Konstruktor , der Millisekunden in REFERENCE_TIME-Einheiten konvertiert; daher wird der rechte Operand mit 10.000 multipliziert:
CRefTime rt; // rt.m_time is 0.
LONG val = 20;
rt += val; // Coerce val to CRefTime, rt.m_time is now 200,000.
Dasselbe geschieht jedoch nicht mit dem Operator +:
CRefTime rt; // rt.m_time is 0.
LONG val = 20;
rt = rt + val; // CRefTime, rt.m_time is 20.
Anforderungen
Anforderung | Wert |
---|---|
Header |
|
Bibliothek |
|