다음을 통해 공유


IWMDMEnumDevice::Next 메서드(mswmdm.h)

Next 메서드는 IWMDMDevice 인터페이스로 표시되는 다음 디바이스에 대한 포인터를 반환합니다.

구문

HRESULT Next(
  [in]  ULONG       celt,
  [out] IWMDMDevice **ppDevice,
  [out] ULONG       *pceltFetched
);

매개 변수

[in] celt

요청된 디바이스 수입니다.

[out] ppDevice

IWMDMDevice 인터페이스 포인터의 호출자가 할당한 배열에 대한 포인터입니다. 이 배열의 크기는 IWMDMDevice *[celt]여야 합니다. 호출자는 이러한 인터페이스를 완료할 때 해제해야 합니다. 전체 배열을 할당하지 않도록 하려면 비고에 표시된 대로 포인터의 주소를 IWMDMDevice 인터페이스에 전달하면 됩니다.

[out] pceltFetched

반환된 디바이스(인터페이스)의 수를 수신하는 변수에 대한 포인터입니다.

반환 값

이 메서드는 HRESULT를 반환합니다. Windows Media 장치 관리자 모든 인터페이스 메서드는 다음 오류 코드 클래스 중 어느 것을 반환할 수 있습니다.

  • 표준 COM 오류 코드
  • HRESULT 값으로 변환된 Windows 오류 코드
  • Windows Media 장치 관리자 오류 코드
가능한 오류 코드의 광범위한 목록은 오류 코드를 참조하세요.

설명

반환된 디바이스 인터페이스는 캐시된 디바이스 목록을 기반으로 합니다. 플러그 앤 플레이 디바이스가 연결되거나 제거된 경우 현재 열거자는 이를 반영하지 않으므로 Next는 캐시된 목록에 따라 디바이스를 반환합니다. 애플리케이션은 IWMDeviceManager::EnumDevices 를 호출하여 새로 고친 디바이스 목록을 가져와서 새 열거자 개체를 가져와야 합니다.

한 번에 단일 인터페이스만 검색하려는 경우 다음 코드와 같이 이 메서드에 대한 배열을 할당할 필요가 없습니다.


// Get a device enumerator to examine each device.
CComPtr<IWMDeviceManager2> pIWMDevMgr2;
hr = m_IWMDeviceMgr->QueryInterface (__uuidof(IWMDeviceManager2), (void**) &pIWMDevMgr2);
if (hr == S_OK)
{
    // TODO: Display a message that the application retrieved IWMDeviceManager2.
}
else
{
    // TODO: Display a message that the application was not able to 
    // retrieve IWMDeviceManager2 in EnumDevices.
    return hr;
}

// Enumerate through the devices using the faster EnumDevices2 plug-and-play method.
CComPtr<IWMDMEnumDevice> pEnumDevice;
hr = pIWMDevMgr2->EnumDevices2(&pEnumDevice);
if (hr != S_OK)
{
    //.TODO: Display a message that an error occurred in calling EnumDevices2.
    return hr;
}

// Enumerate through devices.
IWMDMDevice *pIWMDMDevice;
ULONG ulFetched = 0;
while(pEnumDevice->Next(1, &pIWMDMDevice, &ulFetched) == S_OK)
{
    if (ulFetched != 1)
    {
        return E_FAIL;
    }
    // Do some stuff here....
}

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 mswmdm.h
라이브러리 Mssachlp.lib

추가 정보

디바이스 열거

IWMDMEnumDevice 인터페이스

IWMDeviceManager::EnumDevices