Поделиться через


Метод IMediaSeeking::CheckCapabilities (strmif.h)

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

Метод CheckCapabilities запрашивает, заданы ли в потоке возможности поиска.

Синтаксис

HRESULT CheckCapabilities(
  [in, out] DWORD *pCapabilities
);

Параметры

[in, out] pCapabilities

На входных данных — указатель на переменную, содержащую побитовое ИЛИ одного или нескольких AM_SEEKING_SEEKING_CAPABILITIES атрибутов. При возврате метода значение указывает, какой из этих атрибутов доступен.

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

Возвращает значение HRESULT . Ниже приведены возможные значения.

Код возврата Описание
S_FALSE
Некоторые, но не все возможности в pCapabilities присутствуют.
S_OK
Все возможности в pCapabilities присутствуют.
E_FAIL
Возможности в pCapabilities отсутствуют.
E_POINTER
Аргумент указателя NULL.

Комментарии

Если вас интересует только несколько конкретных возможностей, вызов этого метода более эффективен, чем вызов метода IMediaSeeking::GetCapabilities, который проверяет все возможности поиска потока.

Чтобы вызвать этот метод, объявите переменную DWORD и присвойте значению побитовую или комбинацию флагов AM_SEEKING_SEEKING_CAPABILITIES, которые требуется проверить. Передайте адрес этого значения в параметре pCapabilities . При возврате метода pCapabilities содержит подмножество исходных битов, указывающее, какие возможности присутствуют. Возвращаемое значение указывает, присутствуют ли некоторые, нет или все запрошенные возможности.

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

C++
Установите флаги для возможностей, которые вы хотите проверка.

DWORD dwCaps = AM_SEEKING_CanSeekAbsolute | AM_SEEKING_CanSeekForwards | AM_SEEKING_CanSeekBackwards;

HRESULT hr = pMediaSeeking-CheckCapabilities>(&dwCaps); if(FAILED(hr)) { // Поток не может искать. } else if (hr == S_OK) {
// The stream can seek forward, backward, and to an absolute position. } else if (hr == S_FALSE) // The stream has some of the capabilities. { if (dwCaps & AM_SEEKING_CanSeekAbsolute) { // The stream can seek to an absolute position. } if (dwCaps & AM_SEEKING_CanSeekForwards) { // The stream can seek forward. } if (dwCaps & AM_SEEKING_CanSeekBackwards) { // The stream can seek backward. } }

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header strmif.h (включая Dshow.h)
Библиотека Strmiids.lib

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

Коды ошибок и успешности

Интерфейс IMediaSeeking