waveOutGetVolume 関数 (mmeapi.h)

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

構文

MMRESULT waveOutGetVolume(
  HWAVEOUT hwo,
  LPDWORD  pdwVolume
);

パラメーター

hwo

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

pdwVolume

現在のボリューム設定で塗りつぶされる変数へのポインター。 この場所の下位ワードには、左チャネルのボリューム設定が含まれており、上位ワードには右チャネル設定が含まれています。 0xFFFF の値はボリューム全体を表し、0x0000 の値は無音です。

デバイスが左右両方のボリューム制御をサポートしていない場合、指定した場所の下位ワードにはモノラル ボリューム レベルが含まれます。

waveOutSetVolume 関数で設定された完全な 16 ビット設定は、デバイスがボリューム レベル制御の完全な 16 ビットをサポートしているかどうかに関係なく、返されます。

戻り値

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

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

解説

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

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

デバイスが左右のチャネル ボリューム制御をサポートしているかどうかを判断するには、WAVECAPS_LRVOLUME フラグを使用して、WAVEOUTCAPS 構造体 (waveOutGetDevCaps で塗りつぶされた) の dwSupport メンバーをテストします。

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

要件

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

関連項目

波形オーディオ

波形関数