Core Audioで可能かと思います。
Core Audio APIs
https://msdn.microsoft.com/en-us/library/windows/desktop/dd370802
以下、取得のみのサンプルです。
#include "ole32.as"
// tofloat todouble by sprocket氏
#module
#defcfunc tofloat double p1
temp = p1
return lpeek(temp) >> 29 & 7 | (p1 < 0) << 31 |lpeek(temp, 4) - (p1 ! 0) * 0x38000000 << 3
#defcfunc todouble int p1
temp = 0.0
lpoke temp, 4, (p1 & 0x80000000) | (((p1 & 0x7fffffff) >> 3) + ((p1 & 0x7fffffff) ! 0) * 0x38000000)
lpoke temp, 0, p1 << 29
return temp
#global
#ifndef IMMDeviceEnumerator
#define global IID_IMMDeviceEnumerator "{A95664D2-9614-4F35-A746-DE8DB63617E6}"
#define global CLSID_MMDeviceEnumerator "{BCDE0395-E52F-467C-8E3D-C4579291692E}"
#usecom global IMMDeviceEnumerator IID_IMMDeviceEnumerator CLSID_MMDeviceEnumerator
#comfunc global IMMDeviceEnumerator_EnumAudioEndpoints 3 int,int,var
#comfunc global IMMDeviceEnumerator_GetDefaultAudioEndpoint 4 int,int,var
#comfunc global IMMDeviceEnumerator_GetDevice 5 wstr,var
#comfunc global IMMDeviceEnumerator_RegisterEndpointNotificationCallback 6 int
#comfunc global IMMDeviceEnumerator_UnregisterEndpointNotificationCallback 7 int
#endif // IMMDeviceEnumerator
#ifndef IMMDeviceCollection
#define global IID_IMMDeviceCollection "{0BD7A1BE-7A1A-44DB-8397-CC5392387B5E}"
#usecom global IMMDeviceCollection IID_IMMDeviceCollection "{}"
#comfunc global IMMDeviceCollection_GetCount 3 var
#comfunc global IMMDeviceCollection_Item 4 int,var
#endif // IMMDeviceCollection
#ifndef IMMDevice
#define global IID_IMMDevice "{D666063F-1587-4E43-81F1-B948E807363F}"
#usecom global IMMDevice IID_IMMDevice "{}"
#comfunc global IMMDevice_Activate 3 var,int,int,var
#comfunc global IMMDevice_OpenPropertyStore 4 int,var;
#comfunc global IMMDevice_GetId 5 wstr
#comfunc global IMMDevice_GetState 6 var
#endif // IMMDevice
#ifndef IAudioEndpointVolume
#define global IID_IAudioEndpointVolume "{5CDF2C82-841E-4546-9722-0CF74078229A}"
#usecom global IAudioEndpointVolume IID_IAudioEndpointVolume "{}"
#comfunc global IAudioEndpointVolume_RegisterControlChangeNotify 3 int
#comfunc global IAudioEndpointVolume_UnregisterControlChangeNotify 4 int
#comfunc global IAudioEndpointVolume_GetChannelCount 5 var
#comfunc global IAudioEndpointVolume_SetMasterVolumeLevel 6 int,int
#comfunc global IAudioEndpointVolume_SetMasterVolumeLevelScalar 7 int,int
#comfunc global IAudioEndpointVolume_GetMasterVolumeLevel 8 var
#comfunc global IAudioEndpointVolume_GetMasterVolumeLevelScalar 9 var
#comfunc global IAudioEndpointVolume_SetChannelVolumeLevel 10 int,int,int
#comfunc global IAudioEndpointVolume_SetChannelVolumeLevelScalar 11 int,int,int
#comfunc global IAudioEndpointVolume_GetChannelVolumeLevel 12 int,var
#comfunc global IAudioEndpointVolume_GetChannelVolumeLevelScalar 13 int,var
#comfunc global IAudioEndpointVolume_SetMute 14 int,int
#comfunc global IAudioEndpointVolume_GetMute 15 var
#comfunc global IAudioEndpointVolume_GetVolumeStepInfo 16 var,var
#comfunc global IAudioEndpointVolume_VolumeStepUp 17 var
#comfunc global IAudioEndpointVolume_VolumeStepDown 18 var
#comfunc global IAudioEndpointVolume_QueryHardwareSupport 19 var
#comfunc global IAudioEndpointVolume_GetVolumeRange 20 var,var,var
#endif // IAudioEndpointVolume
#ifndef IAudioSessionManager2
#define global IID_IAudioSessionManager2 "{77AA99A0-1BD6-484F-8BC7-2C654C9A9B6F}"
#usecom global IAudioSessionManager2 IID_IAudioSessionManager2 "{}"
#comfunc global IAudioSessionManager2_GetSessionEnumerator 5 var
#comfunc global IAudioSessionManager2_RegisterSessionNotification 6 int
#comfunc global IAudioSessionManager2_UnregisterSessionNotification 7 int
#comfunc global IAudioSessionManager2_RegisterDuckNotification 8 wstr,int
#comfunc global IAudioSessionManager2_UnregisterDuckNotification 9 int
#endif // IAudioSessionManager2
#ifndef IAudioSessionEnumerator
#define global IID_IAudioSessionEnumerator "{E2F5BB11-0570-40CA-ACDD-3AA01277DEE8}"
#usecom global IAudioSessionEnumerator IID_IAudioSessionEnumerator "{}"
#comfunc global IAudioSessionEnumerator_GetCount 3 var
#comfunc global IAudioSessionEnumerator_GetSession 4 int,var
#endif // IAudioSessionEnumerator
#ifndef IAudioSessionControl
#define global IID_IAudioSessionControl "{F4B1A599-7266-4319-A8CA-E70ACB11E8CD}"
#usecom global IAudioSessionControl IID_IAudioSessionControl "{}"
#comfunc global IAudioSessionControl_GetState 3 var
#comfunc global IAudioSessionControl_GetDisplayName 4 var
#comfunc global IAudioSessionControl_SetDisplayName 5 wstr,int
#comfunc global IAudioSessionControl_GetIconPath 6 var
#comfunc global IAudioSessionControl_SetIconPath 7 wstr,int
#comfunc global IAudioSessionControl_GetGroupingParam 8 var
#comfunc global IAudioSessionControl_SetGroupingParam 9 var,int
#comfunc global IAudioSessionControl_RegisterAudioSessionNotification 10 int
#comfunc global IAudioSessionControl_UnregisterAudioSessionNotification 11 int
#endif // IAudioSessionControl
#ifndef IAudioSessionControl2
#define global IID_IAudioSessionControl2 "{bfb7ff88-7239-4fc9-8fa2-07c950be9c6d}"
#usecom global IAudioSessionControl2 IID_IAudioSessionControl2 "{}"
#comfunc global IAudioSessionControl2_Release 2
#comfunc global IAudioSessionControl2_GetState 3 var
#comfunc global IAudioSessionControl2_GetDisplayName 4 var
#comfunc global IAudioSessionControl2_SetDisplayName 5 wstr,int
#comfunc global IAudioSessionControl2_GetIconPath 6 var
#comfunc global IAudioSessionControl2_SetIconPath 7 wstr,int
#comfunc global IAudioSessionControl2_GetGroupingParam 8 var
#comfunc global IAudioSessionControl2_SetGroupingParam 9 var,int
#comfunc global IAudioSessionControl2_RegisterAudioSessionNotification 10 int
#comfunc global IAudioSessionControl2_UnregisterAudioSessionNotification 11 int
#comfunc global IAudioSessionControl2_GetSessionIdentifier 12 var
#comfunc global IAudioSessionControl2_GetSessionInstanceIdentifier 13 var
#comfunc global IAudioSessionControl2_GetProcessId 14 var
#comfunc global IAudioSessionControl2_IsSystemSoundsSession 15
#comfunc global IAudioSessionControl2_SetDuckingPreference 16 int
#endif // IAudioSessionControl2
#ifndef ISimpleAudioVolume
#define global IID_ISimpleAudioVolume "{87CE5498-68D6-44E5-9215-6DA47EF883D8}"
#usecom global ISimpleAudioVolume IID_ISimpleAudioVolume "{}"
#comfunc global ISimpleAudioVolume_SetMasterVolume 3 int,int
#comfunc global ISimpleAudioVolume_GetMasterVolume 4 var
#comfunc global ISimpleAudioVolume_SetMute 5 int,int
#comfunc global ISimpleAudioVolume_GetMute 6 var
#endif // ISimpleAudioVolume
sdim bufMB, 1024
newcom devEnum, IMMDeviceEnumerator
IMMDeviceEnumerator_GetDefaultAudioEndpoint devEnum, 0, 0, p
if ( stat ){ end }
newcom dev, IMMDevice, -1, p
iid = 0x5cdf2c82, 0x4546841e, 0xf70c2297, 0x9a227840
IMMDevice_Activate dev, iid, 1, 0, p
if ( stat ){ end }
newcom aev, IAudioEndpointVolume, -1, p
IAudioEndpointVolume_GetMute aev, p1
IAudioEndpointVolume_GetMasterVolumeLevelScalar aev, p2
p3 = int(todouble(p2) * 100)
bufMB += strf("IAudioEndpointVolume Mute: %d Vol: %d\n\n", p1, p3)
iid = 0x77aa99a0, 0x484f1bd6, 0x652cc78b, 0x6f9b9a4c
IMMDevice_Activate dev, iid, 1, 0, p
if ( stat ){ end }
newcom sm, IAudioSessionManager2, -1, p
IAudioSessionManager2_GetSessionEnumerator sm, p
if ( stat ){ end }
newcom sEnum, IAudioSessionEnumerator, -1, p
IAudioSessionEnumerator_GetCount sEnum, p
bufMB += strf("IAudioSessionEnumerator_GetCount: %d\n\n", p)
bufMB += strf("ProcessID State Mute Vol Name\n")
repeat p
IAudioSessionEnumerator_GetSession sEnum, cnt, p
newcom sc, IAudioSessionControl2, -1, p
IAudioSessionControl2_GetProcessId sc, p1
IAudioSessionControl2_GetState sc, p2
IAudioSessionControl2_GetDisplayName sc, p
dupptr dp, p, 1024, 2
querycom sav, sc, ISimpleAudioVolume
ISimpleAudioVolume_GetMute sav, p3
ISimpleAudioVolume_GetMasterVolume sav, p4
p5 = int(todouble(p4) * 100)
bufMB += strf("%9d %4d %4d %4d %s\n", p1, p2, p3, p5, cnvwtos(dp))
CoTaskMemFree p
delcom sc
loop
title "Test Core Audio"
objmode 2
mesbox bufMB, ginfo_winx, ginfo_winy, 4
delcom sEnum
delcom sm
delcom aev
delcom dev
delcom devEnum
stop