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


Метод IResourceManager::RequestResource (strmif.h)

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

Метод RequestResource запрашивает использование заданного зарегистрированного ресурса.

Синтаксис

HRESULT RequestResource(
  [in] LONG              idResource,
  [in] IUnknown          *pFocusObject,
  [in] IResourceConsumer *pConsumer
);

Параметры

[in] idResource

Маркер ресурса, полученный при регистрации ресурса.

[in] pFocusObject

Указатель на интерфейс IUnknown объекта фокуса , связанного с запросом (обычно это интерфейс IUnknown фильтра).

[in] pConsumer

Указатель на интерфейс IResourceConsumer для объекта, запрашивающего ресурс.

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

Возвращает значение HRESULT . Возвращает S_OK, если запрошенный ресурс возвращается, или S_FALSE, если ресурс недоступен. В этом случае диспетчер ресурсов вызовет запрашивающий объект, когда ресурс становится доступным. Любое другое возвращаемое значение является ошибкой.

Комментарии

При наличии нескольких запросов к ресурсу диспетчер ресурсов определяет приоритет, используя объект фокуса, переданный с каждым запросом, и сравнивая его с объектом фокуса, переданным в последнем методе IResourceManager::SetFocus .

Запросы будут заполнены в следующем порядке приоритета:

  1. Запросы, выполненные с тем же объектом фокуса, что и последний метод SetFocus .
  2. Запросы, объект фокуса которых использует общий фильтр источника, объект фокуса которого использует общий граф фильтра.
  3. Запросы выполняются в том же процессе, что и фокус.
При проверке этого приоритета диспетчер ресурсов будет использовать QueryInterface в объекте фокуса для IID_IFilter. В случае обнаружения диспетчер ресурсов будет использовать методы IBaseFilter для проверка графа фильтра и поиска общих исходных фильтров с текущим объектом фокуса.

Фильтр должен передавать интерфейс IUnknown фильтра в параметре pFocusObject . Диспетчер графа фильтров сопоставляет фильтры с графом фильтров и попытается отследить фильтры до общих исходных фильтров при проверке объектов фокуса.

Объект фокуса должен быть действительным в течение всего времени существования запроса— до вызова метода IResourceManager::CancelRequest или метода IResourceManager::NotifyRelease с параметром bStillWant , равным FALSE.

Требования

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

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

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

Интерфейс IResourceManager