The volatile stuff in dplay.h is part of the Windows header, you cannot remove it.
No it isn't. I'm not sure why it was added in the first place. It is neither used by Wine, nor defined by Windows. In fact only a few strange headers use volitile at all, and none of them is supported by Wine.
Most of these are because of the transition to making HANDLE a void* and compiling with STRICT.
Yes, I notice this was the case with TIMERPROC casts. However it is no so with the HOOKPROC casts, and yes it is the same with the real Windows headers.
Please don't add typecasts, consider the warnings as an incentive to do the right fix...
As you wish, but as I said HOOKPROC can't be fixed with STRICT.
But OK I will try and compile with -DSTRICT and see what happends. IIRC somebody tried that but it didn't turn out so well. Oh well, lets see what happends.