MSDN has reasonable documentation about how to use waveOut API: https://docs.microsoft.com/en-us/...s/win32/multimedia/waveform-audio
The older is the API, the better it is documented in MSDN.
There is not really much to do with waveOut functions - first you open device with waveOutOpen, then prepare data blocks to submit with waveOutPrepareHeader, and write them with waveOutWrite, then use waveOutUnprepareHeader to "free" the blocks. That's it. There are different mechanisms to be notified when when block finished playing - callback, event, thread/window messages, polling - all covered in MSDN docs.
Advantages of using waveOut? You can run on Windows 95/98 or XP without installing any redists.
Disadvantages - very large latency compared to other audio API's. If you are playing music or video file - no problem, but for fast games, this can be problematic.