MIDISendMessages is used to send regular (non-SysEx) MIDI messages only.
The RTMIDI timer must be started before calling this function. Call MIDITimer to start the RTMIDI timer.
The instance number of the application node from which you want to send messages should be set in the ulSourceInstance field of the MESSAGE structures. Since each compound message has its own source instance number, it is possible to mix and match source application nodes within the array of compound messages.
Messages with time stamps indicating the current time or prior will be sent immediately. Messages with time stamps indicating a future time will be placed in a queue.
The time stamp value is absolute. The RTMIDI timer should be used as the basis for the time stamp value. For example, to indicate that a compound message should be processed 10 milliseconds in the future, the value placed in the ulTime field of the MESSAGE structure should be equal to the RTMIDI timer value plus 10.
The application's thread is blocked until all messages are either sent or queued.
If the outbound message queue cannot hold all future messages, the application's thread will be blocked for an indeterminate length of time. While this thread is blocked, the buffer holding the array of messages should not be modified by another thread.