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
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 |