Because otherwise `mmdevapi.h` must be included after the header(s) that declare `IAudioEndpointVolumeEx` (`endpointvolume.h`) and `ISpatialAudioClient` (`spatialaudioclient.h`).
It seems to me like a better solution would be to include those headers in mmdevapi.h itself. In general, if any C file uses a definition, it should include the necessary headers for it.
[Side note, can we consider renaming mmdevapi.h to mmdevapi_private.h or something, so it's clearer that it's not an external header?]