<Return[MN]><Top>

midiOutGetVolume

Declare Function Api_midiOutGetVolume& Lib "winmm" Alias "midiOutGetVolume" (ByVal hmo&, lpdwVolume&)

Declare Function midiOutGetVolume Lib "winmm" (ByVal hmo As Long, lpdwVolume As Long) As Long

指定された MIDI 出力デバイスのデバイス識別子を取得する。
この関数は後方互換性のためにサポートされている。新しいアプリケーションでは、デバイス識別子を取得せずに、デバイスのハンドルをキャストすることができる。

パラメータ
hmo
    オープンされている MIDI 出力デバイスのハンドルを指定する。このパラメータには、HMIDIOUT にキャストされた MIDI ストリームのハンド

    ルも指定できる。また、このパラメータにはデバイス識別子も指定できる。

lpdwVolume
    現在のボリューム設定が入る場所のアドレスを指定する。この場所の下位ワードには左チャネルのボリューム設定を指定し、上位ワードには

    右チャネルのボリューム設定を指定する。0xFFFF の値は最大ボリュームを表し、0x0000 は無音を表す。
    デバイスが左右両方のボリュームコントロールをサポートしない場合、指定した場所の下位ワードには、モノラルのボリュームレベルを指定す

    る。
    デバイスがその値をサポートするかどうかにかかわらず、midiOutSetVolume 関数を使って設定された値が返る。

戻り値
    関数が成功すると、MMSYSERR_NOERROR が返る。関数が失敗すると、エラーが返る。返されるエラー値は次のとおりである。

    値                                               

説明                                                                                 

    MMSYSERR_INVALHANDLE

指定されたデバイスハンドルは無効である。 

    MMSYSERR_INVALPARAM

指定されたポインタまたは構造体は無効である。

    MMSYSERR_NOMEM

システムはメモリを割り当てられないか、またはロックできない。

    MMSYSERR_NOTSUPPORTED

関数はサポートされていない。

 

解説
    デバイス識別子を指定した場合は、midiOutGetVolume 関数の呼び出しの結果と lpdwVolume パラメータに返された情報が、そのデバイ

    スのすべてのインスタンスに適用される。デバイスハンドルを指定した場合は、その結果と返された情報は、デバイスハンドルが示すデバイ

    スのインスタンスにだけ適用される。
    すべてのデバイスがボリュームコントロールをサポートしているわけではない。デバイスがボリュームコントロールをサポートしているかどうかを調

    べるには、midiOutGetDevCaps 関数を使い、MIDICAPS_VOLUME フラグを指定してデバイスを照会する。
    また、midiOutGetDevCaps 関数を使い、MIDICAPS_LRVOLUME フラグを設定してデバイスを照会し、そのデバイスが左右のチャネル

    のボリュームコントロールをサポートしているかどうかを調べることもできる。