次の方法で共有


midiOutPrepareHeader 関数 (mmeapi.h)

midiOutPrepareHeader 関数は、出力用に MIDI システム排他バッファーまたはストリーム バッファーを準備します。

構文

MMRESULT midiOutPrepareHeader(
  HMIDIOUT  hmo,
  LPMIDIHDR pmh,
  UINT      cbmh
);

パラメーター

hmo

MIDI 出力デバイスにハンドルします。 デバイス ハンドルを取得するには、 midiOutOpen を呼び出します。 このパラメーターは、 HMIDIOUT タイプにキャストされた MIDI ストリームのハンドルにすることもできます。

pmh

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

関数を呼び出す前に、MIDIHDR 構造体の lpDatadwBufferLengthdwFlags メンバーを設定します。 dwFlags メンバーは 0 に設定する必要があります。

cbmh

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

戻り値

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

リターン コード 説明
MMSYSERR_INVALHANDLE
指定されたデバイス ハンドルが無効です。
MMSYSERR_INVALPARAM
指定されたアドレスが無効であるか、指定されたストリーム バッファーが 64,000 を超えています。
MMSYSERR_NOMEM
システムがメモリを割り当てまたはロックできません。

注釈

MIDI データ ブロックをデバイス ドライバーに渡す前に、 midiOutPrepareHeader 関数に渡してバッファーを準備する必要があります。 ヘッダーの準備が完了したら、バッファーを変更しないでください。 バッファーを使用してドライバーが完了したら、 midiOutUnprepareHeader 関数を呼び出します。

アプリケーションでは、同じバッファーを再利用するか、複数のバッファーを割り当てて、各バッファーに 対して midiOutPrepareHeader を呼び出すことができます。 同じバッファーを再利用する場合、毎回バッファーを準備する必要はありません。 最初に 1 回 midiOutPrepareHeader を呼び出し、最後に 1 回 midiOutUnprepareHeader を呼び出すことができます。

ストリーム バッファーは 64K を超えることはできません。

既に準備されているヘッダーを準備しても効果はなく、関数はMMSYSERR_NOERRORを返します。

要件

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

こちらもご覧ください

MIDI データブロックの割り当てと準備

MIDI 関数

midiOutUnprepareHeader