IPerChannelDbLevel::SetLevel メソッド (devicetopology.h)

SetLevel メソッドは、指定されたチャネルのボリューム レベルをデシベル単位で設定します。

構文

HRESULT SetLevel(
  [in] UINT    nChannel,
  [in] float   fLevelDB,
  [in] LPCGUID pguidEventContext
);

パラメーター

[in] nChannel

選択したチャネルの番号。 オーディオ ストリームに N 個のチャネルがある場合、チャネルには 0 から N – 1 の番号が付きます。 ストリーム内のチャネルの数を取得するには、 IPerChannelDbLevel::GetChannelCount メソッドを呼び出します。

[in] fLevelDB

デシベル単位の新しいボリューム レベル。 正の値はゲインを表し、負の値は減衰を表します。

[in] pguidEventContext

IControlChangeNotify::OnNotify メソッドのコンテキスト値。 このパラメーターは、イベント コンテキスト GUID を指します。 SetLevel 呼び出しによってレベル コントロールの状態が変更された場合、そのコントロールに IControlChangeNotify インターフェイスを登録しているすべてのクライアントが通知を受け取ります。 OnNotify メソッドの実装では、クライアントはイベント コンテキスト GUID を検査して、それがコントロール変更イベントのソースであるかどうかを検出できます。 呼び出し元がこのパラメーターに NULL ポインターを指定した場合、クライアントの通知メソッドは NULL コンテキスト ポインターを受け取ります。

戻り値

メソッドが成功した場合は、S_OK を返します。 エラーが発生した場合、次の表に示す値が、可能なリターン コードに含まれますが、これらに限定されません。

リターン コード 説明
E_INVALIDARG
パラメーター nChannel が範囲外です。
E_OUTOFMEMORY
メモリが不足しています。

注釈

呼び出し元が正確なステップ値である fLevelDB の値を指定した場合、 SetLevel メソッドは正常に完了します。 後続の IPerChannelDbLevel::GetLevel メソッドの呼び出しでは、設定された値または次のいずれかの値が返されます。

  • 設定値が最小値を下回っていた場合、 GetLevel メソッドは最小値を返します。
  • 設定値が最大値を超える場合、 GetLevel メソッドは最大値を返します。
  • 設定値が 2 つのステップ値の間にある場合、 GetLevel メソッドは、上記の次のステップ値または設定値より下のステップ値の可能性がある値を返します。設定値から隣接するステップ値までの相対距離は重要ではありません。 GetLevel メソッドが返す値は、シグナル パスに対してより大きな影響を与える値です。

要件

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

こちらもご覧ください

IPerChannelDbLevel インターフェイス

IPerChannelDbLevel::GetChannelCount

IPerChannelDbLevel::GetLevel

IPerChannelDbLevel::GetLevelRange