http://bugs.winehq.org/show_bug.cgi?id=33384
--- Comment #23 from Dmitry Timoshkov dmitry@baikal.ru 2013-04-24 02:54:11 CDT --- (In reply to comment #21)
Created attachment 44273 [details] Patch "v4" based on Dmitry's "try3" with additional unknown interface/method stub added and BitmapImpl layout tweak
typedef struct BitmapImpl {
- IMILUnknown1 IMILUnknown1_iface;
- void *dummy1;
- IMILBitmapSource IMILBitmapSource_iface; IWICBitmap IWICBitmap_iface;
- IMILUnknown2 IMILUnknown2_iface; LONG ref; IWICPalette *palette; int palette_set;
Testing shows that dummy1 is really a refcount, and all 4 interfaces respond to QI with IID_IUnknown, IID_IWICBitmap, IID_IWICBitmapSource, IID_IMILBitmap and IID_IMILBitmapSource, returning the same iface pointers. They do not respond to other IID_IMIL* ids (that could be found in PSDK's uuid.lib): IID_IMILBitmapLock, IID_IMILBitmapScaler, IID_IMILBitmapConverter and IID_IMILPalette.