指定された MIDI 出力デバイスにショート MIDI メッセージを送信します。
MMRESULT midiOutShortMsg( HMIDIOUT hmo, // MIDI出力デバイスのハンドル DWORD dwMsg // MIDIメッセージ );
WINMM.DLL
MIDI 出力デバイスのハンドルを指定します。 MIDI ストリームのハンドルを指定することもできます。
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 以降