Метод CPosPassThru.GetCurrentPosition

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

Метод GetCurrentPosition извлекает текущую позицию относительно общей длительности потока. Этот метод реализует метод IMediaSeeking::GetCurrentPosition .

Синтаксис

HRESULT GetCurrentPosition(
   LONGLONG *pCurrent
);

Параметры

pCurrent

Указатель на переменную, которая получает текущую позицию в единицах текущего формата времени.

Возвращаемое значение

Возвращает значение HRESULT . Возможные значения включают значения, приведенные в следующей таблице.

Код возврата Описание
S_OK
Успешно.
E_NOTIMPL
Метод не поддерживается.
E_POINTER
Аргумент указателя NULL.

Комментарии

Этот метод вызывает метод CPosPassThru::GetMediaTime для получения последней позиции. В случае сбоя GetMediaTime метод вызывает IMediaSeeking::GetCurrentPosition для подключенного контакта.

Метод GetMediaTime по умолчанию завершается сбоем в базовом классе. Если фильтр кэширует текущую позицию, переопределите GetMediaTime , чтобы вернуть кэшированное значение.

Требования

Требование Значение
Заголовок
Ctlutil.h (включая Streams.h)
Библиотека
Strmbase.lib (розничные сборки);
Strmbasd.lib (отладочные сборки)

См. также раздел

Класс CPosPassThru