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

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

O SetFocus método notifica o gerenciador de recursos de que um objeto especificado recebeu o foco do usuário.

Sintaxe

HRESULT SetFocus(
  [in] IUnknown *pFocusObject
);

Parâmetros

[in] pFocusObject

Ponteiro para o objeto que recebeu o foco do usuário.

Retornar valor

Retorna um valor HRESULT que depende da implementação. HRESULT pode ser uma das seguintes constantes padrão ou outros valores não listados.

Código de retorno Descrição
E_FAIL
Falha.
E_POINTER
Argumento de ponteiro NULL.
E_INVALIDARG
Argumento inválido.
E_NOTIMPL
Não há suporte para o método .
S_OK ou NOERROR
Êxito.

Comentários

No DirectShow, o objeto dado o foco do usuário normalmente é um renderizador de vídeo cuja janela recebeu o foco. O gerenciador de recursos dá prioridade às solicitações de recursos na seguinte ordem:

  1. Solicitações feitas com o objeto de foco especificado no parâmetro pFocusObject .
  2. Solicitações cujo objeto de foco compartilha um filtro de origem comum.
  3. Solicitações cujo objeto de foco compartilha um grafo de filtro comum.
  4. Solicitações no mesmo processo que o foco.
Depois que um foco for definido, o gerenciador de recursos deverá manter um objeto de foco até que ReleaseFocus seja chamado. Ou seja, depois de chamar esse método, você deve usar ReleaseFocus antes que a interface IUnknown do objeto de foco se torne inválida, a menos que você possa garantir que SetFocus é chamado por um objeto diferente enquanto isso. Nenhuma contagem de referência é mantida no objeto de foco.

O gerenciador de recursos manterá esse ponteiro até ser substituído ou cancelado e o usará para resolve contenção de recursos. Ele usará QueryInterface para a interface IBaseFilter pelo menos e, se encontrado, usará métodos nessa interface. Ele chama métodos no IBaseFilter para decidir qual renderizador de áudio usar se houver dois (ele escolherá aquele com um filtro de origem comum ao objeto de foco) e também para determinar se os dois objetos estão dentro do mesmo grafo de filtro.

Requisitos

   
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho strmif.h (inclua Dshow.h)
Biblioteca Strmiids.lib

Confira também

Códigos de erro e êxito

IResourceManager Interface