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

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement au nouveau code d’utiliser MediaPlayer, IMFMediaEngine et La capture audio/vidéo dans Media Foundation au lieu de DirectShow, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

La SetFocus méthode avertit le gestionnaire de ressources qu’un objet spécifié a reçu le focus de l’utilisateur.

Syntaxe

HRESULT SetFocus(
  [in] IUnknown *pFocusObject
);

Paramètres

[in] pFocusObject

Pointeur vers l’objet qui a reçu le focus de l’utilisateur.

Valeur renvoyée

Retourne une valeur HRESULT qui dépend de l’implémentation. HRESULT peut être l’une des constantes standard suivantes ou d’autres valeurs non répertoriées.

Code de retour Description
E_FAIL
Échec.
E_POINTER
Argument pointeur NULL .
E_INVALIDARG
Argument non valide.
E_NOTIMPL
La méthode n’est pas prise en charge.
S_OK ou NOERROR
Opération réussie.

Notes

Dans DirectShow, l’objet donné le focus de l’utilisateur est généralement un convertisseur vidéo dont la fenêtre a reçu le focus. Le gestionnaire de ressources donne la priorité aux demandes de ressources dans l’ordre suivant :

  1. Requêtes effectuées avec l’objet focus spécifié dans le paramètre pFocusObject .
  2. Demandes dont l’objet focus partage un filtre source commun.
  3. Demandes dont l’objet focus partage un graphe de filtre commun.
  4. Demandes dans le même processus que le focus.
Une fois qu’un focus a été défini, le gestionnaire de ressources doit conserver un objet focus jusqu’à ce que ReleaseFocus soit appelé. Autrement dit, après avoir appelé cette méthode, vous devez utiliser ReleaseFocus avant que l’interface IUnknown de l’objet focus ne devienne non valide, sauf si vous pouvez garantir qu’il SetFocus est appelé par un autre objet entre-temps. Aucun nombre de références n’est conservé sur l’objet focus.

Le gestionnaire de ressources conserve ce pointeur jusqu’à ce qu’il soit remplacé ou annulé, et l’utilise pour résoudre la contention de ressources. Il utilisera QueryInterface pour l’interface IBaseFilter au moins et, le cas échéant, utilisera des méthodes sur cette interface. Il appelle des méthodes sur IBaseFilter pour décider quel convertisseur audio utiliser s’il en existe deux (il choisira celui avec un filtre source commun à l’objet focus), et également pour déterminer si les deux objets se trouvent dans le même graphique de filtre.

Configuration requise

   
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête strmif.h (include Dshow.h)
Bibliothèque Strmiids.lib

Voir aussi

Codes d’erreur et de réussite

IResourceManager, interface