Método IResourceManager::SetFocus (strmif.h)

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

El SetFocus método notifica al administrador de recursos que a un objeto especificado se le ha dado el foco del usuario.

Sintaxis

HRESULT SetFocus(
  [in] IUnknown *pFocusObject
);

Parámetros

[in] pFocusObject

Puntero al objeto al que se le ha dado el foco del usuario.

Valor devuelto

Devuelve un valor HRESULT que depende de la implementación. HRESULT puede ser una de las siguientes constantes estándar u otros valores no enumerados.

Código devuelto Descripción
E_FAIL
Error.
E_POINTER
Argumento de puntero NULL.
E_INVALIDARG
Argumento no válido.
E_NOTIMPL
No se admite el método .
S_OK o NOERROR
Correcto.

Observaciones

En DirectShow, el objeto dado el foco del usuario suele ser un representador de vídeo cuya ventana ha recibido el foco. El administrador de recursos da prioridad a las solicitudes de recursos en el orden siguiente:

  1. Solicitudes realizadas con el objeto de foco especificado en el parámetro pFocusObject .
  2. Solicitudes cuyo objeto de foco comparte un filtro de origen común.
  3. Solicitudes cuyo objeto de foco comparte un grafo de filtro común.
  4. Solicitudes en el mismo proceso que el foco.
Una vez establecido un foco, el administrador de recursos debe mantener un objeto de enfoque hasta que se llame a ReleaseFocus . Es decir, después de llamar a este método, debe usar ReleaseFocus antes de que la interfaz IUnknown del objeto de enfoque no sea válida, a menos que pueda garantizar que SetFocus lo llame un objeto diferente mientras tanto. No se mantiene ningún recuento de referencias en el objeto de foco.

El administrador de recursos contendrá este puntero hasta que se reemplace o cancele y lo usará para resolver la contención de recursos. Usará QueryInterface para la interfaz IBaseFilter al menos y, si se encuentra, usará métodos en esa interfaz. Llama a métodos en IBaseFilter para decidir qué representador de audio usar si hay dos (elegirá el que tiene un filtro de origen común al objeto de enfoque) y también para determinar si los dos objetos están dentro del mismo gráfico de filtro.

Requisitos

   
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado strmif.h (incluye Dshow.h)
Library Strmiids.lib

Consulte también

Códigos de error y éxito

IResourceManager (Interfaz)