Méthode IMediaSeeking ::CheckCapabilities (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 in Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation au lieu de DirectShow, si 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 méthode CheckCapabilities interroge si un flux a spécifié des fonctionnalités de recherche.

Syntaxe

HRESULT CheckCapabilities(
  [in, out] DWORD *pCapabilities
);

Paramètres

[in, out] pCapabilities

Lors de l’entrée, pointeur vers une variable qui contient un OR au niveau du bit d’un ou de plusieurs attributs AM_SEEKING_SEEKING_CAPABILITIES . Lorsque la méthode retourne, la valeur indique lequel de ces attributs est disponible.

Valeur retournée

Retourne une valeur HRESULT . Les valeurs possibles sont les suivantes.

Code de retour Description
S_FALSE
Certaines fonctionnalités de pCapabilities , mais pas toutes, sont présentes.
S_OK
Toutes les fonctionnalités de pCapabilities sont présentes.
E_FAIL
Aucune fonctionnalité dans pCapabilities n’est présente.
E_POINTER
Argument pointeur NULL .

Remarques

Si vous n’êtes intéressé que par quelques fonctionnalités spécifiques, l’appel de cette méthode est plus efficace que l’appel de IMediaSeeking ::GetCapabilities, qui vérifie toutes les fonctionnalités de recherche du flux.

Pour appeler cette méthode, déclarez une variable DWORD et définissez la valeur sur la combinaison bit-OR des indicateurs de AM_SEEKING_SEEKING_CAPABILITIES que vous souhaitez tester. Transmettez l’adresse de cette valeur dans le paramètre pCapabilities . Lorsque la méthode retourne, pCapabilities contient un sous-ensemble des bits d’origine, indiquant les fonctionnalités présentes. La valeur de retour indique si certaines, aucune ou toutes les fonctionnalités demandées sont présentes.

L’exemple de code suivant montre comment déterminer si le flux prend en charge la recherche vers l’avant, la recherche vers l’arrière et la recherche absolue.

C++
Définissez des indicateurs pour les fonctionnalités que vous souhaitez case activée.

DWORD dwCaps = AM_SEEKING_CanSeekAbsolute | AM_SEEKING_CanSeekForwards | AM_SEEKING_CanSeekBackwards ;

HRESULT hr = pMediaSeeking-CheckCapabilities>(&dwCaps) ; if(FAILED(hr)) { // Le flux ne peut pas rechercher. } else if (hr == S_OK) {
// The stream can seek forward, backward, and to an absolute position. } else if (hr == S_FALSE) // The stream has some of the capabilities. { if (dwCaps & AM_SEEKING_CanSeekAbsolute) { // The stream can seek to an absolute position. } if (dwCaps & AM_SEEKING_CanSeekForwards) { // The stream can seek forward. } if (dwCaps & AM_SEEKING_CanSeekBackwards) { // The stream can seek backward. } }

Configuration requise

Condition requise Valeur
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

IMediaSeeking, interface