At least for now I understand where and how Tempo Changes work.
In my sequencer project, I can now properly deal with these on a basic level.
The problem now is when playing back a MIDI file, my elapsed time indicator and playback indicator bar do not function properly, as these were updated with time (milliseconds), that are obtained through the Microsoft MCI API that I use.
For sequences that have only one Tempo, all works well, but for multi Tempo sequences, not so well.
It appears that for these multi Tempo sequences, time is not stored in milliseconds, but in Song Pointer units, which is units of sixteenth notes. From what I understand, these are used to better sync master and slave devices, and for multi Tempo sequences.
I can see no way to convert these Song Position units to milliseconds (or at least no easy way).
If you can shed any more light on this subject (Song Pointer units), it would be appreciated.
Meanwhile, I've decided to return to converting all the help files for SOL2 to English and to put them in the public domain.
That, in itself, is tedious rather than difficult, with Google translate doing quite a good job these days from Japanese to English. The trouble is that many of the diagrams or screenshots have Kanji text, so need to be redone. Some of the modules of SOL have not been changed to English so I'm having to use Resource Hacker to change things too. All these extras make the task quite time consuming, but ... it gives me something to do that should prove worthwhile for those interested in using SOL.