次の方法で共有


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 デバイス マネージャーエラー コード
考えられるエラー コードの詳細な一覧については、「 エラー コード」を参照してください。

注釈

返されるデバイス インターフェイスは、キャッシュされたデバイスの一覧に基づいています。 プラグ アンド プレイ デバイスがアタッチまたは削除された場合、現在の列挙子には反映されないため、キャッシュされたリストに基づいてデバイスが返されます。 アプリケーションでは、 IWMDeviceManager::EnumDevices を呼び出して新しい列挙子オブジェクトを取得し、更新されたデバイスの一覧を取得する必要があります。

一度に 1 つのインターフェイスのみを取得する場合は、次のコードに示すように、このメソッドに配列を割り当てる必要はありません。


// 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
Library Mssachlp.lib

こちらもご覧ください

デバイスの列挙

IWMDMEnumDevice インターフェイス

IWMDeviceManager::EnumDevices