It is not typical for an application to bypass winmm and communicate
directly with a driver. Only a control panel or device manager type
application would ever even try something like this. Winecfg is one of
those unusual programs. Opening a driver more than once will not cause
any problems. The open functions in all the drivers are just stubs.
Loading a driver is what causes a drivers state to be initialized and
there is no way going through winmm to load the same driver more than
once. Trying to open a specific driver's device through for example
waveOutOpen more than once either through winmm or directly to the
driver will only allow the first open to succeed because all attempts
after the first will see that the device is already opened and fail.
this depends on the driver: for example in wineoss, for the wod part, it
will work if you specify the same format in the same thread (as we do
ref counting on open). Winealsa on the other hand should be ok.
However, since winmm doesn't regenerate its internal status after an
OpenDriver, one cannot use waveOut* to access that driver.
A+
--
Eric Pouech