<Return[MN]><Top>

midiStreamOut

Declare Function Api_midiStreamOut& Lib "winmm" Alias "midiStreamOut" (ByVal hMidiStream&, lpMidiHdr As MIDIHDR, ByVal cbMidiHdr&)

Declare Function midiStreamOut Lib "winmm" (ByVal hMidiStream As Long, lpMidiHdr As MIDIHDR, ByVal cbMidiHdr As Long) As Long

MIDI データのストリーム(バッファ)を MIDI 出力デバイスで再生するか、またはそのキューに入れる。

パラメータ
hMidiStream
    MIDI ストリームのハンドルを指定する。このハンドルは、midiStreamOpen 関数を呼び出して返されたハンドルでなければならない。このハ

    ンドルは、出力デバイスを識別する。
lpMidiHdr
    MIDI バッファを識別する MIDIHDR 構造体のアドレスを指定する。
cbMidiHdr
    MIDIHDR 構造体のサイズをバイト単位で指定する。

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

    値                                               

説明                                                      

    MMSYSERR_NOMEM

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

    MIDIERR_STILLPLAYING

 

lpMidiHdr パラメータで指定された出力バッファはまだ再生中であるか、または以前の midiStreamOut 関数の呼び出しによってキューに入れられている。

    MIDIERR_UNPREPARED

lpMidiHdr パラメータで指定されたヘッダーはまだ準備されていない。

    MMSYSERR_INVALHANDLE

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

    MMSYSERR_INVALPARAM

lpMidiHdr パラメータで指定されたポインタは無効である。

 

解説
    midiStreamOpen 関数は出力デバイスを一時停止モードでオープンするため、midiStreamOut 関数を使って再生を開始する前に、

    midiStreamRestart 関数を呼び出す必要がある。
    この関数の現在の実装では、バッファは 64KB 未満でなければならない。
    MIDIHDR 構造体が指すバッファには 1 つ以上の MIDI イベントが入り、各イベントは MIDIEVENT 構造体で定義される。