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 |
---|---|
|
Réussite. |
|
Mémoire insuffisante. |
|
La catégorie spécifiée par clsidDeviceClass n’existe pas ou est vide. |
|
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(); } |
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 |