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); } ```