Partager via


ICreateDevEnum ::CreateClassEnumerator, méthode (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 CreateClassEnumerator crée un énumérateur pour une catégorie d’appareil spécifiée.

Syntaxe

HRESULT CreateClassEnumerator(
  [in]  REFCLSID     clsidDeviceClass,
  [out] IEnumMoniker **ppEnumMoniker,
  [in]  DWORD        dwFlags
);

Paramètres

[in] clsidDeviceClass

Spécifie l’identificateur de classe (CLSID) de la catégorie d’appareil. Consultez Catégories de filtres.

[out] ppEnumMoniker

Reçoit un pointeur vers l’interface IEnumMoniker . L’appelant doit libérer l’interface.

[in] dwFlags

Combinaison au niveau du bit de zéro ou plusieurs indicateurs. Si la valeur est égale à zéro, la méthode énumère chaque filtre de la catégorie. Si des indicateurs sont définis, l’énumération inclut uniquement des filtres qui correspondent aux indicateurs spécifiés. Les indicateurs suivants sont définis :

Indicateur Description
CDEF_DEVMON_CMGR_DEVICE Énumérez les codecs audio ou vidéo à l’aide du gestionnaire de compression audio (ACM) ou du gestionnaire de compression vidéo (VCM).
CDEF_DEVMON_DMO Énumérer les objets multimédias DirectX (DMO).
CDEF_DEVMON_FILTER Énumérer les filtres DirectShow natifs.
CDEF_DEVMON_PNP_DEVICE Énumérez Plug-and-Play périphériques matériels.

Valeur retournée

Retourne l’une des valeurs HRESULT suivantes.

Code de retour Description
S_OK
Réussite.
E_OUTOFMEMORY
Mémoire insuffisante.
S_FALSE
La catégorie spécifiée par clsidDeviceClass n’existe pas ou est vide.
E_POINTER
Argument pointeur NULL .

Remarques

Si la catégorie n’existe pas ou est vide, la valeur de retour est S_FALSE et le paramètre ppEnumMoniker reçoit la valeur NULL. Par conséquent, testez la valeur de retour S_OK au lieu d’utiliser la macro SUCCEEDED :

C++
IEnumMoniker *pEnum = NULL;
hr = pSysDevEnum->CreateClassEnumerator(
    CLSID_VideoCompressorCategory, &pEnum, 0);
if (hr == S_OK) 
{
    // Safe to dereference pEnum.
    pEnum->Release();
}
Utilisez l’interface IEnumMoniker pour énumérer les monikers qui représentent les filtres dans la catégorie d’appareil. Les Monikers prennent en charge l’interface IMoniker . Les monikers créés par CreateClassEnumerator prennent également en charge l’interface IGetCapabilitiesKey .

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

ICreateDevEnum, interface