http://bugs.winehq.org/show_bug.cgi?id=33384
--- Comment #7 from Anastasius Focht focht@gmx.net 2013-04-14 17:11:06 CDT --- Hello Vincent,
the method signatures and order are exactly the same so I'm wondering why this second interface exist (solely for performance reasons?).
The definition for Wine's "wincodec.idl" would be as follows (I replaced the GUID and CopyPalette method name):
--- snip --- [ object, uuid(7543696a-bc8d-46b0-5f81-8d95728972be) ] interface IMILBitmapSource : IUnknown { HRESULT GetSize( [out] UINT *puiWidth, [out] UINT *puiHeight);
HRESULT GetPixelFormat( [out] WICPixelFormatGUID *pPixelFormat);
HRESULT GetResolution( [out] double *pDpiX, [out] double *pDpiY);
HRESULT GetPalette( [in] IWICPalette *pIPalette);
HRESULT CopyPixels( [in] const WICRect *prc, [in] UINT cbStride, [in] UINT cbBufferSize, [out, size_is(cbBufferSize)] BYTE *pbBuffer); } --- snip ---
So technically if the vtable layout and method signatures are exactly the same, we could get away by just using our BitmapImpl?
Regards