Classe CRefTime
[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
A CRefTime
classe é uma classe auxiliar para gerenciar tempos de referência.
Um tempo de referência é uma unidade de tempo representada em unidades de 100 nanossegundos. Essa classe compartilha o mesmo layout de dados que o tipo de dados REFERENCE_TIME , mas adiciona alguns métodos e operadores que fornecem funções de comparação, conversão e aritmética. Para obter mais informações sobre os tempos de referência, consulte Hora e Relógios no DirectShow.
Variáveis de membro público | Descrição |
---|---|
m_time | Especifica o valor REFERENCE_TIME . |
Métodos públicos | Descrição |
Creftime | Método de construtor. |
GetUnits | Recupera o tempo de referência em unidades de 100 nanossegundos. |
Millisecs | Converte o tempo de referência em milissegundos. |
Operadores | Descrição |
operator REFERENCE_TIME() | Converte o objeto em um tipo de dados REFERENCE_TIME . |
operator= | Atribui um novo tempo de referência. |
operator+= | Adiciona dois tempos de referência. |
operador = | Subtrai uma hora de referência de outra. |
Comentários
Há uma possível armadilha com o uso dessa classe. Se você aplicar o operador += com um objeto CRefTime como o operando esquerdo e uma variável do tipo LONG como o operando à direita, o compilador coagirá implicitamente o operando à direita em um objeto CRefTime . Essa coerção usa o construtor CRefTime que converte milissegundos em unidades REFERENCE_TIME; Como resultado, o operando à direita é multiplicado por 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.
No entanto, a mesma coisa não acontece usando o operador + :
CRefTime rt; // rt.m_time is 0.
LONG val = 20;
rt = rt + val; // CRefTime, rt.m_time is 20.
Requisitos
Requisito | Valor |
---|---|
parâmetro |
|
Biblioteca |
|