Condividi tramite


Metodo IResourceManager::SetFocus (strmif.h)

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Il SetFocus metodo notifica al gestore risorse che un oggetto specificato è stato assegnato allo stato attivo dell'utente.

Sintassi

HRESULT SetFocus(
  [in] IUnknown *pFocusObject
);

Parametri

[in] pFocusObject

Puntatore all'oggetto a cui è stato assegnato lo stato attivo dell'utente.

Valore restituito

Restituisce un valore HRESULT che dipende dall'implementazione. HRESULT può essere una delle costanti standard seguenti o altri valori non elencati.

Codice restituito Descrizione
E_FAIL
Esito negativo.
E_POINTER
Argomento puntatore NULL.
E_INVALIDARG
Argomento non valido.
E_NOTIMPL
Il metodo non è supportato.
S_OK o NOERROR
Operazione completata.

Commenti

In DirectShow l'oggetto dato lo stato attivo dell'utente è in genere un renderer video la cui finestra ha ricevuto lo stato attivo. Gestione risorse offre priorità alle richieste per le risorse nell'ordine seguente:

  1. Le richieste effettuate con l'oggetto focus specificato nel parametro pFocusObject .
  2. Richieste di cui l'oggetto focus condivide un filtro di origine comune.
  3. Richieste di cui l'oggetto messa a fuoco condivide un grafo di filtro comune.
  4. Richieste nello stesso processo dello stato attivo.
Dopo aver impostato uno stato attivo, gestione risorse deve mantenere un oggetto dello stato attivo fino a quando ReleaseFocus non viene chiamato. In questo caso, dopo aver chiamato questo metodo, è necessario usare ReleaseFocus prima che l'interfaccia IUnknown dell'oggetto messa a fuoco non sia valida, a meno che non sia possibile garantire che SetFocus venga chiamato da un oggetto diverso nel frattempo. Nessun conteggio di riferimenti viene mantenuto sull'oggetto focus.

Gestione risorse mantiene questo puntatore fino a quando non viene sostituito o annullato e lo userà per risolvere la contesa delle risorse. Userà QueryInterface per l'interfaccia IBaseFilter almeno e, se trovato, userà metodi su tale interfaccia. Chiama i metodi in IBaseFilter per decidere quale renderer audio usare se sono presenti due (sceglierne uno con un filtro di origine comune all'oggetto messa a fuoco) e anche per determinare se i due oggetti si trovano nello stesso grafico di filtro.

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione strmif.h (include Dshow.h)
Libreria Strmiids.lib

Vedi anche

Codici errore e esito positivo

Interfaccia IResourceManager