Useful MSDN docs on some operations for default devices and device properties...

MMDeviceEnumerator::GetDefaultAudioEndpoint

https://learn.microsoft.com/en-us/windows/win32/api/mmdeviceapi/nf-mmdeviceapi-immdeviceenumerator-getdefaultaudioendpoint

IMMDevice::Activate

https://learn.microsoft.com/en-us/windows/win32/api/mmdeviceapi/nf-mmdeviceapi-immdevice-activate

IAudioEndpointVolume::SetMasterVolumeLevelScalar

https://learn.microsoft.com/en-us/windows/win32/api/endpointvolume/nf-endpointvolume-iaudioendpointvolume-setmastervolumelevelscalar

IAudioEndpointVolume::GetMasterVolumeLevelScalar

https://learn.microsoft.com/en-us/windows/win32/api/endpointvolume/nf-endpointvolume-iaudioendpointvolume-getmastervolumelevelscalar

IMMDevice::OpenPropertyStore

https://learn.microsoft.com/en-us/windows/win32/api/mmdeviceapi/nf-mmdeviceapi-immdevice-openpropertystore

PropVariantInit

https://learn.microsoft.com/en-us/windows/win32/api/propidl/nf-propidl-propvariantinit

IPropertyStore::GetValue

https://learn.microsoft.com/en-us/windows/win32/api/propsys/nf-propsys-ipropertystore-getvalue

PKEY_Device_FriendlyName

https://learn.microsoft.com/en-us/windows/win32/coreaudio/pkey-device-friendlyname