Método IWMDeviceManager2::EnumDevices2 (mswmdm.h)
O método EnumDevices2 recupera uma interface de enumeração usada para enumerar dispositivos portáteis conectados ao computador.
A Microsoft recomenda fortemente que os aplicativos usem o método EnumDevices2 em vez de IWMDeviceManager::EnumDevices.
Sintaxe
HRESULT EnumDevices2(
[out] IWMDMEnumDevice **ppEnumDevice
);
Parâmetros
[out] ppEnumDevice
Ponteiro para um ponteiro para uma interface IWMDMEnumDevice . O chamador é responsável por chamar Release na interface recuperada.
Retornar valor
O método retorna um HRESULT. Todos os métodos de interface no Windows Media Gerenciador de Dispositivos podem retornar qualquer uma das seguintes classes de códigos de erro:
- Códigos de erro COM padrão
- Códigos de erro do Windows convertidos em valores HRESULT
- Códigos de erro do Windows Media Gerenciador de Dispositivos
Comentários
Esse método retorna um enumerador que aproveita o sistema de Plug and Play (PnP) para uma enumeração mais rápida e menor uso de memória. Para provedores de serviços de reclamação PnP, ele carrega na memória apenas os provedores de serviços que têm um dispositivo atualmente conectado ao computador e solicita apenas esses provedores de serviços para criar objetos de dispositivo.
Esse método retorna uma instantâneo dos dispositivos conectados quando o objeto subjacente foi criado pela primeira vez. Para garantir que a lista de dispositivos esteja atualizada, chame Reinicializar antes de chamar esse método.
Exemplos
O código C++ a seguir percorre todos os dispositivos e recupera o nome de exibição de cada um.
// 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);
}
}
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Windows |
Cabeçalho | mswmdm.h |
Biblioteca | Mssachlp.lib |