go-wca
go-wca copied to clipboard
IAudioMeterInformationVtbl struct order of uintptr is incorrect for GetChannelsPeakValues and GetMeteringChannelCount
What version of Go are you using (go version
)?
go 1.21.1 amd64
What did you do?
This is the 0.3.0 VTable for the IAudioMeterInformation interface, I had failures in trying to get channel counts and corresponding peak values, when I realized the VTable had wrong orders for those two pointers (they're inverted).
I checked by making the syscall by myself and it works, I had E_POINTER errors on calling GetMeteringChannelCount and panic errors on calling GetChannelsPeakValues
type IAudioMeterInformationVtbl struct {
ole.IUnknownVtbl
GetPeakValue uintptr
GetChannelsPeakValues uintptr
GetMeteringChannelCount uintptr
QueryHardwareSupport uintptr
}
The working VTable:
type IAudioMeterInformationVtbl struct {
ole.IUnknownVtbl
GetPeakValue uintptr
GetMeteringChannelCount uintptr
GetChannelsPeakValues uintptr
QueryHardwareSupport uintptr
}
I've simply worked around it by making the syscall by myself, I don't know if it's simply because I'm using Windows 10 (?)