windows-nt/Source/XPSP1/NT/multimedia/media/doc/convert.txt
2020-09-26 16:20:57 +08:00

48 lines
1.9 KiB
Plaintext

========================================================
| |
| CONVERSION AND PORTABILITY ITEMS IN NT MULTI-MEDIA |
| |
========================================================
1. SHORT MIDI MESSAGES (RCBS)
Short midi messages are passed around the system as DWORDs.
The documentations says that the first byte is the 'low order
byte' (see midiOutShortMsg). However, testcases (eg sbtest.exe)
and presumably applications often just use a union of a dword
and byte[4] to convert (NOT the same).
2. WINDOW words
The apis now take LONG parameters but actually only store WORDs.
This can be fixed by using things like SetWindowLong but there
is still the problem of the offsets they are using. One suggestion
is just to double the size of everthing and every offset but
the conversion effort is still there.
3. (SD) MCI Device IDs
Unfortunately these are 16 bits values in Win 3.0+, and the size
is difficult to change as it is used in disk files. Hence is a
permanent fixed value. It could be "thunked" when read/written.
More work needs to be done to decide whether to use a 32 bit
device id for MCI devices in Win 32, or to stick with 16 bit.
The device type MCIDEVICEID has been added to WINMM.H.
4. (SD) Global sound playing windows
Windows MM extensions (MMSYSTEM) uses a single GLOBAL window
handle (hwndNotify) to play all asynchronous sound (MCI and
sndPlaySound). To do this a piece of global memory is used
that defines which sound is playing. NO attempt is made in
Windows (WIN16) to synchronise playing sounds.
Much of the WIN16 high level sound code references the global
window handle.