次の方法で共有


IMMDeviceEnumerator::EnumAudioEndpoints メソッド (mmdeviceapi.h)

EnumAudioEndpoints メソッドは、指定された条件を満たすオーディオ エンドポイント デバイスのコレクションを生成します。

構文

HRESULT EnumAudioEndpoints(
  [in]  EDataFlow           dataFlow,
  [in]  DWORD               dwStateMask,
  [out] IMMDeviceCollection **ppDevices
);

パラメーター

[in] dataFlow

コレクション内のエンドポイント デバイスのデータ フローの方向。 呼び出し元は、このパラメーターを次のいずれかの EDataFlow 列挙値に設定する必要があります。

eRender

eCapture

eAll

呼び出し元が eAll を指定した場合、 メソッドにはコレクション内のレンダリング エンドポイントとキャプチャ エンドポイントの両方が含まれます。

[in] dwStateMask

コレクションに含めるエンドポイントの状態または状態。 呼び出し元は、このパラメーターを、次の 1 つ以上の DEVICE_STATE_XXX 定数のビットごとの OR に設定する必要があります。

DEVICE_STATE_ACTIVE

DEVICE_STATE_DISABLED

DEVICE_STATE_NOTPRESENT

DEVICE_STATE_UNPLUGGED

たとえば、呼び出し元が dwStateMask パラメーターを DEVICE_STATE_ACTIVE | に設定した場合DEVICE_STATE_UNPLUGGED、 メソッドには、アクティブまたはジャックから取り外されたエンドポイントが含まれますが、無効になっている、または存在しないオーディオ アダプター上にあるエンドポイントは除外されます。 状態に関係なく、すべてのエンドポイントを含めるには、 dwStateMask = DEVICE_STATEMASK_ALLを設定します。

[out] ppDevices

メソッドが device-collection オブジェクトの IMMDeviceCollection インターフェイスのアドレスを書き込むポインター変数へのポインター。 このメソッドを使用して、呼び出し元はインターフェイスへのカウントされた参照を取得します。 呼び出し元は、インターフェイスの Release メソッドを呼び出すことによって、不要になったときにインターフェイスを 解放 する役割を担います。 EnumAudioEndpoints 呼び出しが失敗した場合、*ppDevicesNULL です

戻り値

メソッドが成功した場合は、S_OK を返します。 失敗した場合、次の表に示す値が含まれますが、これに限定されません。

リターン コード 説明
E_POINTER
パラメーター ppDevicesNULL です
E_INVALIDARG
パラメーター dataFlow または dwStateMask が範囲外です。
E_OUTOFMEMORY
メモリが不足しています。

解説

たとえば、次の呼び出しでは、現在アクティブになっている (存在し、無効ではない) すべてのオーディオ レンダリング エンドポイント デバイスが列挙されます。


  hr = pDevEnum->EnumAudioEndpoints(
                   eRender, DEVICE_STATE_ACTIVE,
                   &pEndpoints);

前のコード フラグメントでは、変数 hrHRESULT 型、 pDevEnumIMMDeviceEnumerator インターフェイスへのポインター、 pEndpointsIMMDeviceCollection インターフェイスへのポインターです。

EnumAudioEndpoints メソッドを呼び出すコード例については、「Device Properties」を参照してください。

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー mmdeviceapi.h

関連項目

IMMDeviceCollection インターフェイス

IMMDeviceEnumerator インターフェイス