IAudioMeterInformationVtbl struct order of uintptr is incorrect for GetChannelsPeakValues and GetMeteringChannelCount
Opened this issue · 0 comments
MAVREE commented
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 (?)