IWMDeviceManager2::EnumDevices2 메서드(mswmdm.h)
EnumDevices2 메서드는 컴퓨터에 연결된 휴대용 디바이스를 열거하는 데 사용되는 열거형 인터페이스를 검색합니다.
Microsoft는 애플리케이션에서 IWMDeviceManager::EnumDevices 대신 EnumDevices2 메서드를 사용하는 것이 좋습니다.
구문
HRESULT EnumDevices2(
[out] IWMDMEnumDevice **ppEnumDevice
);
매개 변수
[out] ppEnumDevice
IWMDMEnumDevice 인터페이스에 대한 포인터입니다. 호출자는 검색된 인터페이스에서 Release 를 호출합니다.
반환 값
이 메서드는 HRESULT를 반환합니다. Windows Media 장치 관리자 모든 인터페이스 메서드는 다음 오류 코드 클래스 중 어느 것을 반환할 수 있습니다.
- 표준 COM 오류 코드
- HRESULT 값으로 변환된 Windows 오류 코드
- Windows Media 장치 관리자 오류 코드
설명
이 메서드는 더 빠른 열거형 및 낮은 메모리 사용을 위해 플러그 앤 플레이(PnP) 시스템을 활용하는 열거자를 반환합니다. PnP 불만 서비스 공급자의 경우 현재 컴퓨터에 연결된 디바이스가 있는 서비스 공급자만 메모리에 로드하고 해당 서비스 공급자에게만 디바이스 개체를 만들도록 요청합니다.
이 메서드는 기본 개체를 처음 만들 때 연결된 디바이스의 스냅샷 반환합니다. 디바이스 목록이 최신 상태인지 확인하려면 이 메서드를 호출하기 전에 Reinitialize를 호출합니다.
예제
다음 C++ 코드는 모든 디바이스를 반복하고 각 디바이스의 표시 이름을 검색합니다.
// 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);
}
}
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | Windows |
헤더 | mswmdm.h |
라이브러리 | Mssachlp.lib |