IAudioEndpointVolume::GetVolumeStepInfo メソッド (endpointvolume.h)

GetVolumeStepInfo メソッドは、ボリューム範囲内の現在のステップに関する情報を取得します。

構文

HRESULT GetVolumeStepInfo(
  [out] UINT *pnStep,
  [out] UINT *pnStepCount
);

パラメーター

[out] pnStep

メソッドが現在のステップ インデックスを書き込む UINT 変数へのポインター。 このインデックスは、0 から *pStepCount– 1 までの範囲の値です。ここで、0 は最小ボリューム レベルを表し、 *pStepCount– 1 は最大レベルを表します。

[out] pnStepCount

メソッドがボリューム範囲内のステップ数を書き込む UINT 変数へのポインター。 この数値は、 IAudioEndpointVolume インターフェイス インスタンスの有効期間中は一定です。

戻り値

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

リターン コード 説明
E_POINTER
パラメーター pnSteppnStepCount はどちらも NULL です

注釈

このメソッドは、オーディオ エンドポイント デバイスを個別のボリューム レベルの範囲のインデックスまたは "ステップ" として入力または退出するオーディオ ストリームのボリューム レベルを表します。 出力値 *pnStepCount は、範囲内のステップの数です。 出力値 *pnStep は、現在のボリューム レベルのステップ インデックスです。 ステップ数が n = *pnStepCount の場合、ステップ インデックス *pnStep は 0 (最小ボリューム) から n ~ 1 (最大ボリューム) までの値を想定できます。

0 ~ n – 1 の範囲で、隣接するステップ間の連続する間隔は、必ずしも線形信号振幅またはデシベルのいずれかで均一なボリューム増分を表すわけではありません。 Windows Vista では、 GetVolumeStepInfo は、ボリューム レベル (信号振幅) に対するインデックスの関係をオーディオテーパ曲線として定義します。 今後のバージョンの Windows では、曲線の形状が変わる可能性があることに注意してください。 オーディオテーパカーブの詳細については、「 Audio-Tapered Volume Controls」を参照してください。

オーディオ アプリケーションでは 、IAudioEndpointVolume::VolumeStepUp メソッドと IAudioEndpointVolume::VolumeStepDown メソッドを呼び出して、ボリューム レベルを 1 間隔ずつ増減できます。 どちらの方法でも、まず、オーディオテーパ曲線の次のポイントに対応する理想的なボリューム レベルが計算されます。 次に、 メソッドは、理想化されたレベルに最も近いエンドポイント ボリューム設定を選択します。 エンドポイント ボリューム設定の範囲と粒度を取得するには、 IEndpointVolume::GetVolumeRange メソッドを呼び出します。 オーディオ エンドポイント デバイスがハードウェア ボリューム コントロールを実装している場合、 GetVolumeRange はハードウェア ボリュームの設定について説明します。 それ以外の場合、EndpointVolume API はソフトウェアでエンドポイント ボリュームコントロールを実装し、 GetVolumeRange はソフトウェア実装コントロールのボリューム設定を記述します。

要件

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

こちらもご覧ください

IAudioEndpointVolume インターフェイス

IAudioEndpointVolume::VolumeStepDown

IAudioEndpointVolume::VolumeStepUp