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 呼び出しが失敗した場合、*ppDevices は NULL です。
戻り値
メソッドが成功した場合は、S_OK を返します。 失敗した場合、次の表に示す値が含まれますが、これに限定されません。
リターン コード | 説明 |
---|---|
|
パラメーター ppDevices が NULL です。 |
|
パラメーター dataFlow または dwStateMask が範囲外です。 |
|
メモリが不足しています。 |
解説
たとえば、次の呼び出しでは、現在アクティブになっている (存在し、無効ではない) すべてのオーディオ レンダリング エンドポイント デバイスが列挙されます。
hr = pDevEnum->EnumAudioEndpoints(
eRender, DEVICE_STATE_ACTIVE,
&pEndpoints);
前のコード フラグメントでは、変数 hr は HRESULT 型、 pDevEnum は IMMDeviceEnumerator インターフェイスへのポインター、 pEndpoints は IMMDeviceCollection インターフェイスへのポインターです。
例
EnumAudioEndpoints メソッドを呼び出すコード例については、「Device Properties」を参照してください。
要件
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | mmdeviceapi.h |