midiOutShortMsg

指定された MIDI 出力デバイスにショート MIDI メッセージを送信します。

MMRESULT midiOutShortMsg(
    HMIDIOUT hmo,    // MIDI出力デバイスのハンドル
    DWORD    dwMsg   // MIDIメッセージ
);

WINMM.DLL

引数

hmo

MIDI 出力デバイスのハンドルを指定します。 MIDI ストリームのハンドルを指定することもできます。

dwMsg

MIDI メッセージを指定します。複数バイトで構成されるメッセージはダブルワード値(4バイト値)に以下のようにまとめられます。

位置データ
第1バイトMIDI ステータスバイト
第2バイトMIDI データ1バイト目
第3バイトMIDI データ2バイト目
第4バイト使用されません

ステータスバイト次第では、2バイトの MIDI データにすることができます。連続したメッセージが同じステータスバイトを持つ場合には、最初のメッセージでステータスバイトを含めた後はメッセージからステータスバイトを省略する(すなわち、ランニングステータスを作成する)ことができます。この場合は、以下のようにまとめられます。

位置データ
第1バイトMIDI データ1バイト目
第2バイトMIDI データ2バイト目
第3バイト使用されません
第4バイト使用されません

戻り値

関数が成功すると 0 (MMSYSERR_NOERROR) が返ります。

関数が失敗すると、以下のエラーが返ります。

意味
5 (MMSYSERR_INVALHANDLE)

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

67 (MIDIERR_NOTREADY)

ハードウェアがビジー状態です。

70 (MIDIERR_BADOPENMODE)

アプリケーションがステータスバイトなしでストリームハンドルにメッセージを送信しました。

解説

この関数は、システムエクスクルーシブおよびストリームメッセージ以外の MIDI メッセージを送信するのに使われます。

この関数は、デバイスにメッセージを送信するまで制御を返しません。

同じデバイス上でストリーム再生をしている間に、ショートメッセージを送信することができます。(ただし、この場合はランニングステータスを使用することはできません。)

対応情報

Windows 95 以降 / Windows NT 3.1 以降