midiStreamOut 関数 (mmeapi.h)

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

構文

MMRESULT midiStreamOut(
  HMIDISTRM hms,
  LPMIDIHDR pmh,
  UINT      cbmh
);

パラメーター

hms

MIDI ストリームへのハンドル。 このハンドルは、 midiStreamOpen 関数の呼び出しによって返されている必要があります。 このハンドルは、出力デバイスを識別します。

pmh

MIDI バッファーを識別する MIDIHDR 構造体へのポインター。

cbmh

MIDIHDR 構造体のサイズ (バイト単位)。

戻り値

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

リターン コード 説明
MMSYSERR_NOMEM
システムはメモリを割り当てまたはロックできません。
MIDIERR_STILLPLAYING
lpMidiHdr が指す出力バッファーは、引き続き再生中か、以前の midiStreamOut 呼び出しからキューに入れられます。
MIDIERR_UNPREPARED
lpMidiHdr が指すヘッダーは準備されていません。
MMSYSERR_INVALHANDLE
指定されたデバイス ハンドルが無効です。
MMSYSERR_INVALPARAM
lpMidiHdr で指定されたポインターが無効です。

解説

バッファーを midiStreamOpen に渡す前に、 midiOutPrepareHeader 関数を使用してバッファーを準備する必要があります。

midiStreamOpen 関数は一時停止モードで出力デバイスを開くので、midiStreamOut を使用して再生を開始する前に、midiStreamRestart 関数を呼び出す必要があります。

この関数の現在の実装では、バッファーは 64K より小さくする必要があります。

MIDIHDR 構造体によって指されるバッファーには、1 つ以上の MIDI イベントが含まれており、それぞれが MIDIEVENT 構造体によって定義されます。

要件

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

関連項目

MIDI 関数