Share via


waveOutSetVolume 関数 (mmeapi.h)

waveOutSetVolume 関数は、指定された波形オーディオ出力デバイスのボリューム レベルを設定します。

構文

MMRESULT waveOutSetVolume(
  HWAVEOUT hwo,
  DWORD    dwVolume
);

パラメーター

hwo

開いている波形オーディオ出力デバイスにハンドルします。 このパラメーターには、デバイス識別子を指定することもできます。

dwVolume

新しいボリューム設定。 下位ワードには左チャネルのボリューム設定が含まれており、上位ワードには右チャネル設定が含まれています。 0xFFFFの値はボリューム全体を表し、0x0000の値は無音です。

デバイスが左右両方のボリューム制御をサポートしていない場合、 dwVolume の下位ワードはボリューム レベルを指定し、上位ワードは無視されます。

戻り値

成功した場合はMMSYSERR_NOERRORを返し、それ以外の場合はエラーを返します。 考えられるエラー値は次のとおりです。

リターン コード 説明
MMSYSERR_INVALHANDLE
指定されたデバイス ハンドルが無効です。
MMSYSERR_NODRIVER
デバイス ドライバーが存在しません。
MMSYSERR_NOMEM
メモリを割り当てまたはロックできません。
MMSYSERR_NOTSUPPORTED
関数はサポートされていません。

解説

デバイス識別子を使用する場合、 waveOutSetVolume 呼び出しの結果は、デバイスのすべてのインスタンスに適用されます。 デバイス ハンドルが使用されている場合、結果はデバイス ハンドルによって参照されるデバイスのインスタンスにのみ適用されます。

すべてのデバイスでボリュームの変更がサポートされているわけではありません。 デバイスがボリューム制御をサポートしているかどうかを判断するには、WAVECAPS_VOLUME フラグを使用して、WAVEOUTCAPS 構造体の dwSupport メンバーをテストします (waveOutGetDevCaps 関数によって塗りつぶされます)。 デバイスが左右のチャネルの両方でボリューム制御をサポートしているかどうかを確認するには、WAVECAPS_LRVOLUME フラグを使用します。

ほとんどのデバイスは、ボリューム レベル制御の完全な 16 ビットをサポートしていないため、要求されたボリューム設定の最下位ビットを使用しません。 たとえば、デバイスで 4 ビットのボリューム制御がサポートされている場合、0x4000、0x4FFF、0x43BEの値はすべて0x4000に切り捨てられます。 waveOutGetVolume 関数は、waveOutSetVolume で設定された完全な 16 ビット設定を返します。

ボリューム設定は対数的に解釈されます。 つまり、ボリューム レベルを0x5000から0x6000に増やすと、ボリュームレベルが0x4000から0x5000に増えるのと同じになります。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー mmeapi.h (Windows.h を含む)
Library Winmm.lib
[DLL] Winmm.dll

関連項目

波形オーディオ

波形関数