WaveOutOpen provides a callback mechanism, where very few APIs may be called. While inside this callback the entire Wave ...

WaveOutOpen provides a callback mechanism, where very few APIs may be called. While inside this callback the entire Wave Out system is locked. It is very easy to deadlock the application. This compatibility fix catches all the WINMM callback data, and passes it to the application from the WM_TIMER callback which exists in the main application thread.