ol32: Make enumx implementation look more like a COM interface.

Dmitry Timoshkov dmitry at baikal.ru
Mon Jun 24 05:17:52 CDT 2013

Alexandre Julliard <julliard at winehq.org> wrote:

> > This patch should be quite obvious in its intent: it changes vtable type
> > to IUnknown which helps to remove This* to IUnknown* casts in order to
> > avoid obvious problems with vtable pointer placement inside of object
> > implementation. Basically this is just a clean up patch.
> >
> > Is there anything else to clear the pending patch state?
> It's just moving the casts around, it doesn't seem like much of an
> improvement.

The patch actually removes the casts, the only cast that remains is the cast
on the caller's side for the vtable pointer (which is much cleaner IMO since
every COM object implements IUnknown), but the implementation itself is cast
free, and looks now as an actual COM object. I found this 'This' to object cast
while investigating a crash in the COM code and decided to fix it since it's
clearly wrong and may lead to other problems.


More information about the wine-devel mailing list