Partager via


IWMDeviceManager2 ::EnumDevices2, méthode (mswmdm.h)

La méthode EnumDevices2 récupère une interface d’énumération utilisée pour énumérer les appareils portables connectés à l’ordinateur.

Microsoft recommande vivement aux applications d’utiliser la méthode EnumDevices2 au lieu de IWMDeviceManager ::EnumDevices.

Syntaxe

HRESULT EnumDevices2(
  [out] IWMDMEnumDevice **ppEnumDevice
);

Paramètres

[out] ppEnumDevice

Pointeur vers un pointeur vers une interface IWMDMEnumDevice . L’appelant est chargé d’appeler Release sur l’interface récupérée.

Valeur retournée

Cette méthode retourne un code HRESULT. Toutes les méthodes d’interface dans Windows Media Gestionnaire de périphériques peuvent retourner l’une des classes suivantes de codes d’erreur :

  • Codes d’erreur COM standard
  • Codes d’erreur Windows convertis en valeurs HRESULT
  • Codes d’erreur Gestionnaire de périphériques Windows Media
Pour obtenir une liste complète des codes d’erreur possibles, consultez Codes d’erreur.

Remarques

Cette méthode retourne un énumérateur qui tire parti du système Plug-and-Play (PnP) pour une énumération plus rapide et une utilisation plus faible de la mémoire. Pour les fournisseurs de services pnP-complaint, il charge en mémoire uniquement les fournisseurs de services qui ont un appareil actuellement connecté à l’ordinateur et demande uniquement à ces fournisseurs de services de créer des objets d’appareil.

Cette méthode retourne une instantané des appareils connectés lors de la création de l’objet sous-jacent. Pour vous assurer que la liste des appareils est à jour, appelez Reinitialize avant d’appeler cette méthode.

Exemples

Le code C++ suivant effectue une boucle sur tous les appareils et récupère le nom complet de chacun d’eux.


// Enumerate through the devices using the faster EnumDevices2 Plug-and-Play method.
// IWMDevMgr2 is a global IWMDeviceManager2 pointer.
CComPtr<IWMDMEnumDevice> pEnumDevice;
hr = pIWMDevMgr2->EnumDevices2(&pEnumDevice);
if (hr == S_OK)
{
    // Length of all the strings we'll send in. 
    const UINT MAX_CHARS = 100;
    WCHAR name[MAX_CHARS];

    // Enumerate through devices using a dummy loop.
    while(TRUE)
    {
        // Get a device handle.
        IWMDMDevice* pDevice;
        ULONG ulFetched = 0;
        hr = pEnumDevice->Next(1, &pDevice, &ulFetched);
        CComQIPtr<IWMDMDevice2> pDevice2(pDevice);

        if (hr != S_OK || ulFetched != 1)
        {
            break;
        }
        ZeroMemory(name, MAX_CHARS);
        hr = pDevice2->GetName(name, MAX_CHARS);
    }
}

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête mswmdm.h
Bibliothèque Mssachlp.lib

Voir aussi

Énumération des appareils

IWMDMEnumDevice, interface

IWMDeviceManager2, interface