Метод IResourceManager::SetFocus (strmif.h)
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]
Метод SetFocus
уведомляет диспетчер ресурсов о том, что указанный объект получил фокус пользователя.
Синтаксис
HRESULT SetFocus(
[in] IUnknown *pFocusObject
);
Параметры
[in] pFocusObject
Указатель на объект, которому был предоставлен фокус пользователя.
Возвращаемое значение
Возвращает значение HRESULT , зависящее от реализации. HRESULT может быть одной из следующих стандартных констант или другими значениями, не указанными в списке.
Код возврата | Описание |
---|---|
|
Ошибка. |
|
Аргумент указателя NULL. |
|
Недопустимый аргумент. |
|
Метод не поддерживается. |
|
Успешно. |
Комментарии
В DirectShow объект с фокусом пользователя обычно является отрисовщиком видео, окно которого получило фокус. Диспетчер ресурсов отдает приоритет запросам ресурсов в следующем порядке:
- Запросы, выполненные с объектом focus, указанным в параметре pFocusObject .
- Запросы, объект фокуса которых использует общий исходный фильтр.
- Запросы, для которых объект фокуса использует общий граф фильтра.
- Запросы выполняются в том же процессе, что и фокус.
SetFocus
вызывается другим объектом в то же время. В объекте фокуса количество ссылок не удерживается.
Диспетчер ресурсов будет хранить этот указатель до тех пор, пока он не будет заменен или отменен, и будет использовать его для разрешения конфликтов ресурсов. Он будет использовать QueryInterface для интерфейса IBaseFilter по крайней мере и, если он будет найден, будет использовать методы для этого интерфейса. Он вызывает методы в IBaseFilter , чтобы решить, какой отрисовщик звука использовать, если их есть два (он выберет один с исходным фильтром, общим для объекта фокуса), а также для определения того, находятся ли два объекта в одном графе фильтра.
Требования
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | strmif.h (включая Dshow.h) |
Библиотека | Strmiids.lib |