Chip Davis (@cdavis5e) commented about include/mpegtype.idl:
+ + HRESULT put_DecoderWordSize( + unsigned long word_size); + + HRESULT put_DualMode( + unsigned long dual_mode); + + HRESULT put_FrequencyDivider( + unsigned long divider); + + HRESULT put_IntegerDecode( + unsigned long integer_decode); + + HRESULT put_Stereo( + unsigned long stereo); +} At least in the Windows 7 SDK, these methods are in a completely different order. Unlike with free functions, order is significant here, because it determines how the v-table is physically laid out.
So something like this: ```suggestion:-40+0 interface IMpegAudioDecoder : IUnknown { [propget] HRESULT FrequencyDivider( [out, retval] unsigned long *divider); [propput] HRESULT FrequencyDivider( unsigned long divider); [propget] HRESULT DecoderAccuracy( [out, retval] unsigned long *accuracy); [propput] HRESULT DecoderAccuracy( unsigned long accuracy); [propget] HRESULT Stereo( [out, retval] unsigned long *stereo); [propput] HRESULT Stereo( unsigned long stereo); [propget] HRESULT DecoderWordSize( [out, retval] unsigned long *word_size); [propput] HRESULT DecoderWordSize( unsigned long word_size); [propget] HRESULT IntegerDecode( [out, retval] unsigned long *integer_decode); [propput] HRESULT IntegerDecode( unsigned long integer_decode); [propget] HRESULT DualMode( [out, retval] unsigned long *dual_mode); [propput] HRESULT DualMode( unsigned long dual_mode); [propget] HRESULT AudioFormat( [out, retval] MPEG1WAVEFORMAT *format); } ``` -- https://gitlab.winehq.org/wine/wine/-/merge_requests/49#note_746