Classe CRefTime
[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement au nouveau code d’utiliser MediaPlayer, IMFMediaEngine et La capture audio/vidéo dans Media Foundation au lieu de DirectShow, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]
La CRefTime
classe est une classe d’assistance pour la gestion des temps de référence.
Une heure de référence est une unité de temps représentée en unités de 100 nanosecondes. Cette classe partage la même disposition de données que le type de données REFERENCE_TIME , mais ajoute des méthodes et des opérateurs qui fournissent des fonctions de comparaison, de conversion et d’arithmétiques. Pour plus d’informations sur les heures de référence, consultez Heure et horloges dans DirectShow.
Variables membres publiques | Description |
---|---|
m_time | Spécifie la valeur REFERENCE_TIME . |
Méthodes publiques | Description |
CRefTime | Méthode du constructeur. |
GetUnits | Récupère l’heure de référence en unités de 100 nanosecondes. |
Millisecs | Convertit le temps de référence en millisecondes. |
Opérateurs | Description |
opérateur REFERENCE_TIME() | Caste l’objet en type de données REFERENCE_TIME . |
operator= | Attribue une nouvelle heure de référence. |
operator+= | Ajoute deux temps de référence. |
opérateur = | Soustrait une heure de référence d’une autre. |
Notes
Il existe un piège potentiel avec l’utilisation de cette classe. Si vous appliquez l’opérateur += avec un objet CRefTime comme opérande gauche et une variable de type LONG comme opérande droit, le compilateur force implicitement l’opérande droit dans un objet CRefTime . Cette contrainte utilise le constructeur CRefTime qui convertit des millisecondes en unités REFERENCE_TIME ; par conséquent, l’opérande droit est multiplié par 10 000 :
CRefTime rt; // rt.m_time is 0.
LONG val = 20;
rt += val; // Coerce val to CRefTime, rt.m_time is now 200,000.
Toutefois, la même chose ne se produit pas à l’aide de l’opérateur + :
CRefTime rt; // rt.m_time is 0.
LONG val = 20;
rt = rt + val; // CRefTime, rt.m_time is 20.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête |
|
Bibliothèque |
|