Compartilhar via


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

[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na 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 Captura de Áudio/Vídeo no 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 RequestResource método solicita o uso de um determinado recurso registrado.

Sintaxe

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

Parâmetros

[in] idResource

Token de recurso recuperado quando o recurso foi registrado.

[in] pFocusObject

Ponteiro para a interface IUnknown de um objeto de foco associado a uma solicitação (normalmente a interface IUnknown do filtro).

[in] pConsumer

Ponteiro para a interface IResourceConsumer no objeto que solicita o recurso.

Retornar valor

Retorna um valor HRESULT . Retorna S_OK se o recurso solicitado for retornado ou S_FALSE se o recurso não estiver disponível, nesse caso, o gerenciador de recursos chamará o objeto solicitante de volta quando o recurso ficar disponível. Qualquer outro retorno é um erro.

Comentários

Quando houver mais de uma solicitação para o recurso, o gerenciador de recursos decidirá a prioridade usando o objeto de foco passado com cada solicitação e comparando-o com o objeto de foco passado no método IResourceManager::SetFocus mais recente.

As solicitações serão preenchidas na seguinte ordem de prioridade:

  1. Solicitações feitas com exatamente o mesmo objeto de foco que o último método SetFocus .
  2. Solicitações cujo objeto de foco compartilha um filtro de origem comum cujo objeto de foco compartilha um grafo de filtro comum.
  3. Solicitações no mesmo processo que o foco.
Ao verificar essa prioridade, o gerenciador de recursos usará QueryInterface no objeto de foco para IID_IFilter. Se encontrado, o gerenciador de recursos usará métodos IBaseFilter para marcar o grafo de filtro e procurar filtros de origem comuns com o objeto de foco atual.

Um filtro deve passar a interface IUnknown do filtro no parâmetro pFocusObject . O gerenciador de grafo de filtro corresponde aos filtros ao grafo de filtro e tentará rastrear filtros para filtros de origem comuns ao verificar objetos de foco.

O objeto de foco deve ser válido durante todo o tempo de vida da solicitação, até que o método IResourceManager::CancelRequest seja chamado ou o método IResourceManager::NotifyRelease seja chamado com o parâmetro bStillWant definido como FALSE.

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